Advertisement
Mrolas

PacketHandler.java

Dec 28th, 2013
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.62 KB | None | 0 0
  1. package mrolas.muchMoney.common.network;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.DataOutputStream;
  5. import java.io.IOException;
  6.  
  7. import mrolas.muchMoney.common.gui.container.ContainerCoinBank;
  8. import mrolas.muchMoney.common.gui.container.ContainerCoinTrader;
  9. import mrolas.muchMoney.common.gui.container.ContainerShopStop;
  10. import mrolas.muchMoney.common.lib.Reference;
  11. import mrolas.muchMoney.common.tileEntities.TileEntityCoinBank;
  12. import mrolas.muchMoney.common.tileEntities.TileEntityCoinTrader;
  13. import mrolas.muchMoney.common.tileEntities.TileEntityShopStop;
  14. import net.minecraft.entity.player.EntityPlayer;
  15. import net.minecraft.inventory.Container;
  16. import net.minecraft.network.INetworkManager;
  17. import net.minecraft.network.packet.Packet250CustomPayload;
  18.  
  19. import com.google.common.io.ByteArrayDataInput;
  20. import com.google.common.io.ByteStreams;
  21.  
  22. import cpw.mods.fml.common.network.IPacketHandler;
  23. import cpw.mods.fml.common.network.PacketDispatcher;
  24. import cpw.mods.fml.common.network.Player;
  25.  
  26. public class PacketHandler
  27.     implements IPacketHandler
  28. {
  29.     @Override
  30.     public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player)
  31.     {
  32.         ByteArrayDataInput reader = ByteStreams.newDataInput(packet.data);
  33.        
  34.         EntityPlayer entityPlayer = (EntityPlayer)player;
  35.        
  36.         byte packetId = reader.readByte();
  37.        
  38.         switch(packetId)
  39.         {
  40.             case 0:
  41.                 byte buttonId = reader.readByte();
  42.                 Container container = entityPlayer.openContainer;
  43.                 if (container != null)
  44.                 {
  45.                     if (container instanceof ContainerCoinTrader)
  46.                     {
  47.                         TileEntityCoinTrader coinTrader = ((ContainerCoinTrader)container).getCoinTrader();
  48.                         coinTrader.receiveButtonEvent(buttonId);
  49.                     }
  50.                     if (container instanceof ContainerCoinBank)
  51.                     {
  52.                         TileEntityCoinBank coinBank = ((ContainerCoinBank)container).getCoinBank();
  53.                         coinBank.receiveButtonEvent(buttonId);
  54.                     }
  55.                     if (container instanceof ContainerShopStop)
  56.                     {
  57.                         TileEntityShopStop shopStop = ((ContainerShopStop)container).getShopStop();
  58.                         shopStop.receiveButtonEvent(buttonId);
  59.                     }
  60.                 }
  61.                 break;
  62.         }
  63.     }
  64.    
  65.     public static void sendButtonPacket (byte id)
  66.     {
  67.         ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
  68.         DataOutputStream dataStream = new DataOutputStream(byteStream);
  69.        
  70.         try
  71.         {
  72.             dataStream.writeByte((byte)0);
  73.             dataStream.writeByte(id);
  74.            
  75.             PacketDispatcher.sendPacketToServer(PacketDispatcher.getPacket(Reference.CHANNEL, byteStream.toByteArray()));
  76.         }
  77.         catch (IOException e)
  78.         {
  79.             System.err.append("[Much Money] Failed to send button click packet");
  80.         }
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement