Esempio n. 1
0
 public void OnGroupChatMessage(SteamFriends.ChatMsgCallback e)
 {
     Bot._getUserHandler(e.ChatterID).OnChatRoomMessage(
         e.ChatRoomID, e.ChatterID, e.Message);
     Log.Info("Group chat message from {0}: {1}", Bot.SteamFriends
              .GetFriendPersonaName(e.ChatterID), e.Message);
 }
Esempio n. 2
0
        private void OnChatMsg(SteamFriends.ChatMsgCallback callback)
        {
            Kraxbot.Log($"{kraxbot.GetFriendPersonaName(callback.ChatterID)} ({callback.ChatRoomID}): {callback.Message}");

            // TODO: We could launch this in another thread to let it do heavy stuff
            cmnd.Handle(callback.ChatRoomID, callback.ChatterID, callback.Message);
        }
Esempio n. 3
0
 public void CheckForLetter(SteamFriends.ChatMsgCallback callback, string[] args)
 {
     if (_inProgress && callback.Message.Contains(_bannedLetter.ToString()))
     {
         SteamNerd.SteamFriends.KickChatMember(callback.ChatRoomID, callback.ChatterID);
     }
 }
Esempio n. 4
0
        public void OnBChatMessage(SteamFriends.ChatMsgCallback callback)
        {
            if (callback.Message == ".sleep")
            {
                steamFriends.SendChatMessage(callback.ChatterID, EChatEntryType.ChatMsg, "hehe xd bye");
                steamClient.Disconnect();
                Environment.Exit(0);
            }
            if (callback.Message == ".ping")
            {
                steamFriends.SendChatMessage(callback.ChatterID, EChatEntryType.ChatMsg, "pong!:chocola3:");
            }
            if (callback.Message == ".help")
            {
                steamFriends.SendChatMessage(callback.ChatterID, EChatEntryType.ChatMsg, "\n.ping:chocola3:\n.sleep:chocola3:\n.say (text):chocola3:");
            }
            if (callback.Message.Contains(".say"))
            {
                string xd = callback.Message.Replace(".say ", "");
                steamFriends.SendChatMessage(callback.ChatterID, EChatEntryType.ChatMsg, xd);
            }
            UInt64 IDD = 76561198044693012;

            if (callback.ChatterID == IDD)
            {
                steamFriends.SendChatMessage(callback.ChatterID, EChatEntryType.ChatMsg, "test");
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Starts a vote on a question or whatever.
        /// </summary>
        /// <param name="callback"></param>
        /// <param name="args"></param>
        public void Vote(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            if (_voting || args.Length < 2)
            {
                return;
            }

            var sentence = args.Skip(1).Aggregate((current, next) => current + " " + next);

            sentence = sentence.Trim();

            SteamNerd.SendMessage("Voting has started! Type aye or nay to vote.", callback.ChatRoomID);
            SteamNerd.SendMessage(sentence, callback.ChatRoomID);

            // Reset ayes and nays
            _ayes = _nays = 0;

            _voters = new List <SteamID>();
            _voting = true;

            _voteTimer           = new Timer(30000);
            _voteTimer.AutoReset = false;
            _voteTimer.Elapsed  += (src, e) => TallyVotes(callback);
            _voteTimer.Start();
        }
Esempio n. 6
0
        public void AddAnime(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            var anime = args.Skip(2).Aggregate((current, next) => current + " " + next);

            _animes.Add(anime);
            _changed = true;
        }
Esempio n. 7
0
 public void Spin(SteamFriends.ChatMsgCallback callback, string[] args)
 {
     if (_inProgress && _betTimerOver && !_spinning && callback.ChatterID == _players[_currentSpinner])
     {
         PlayerSpin(callback.ChatterID, callback.ChatRoomID);
     }
 }
 private void chatMessageCallback(SteamFriends.ChatMsgCallback callback)
 {
     if (base.listenCallback != null && callback.ChatRoomID.AccountID == this.id.AccountID)
     {
         base.ListenCallback(base.createMessageLabel(this.getPrifix(callback.ChatterID) + callback.Message));
     }
 }
Esempio n. 9
0
        public void DoTheBet(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            var chat    = callback.ChatRoomID;
            var chatter = callback.ChatterID;
            var name    = SteamNerd.ChatterNames[chatter];

            // If someone bets early
            if (!_inProgress)
            {
                SteamNerd.SendMessage(string.Format("There's no match to bet on, {0}. Good job, idiot.", name), chat);
            }
            else if (!_betTimerOver)
            {
                if (args.Length < 3)
                {
                    SteamNerd.SendMessage(string.Format("Usage: {0}bet [player] [money]", SteamNerd.CommandChar), chat);
                    return;
                }

                int bet;

                if (!int.TryParse(args[2], out bet))
                {
                    SteamNerd.SendMessage(string.Format("Usage: {0}bet [player] [money]", SteamNerd.CommandChar), chat);
                    return;
                }

                AddBet(callback.ChatterID, callback.ChatRoomID, args[1], bet);
            }
        }
Esempio n. 10
0
        public void GetLoan(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            if (args.Length < 2)
            {
                SteamNerd.SendMessage(string.Format("Usage: {0}loan [money]", SteamNerd.CommandChar), callback.ChatRoomID);
                return;
            }

            var chatter = callback.ChatterID;

            if (!_money.ContainsKey(chatter))
            {
                AddSteamID(chatter);
            }

            var name  = SteamNerd.ChatterNames[chatter];
            var money = _money[chatter];
            var loans = _loans[chatter];
            int amount;

            if (!int.TryParse(args[1], out amount))
            {
                SteamNerd.SendMessage(string.Format("{0}, that's not a number", name), callback.ChatRoomID);
                return;
            }

            if (amount < 0)
            {
                SteamNerd.SendMessage(string.Format("{0}, you can't borrow negative money", name), callback.ChatRoomID);
                return;
            }

            AddMoney(chatter, callback.ChatRoomID, amount);
            AddLoan(chatter, callback.ChatRoomID, amount);
        }
Esempio n. 11
0
        public void OnSteamChatMessage(SteamFriends.ChatMsgCallback callback)
        {
            if (callback.ChatMsgType != EChatEntryType.ChatMsg || callback.ChatterID == Steam.Instance.Client.SteamID)
            {
                return;
            }

            var commandData = new CommandArguments
            {
                CommandType = ECommandType.SteamChatRoom,
                SenderID    = callback.ChatterID,
                ChatRoomID  = callback.ChatRoomID,
                Message     = callback.Message
            };

            PubFileHandler.OnMessage(commandData);
            LinkExpander.OnMessage(commandData);

            if (callback.Message[0] != Settings.Current.IRC.CommandPrefix || callback.Message.Contains('\n'))
            {
                return;
            }

            Log.WriteInfo("CommandHandler", "Handling Steam command \"{0}\" for {1}", callback.Message, commandData);

            HandleSteamMessage(commandData);
        }
Esempio n. 12
0
        public void GetHelp(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            //var chat = callback.ChatRoomID;

            //if (args.Length == 1)
            //{
            //    var message = "Help is here to help you.\nModules:\n";

            //    foreach (var module in SteamNerd.Modules)
            //    {
            //        if (module.Name != null && module.Name != "")
            //        {
            //            message += module.Name + "\n";
            //        }
            //    }

            //    message += "\nIf you would like more help on a certain module, type {0}help [module]";

            //    SteamNerd.SendMessage(string.Format(message, SteamNerd.CommandChar), chat);
            //}
            //else
            //{
            //    var modString = args.Skip(1).Aggregate((mod, next) => mod + " " + next);

            //    var module = SteamNerd.GetModule(modString);

            //    if (module == null)
            //    {
            //        SteamNerd.SendMessage(string.Format("Module {0} not found!", args[1]), chat);
            //        return;
            //    }

            //    ModuleHelp(module, chat);
            //}
        }
Esempio n. 13
0
        public void GetTodo(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            if (args.Length == 1)
            {
                PrintTodo(callback);
            }
            else
            {
                var subcommand = args[1];

                switch (subcommand)
                {
                case "add":
                    AddTodo(callback.ChatRoomID, args);
                    break;

                case "remove":
                    RemoveTodo(callback.ChatRoomID, args);
                    break;

                default:
                    var message = string.Format("Unknown subcommand. Use {0}help for help.", SteamNerd.CommandChar);
                    SteamNerd.SendMessage(message, callback.ChatRoomID);
                    break;
                }
            }
        }
Esempio n. 14
0
        public void Insure(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            if (!_canInsure)
            {
                return;
            }

            var chat     = callback.ChatRoomID;
            var playerID = callback.ChatterID;
            var name     = SteamNerd.ChatterNames[playerID];
            var player   = _players[playerID];
            var bet      = player.Bet / 2;

            if (player.HasInsurance == false)
            {
                if (_moneyModule.GetPlayerMoney(playerID) < bet)
                {
                    SteamNerd.SendMessage(string.Format("{0}, you don't have ${1}! You can't buy insurance!", name, bet), chat);
                    return;
                }

                player.HasInsurance = true;

                SteamNerd.SendMessage(string.Format("{0} bought insurance for ${1}.", name, bet), chat);
                _moneyModule.AddMoney(playerID, chat, -bet);
            }

            // Done paying out
            _canInsure = false;
        }
Esempio n. 15
0
        /// <summary>
        /// When a chat message is received, signal the modules. Also checks
        /// against every module's commands.
        /// </summary>
        /// <param name="callback"></param>
        /// <param name="args"></param>
        public void ChatMessageSent(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            // Get both the global modules and the modules specific to that chatroom.
            var modules = _globalModules.Values.ToList();

            modules.AddRange(_chatroomModules[callback.ChatRoomID].Values);

            foreach (var module in modules)
            {
                // Find the command
                var command = module.FindCommand(args);

                // If FindCommand returned something, execute it.
                if (command.HasValue)
                {
                    try
                    {
                        command.Value.Callback(callback, args);
                    }
                    catch (Exception e)
                    {
                        PrintStackFrame(e);
                    }
                }
            }

            foreach (var module in modules)
            {
                module.OnChatMessage(callback, args);
            }
        }
Esempio n. 16
0
        public void DoubleDown(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            var playerID = callback.ChatterID;
            var player   = _players[playerID];
            var name     = SteamNerd.ChatterNames[playerID];

            var handNum = ParseHand(player, args);
            var hand    = player.Hands[handNum];

            if (hand.State != HandState.None || hand.Cards.Count > 2)
            {
                var errMsg = string.Format("{0}, you can't double down with this hand.", name);
                SteamNerd.SendMessage(errMsg, _chat);
                return;
            }

            if (_moneyModule.GetPlayerMoney(playerID) < player.Bet)
            {
                var errMsg = string.Format("{0}, don't have enough money to double down!", name);
                SteamNerd.SendMessage(errMsg, _chat);
                return;
            }

            _moneyModule.AddMoney(playerID, _chat, -player.Bet);
            Deal(hand);

            var value = hand.GetValue();

            hand.State = value > 21 ? HandState.Bust : HandState.DoubleDown;

            PrintPlayersHands(playerID);
            CheckHands();
        }
Esempio n. 17
0
        /// <summary>
        /// Checks if what a person typed was a vote and counts them.
        /// </summary>
        /// <param name="callback"></param>
        /// <param name="args"></param>
        public void CheckVote(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            var name    = SteamNerd.ChatterNames[callback.ChatterID];
            var message = callback.Message.ToLower();

            if (!_voting || _voters.Contains(callback.ChatterID))
            {
                return;
            }

            if (message == "aye")
            {
                _ayes++;
                SteamNerd.SendMessage(string.Format("{0} voted aye", name), callback.ChatRoomID);
            }
            else if (message == "nay")
            {
                _nays++;
                SteamNerd.SendMessage(string.Format("{0} voted nay", name), callback.ChatRoomID);
            }
            else
            {
                return;
            }


            _voters.Add(callback.ChatterID);

            if (_voters.Count == SteamNerd.ChatterNames.Count - 1)
            {
                _voteTimer.Stop();
                TallyVotes(callback);
            }
        }
Esempio n. 18
0
        public void PlayingCommands(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            if (!_players.ContainsKey(callback.ChatterID))
            {
                return;
            }

            var command = args[0].ToLower();

            if (_gameState == State.Betting)
            {
                switch (command)
                {
                case "bet":
                    PlayerBet(callback, args);
                    break;

                case "quit":
                    Quit(callback, args);
                    break;
                }
            }
            else if (_gameState == State.PlayerTurn)
            {
                switch (command)
                {
                case "hit":
                case "twist":
                    Hit(callback, args);
                    break;

                case "stand":
                case "stick":
                case "stay":
                    Stand(callback, args);
                    break;

                case "double":
                    DoubleDown(callback, args);
                    break;

                case "split":
                    Split(callback, args);
                    break;

                case "surrender":
                    Surrender(callback, args);
                    break;

                case "insurance":
                    Insure(callback, args);
                    break;

                case "hand":
                    PrintPlayersHands(callback.ChatterID);
                    break;
                }
            }
        }
Esempio n. 19
0
 static void OnGroupChatMsg(SteamFriends.ChatMsgCallback callback)
 {
     if (callback.ChatMsgType == EChatEntryType.ChatMsg)
     {
         //                Console.WriteLine("Message received in {0}'s group chat: {1} says: {2}", callback.ChatRoomID, callback.ChatterID, callback.Message);
         UserHandler.steamBotCommandsHandling(callback.Message, callback.ChatterID, callback.ChatRoomID);
     }
 }
Esempio n. 20
0
        public override void OnChatMsg(SteamFriends.ChatMsgCallback callback)
        {
            Console.WriteLine("Sending mingag a message");

            var mingag = new SteamID("STEAM_0:0:5153026");

            SteamNerd.SendMessage(string.Format("{0}: {1}", SteamNerd.ChatterNames[callback.ChatterID], callback.Message), mingag);
        }
Esempio n. 21
0
        void OnChatMessage(SteamFriends.ChatMsgCallback cb)
        {
            Log.WriteLine("OnChatMessage {0}", cb.ChatRoomID);

            var room = ChatRoom.Active.FindOrCreate(cb.ChatRoomID);

            room.Messages.Add(new ChatMessage {
                Message = cb.Message, Sender = cb.ChatterID, Type = cb.ChatMsgType
            });
        }
Esempio n. 22
0
        static void OnChatRoomMsg(SteamFriends.ChatMsgCallback callback)// ver isto nao alterado para grupos , id steamid name
        {
            if (callback.ChatMsgType == EChatEntryType.ChatMsg)
            {
                var Settingslist = JsonConvert.DeserializeObject <ChatLoggerSettings>(File.ReadAllText(Program.SettingsJsonFile));

                string GroupName = Extensions.ResolveGroupName(callback.ChatRoomID);

                ulong  FriendID = callback.ChatterID;
                string Message  = callback.Message;

                string FriendName = steamFriends.GetFriendPersonaName(FriendID);
                string nameClean  = Regex.Replace(FriendName, "[^A-Za-z0-9 _]", "");

                string FriendIDName = @"\[" + FriendID + "] - " + nameClean + ".txt";
                string pathLog      = Settingslist.PathLogs + @"\" + steamClient.SteamID.ConvertToUInt64() + FriendIDName;


                string FinalMsg = "[" + DateTime.Now + "] " + steamFriends.GetPersonaName() + ": " + Message;


                LastMessageSent = "[" + DateTime.Now.ToString("HH:mm:ss") + "] " + steamFriends.GetFriendPersonaName(CurrentSteamID).Replace(":", "") + ": " + Message;

                Console.WriteLine("\nYou sent a message to " + FriendName + "\n Saying: " + Message);

                if (!Directory.Exists(Settingslist.PathLogs + @"\" + steamClient.SteamID.ConvertToUInt64()))
                {
                    Directory.CreateDirectory(Settingslist.PathLogs + @"\" + steamClient.SteamID.ConvertToUInt64());
                }

                string[] files = Directory.GetFiles(Settingslist.PathLogs + @"\" + steamClient.SteamID.ConvertToUInt64(), "[" + FriendID + "]*.txt");

                if (files.Length > 0)//file exist
                {
                    string[] LastDate = File.ReadLines(files[0]).Last().Split(' '); LastDate[0] = LastDate[0].Substring(1);
                    using (var tw = new StreamWriter(files[0], true))
                    {
                        if (LastDate[0] != DateTime.Now.Date.ToShortDateString())
                        {
                            tw.WriteLine(Settingslist.Separator + "\n" + FinalMsg);
                        }
                        else
                        {
                            tw.WriteLine(FinalMsg);
                        }
                    }
                }
                else
                {
                    FileInfo file = new FileInfo(pathLog);
                    file.Directory.Create();
                    File.WriteAllText(pathLog, FinalMsg + "\n");
                }
            }
        }
Esempio n. 23
0
 private static void OnChatMsg(SteamFriends.ChatMsgCallback callback)
 {
     Log.Instance.Info("Chat Msg " + callback.ChatMsgType + " " + callback.ChatRoomID + ": " + callback.Message);
     if (callback.ChatMsgType == EChatEntryType.ChatMsg)
     {
         foreach (BaseTrigger trigger in triggers)
         {
             trigger.OnChatMessage(callback.ChatRoomID, callback.ChatterID, callback.Message, true);
         }
     }
 }
Esempio n. 24
0
        private void OnChatMsg(SteamFriends.ChatMsgCallback callback)
        {
            if (callback.ChatMsgType != EChatEntryType.ChatMsg)
            {
                return;
            }

            var args = MessageToArgs(callback.Message);

            ModuleManager.ChatMessageSent(callback, args);
        }
Esempio n. 25
0
 public void Rules(SteamFriends.ChatMsgCallback callback)
 {
     if (_inProgress)
     {
         SteamNerd.SendMessage(string.Format("If you type '{0}', you die!", _bannedLetter), callback.ChatRoomID);
     }
     else
     {
         SteamNerd.SendMessage("No game in progress.", callback.ChatRoomID);
     }
 }
Esempio n. 26
0
        public void Stop(SteamFriends.ChatMsgCallback callback)
        {
            if (!_inProgress)
            {
                return;
            }

            _inProgress = false;
            SteamNerd.SendMessage("The Letter Game is over!", callback.ChatRoomID);
            _changeTimer.Stop();
        }
Esempio n. 27
0
        public void Recommend(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            if (args.Length > 1)
            {
                return;
            }

            var name        = SteamNerd.ChatterNames[callback.ChatterID];
            var randomAnime = _animes[_rand.Next(_animes.Count)];

            SteamNerd.SendMessage(string.Format("{0}, watch {1}!", name, randomAnime), callback.ChatRoomID);
        }
Esempio n. 28
0
        public void Split(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            var playerID = callback.ChatterID;
            var player   = _players[playerID];
            var name     = SteamNerd.ChatterNames[playerID];

            var handNum = ParseHand(player, args);
            var hand1   = player.Hands[handNum];
            var bet     = player.Bet;

            if (hand1.State != HandState.None || hand1.Cards.Count != 2 || hand1.Cards[0].GetValue() != hand1.Cards[1].GetValue())
            {
                var errMsg = string.Format("{0}, you can't split this hand.", name);
                SteamNerd.SendMessage(errMsg, _chat);
                return;
            }

            if (_moneyModule.GetPlayerMoney(playerID) < player.Bet)
            {
                var errMsg = string.Format("{0}, don't have enough money to split!", name);
                SteamNerd.SendMessage(errMsg, _chat);
                return;
            }

            _moneyModule.AddMoney(playerID, _chat, -player.Bet);

            // Split the hand
            var hand2 = new Hand();

            player.Hands.Add(hand2);

            hand2.Cards.Add(hand1.Cards[1]);
            hand1.Cards.RemoveAt(1);

            // Check if aces
            var aceSplit = hand1.Cards[0].Rank == Deck.Rank.Ace;

            // Deal to both hands
            Deal(hand1);
            Deal(hand2);

            foreach (var hand in new[] { hand1, hand2 })
            {
                if (aceSplit)
                {
                    // Splits aren't considered natural blackjacks
                    hand.State = hand.GetValue() == 21 ? HandState.Stand : HandState.AceSplit;
                }
            }

            PrintPlayersHands(playerID);
            CheckHands();
        }
Esempio n. 29
0
        public void PrintLoans(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            var chatter = callback.ChatterID;
            var name    = SteamNerd.ChatterNames[chatter];

            if (!_money.ContainsKey(chatter))
            {
                AddSteamID(chatter);
            }

            SteamNerd.SendMessage(string.Format("{0} has ${1} in loans", name, _loans[chatter]), callback.ChatRoomID);
        }
Esempio n. 30
0
        public void Payback(SteamFriends.ChatMsgCallback callback, string[] args)
        {
            var chatter = callback.ChatterID;

            if (args.Length < 2)
            {
                SteamNerd.SendMessage(string.Format("Usage: {0}payback [money]", SteamNerd.CommandChar), callback.ChatRoomID);
                return;
            }

            if (!_money.ContainsKey(chatter))
            {
                AddSteamID(chatter);
            }

            var  name  = SteamNerd.ChatterNames[chatter];
            var  money = _money[chatter];
            var  loans = _loans[chatter];
            long amount;

            if (loans == 0)
            {
                SteamNerd.SendMessage(string.Format("{0}, you don't have any loans to payback!", name), callback.ChatRoomID);
                return;
            }

            if (!long.TryParse(args[1], out amount))
            {
                SteamNerd.SendMessage(string.Format("{0}, that's not a number", name), callback.ChatRoomID);
                return;
            }

            if (amount < 0)
            {
                SteamNerd.SendMessage(string.Format("{0}, you can't payback negative money", name), callback.ChatRoomID);
                return;
            }

            if (amount > loans)
            {
                amount = loans;
            }

            if (amount > money)
            {
                SteamNerd.SendMessage(string.Format("{0}, you don't have ${1}!", name, amount), callback.ChatRoomID);
                return;
            }

            AddMoney(chatter, callback.ChatRoomID, -(int)amount);
            AddLoan(chatter, callback.ChatRoomID, -(int)amount);
        }