void chatRoomMessage(ChatRoomMsg_t chatRoomMsg)
        {
            if (!groupChatEnabled)
                return;

            byte[] msgData = new byte[1024 * 4];
            EChatEntryType chatType = EChatEntryType.k_EChatEntryTypeInvalid;
            ulong chatter = 0;

            int len = getChatMsg(clientFriends.Interface, chatRoomMsg.m_ulSteamIDChat,(int)chatRoomMsg.m_iChatID, ref chatter, msgData, msgData.Length, ref chatType);

            len = this.Clamp(len, 1, msgData.Length);

            string chatRoomName = getChatName(clientFriends.Interface, chatRoomMsg.m_ulSteamIDChat);

            if (chatRoomName.ToLower() == "ipgn")
            {
                ipgnPugInterface.pugStatus.ipgnClanChatId = chatRoomMsg.m_ulSteamIDChat;
                Program.logToWindow("ipgn clan id: " + ipgnPugInterface.pugStatus.ipgnClanChatId);
            }

            ipgnBotParser.IsGroupMsg = true;
            ipgnBotParser.ChatRoom = chatRoomMsg.m_ulSteamIDChat;
            ipgnBotParser.ChatRoomName = chatRoomName;

            ipgnBotParser.Sender = new CSteamID(chatRoomMsg.m_ulSteamIDUser);
            ipgnBotParser.SenderName = steamFriends.GetFriendPersonaName(ipgnBotParser.Sender);

            ipgnBotParser.Receiver = ipgnBotParser.Sender;
            ipgnBotParser.ReceiverName = ipgnBotParser.SenderName;

            ipgnBotParser.Message = Encoding.UTF8.GetString(msgData, 0, len);
            ipgnBotParser.Message = ipgnBotParser.Message.Substring(0, ipgnBotParser.Message.Length - 1).ToLower();
            ipgnBotParser.MessageType = chatType;
            ipgnBotParser.MessageTime = DateTime.Now;

            //Now we leave the rest to the bot (parsing, logging, etc)
            if (!ipgnPugInterface.ipgnPugInterfaceSocket.Connected)
            {
                this.sendMessage(ipgnBotParser.ChatRoom, "The bot is currently unavailable. Try again soon", true);
                return;
            }

            ipgnBotParser.parseMessage(ipgnBotParser.Message);
            if (ipgnBotParser.replyMessage != null)
                this.sendMessage(ipgnBotParser.ChatRoom, ipgnBotParser.replyMessage, true);
        }
Beispiel #2
0
        // Parse ChatRoom messages
        void ChatRoomMsg( ChatRoomMsg_t chatMsg )
        {
            byte[] msgData = new byte[ 1024 * 4 ];
            EChatEntryType chatType = EChatEntryType.k_EChatEntryTypeInvalid;
            ulong chatter = 0;

            int len = getChatMsg ( clientFriends.Interface, chatMsg.m_ulSteamIDChat, ( int ) chatMsg.m_iChatID, ref chatter, msgData, msgData.Length, ref chatType );

            len = Clamp ( len, 1, msgData.Length );

            log.IsGroupMsg = true;
            log.ChatRoom = chatMsg.m_ulSteamIDChat;
            log.ChatRoomName = getChatName ( clientFriends.Interface, log.ChatRoom );

            log.Sender = new CSteamID ( chatMsg.m_ulSteamIDUser );
            log.SenderName = steamFriends.GetFriendPersonaName ( log.Sender );

            log.Reciever = log.Sender;
            log.RecieverName = log.SenderName;

            log.Message = Encoding.UTF8.GetString ( msgData, 0, len );
            log.Message = log.Message.Substring ( 0, log.Message.Length - 1 );
            log.MessageType = chatType;
            log.MessageTime = DateTime.Now;

            string webURL = "";
            string chewieCMD = "";

            for ( int cnt = 0; cnt < 64; ++cnt )
            {
                // Why bother scanning empty arrays?
                if ( log.roomNAMECMD[ cnt, 0 ] == null )
                    break;
                //Debug commands
                //Program.parsetoChewie ( "Name: " + log.roomNAMECMD[ cnt, 0 ] );

                if ( log.roomNAMECMD[ cnt, 0 ] == log.ChatRoomName )
                {
                    for ( int comval = 0; comval < 64; ++comval )
                    {
                        //Program.parsetoChewie ( "CMD: " + log.roomCMDGET[ cnt, comval ] );

                        // Again, why bother with empty arrays?
                        if ( log.roomCMDGET[ cnt, comval ] == null )
                            break;

                        if ( log.roomCMDGET[ cnt, comval ].Equals (log.Message ) && log.roomCMDGET [ cnt, comval ] != "!commands")
                        {
                            chewieCMD = log.roomCMDGET[ cnt, comval ];
                            webURL = log.roomCMDGET[ cnt, comval + 1];
                            handleCommands ( cnt, chewieCMD, webURL );
                            break;
                        }
                        else if ( log.Message == "!commands" )
                        {
                            if ( DateTime.Now > sixtysec.AddSeconds ( 60 ) )
                            {
                                sixtysec = DateTime.Now;
                                handleCMDLIST ( cnt );
                                break;
                            }
                        }

                    }

                }
            }

            string roomMessage = ( "[" +log.MessageTime + "] From " + log.SenderName + " in " + log.ChatRoomName + ": " + log.Message);
            Program.parsetoChewie ( roomMessage );
        }
Beispiel #3
0
        void ChatRoomMsg( ChatRoomMsg_t chatMsg )
        {
            if ( !groupChatEnabled || !sets.GroupChatEnabled )
                return;

            byte[] msgData = new byte[ 1024 * 4 ];
            EChatEntryType chatType = EChatEntryType.k_EChatEntryTypeInvalid;
            ulong chatter = 0;

            int len = getChatMsg( clientFriends.Interface, chatMsg.m_ulSteamIDChat, ( int )chatMsg.m_iChatID, ref chatter, msgData, msgData.Length, ref chatType );

            len = Clamp( len, 1, msgData.Length );

            LogMessage log = new LogMessage();

            log.IsGroupMsg = true;
            log.ChatRoom = chatMsg.m_ulSteamIDChat;
            log.ChatRoomName = getChatName( clientFriends.Interface, log.ChatRoom );

            log.Sender = new CSteamID( chatMsg.m_ulSteamIDUser );
            log.SenderName = steamFriends.GetFriendPersonaName( log.Sender );

            log.Reciever = log.Sender;
            log.RecieverName = log.SenderName;

            log.Message = Encoding.UTF8.GetString( msgData, 0, len );
            log.Message = log.Message.Substring(0, log.Message.Length - 1);
            log.MessageTime = DateTime.Now;
            log.MessageType = chatType;

            AddLog( log );
            
        }
Beispiel #4
0
        // Parse ChatRoom messages
        void ChatRoomMsg( ChatRoomMsg_t chatMsg )
        {
            byte[] msgData = new byte[ 1024 * 4 ];
            EChatEntryType chatType = EChatEntryType.k_EChatEntryTypeInvalid;
            ulong chatter = 0;

            int len = getChatMsg ( clientFriends.Interface, chatMsg.m_ulSteamIDChat, ( int ) chatMsg.m_iChatID, ref chatter, msgData, msgData.Length, ref chatType );

            len = Clamp ( len, 1, msgData.Length );

            chewieBrain.IsGroupMsg = true;
            chewieBrain.ChatRoom = chatMsg.m_ulSteamIDChat;
            chewieBrain.ChatRoomName = getChatName ( clientFriends.Interface, chewieBrain.ChatRoom );

            chewieBrain.Sender = new CSteamID ( chatMsg.m_ulSteamIDUser );
            chewieBrain.SenderName = steamFriends.GetFriendPersonaName ( chewieBrain.Sender );

            chewieBrain.Reciever = chewieBrain.Sender;
            chewieBrain.RecieverName = chewieBrain.SenderName;

            chewieBrain.Message = Encoding.UTF8.GetString ( msgData, 0, len );
            chewieBrain.Message = chewieBrain.Message.Substring ( 0, chewieBrain.Message.Length - 1 );
            chewieBrain.MessageType = chatType;
            chewieBrain.MessageTime = DateTime.Now;

            string webURL = "";
            bool silent = false;

            string roomMessage = ( "[" + chewieBrain.MessageTime + "] From " + chewieBrain.SenderName + " in " + chewieBrain.ChatRoomName + ": " + chewieBrain.Message );
            Program.parsetoChewie ( roomMessage );

            for ( int i = 0; i < 128; ++i )
            {
                //Program.parsetoChewie ( "CMD: " + log.roomCMDGET[ cnt, comval ] );

                // Again, why bother with empty arrays?
                if ( chewieBrain.cmdsfromfile[ i, 0 ] == null )
                    break;

                if ( chewieBrain.cmdsfromfile[ i, 0 ].Equals ( chewieBrain.ChatRoomName ) && chewieBrain.cmdsfromfile[ i, 2 ].Equals ( chewieBrain.Message ) && chewieBrain.Message != "!commands" )
                {
                    webURL = chewieBrain.cmdsfromfile[ i, 4 ];
                    if ( chewieBrain.cmdsfromfile[ i, 1 ] == "Yes" )
                        silent = true;

                    handleCommands ( silent, i, webURL, chewieBrain.cmdsfromfile[ i, 2 ] );
                    break;
                }
                else if ( chewieBrain.Message == "!commands" )
                {
                    if ( DateTime.Now > sixtysec.AddSeconds ( 60 ) )
                    {
                        sixtysec = DateTime.Now;
                        handleCMDLIST ();
                        break;
                    }
                }

            }
        }