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

Source Code for Module lacewing.packetloaders.directmessage

 1  """ 
 2  Direct messages from client to server and vice versa 
 3  """ 
 4   
 5  from struct import unpack_from, pack 
 6   
 7  from lacewing.baseloader import _BaseLoader 
 8  from lacewing.packetloaders.common import _DataTypeMixin 
 9   
10 -class _DirectCommon(_BaseLoader, _DataTypeMixin):
11 """ 12 @ivar value: The message to send. 13 @type value: number or str 14 @ivar subchannel: The subchannel of the message in the range 0-127. 15 """ 16 subchannel = None 17 value = None 18
19 - def read(self, data):
20 self.subchannel, = unpack_from('<B', data) 21 self.readMessage(data, 1)
22
23 - def generate(self):
24 data = pack('<B', self.subchannel) 25 return data + self.generateMessage()
26
27 -class ClientMessage(_DirectCommon):
28 """ 29 This is sent from the client as a direct message to the server. 30 """
31
32 -class ServerMessage(_DirectCommon):
33 """ 34 This is sent from the server as a direct message to the client. 35 """
36 37 __all__ = ['ClientMessage', 'ServerMessage'] 38