package zmaster587.advancedRocketry.network; import io.netty.buffer.ByteBuf; import java.io.IOException; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import zmaster587.advancedRocketry.api.dimension.solar.StellarBody; import zmaster587.advancedRocketry.dimension.DimensionManager; import zmaster587.advancedRocketry.dimension.DimensionProperties; import zmaster587.libVulpes.network.BasePacket; public class PacketStellarInfo extends BasePacket { StellarBody star; int starId; public PacketStellarInfo() {} public PacketStellarInfo(int starId,StellarBody star) { this.star = star; this.starId = starId; } @Override public void write(ByteBuf out) { NBTTagCompound nbt = new NBTTagCompound(); out.writeInt(starId); out.writeBoolean(star == null); star.writeToNBT(nbt); PacketBuffer packetBuffer = new PacketBuffer(out); //TODO: error handling try { packetBuffer.writeNBTTagCompoundToBuffer(nbt); } catch (IOException e) { e.printStackTrace(); } } @Override public void readClient(ByteBuf in) { PacketBuffer packetBuffer = new PacketBuffer(in); NBTTagCompound nbt; starId = in.readInt(); if(in.readBoolean()) { if(DimensionManager.getInstance().isDimensionCreated(starId)) { DimensionManager.getInstance().removeStar(starId); } } else { //TODO: error handling try { nbt = packetBuffer.readNBTTagCompoundFromBuffer(); } catch (IOException e) { e.printStackTrace(); return; } StellarBody star; if((star = DimensionManager.getInstance().getStar(starId)) != null) { star.readFromNBT(nbt); } else { star = new StellarBody(); star.readFromNBT(nbt); DimensionManager.getInstance().addStar(star); } } } @Override public void read(ByteBuf in) { //Should never be read on the server! } @Override public void executeClient(EntityPlayer thePlayer) {} @Override public void executeServer(EntityPlayerMP player) {} }