public void HandleMultiBlockChange(MinecraftClient client, IPacket packet) { var myPacket = (CBMultiBlockChange)packet; int chunkID = client.MinecraftWorld.GetChunk(myPacket.ChunkX, myPacket.ChunkZ); if (chunkID == -1) { client.RaiseError(this, "Attempted to access uninitialized chunk"); return; } var thisChunk = client.MinecraftWorld.worldChunks[chunkID]; for (int i = 0; i < myPacket.Recordcount - 1; i++) { var thisRecord = myPacket.Records[i]; thisChunk.UpdateBlock(thisRecord.X, thisRecord.Y, thisRecord.Z, thisRecord.BlockID); thisChunk.SetBlockData(thisRecord.X, thisRecord.Y, thisRecord.Z, thisRecord.Metadata); } client.RaiseMultiBlockChange(myPacket.ChunkX, myPacket.ChunkX); }
public void BlockAction(MinecraftClient client, IPacket packet) { var BlockPacket = (CBBlockAction)packet; switch (BlockPacket.BlockType) { case 25: // -- Note block client.RaiseNoteBlockSound(BlockPacket.Byte1, BlockPacket.Byte2, BlockPacket.X, BlockPacket.Y, BlockPacket.Z); break; case 29: // -- Sticky Piston client.RaisePistonMoved(BlockPacket.Byte1, BlockPacket.Byte2, BlockPacket.X, BlockPacket.Y, BlockPacket.Z); break; case 33: // -- Piston client.RaisePistonMoved(BlockPacket.Byte1, BlockPacket.Byte2, BlockPacket.X, BlockPacket.Y, BlockPacket.Z); break; case 54: // -- Chest client.RaiseChestStateChange(BlockPacket.Byte2, BlockPacket.X, BlockPacket.Y, BlockPacket.Z); break; case 146: // -- Trapped chest client.RaiseChestStateChange(BlockPacket.Byte2, BlockPacket.X, BlockPacket.Y, BlockPacket.Z); break; default: client.RaiseError(this, "Unknown block action received: " + BlockPacket.BlockType.ToString()); break; } }