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); }
// 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 ); }
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 ); }
// 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; } } } }