def encode(self) -> bytes: return (Buffer.pack("i", self.entity_id) + Buffer.pack("?", self.is_hardcore) + Buffer.pack("B", self.gamemode) + Buffer.pack("b", self.prev_gamemode) + Buffer.pack_varint(len(self.world_names)) + b"".join([Buffer.pack_string(w) for w in self.world_names]) + Buffer.pack_nbt(self.dim_codec) + Buffer.pack_nbt(self.dimension) + Buffer.pack_string(self.world_name) + Buffer.pack("q", self.hashed_seed) + Buffer.pack_varint(self.max_players) + Buffer.pack_varint(self.view_distance) + Buffer.pack("?", self.reduced_debug_info) + Buffer.pack("?", self.enable_respawn_screen) + Buffer.pack("?", self.is_debug) + Buffer.pack("?", self.is_flat))
def encode(self) -> bytes: return (Buffer.pack_nbt(self.dimension) + Buffer.pack_string(self.world_name) + Buffer.pack("l", self.hashed_seed) + Buffer.pack("B", self.gamemode) + Buffer.pack("B", self.prev_gamemode) + Buffer.pack("?", self.is_debug) + Buffer.pack("?", self.is_flat) + Buffer.pack("?", self.copy_metadata))
def encode(self) -> bytes: out = Buffer.pack("i", self.chunk.x) + Buffer.pack("i", self.chunk.z) + Buffer.pack("?", self.full) mask = 0 chunk_sections_buffer = Buffer() for y, section in self.chunk.sections.items(): # pack chunk columns into buffer and generate a bitmask if y >= 0: mask |= 1 << y chunk_sections_buffer.write(Buffer.pack_chunk_section(section)) out += Buffer.pack_varint(mask) + Buffer.pack_nbt( nbt.TAG_Compound("", [self.chunk["Heightmaps"]["MOTION_BLOCKING"], self.chunk["Heightmaps"]["WORLD_SURFACE"]]) ) if self.full: out += Buffer.pack_varint(len(Chunk["Biomes"])) + b"".join([Buffer.pack_varint(n) for n in Chunk["Biomes"]]) out += len(chunk_sections_buffer) + chunk_sections_buffer.read() # here we would pack the block entities, but we don't support them yet so we just send an array with length of 0 out += Buffer.pack_varint(0) return out
def encode(self) -> bytes: return Buffer.pack_pos(self.x, self.y, self.z) + Buffer.pack("B", self.action) + Buffer.pack_nbt(self.nbt_data)
def encode(self) -> bytes: return Buffer.pack_varint(self.transaction_id) + Buffer.pack_nbt( self.nbt)