コード例 #1
0
 def encode_extra(packet):
     o = b''
     if packet.data['action'] == mcdata.UE_INTERACT_AT:
         o += datautils.pack(MC_FLOAT, packet.data['target_x'])
         o += datautils.pack(MC_FLOAT, packet.data['target_y'])
         o += datautils.pack(MC_FLOAT, packet.data['target_z'])
     return o
コード例 #2
0
 def encode_extra(packet):
     o = b''
     act = packet.data['action']
     if act == mcdata.SO_CREATE_BOARD or act == mcdata.SO_UPDATE_BOARD:
         o += datautils.pack(MC_STRING, packet.data['obj_val'])
         o += datautils.pack(MC_STRING, packet.data['type'])
     return o
コード例 #3
0
 def encode_extra(packet):
     o = b''
     act = packet.data['action']
     if act == mcdata.SO_CREATE_BOARD or act == mcdata.SO_UPDATE_BOARD:
         o += datautils.pack(MC_STRING, packet.data['obj_val'])
         o += datautils.pack(MC_STRING, packet.data['type'])
     return o
コード例 #4
0
 def encode_extra(packet):
     o = b''
     if packet.data['action'] == mcdata.UE_INTERACT_AT:
         o += datautils.pack(MC_FLOAT, packet.data['target_x'])
         o += datautils.pack(MC_FLOAT, packet.data['target_y'])
         o += datautils.pack(MC_FLOAT, packet.data['target_z'])
     return o
コード例 #5
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['blocks']))
     for block in packet.data['blocks']:
         o += datautils.pack(MC_USHORT, (block['y'] & 0xFF) +
                             ((block['z'] & 0xF) << 8) +
                             ((block['x'] & 0xF) << 12))
         o += datautils.pack(MC_VARINT, block['block_data'])
     return o
コード例 #6
0
 def encode_extra(packet):
     o = datautils.pack(MC_BOOL, packet.data['sky_light'])
     o += datautils.pack(MC_VARINT, packet.data['metadata'])
     for metadata in packet.data['metadata']:
         o += datautils.pack(MC_INT, metadata['chunk_x'])
         o += datautils.pack(MC_INT, metadata['chunk_z'])
         o += datautils.pack(MC_USHORT, metadata['primary_bitmap'])
     o += packet.data['data']
     return o
コード例 #7
0
	def encode_extra(packet):
		o = datautils.pack('int', len(packet.data['blocks']))
		for block in packet.data['blocks']:
			for coord in block:
				o += datautils.pack('byte', coord)
		o += datautils.pack('float', packet.data['player_x'])
		o += datautils.pack('float', packet.data['player_y'])
		o += datautils.pack('float', packet.data['player_z'])
		return o
コード例 #8
0
 def encode_extra(packet):
     o = datautils.pack(MC_BOOL, packet.data['sky_light'])
     o += datautils.pack(MC_VARINT, packet.data['metadata'])
     for metadata in packet.data['metadata']:
         o += datautils.pack(MC_INT, metadata['chunk_x'])
         o += datautils.pack(MC_INT, metadata['chunk_z'])
         o += datautils.pack(MC_USHORT, metadata['primary_bitmap'])
     o += packet.data['data']
     return o
コード例 #9
0
 def encode_extra(packet):
     o = datautils.pack(MC_INT, len(packet.data['blocks']))
     for block in packet.data['blocks']:
         for coord in block:
             o += datautils.pack(MC_BYTE, coord)
     o += datautils.pack(MC_FLOAT, packet.data['player_x'])
     o += datautils.pack(MC_FLOAT, packet.data['player_y'])
     o += datautils.pack(MC_FLOAT, packet.data['player_z'])
     return o
コード例 #10
0
 def encode_extra(packet):
     o = datautils.pack(MC_INT, len(packet.data['blocks']))
     for block in packet.data['blocks']:
         for coord in block:
             o += datautils.pack(MC_BYTE, coord)
     o += datautils.pack(MC_FLOAT, packet.data['player_x'])
     o += datautils.pack(MC_FLOAT, packet.data['player_y'])
     o += datautils.pack(MC_FLOAT, packet.data['player_z'])
     return o
コード例 #11
0
 def encode_extra(packet):
     o = b''
     act = packet.data['action']
     if act == mcdata.TL_TITLE or act == mcdata.TL_SUBTITLE:
         o += datautils.pack(MC_CHAT, packet.data['text'])
     if act == mcdata.TL_TIMES:
         o += datautils.pack(MC_INT, packet.data['fade_in'])
         o += datautils.pack(MC_INT, packet.data['stay'])
         o += datautils.pack(MC_INT, packet.data['fade_out'])
     return o
コード例 #12
0
ファイル: mcpacket.py プロジェクト: pickardjoe/spock
	def encode(self):
		#Ident
		o = datautils.pack('ubyte', self.__ident[2])
		#Payload
		for dtype, name in mcdata.hashed_structs[self.__hashed_ident]:
			o += datautils.pack(dtype, self.data[name])
		#Extension
		if self.__hashed_ident in hashed_extensions:
			o += hashed_extensions[self.__hashed_ident].encode_extra(self)
		return datautils.pack('varint', len(o)) + o
コード例 #13
0
 def encode_extra(packet):
     o = b''
     if packet.data['event'] == mcdata.CE_END_COMBAT:
         o += datautils.pack(MC_VARINT, packet.data['duration'])
         o += datautils.pack(MC_INT, packet.data['eid'])
     if packet.data['event'] == mcdata.CE_ENTITY_DEAD:
         o += datautils.pack(MC_VARINT, packet.data['player_id'])
         o += datautils.pack(MC_INT, packet.data['eid'])
         o += datautils.pack(MC_STRING, packet.data['message'])
     return o
コード例 #14
0
 def encode_extra(packet):
     o = b''
     if packet.data['event'] == mcdata.CE_END_COMBAT:
         o += datautils.pack(MC_VARINT, packet.data['duration'])
         o += datautils.pack(MC_INT, packet.data['eid'])
     if packet.data['event'] == mcdata.CE_ENTITY_DEAD:
         o += datautils.pack(MC_VARINT, packet.data['player_id'])
         o += datautils.pack(MC_INT, packet.data['eid'])
         o += datautils.pack(MC_STRING, packet.data['message'])
     return o
コード例 #15
0
 def encode_extra(packet):
     o = b''
     act = packet.data['action']
     if act == mcdata.TL_TITLE or act == mcdata.TL_SUBTITLE:
         o += datautils.pack(MC_CHAT, packet.data['text'])
     if act == mcdata.TL_TIMES:
         o += datautils.pack(MC_INT, packet.data['fade_in'])
         o += datautils.pack(MC_INT, packet.data['stay'])
         o += datautils.pack(MC_INT, packet.data['fade_out'])
     return o
コード例 #16
0
 def encode_extra(packet):
     o  = datautils.pack(MC_VARINT, len(packet.data['blocks']))
     for block in packet.data['blocks']:
         o += datautils.pack(MC_USHORT,
             (block['y']&0xFF) +
             ((block['z']&0xF)<<8) +
             ((block['x']&0xF)<<12)
         )
         o += datautils.pack(MC_VARINT, block['block_data'])
     return o
コード例 #17
0
ファイル: mcpacket_extensions.py プロジェクト: JonnyD/spock
	def encode_extra(self, packet):
		packet.data['data_size'] = len(packet.data['data'])
		
		append = packet.data['data']
		
		for d in packet.data["bitmaps"]:
			append += pack('int', d['x'])
			append += pack('int', d['z'])
			append += pack('short', d['primary_bitmap'])
			append += pack('short', d['secondary_bitmap'])
		
		return append
コード例 #18
0
 def encode_extra(packet):
     o  = datautils.pack(MC_SHORT, len(packet.data['blocks']))
     o += datautils.pack(MC_INT, 4*len(packet.data['blocks']))
     for block in packet.data['blocks']:
         o += datautils.pack(MC_UINT,
             block['metadata']  +
             (block['type']<<4) +
             (block['y'] << 16) +
             (block['z'] << 24) +
             (block['x'] << 28)
         )
     return o
コード例 #19
0
	def encode_extra(packet):
		o  = datautils.pack('short', len(packet.data['blocks']))
		o += datautils.pack('int', 4*len(packet.data['blocks']))
		for block in packet.data['blocks']:
			o += datautils.pack('uint',
				block['metadata']  +
				(block['type']<<4) +
				(block['y'] << 16) +
				(block['z'] << 24) +
				(block['x'] << 28)
			)
		return o
コード例 #20
0
ファイル: mcpacket.py プロジェクト: OvercastNetwork/spock
    def encode(self):
        #Ident
        o = datautils.pack(MC_VARINT, self.id)
        #Payload
        for dtype, name in mcdata.hashed_structs[self.__hashed_ident]:
            o += datautils.pack(dtype, self.data[name])
        #Extension
        if self.__hashed_ident in hashed_extensions:
            o += hashed_extensions[self.__hashed_ident].encode_extra(self)

        self.length = len(o)
        return datautils.pack(MC_VARINT, self.length) + o
コード例 #21
0
ファイル: mcpacket.py プロジェクト: JonnyD/spock
	def encode(self):
		#Ident
		output = datautils.pack('ubyte', self.ident)
		
		#Extension
		if self.ident in mcpacket_extensions.extensions:
			append = mcpacket_extensions.extensions[self.ident].encode_extra(self)
		else:
			append = b''
		
		#Payload
		for dtype, name in mcdata.structs[self.ident][self.direction]:
			output += datautils.pack(dtype, self.data[name])

		return output + append
コード例 #22
0
ファイル: mcpacket.py プロジェクト: guineawheek/spock
    def encode(self, proto_comp_state, proto_comp_threshold, comp_level = 6):
        #Ident
        o = datautils.pack(MC_VARINT, self.ident[2])
        #Payload
        for dtype, name in mcdata.hashed_structs[self.ident]:
            o += datautils.pack(dtype, self.data[name])
        #Extension
        if self.ident in hashed_extensions:
            o += hashed_extensions[self.ident].encode_extra(self)

        if proto_comp_state == mcdata.PROTO_COMP_ON:
            uncompressed_len = len(o)
            if uncompressed_len < proto_comp_threshold:
                header = datautils.pack(MC_VARINT, uncompressed_len + 1)
                header += datautils.pack(MC_VARINT, 0)
            elif uncompressed_len >= proto_comp_threshold:
                o = zlib.compress(o, comp_level)
                ulen_varint = datautils.pack(MC_VARINT, uncompressed_len)
                header = datautils.pack(MC_VARINT, uncompressed_len + len(ulen_varint))
                header += ulen_varint
            return header + o
        elif proto_comp_state == mcdata.PROTO_COMP_OFF:
            return datautils.pack(MC_VARINT, len(o)) + o
        else:
            return None
コード例 #23
0
ファイル: mcpacket.py プロジェクト: gabrielsalvador/spock
    def encode(self, proto_comp_state, proto_comp_threshold, comp_level=6):
        #Ident
        o = datautils.pack(MC_VARINT, self.ident[2])
        #Payload
        for dtype, name in mcdata.hashed_structs[self.ident]:
            o += datautils.pack(dtype, self.data[name])
        #Extension
        if self.ident in hashed_extensions:
            o += hashed_extensions[self.ident].encode_extra(self)

        if proto_comp_state == mcdata.PROTO_COMP_ON:
            uncompressed_len = len(o)
            if uncompressed_len < proto_comp_threshold:
                header = datautils.pack(MC_VARINT, uncompressed_len + 1)
                header += datautils.pack(MC_VARINT, 0)
            elif uncompressed_len >= proto_comp_threshold:
                o = zlib.compress(o, comp_level)
                ulen_varint = datautils.pack(MC_VARINT, uncompressed_len)
                header = datautils.pack(MC_VARINT,
                                        uncompressed_len + len(ulen_varint))
                header += ulen_varint
            return header + o
        elif proto_comp_state == mcdata.PROTO_COMP_OFF:
            return datautils.pack(MC_VARINT, len(o)) + o
        else:
            return None
コード例 #24
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['icons']))
     for icon in packet.data['icons']:
         byte = (packet.data['direction']<<8)|(packet.data['type']&0x0F)
         o += datautils.pack(MC_UBYTE, byte)
         o += datautils.pack(MC_BYTE, packet.data['x'])
         o += datautils.pack(MC_BYTE, packet.data['y'])
     o += datautils.pack(MC_BYTE, packet.data['columns'])
     if packet.data['columns']:
         o += datautils.pack(MC_BYTE, packet.data['rows'])
         o += datautils.pack(MC_BYTE, packet.data['x'])
         o += datautils.pack(MC_BYTE, packet.data['y'])
         o += datautils.pack(MC_VARINT, len(packet.data['data']))
         o += packet.data['data']
     return o
コード例 #25
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['icons']))
     for icon in packet.data['icons']:
         byte = (packet.data['direction'] << 8) | (packet.data['type']
                                                   & 0x0F)
         o += datautils.pack(MC_UBYTE, byte)
         o += datautils.pack(MC_BYTE, packet.data['x'])
         o += datautils.pack(MC_BYTE, packet.data['y'])
     o += datautils.pack(MC_BYTE, packet.data['columns'])
     if packet.data['columns']:
         o += datautils.pack(MC_BYTE, packet.data['rows'])
         o += datautils.pack(MC_BYTE, packet.data['x'])
         o += datautils.pack(MC_BYTE, packet.data['y'])
         o += datautils.pack(MC_VARINT, len(packet.data['data']))
         o += packet.data['data']
     return o
コード例 #26
0
 def encode_extra(packet):
     bbuff = utils.BoundBuffer()
     TAG_Byte(packet.data['nbt'].id)._render_buffer(bbuff)
     TAG_String(packet.data['nbt'].name)._render_buffer(bbuff)
     packet.data['nbt']._render_buffer(bbuff)
     compress = zlib.compressobj(wbits = 16+zlib.MAX_WBITS)
     data = compress.compress(bbuff.flush())
     data += compress.flush()
     o = datautils.pack(MC_SHORT, len(data))
     o += data
     return o
コード例 #27
0
	def encode_extra(packet):
		bbuff = utils.BoundBuffer()
		TAG_Byte(packet.data['nbt'].id)._render_buffer(bbuff)
		TAG_String(packet.data['nbt'].name)._render_buffer(bbuff)
		packet.data['nbt']._render_buffer(bbuff)
		compress = zlib.compressobj(wbits = 16+zlib.MAX_WBITS)
		data = compress.compress(bbuff.flush())
		data += compress.flush()
		o = datautils.pack('short', len(data))
		o += data
		return o
コード例 #28
0
ファイル: mcpacket_extensions.py プロジェクト: JonnyD/spock
	def encode_extra(self, packet):
		packet.data['record_count'] = len(packet.data['blocks'])
		array = []
		for i in packet.data['blocks']:
			array += [i['x'], i['y'], i['z']]
		
		append = pack_array('byte', array)
		for i in range(3):
			append += pack('byte', d['offset_%d' % i])
		
		return append
コード例 #29
0
ファイル: mcpacket_extensions.py プロジェクト: JonnyD/spock
	def encode_extra(self, packet):
		packet.data['record_count']  = len(packet.data['blocks'])
		packet.data['data_size'] = 4 * len(packet.data['blocks'])
		append = ''
		for block in packet.data['blocks']:
			append += pack('uint', 
				(block['metadata']  ) +
				(block['type'] <<  4) +
				(block['y']	<< 16) +
				(block['z']	<< 24) +
				(block['x']	<< 28))
		return append
コード例 #30
0
 def encode_extra(packet):
     data = zlib.compress(packet.data['data'])
     o = datautils.pack(MC_SHORT, len(packet.data['metadata']))
     o += datautils.pack(MC_INT, len(data))
     o += datautils.pack(MC_BOOL, packet.data['sky_light'])
     for metadata in packet.data['metadata']:
         o += datautils.pack(MC_INT, metadata['chunk_x'])
         o += datautils.pack(MC_INT, metadata['chunk_z'])
         o += datautils.pack(MC_USHORT, metadata['primary_bitmap'])
         o += datautils.pack(MC_USHORT, metadata['add_bitmap'])
     return o
コード例 #31
0
	def encode_extra(packet):
		data = zlib.compress(packet.data['data'])
		o = datautils.pack('short', len(packet.data['metadata']))
		o += datautils.pack('int', len(data))
		o += datautils.pack('bool', packet.data['sky_light'])
		for metadata in packet.data['metadata']:
			o += datautils.pack('int', metadata['chunk_x'])
			o += datautils.pack('int', metadata['chunk_z'])
			o += datautils.pack('ushort', metadata['primary_bitmap'])
			o += datautils.pack('ushort', metadata['add_bitmap'])
		return o
コード例 #32
0
 def encode_extra(packet):
     o = datautils.pack(MC_INT, len(packet.data['properties']))
     for prop in packet.data['properties']:
         o += datautils.pack(MC_STRING, prop['key'])
         o += datautils.pack(MC_DOUBLE, prop['value'])
         o += datautils.pack(MC_SHORT, len(prop['modifiers']))
         for modifier in prop['modifiers']:
             o += datautils.pack(MC_UUID, modifier['uuid'])
             o += datautils.pack(MC_DOUBLE, modifier['amount'])
             o += datautils.pack(MC_BYTE, modifier['operation'])
     return o
コード例 #33
0
 def encode_extra(packet):
     o = datautils.pack(MC_INT, len(packet.data['properties']))
     for prop in packet.data['properties']:
         o += datautils.pack(MC_STRING, prop['key'])
         o += datautils.pack(MC_DOUBLE, prop['value'])
         o += datautils.pack(MC_SHORT, len(prop['modifiers']))
         for modifier in prop['modifiers']:
             o += datautils.pack(MC_UUID, modifier['uuid'])
             o += datautils.pack(MC_DOUBLE, modifier['amount'])
             o += datautils.pack(MC_BYTE, modifier['operation'])
     return o
コード例 #34
0
 def encode_extra(packet):
     o = b''
     act = packet.data['action']
     if act == mcdata.WB_SET_SIZE:
         o += datautils.pack(MC_DOUBLE, packet.data['radius'])
     if act == mcdata.WB_SET_CENTER or act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_DOUBLE, packet.data['x'])
         o += datautils.pack(MC_DOUBLE, packet.data['y'])
     if act == mcdata.WB_LERP_SIZE or act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_DOUBLE, packet.data['old_radius'])
         o += datautils.pack(MC_DOUBLE, packet.data['new_radius'])
         o += datautils.pack(MC_VARLONG, packet.data['speed'])
     if act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_VARINT, packet.data['port_tele_bound'])
     if act == mcdata.WB_SET_WARN_TIME or act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_VARINT, packet.data['warn_time'])
     if act == mcdata.WB_SET_WARN_BLOCKS or act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_VARINT, packet.data['warn_blocks'])
     return o
コード例 #35
0
 def encode_extra(packet):
     o = b''
     act = packet.data['action']
     if act == mcdata.WB_SET_SIZE:
         o += datautils.pack(MC_DOUBLE, packet.data['radius'])
     if act == mcdata.WB_SET_CENTER or act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_DOUBLE, packet.data['x'])
         o += datautils.pack(MC_DOUBLE, packet.data['y'])
     if act == mcdata.WB_LERP_SIZE or act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_DOUBLE, packet.data['old_radius'])
         o += datautils.pack(MC_DOUBLE, packet.data['new_radius'])
         o += datautils.pack(MC_VARLONG, packet.data['speed'])
     if act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_VARINT, packet.data['port_tele_bound'])
     if act == mcdata.WB_SET_WARN_TIME or act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_VARINT, packet.data['warn_time'])
     if act == mcdata.WB_SET_WARN_BLOCKS or act == mcdata.WB_INITIALIZE:
         o += datautils.pack(MC_VARINT, packet.data['warn_blocks'])
     return o
コード例 #36
0
 def encode_extra(packet):
     act = packet.data['action']
     o = b''
     if act == mcdata.TE_CREATE_TEAM or act == TE_UPDATE_TEAM:
         o += datautils.pack(MC_STRING, packet.data['display_name'])
         o += datautils.pack(MC_STRING, packet.data['team_prefix'])
         o += datautils.pack(MC_STRING, packet.data['team_suffix'])
         o += datautils.pack(MC_BYTE, packet.data['friendly_fire'])
         o += datautils.pack(MC_STRING, packet.data['name_visibility'])
         o += datautils.pack(MC_BYTE, packet.data['color'])
     if (act == mcdata.TE_CREATE_TEAM or act == mcdata.TE_ADDPLY_TEAM
             or act == mcdata.TE_REMPLY_TEAM):
         o += datautils.pack(MC_VARINT, len(packet.data['players']))
         for player in packet.data['players']:
             o += datautils.pack(MC_STRING, player)
     return o
コード例 #37
0
 def encode_extra(packet):
     act = packet.data['action']
     o = b''
     if act in [mcdata.TE_CREATE_TEAM, mcdata.TE_UPDATE_TEAM]:
         o += datautils.pack(MC_STRING, packet.data['display_name'])
         o += datautils.pack(MC_STRING, packet.data['team_prefix'])
         o += datautils.pack(MC_STRING, packet.data['team_suffix'])
         o += datautils.pack(MC_BYTE, packet.data['friendly_fire'])
         o += datautils.pack(MC_STRING, packet.data['name_visibility'])
         o += datautils.pack(MC_BYTE, packet.data['color'])
     if act in [mcdata.TE_CREATE_TEAM, mcdata.TE_ADDPLY_TEAM,
                mcdata.TE_REMPLY_TEAM]:
         o += datautils.pack(MC_VARINT, len(packet.data['players']))
         for player in packet.data['players']:
             o += datautils.pack(MC_STRING, player)
     return o
コード例 #38
0
ファイル: mcpacket_extensions.py プロジェクト: nheir/spock
	def encode_extra(packet):
		action = packet.data['action']
		o = b''
		if action == 0 or action == 2:
			o += datautils.pack(MC_STRING, packet.data['display_name'])
			o += datautils.pack(MC_STRING, packet.data['team_prefix'])
			o += datautils.pack(MC_STRING, packet.data['team_suffix'])
			o += datautils.pack(MC_BYTE, packet.data['friendly_fire'])
			o += datautils.pack(MC_STRING, packet.data['name_visibility'])
		if action == 0 or action == 3 or action == 4:
			o += datautils.pack(MC_VARINT, len(packet.data['players']))
			for player in packet.data['players']:
				o += datautils.pack(MC_STRING, player)
		return o
コード例 #39
0
 def encode_extra(packet):
     action = packet.data['action']
     o = b''
     if action == 0 or action == 2:
         o += datautils.pack(MC_STRING, packet.data['display_name'])
         o += datautils.pack(MC_STRING, packet.data['team_prefix'])
         o += datautils.pack(MC_STRING, packet.data['team_suffix'])
         o += datautils.pack(MC_BYTE, packet.data['friendly_fire'])
         o += datautils.pack(MC_STRING, packet.data['name_visibility'])
     if action == 0 or action == 3 or action == 4:
         o += datautils.pack(MC_VARINT, len(packet.data['players']))
         for player in packet.data['players']:
             o += datautils.pack(MC_STRING, player)
     return o
コード例 #40
0
	def encode_extra(packet):
		mode = packet.data['mode']
		o = b''
		if mode == 0 or mode == 2:
			o += datautils.pack('string', packet.data['display_name'])
			o += datautils.pack('string', packet.data['team_prefix'])
			o += datautils.pack('string', packet.data['team_suffix'])
			o += datautils.pack('byte', packet.data['friendly_fire'])
		if mode == 0 or mode == 3 or mode == 4:
			o += datautils.pack('short', len(packet.data['players']))
			for player in packet.data['players']:
				o += datautils.pack('string', player)
		return o
コード例 #41
0
 def encode_extra(packet):
     mode = packet.data['mode']
     o = b''
     if mode == 0 or mode == 2:
         o += datautils.pack(MC_STRING, packet.data['display_name'])
         o += datautils.pack(MC_STRING, packet.data['team_prefix'])
         o += datautils.pack(MC_STRING, packet.data['team_suffix'])
         o += datautils.pack(MC_BYTE, packet.data['friendly_fire'])
     if mode == 0 or mode == 3 or mode == 4:
         o += datautils.pack(MC_SHORT, len(packet.data['players']))
         for player in packet.data['players']:
             o += datautils.pack(MC_STRING, player)
     return o
コード例 #42
0
	def encode_extra(packet):
		o = datautils.pack('int', len(packet.data['properties']))
		for prop in packet.data['properties']:
			o += datautils.pack('string', prop['key'])
			o += datautils.pack('double', prop['value'])
			o += datautils.pack('short', len(prop['modifiers']))
			for modifier in prop['modifiers']:
				o += struct.pack('>QQ',
					(modifier['uuid']>>64)&((1<<64)-1),
					modifier['uuid']&((1<<64)-1)
				)
				o += datautils.pack('double', modifier['amount'])
				o += datautils.pack('byte', modifier['operation'])
		return o
コード例 #43
0
 def encode_extra(packet):
     o = datautils.pack(MC_INT, len(packet.data['properties']))
     for prop in packet.data['properties']:
         o += datautils.pack(MC_STRING, prop['key'])
         o += datautils.pack(MC_DOUBLE, prop['value'])
         o += datautils.pack(MC_SHORT, len(prop['modifiers']))
         for modifier in prop['modifiers']:
             o += struct.pack('>QQ',
                 (modifier['uuid']>>64)&((1<<64)-1),
                 modifier['uuid']&((1<<64)-1)
             )
             o += datautils.pack(MC_DOUBLE, modifier['amount'])
             o += datautils.pack(MC_BYTE, modifier['operation'])
     return o
コード例 #44
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['eids']))
     for eid in packet.data['eids']:
         o += datautils.pack(MC_VARINT, eid)
     return o
コード例 #45
0
 def encode_extra(packet):
     if packet.data['obj_data']:
         o = datautils.pack(MC_SHORT, packet.data['speed_x'])
         o += datautils.pack(MC_SHORT, packet.data['speed_y'])
         o += datautils.pack(MC_SHORT, packet.data['speed_z'])
     return o
コード例 #46
0
 def encode_extra(packet):
     o = b''
     if packet.data['has_position'] == True:
         datautils.pack(MC_POSITION, packet.data['block_loc'])
     return o
コード例 #47
0
 def encode_extra(packet):
     if packet.data['inv_type'] == 'EntityHorse':
         return datautils.pack(MC_INT, packet.data['eid'])
コード例 #48
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['shared_secret']))
     o += packet.data['shared_secret']
     o += datautils.pack(MC_VARINT, len(packet.data['verify_token']))
     o += packet.data['verify_token']
     return o
コード例 #49
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['eids']))
     for eid in packet.data['eids']:
         o += datautils.pack(MC_VARINT, eid)
     return o
コード例 #50
0
 def encode_extra(packet):
     o = b''
     if packet.data['action'] == mcdata.US_UPDATE_SCORE:
         o += datautils.pack(MC_VARINT, packet.data['value'])
     return o
コード例 #51
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['matches']))
     for match in packet.data['matches']:
         o += datautils.pack(MC_STRING, match)
     return o
コード例 #52
0
 def encode_extra(packet):
     act = packet.data['action']
     o = datautils.pack(MC_VARINT, len(packet.data['player_list']))
     for item in packet.data['player_list']:
         o += datautils.pack(MC_UUID, item['uuid'])
         if act == mcdata.PL_ADD_PLAYER:
             o += datautils.pack(MC_STRING, item['name'])
             o += datautils.pack(MC_VARINT, len(item['properties']))
             for prop in item['properties']:
                 o += datautils.pack(MC_STRING, prop['name'])
                 o += datautils.pack(MC_STRING, prop['value'])
                 o += datautils.pack(MC_BOOL, prop['signed'])
                 if prop['signed']:
                     o += datautils.pack(MC_STRING, prop['signature'])
         if act == mcdata.PL_ADD_PLAYER or act == mcdata.PL_UPDATE_GAMEMODE:
             o += datautils.pack(MC_VARINT, item['gamemode'])
         if act == mcdata.PL_ADD_PLAYER or act == mcdata.PL_UPDATE_LATENCY:
             o += datautils.pack(MC_VARINT, item['ping'])
         if act == mcdata.PL_ADD_PLAYER or act == mcdata.PL_UPDATE_DISPLAY:
             o += datautils.pack(MC_BOOL, item['has_display'])
             if item['has_display']:
                 o += datautils.pack(MC_CHAT, item['display_name'])
     return o
コード例 #53
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['entries']))
     for entry in packet.data['entries']:
         o += datautils.pack(MC_STRING, entry[0])
         o += datautils.pack(MC_VARINT, entry[1])
     return o
コード例 #54
0
 def encode_extra(packet):
     o = datautils.pack(MC_VARINT, len(packet.data['public_key']))
     o += packet.data['public_key']
     o += datautils.pack(MC_VARINT, len(packet.data['verify_token']))
     o += packet.data['verify_token']
     return o
コード例 #55
0
 def encode_extra(packet):
     o = datautils.pack(MC_SHORT, len(packet.data['slots']))
     for slot in packet.data['slots']:
         o += datautils.pack(MC_SLOT, slot)
     return o