def Packet0x23(self, buff): Location = buff.readPosition(); BlockID = buff.readVarInt(); block = Block(); block.location = Location; block.blockID = BlockID; self.bot.world.blocks[Location.get()] = block; print("block: " + str(BlockID) + " - location: " + str(Location.get()));
def Packet0x22(self, buff): ChunkX = buff.readInt() ChunkZ = buff.readInt() Recordcount = buff.readVarInt() for i in range(Recordcount): position = buff.readShort(); x = position & 0xF000; y = position & 0x00FF; z = position & 0x0F00; BlockID = buff.readVarInt(); block = Block(); block.location.set(x+ChunkX, y, z+ChunkZ); block.blockID = BlockID; self.bot.world.blocks[(x+ChunkX, y, z+ChunkZ)] = block;
def Packet0x21(self, buff): ChunkX = buff.readInt(); ChunkZ = buff.readInt(); GroundUpcontinuous = buff.readBool(); Primarybitmap = buff.readUnsignedByte(); Size = buff.readVarInt(); Data = ""; for i in range(Size/12288): if Primarybitmap & (1 << i): for j in range(4096): blockID = (buff.readByte() << 8) + buff.readByte(); metaData = BlockID & 15; blockID <<= 4; x = ChunckX+(j-(j%256)%4096); y = (i*16)+(j%16); z = ChunckZ+(j-(j%16)%256)-(j%256); z = position & 0x0F00; block = Block(); block.location.set(x+ChunkX, y, z+ChunkZ); block.blockID = blockID; block.metaData = metaData; self.bot.world.blocks[(x+ChunkX, y, z+ChunkZ)] = block;