package com.fredtargaryen.floocraft.network.messages; import com.fredtargaryen.floocraft.tileentity.TileEntityFireplace; import net.minecraft.util.math.BlockPos; import net.minecraft.util.IThreadListener; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; public class MessageTileEntityFireplaceFunction implements IMessage, IMessageHandler<MessageTileEntityFireplaceFunction, IMessage> { public int x, y, z; public boolean isConnected; @Override public IMessage onMessage(final MessageTileEntityFireplaceFunction message, MessageContext ctx) { final IThreadListener serverListener = ctx.getServerHandler().playerEntity.getServerWorld(); serverListener.addScheduledTask(new Runnable() { @Override public void run() { TileEntityFireplace tef = (TileEntityFireplace) ((WorldServer)serverListener).getTileEntity(new BlockPos(message.x, message.y, message.z)); tef.setConnected(message.isConnected); } }); return null; } @Override public void fromBytes(ByteBuf buf) { this.x = buf.readInt(); this.y = buf.readInt(); this.z = buf.readInt(); this.isConnected = buf.readBoolean(); } @Override public void toBytes(ByteBuf buf) { buf.writeInt(this.x); buf.writeInt(this.y); buf.writeInt(this.z); buf.writeBoolean(this.isConnected); } }