예제 #1
0
        void HandleTradeCommand(string msg, SteamID sender)
        {
            var pendingTrades = PendingTrades.ToList();

            foreach (var trade in pendingTrades)
            {
                if (trade.Target == sender)
                {
                    Logger.WriteLine("User already in trade queue, ignoring request...");
                    return;
                }
            }

            if (pendingTrades.Count != 0)
            {
                SteamFriends.SendChatMessage(sender, EChatEntryType.ChatMsg,
                                             string.Format("You were added to the trade queue at pos #{0}.",
                                                           pendingTrades.Count + 1));
            }

            var request = new TradeRequest();

            request.Timestamp = DateTime.Now;
            request.Target    = sender;

            PendingTrades.Enqueue(request);
        }
예제 #2
0
        void HandleListTradesCommand(string msg, SteamID sender)
        {
            var sb = new StringBuilder();

            var pendingTrades = PendingTrades.ToArray();

            if (pendingTrades.Length == 0)
            {
                sb.AppendLine("No queued trades.");
            }
            else
            {
                sb.AppendLine("Queued trades:");
            }

            foreach (var trade in pendingTrades)
            {
                sb.AppendLine(string.Format("{0} ({1}) on {2}",
                                            SteamFriends.GetFriendPersonaName(trade.Target),
                                            trade.Target.ConvertToUInt64(),
                                            trade.Timestamp.ToShortTimeString()));
            }

            SteamFriends.SendChatMessage(sender, EChatEntryType.ChatMsg, sb.ToString());
        }