Package lacewing :: Package packetloaders :: Module channelmessage
[frames] | no frames]

Source Code for Module lacewing.packetloaders.channelmessage

 1  """ 
 2  Channel messaging. 
 3  """ 
 4   
 5  from struct import unpack_from, pack 
 6   
 7  from lacewing.baseloader import _BaseLoader 
 8  from lacewing.packetloaders.common import _DataTypeMixin, _ChannelMessage 
 9   
10 -class FromChannelMessage(_ChannelMessage):
11 """ 12 This is sent by the server to all clients in a channel 13 from another client. 14 The server can edit the message value if it wants to (or completely 15 block it). 16 """
17
18 -class ToChannelMessage(_BaseLoader, _DataTypeMixin):
19 """ 20 This is sent by the client if it wants to send a message 21 to everyone in a specific channel (that it is a part of). 22 23 @ivar channelId: The recipient channel ID. 24 @ivar subchannel: The subchannel of the message. 25 @ivar value: The message contents. 26 @type value: str or number 27 """ 28 29 channelId = None 30 subchannel = None 31 value = None
32 - def read(self, data):
33 (self.channelId, 34 self.subchannel) = unpack_from('<HB', data) 35 self.readMessage(data, 3)
36
37 - def generate(self):
38 value = self.generateMessage() 39 data = pack('<HB', 40 self.channelId, 41 self.subchannel) 42 return data + value
43 44 __all__ = ['FromChannelMessage', 'ToChannelMessage'] 45