package mods.ocminecart.network.message;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import io.netty.buffer.ByteBuf;
import mods.ocminecart.common.ISyncEntity;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
public class EntitySyncRequest implements IMessage{
protected int enID;
protected int dimId;
public EntitySyncRequest(){}
public EntitySyncRequest(Entity entity){
enID = entity.getEntityId();
dimId = entity.worldObj.provider.dimensionId;
}
@Override
public void fromBytes(ByteBuf buf) {
this.enID = buf.readInt();
this.dimId = buf.readInt();
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(this.enID);
buf.writeInt(this.dimId);
}
public static class Handler implements IMessageHandler<EntitySyncRequest, IMessage>{
@Override
public IMessage onMessage(EntitySyncRequest message, MessageContext ctx) {
World world = DimensionManager.getWorld(message.dimId);
if(world !=null){
Entity entity = world.getEntityByID(message.enID);
if(entity != null && (entity instanceof ISyncEntity)){
return new EntitySyncData(entity);
}
}
return null;
}
}
}