package com.mrcrayfish.skateboarding.network.message; import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.world.World; 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 com.mrcrayfish.skateboarding.MrCrayfishSkateboardingMod; import com.mrcrayfish.skateboarding.entity.EntitySkateboard; public class MessageUpdatePos implements IMessage, IMessageHandler<MessageUpdatePos, IMessage> { private int entityId; private double posX; private double posY; private double posZ; public MessageUpdatePos() {} public MessageUpdatePos(int entityId, double posX, double posY, double posZ) { this.entityId = entityId; this.posX = posX; this.posY = posY; this.posZ = posZ; } @Override public void toBytes(ByteBuf buf) { buf.writeInt(entityId); buf.writeDouble(posX); buf.writeDouble(posY); buf.writeDouble(posZ); } @Override public void fromBytes(ByteBuf buf) { this.entityId = buf.readInt(); this.posX = buf.readDouble(); this.posY = buf.readDouble(); this.posZ = buf.readDouble(); } @Override public IMessage onMessage(MessageUpdatePos message, MessageContext ctx) { World world = ctx.getServerHandler().playerEntity.worldObj; Entity entity = world.getEntityByID(message.entityId); if (entity instanceof EntitySkateboard) { EntitySkateboard skateboard = (EntitySkateboard) entity; skateboard.setPosition(message.posX, message.posY, message.posZ); skateboard.updatePassenger(skateboard.getControllingPassenger()); } return null; } }