package sourcecoded.quantum.network;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.relauncher.Side;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTSizeTracker;
import net.minecraft.nbt.NBTTagCompound;
import java.io.IOException;
public class NetworkHandler {
public static SimpleNetworkWrapper wrapper;
public static void initNetwork() {
wrapper = NetworkRegistry.INSTANCE.newSimpleChannel("sc|quantumAnomalies");
/* Sending to server */
wrapper.registerMessage(MessageAchievement.class, MessageAchievement.class, 0, Side.SERVER);
wrapper.registerMessage(MessageFlight.class, MessageFlight.class, 1, Side.SERVER);
wrapper.registerMessage(MessageChangeFocus.class, MessageChangeFocus.class, 2, Side.SERVER);
wrapper.registerMessage(MessageDiscoveryRequest.class, MessageDiscoveryRequest.class, 3, Side.SERVER);
wrapper.registerMessage(MessageDiscoveryItem.class, MessageDiscoveryItem.class, 4, Side.SERVER);
wrapper.registerMessage(MessageDiscoveryCategory.class, MessageDiscoveryCategory.class, 5, Side.SERVER);
wrapper.registerMessage(MessageDiscoveryImport.class, MessageDiscoveryImport.class, 6, Side.SERVER);
/* Sending to client */
wrapper.registerMessage(MessageVanillaParticle.class, MessageVanillaParticle.class, 10, Side.CLIENT);
wrapper.registerMessage(MessageBlockBreakFX.class, MessageBlockBreakFX.class, 11, Side.CLIENT);
wrapper.registerMessage(MessageSetPlayerVelocity.class, MessageSetPlayerVelocity.class, 12, Side.CLIENT);
wrapper.registerMessage(MessageClientWorldData.class, MessageClientWorldData.class, 13, Side.CLIENT);
wrapper.registerMessage(MessageDiscoveryUpdate.class, MessageDiscoveryUpdate.class, 14, Side.CLIENT);
wrapper.registerMessage(MessageDiscoveryToast.class, MessageDiscoveryToast.class, 15, Side.CLIENT);
}
public static void writeNBT(ByteBuf target, NBTTagCompound tag) throws IOException {
if (tag == null)
target.writeShort(-1);
else{
byte[] abyte = CompressedStreamTools.compress(tag);
target.writeShort((short)abyte.length);
target.writeBytes(abyte);
}
}
public static NBTTagCompound readNBT(ByteBuf dat) throws IOException {
short short1 = dat.readShort();
if (short1 < 0)
return null;
else {
byte[] abyte = new byte[short1];
dat.readBytes(abyte);
//return CompressedStreamTools.decompress(abyte);
return CompressedStreamTools.func_152457_a(abyte, NBTSizeTracker.field_152451_a);
}
}
}