def encode_extra(packet): o = b'' act = packet.data['action'] if act in [const.SO_CREATE_BOARD, const.SO_UPDATE_BOARD]: o += datautils.pack(MC_STRING, packet.data['obj_val']) o += datautils.pack(MC_STRING, packet.data['type']) return o
def encode_extra(packet): o = b'' if packet.data['action'] == const.INTERACT_ENTITY_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
def encode_extra(packet): o = b"" act = packet.data["action"] if act in [mcdata.SO_CREATE_BOARD, mcdata.SO_UPDATE_BOARD]: o += datautils.pack(MC_STRING, packet.data["obj_val"]) o += datautils.pack(MC_STRING, packet.data["type"]) return o
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
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
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
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
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
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
def encode_extra(packet): o = b'' act = packet.data['action'] if act == const.TL_TITLE or act == const.TL_SUBTITLE: o += datautils.pack(MC_CHAT, packet.data['text']) if act == const.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
def encode_extra(packet): o = b'' if packet.data['event'] == const.CE_END_COMBAT: o += datautils.pack(MC_VARINT, packet.data['duration']) o += datautils.pack(MC_INT, packet.data['eid']) if packet.data['event'] == const.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
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
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
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
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) else: o = zlib.compress(o, comp_level) ulen_varint = datautils.pack(MC_VARINT, uncompressed_len) header = datautils.pack(MC_VARINT, len(o) + 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
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 proto.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 == proto.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) else: o = zlib.compress(o, comp_level) ulen_varint = datautils.pack(MC_VARINT, uncompressed_len) header = datautils.pack(MC_VARINT, len(o) + len(ulen_varint)) header += ulen_varint return header + o elif proto_comp_state == proto.PROTO_COMP_OFF: return datautils.pack(MC_VARINT, len(o)) + o else: return None
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
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
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
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
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
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
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
def encode_extra(packet): o = b'' act = packet.data['action'] if act == const.WB_SET_SIZE: o += datautils.pack(MC_DOUBLE, packet.data['radius']) if act == const.WB_SET_CENTER or act == const.WB_INITIALIZE: o += datautils.pack(MC_DOUBLE, packet.data['x']) o += datautils.pack(MC_DOUBLE, packet.data['y']) if act == const.WB_LERP_SIZE or act == const.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 == const.WB_INITIALIZE: o += datautils.pack(MC_VARINT, packet.data['port_tele_bound']) if act == const.WB_SET_WARN_TIME or act == const.WB_INITIALIZE: o += datautils.pack(MC_VARINT, packet.data['warn_time']) if act == const.WB_SET_WARN_BLOCKS or act == const.WB_INITIALIZE: o += datautils.pack(MC_VARINT, packet.data['warn_blocks']) return o
def encode_extra(packet): act = packet.data['action'] o = b'' if act in [const.TE_CREATE_TEAM, const.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 [const.TE_CREATE_TEAM, const.TE_ADDPLY_TEAM, const.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
def encode_extra(packet): act = packet.data['action'] o = b'' if act in [const.TE_CREATE_TEAM, const.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 [ const.TE_CREATE_TEAM, const.TE_ADDPLY_TEAM, const.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
def encode_extra(packet): o = b'' if packet.data['action'] == const.US_UPDATE_SCORE: o += datautils.pack(MC_VARINT, packet.data['value']) return o
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 == const.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 in [const.PL_ADD_PLAYER, const.PL_UPDATE_GAMEMODE]: o += datautils.pack(MC_VARINT, item['gamemode']) if act in [const.PL_ADD_PLAYER, const.PL_UPDATE_LATENCY]: o += datautils.pack(MC_VARINT, item['ping']) if act in [const.PL_ADD_PLAYER, const.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
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
def encode_extra(packet): o = datautils.pack(MC_VARINT, len(packet.data['data'])) o += packet.data['data'] return o
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
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
def encode_extra(packet): if packet.data['inv_type'] == 'EntityHorse': return datautils.pack(MC_INT, packet.data['eid'])
def encode_extra(packet): o = b'' for i in range(proto.particles[packet.data['id']][1]): o += datautils.pack(MC_VARINT, packet.data['data'][i]) return o
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
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
def encode_extra(packet): o = b'' if packet.data['has_position']: datautils.pack(MC_POSITION, packet.data['block_loc']) return o
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
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