private void HideTrade(BasePlayer player) { if (player.IsConnected()) { var obj = new Facepunch.ObjectList("TradeMsg"); CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo { connection = player.net.connection }, null, "DestroyUI", obj); } }
void SendClientCommand(BasePlayer player, string functionName, Facepunch.ObjectList arguments) { CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo(player.net.connection), null, functionName, arguments); }
private void ShowTrade(BasePlayer player, OpenTrade trade, string status) { HideTrade(player); OnlinePlayer onlinePlayer; if (!onlinePlayers.TryGetValue(player, out onlinePlayer)) { return; } if (onlinePlayer.View == null) { return; } StorageContainer sourceContainer = onlinePlayer.View; StorageContainer targetContainer = null; BasePlayer target = null; if (trade.sourcePlayer == player && trade.target.View != null) { targetContainer = trade.target.View; target = trade.targetPlayer; if (target is BasePlayer) { if (trade.targetAccept) { status += string.Format(GetMsg("Trade: They Accepted", player), CleanName(target.displayName)); } else if (trade.sourceAccept) { status += GetMsg("Trade: You Accepted", player); } } else { return; } } else if (trade.targetPlayer == player && trade.source.View != null) { targetContainer = trade.source.View; target = trade.sourcePlayer; if (target is BasePlayer) { if (trade.sourceAccept) { status += string.Format(GetMsg("Trade: They Accepted", player), CleanName(target.displayName)); } else if (trade.targetAccept) { status += GetMsg("Trade: You Accepted", player); } } else { return; } } if (targetContainer == null || target == null) { return; } string send = jsonTrade; for (int i = 1; i < 100; i++) { send = send.Replace("{" + i + "}", Oxide.Core.Random.Range(9999, 99999).ToString()); } send = send.Replace("{sourcename}", CleanName(player.displayName)); if (target != null) { send = send.Replace("{targetname}", CleanName(target.displayName)); } else { send = send.Replace("{targetname}", GetMsg("Player: Unknown", player)); } send = send.Replace("{targetstatus}", status); List <string> sourceItems = new List <string>(); foreach (Item i in sourceContainer.inventory.itemList) { string n = ""; if (i.IsBlueprint()) { n = i.amount + " x <color=lightblue>" + i.blueprintTargetDef.displayName.english + " [" + GetMsg("Item: BP", player) + "]</color>"; } else { n = i.amount + " x " + i.info.displayName.english; } sourceItems.Add(n); } send = send.Replace("{sourceitems}", string.Join("\n", sourceItems.ToArray())); if (player != target) { List <string> targetItems = new List <string>(); if (targetContainer != null) { foreach (Item i in targetContainer.inventory.itemList) { string n2 = ""; if (i.IsBlueprint()) { n2 = i.amount + " x <color=lightblue>" + i.blueprintTargetDef.displayName.english + " [" + GetMsg("Item: BP", player) + "]</color>"; } else { n2 = i.amount + " x " + i.info.displayName.english; } targetItems.Add(n2); } } send = send.Replace("{targetitems}", string.Join("\n", targetItems.ToArray())); } else { send = send.Replace("{targetitems}", ""); } var obj2 = new Facepunch.ObjectList(send); CommunityEntity.ServerInstance.ClientRPCEx(new Network.SendInfo { connection = player.net.connection }, null, "AddUI", obj2); }