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 ); }
private void ChatMessage(ChatRoomMsg_t message) { if (message.m_ulSteamIDUser == clientUser.GetSteamID()) { return; } IChannel ch = GetSteamChannel(message.m_ulSteamIDChat); if (ch == null) { return; } byte[] msg = new byte[4096]; EChatEntryType type = EChatEntryType.k_EChatEntryTypeInvalid; int len = clientFriends.GetChatRoomEntry(message.m_ulSteamIDChat, (int)message.m_iChatID, ref message.m_ulSteamIDUser, msg, 4096, ref type); len--; if (type != EChatEntryType.k_EChatEntryTypeChatMsg && type != EChatEntryType.k_EChatEntryTypeEmote) { return; } byte[] a = new byte[len]; Array.Copy(msg, a, len); string[] Messs = Encoding.UTF8.GetString(a).Split(new char[] { '\n' }); IClient cl = GetSteamClient(message.m_ulSteamIDUser); if (cl == null) { if (clientList.Clients.ContainsKey(message.m_ulSteamIDUser)) { cl = clientList.Clients[message.m_ulSteamIDUser]; } else { cl = new SteamClient(message.m_ulSteamIDUser); } clients.Add(cl); ch.AddClient(cl); } foreach (string Mess in Messs) { cl.AddMessage(IRCMessage.GetStatic().CreateMessage(cl, cl.UserString, "PRIVMSG", new string[] { "&" + ch.ChannelName, (type == EChatEntryType.k_EChatEntryTypeEmote ? "ACTION " : "") + Mess + (type == EChatEntryType.k_EChatEntryTypeEmote ? "" : "") })); } //ch.SendMessage(Message.CreateMessage(cl, cl.UserString, "PRIVMSG", new string[] { "&" + Server.StripString(clientFriends.GetChatRoomName(message.m_ulSteamIDChat)), "" + (type == EChatEntryType.k_EChatEntryTypeEmote ? "ACTION " : "") + Mess + (type == EChatEntryType.k_EChatEntryTypeEmote ? "" : "") })); }