package portables.common.network;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.FMLNetworkEvent.ServerCustomPacketEvent;
import io.netty.buffer.ByteBufInputStream;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.network.NetHandlerPlayServer;
import portables.common.core.CommonProxy;
import portables.common.util.Util;
public class ServerPacketHandler
{
@SubscribeEvent
public void onServerPacket(ServerCustomPacketEvent event)
{
try
{
EntityPlayerMP player = ((NetHandlerPlayServer) event.handler).playerEntity;
ByteBufInputStream bbis = new ByteBufInputStream(event.packet.payload());
ItemStack currentItem = player.getCurrentEquippedItem();
byte packetId = bbis.readByte();
switch (packetId)
{
case 0:
player.displayGUIWorkbench((int) player.posX, (int) player.posY, (int) player.posZ);
break;
case 1:
player.displayGUIChest(player.getInventoryEnderChest());
Util.damageItem(1, player);
break;
case 2:
player.displayGUIAnvil((int) player.posX, (int) player.posY, (int) player.posZ);
Util.damageItem(1, player);
break;
case 3:
player.displayGUIEnchantment((int) player.posX, (int) player.posY, (int) player.posZ, "Enchant");
Util.damageItem(1, player);
break;
case 4:
if (currentItem != null)
{
if (currentItem.getItem() == CommonProxy.portableBlock)
{
Util.clearNBT(currentItem);
}
}
break;
case 5:
if (currentItem != null)
{
if (currentItem.getItem() == CommonProxy.portableBlock)
{
if (player.inventory.consumeInventoryItem(CommonProxy.lock))
{
currentItem.stackTagCompound.getCompoundTag("info").setString("locked", player.getGameProfile().getName());
player.worldObj.playSoundAtEntity(player, "simpleportables:Lock", 1, 1);
player.inventory.consumeInventoryItem(CommonProxy.lock);
}
}
}
break;
case 6:
if (currentItem != null)
{
if (currentItem.getItem() == CommonProxy.portableBlock)
{
currentItem.stackTagCompound.getCompoundTag("info").removeTag("locked");
player.worldObj.playSoundAtEntity(player, "simpleportables:Lock", 0.5F, 1);
}
}
break;
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}