コード例 #1
0
 @Override
 public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {
   if (AdditionalPipes.CHANNEL.equals(packet.channel)) {
     DataInputStream data = new DataInputStream(new ByteArrayInputStream(packet.data));
     byte packetID = -1;
     try {
       packetID = data.readByte();
       switch (packetID) {
         case ADV_WOOD_DATA:
           TileEntity te = getTileEntity(player, data);
           if (te instanceof TileGenericPipe) {
             PipeItemsAdvancedWood pipe = (PipeItemsAdvancedWood) ((TileGenericPipe) te).pipe;
             pipe.transport.exclude = !pipe.transport.exclude;
           }
           break;
         case DIST_PIPE_DATA:
           handleDistPipeData(player, data);
           break;
         case TELE_PIPE_DATA_SET:
           handleTelePipeData(player, data);
           break;
         case CHUNKLOAD_DATA:
           handleChunkLoadData(data);
           break;
         case CHUNKLOAD_REQUEST:
           AdditionalPipes.instance.chunkLoadViewer.sendPersistentChunksToPlayer(
               (EntityPlayerMP) player);
           break;
       }
     } catch (IOException e) {
       AdditionalPipes.instance.logger.log(Level.SEVERE, "Error handling packet " + packetID, e);
     }
   } else if (AdditionalPipes.CHANNELNBT.equals(packet.channel)) {
     NBTTagCompound tag = PacketNBTTagData.getNBTFrom(packet);
     switch (tag.getInteger("id")) {
       case TELE_PIPE_DATA:
         TileEntity te =
             ((EntityPlayer) player)
                 .worldObj.getBlockTileEntity(
                     tag.getInteger("xCoord"), tag.getInteger("yCoord"), tag.getInteger("zCoord"));
         if (te instanceof TileGenericPipe) {
           PipeTeleport pipe = (PipeTeleport) ((TileGenericPipe) te).pipe;
           pipe.owner = tag.getString("owner");
           pipe.network = tag.getIntArray("network");
         }
         break;
     }
   }
 }