From cfc3b516aa55d1de402d81b89d0300ed33cff54f Mon Sep 17 00:00:00 2001 From: nukeop Date: Fri, 4 Nov 2016 20:25:00 +0000 Subject: [PATCH] Add ClientChatMsg allowing clients to send and receive group chat messages --- steam/core/msg.py | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/steam/core/msg.py b/steam/core/msg.py index 6e60244..0cbcdcf 100644 --- a/steam/core/msg.py +++ b/steam/core/msg.py @@ -141,6 +141,8 @@ class Msg(object): self.body = ChannelEncryptResult(data) elif msg == EMsg.ClientLogOnResponse: self.body = ClientLogOnResponse(data) + elif msg == EMsg.ClientChatMsg: + self.body = ClientChatMsg(data) else: self.body = None @@ -202,9 +204,6 @@ cmsg_lookup_predefined = { EMsg.ClientFromGC: steammessages_clientserver_2_pb2.CMsgGCClient, EMsg.ServiceMethod: steammessages_clientserver_2_pb2.CMsgClientServiceMethod, EMsg.ServiceMethodResponse: steammessages_clientserver_2_pb2.CMsgClientServiceMethodResponse, - EMsg.ClientGetNumberOfCurrentPlayersDP: steammessages_clientserver_2_pb2.CMsgDPGetNumberOfCurrentPlayers, - EMsg.ClientGetNumberOfCurrentPlayersDPResponse: steammessages_clientserver_2_pb2.CMsgDPGetNumberOfCurrentPlayersResponse, - } def get_cmsg(emsg): @@ -377,7 +376,6 @@ class ChannelEncryptResponse: "crc: %s" % self.crc, ]) - class ChannelEncryptResult: eresult = EResult.Invalid @@ -412,6 +410,37 @@ class ClientLogOnResponse: def __str__(self): return "eresult: %s" % repr(self.eresult) +class ClientChatMsg: + steamIdChatter = 0 + steamIdChatRoom = 0 + ChatMsgType = 0 + ChatMsg = "" + + def __init__(self, data=None): + if data: + self.load(data) + + def serialize(self): + return struct.pack("QQI{}s".format(len(self.ChatMsg)), + self.steamIdChatter, + self.steamIdChatRoom, + self.ChatMsgType, + self.ChatMsg + ) + + def load(self, data): + (self.steamIdChatter, + self.steamIdChatRoom, + self.ChatMsgType, + self.ChatMsg + ) = struct.unpack_from("