diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-01-20 14:24:34 +1000 |
commit | 869c206c4fcc8001bd2e1d66f704290331813835 (patch) | |
tree | 96735ce8fe4665e2759c3374221d6f06f4527df2 /src/Java/binnie/core/network | |
parent | ec2c72827f01dd4bb2174137f1ab162f9ddaab62 (diff) | |
download | GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.gz GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.tar.bz2 GT5-Unofficial-869c206c4fcc8001bd2e1d66f704290331813835.zip |
Initial Commit
Diffstat (limited to 'src/Java/binnie/core/network')
20 files changed, 801 insertions, 0 deletions
diff --git a/src/Java/binnie/core/network/BinnieCorePacketID.java b/src/Java/binnie/core/network/BinnieCorePacketID.java new file mode 100644 index 0000000000..669065ca45 --- /dev/null +++ b/src/Java/binnie/core/network/BinnieCorePacketID.java @@ -0,0 +1,77 @@ +package binnie.core.network; + +import binnie.core.BinnieCore; +import binnie.core.block.TileEntityMetadata; +import binnie.core.machines.IMachine; +import binnie.core.machines.Machine; +import binnie.core.machines.network.INetwork.TilePacketSync; +import binnie.core.network.packet.MessageBinnie; +import binnie.core.network.packet.MessageCraftGUI; +import binnie.core.network.packet.MessageMetadata; +import binnie.core.network.packet.MessageTileNBT; +import binnie.core.network.packet.MessageUpdate; +import binnie.core.proxy.BinnieProxy; +import binnie.craftgui.minecraft.ContainerCraftGUI; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.network.NetHandlerPlayServer; +import net.minecraft.tileentity.TileEntity; + +public enum BinnieCorePacketID + implements IPacketID +{ + NetworkEntityUpdate, TileMetadata, CraftGUIAction, TileDescriptionSync; + + private BinnieCorePacketID() {} + + public void onMessage(MessageBinnie message, MessageContext context) + { + if (this == NetworkEntityUpdate) + { + MessageUpdate packet = new MessageUpdate(message); + TileEntity tile = packet.getTileEntity(BinnieCore.proxy.getWorld()); + if ((tile instanceof INetworkedEntity)) { + ((INetworkedEntity)tile).readFromPacket(packet.payload); + } + } + else if (this == TileMetadata) + { + MessageMetadata packet = new MessageMetadata(message); + TileEntity tile = packet.getTileEntity(BinnieCore.proxy.getWorld()); + if ((tile instanceof TileEntityMetadata)) { + ((TileEntityMetadata)tile).setTileMetadata(packet.meta, true); + } + } + else if ((this == CraftGUIAction) && (context.side == Side.CLIENT)) + { + MessageCraftGUI packet = new MessageCraftGUI(message); + + EntityPlayer player = BinnieCore.proxy.getPlayer(); + if (((player.openContainer instanceof ContainerCraftGUI)) && (packet.getTagCompound() != null)) { + ((ContainerCraftGUI)player.openContainer).recieveNBT(Side.CLIENT, player, packet.getTagCompound()); + } + } + else if ((this == CraftGUIAction) && (context.side == Side.SERVER) && ((context.netHandler instanceof NetHandlerPlayServer))) + { + MessageCraftGUI packet = new MessageCraftGUI(message); + + EntityPlayer player = ((NetHandlerPlayServer)context.netHandler).playerEntity; + if (((player.openContainer instanceof ContainerCraftGUI)) && (packet.getTagCompound() != null)) { + ((ContainerCraftGUI)player.openContainer).recieveNBT(Side.SERVER, player, packet.getTagCompound()); + } + } + else if ((this == TileDescriptionSync) && (context.side == Side.CLIENT)) + { + MessageTileNBT packet = new MessageTileNBT(message); + TileEntity tile = packet.getTarget(BinnieCore.proxy.getWorld()); + if ((tile != null) && (packet.getTagCompound() != null)) + { + IMachine machine = Machine.getMachine(tile); + if ((machine != null) && ((machine instanceof INetwork.TilePacketSync))) { + ((INetwork.TilePacketSync)machine).syncFromNBT(packet.getTagCompound()); + } + } + } + } +} diff --git a/src/Java/binnie/core/network/BinniePacketHandler.java b/src/Java/binnie/core/network/BinniePacketHandler.java new file mode 100644 index 0000000000..c7ad54c120 --- /dev/null +++ b/src/Java/binnie/core/network/BinniePacketHandler.java @@ -0,0 +1,43 @@ +package binnie.core.network; + +import binnie.core.AbstractMod; +import binnie.core.network.packet.MessageBinnie; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public abstract class BinniePacketHandler + implements IMessageHandler<MessageBinnie, IMessage> +{ + private IPacketProvider provider; + + public BinniePacketHandler(AbstractMod mod) + { + setProvider(mod); + } + + public void setProvider(IPacketProvider provider) + { + this.provider = provider; + } + + public IMessage onMessage(MessageBinnie message, MessageContext ctx) + { + try + { + int packetId = message.id; + for (IPacketID id : this.provider.getPacketIDs()) { + if (id.ordinal() == packetId) + { + id.onMessage(message, ctx); + return null; + } + } + } + catch (Exception ex) + { + throw new RuntimeException(ex); + } + return null; + } +} diff --git a/src/Java/binnie/core/network/INetworkedEntity.java b/src/Java/binnie/core/network/INetworkedEntity.java new file mode 100644 index 0000000000..e126a4559b --- /dev/null +++ b/src/Java/binnie/core/network/INetworkedEntity.java @@ -0,0 +1,10 @@ +package binnie.core.network; + +import binnie.core.network.packet.PacketPayload; + +public abstract interface INetworkedEntity +{ + public abstract void writeToPacket(PacketPayload paramPacketPayload); + + public abstract void readFromPacket(PacketPayload paramPacketPayload); +} diff --git a/src/Java/binnie/core/network/IOrdinaled.java b/src/Java/binnie/core/network/IOrdinaled.java new file mode 100644 index 0000000000..2022f04820 --- /dev/null +++ b/src/Java/binnie/core/network/IOrdinaled.java @@ -0,0 +1,6 @@ +package binnie.core.network; + +public abstract interface IOrdinaled +{ + public abstract int ordinal(); +} diff --git a/src/Java/binnie/core/network/IPacketID.java b/src/Java/binnie/core/network/IPacketID.java new file mode 100644 index 0000000000..193fbba617 --- /dev/null +++ b/src/Java/binnie/core/network/IPacketID.java @@ -0,0 +1,10 @@ +package binnie.core.network; + +import binnie.core.network.packet.MessageBinnie; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; + +public abstract interface IPacketID + extends IOrdinaled +{ + public abstract void onMessage(MessageBinnie paramMessageBinnie, MessageContext paramMessageContext); +} diff --git a/src/Java/binnie/core/network/IPacketProvider.java b/src/Java/binnie/core/network/IPacketProvider.java new file mode 100644 index 0000000000..98f48f69b3 --- /dev/null +++ b/src/Java/binnie/core/network/IPacketProvider.java @@ -0,0 +1,8 @@ +package binnie.core.network; + +public abstract interface IPacketProvider +{ + public abstract String getChannel(); + + public abstract IPacketID[] getPacketIDs(); +} diff --git a/src/Java/binnie/core/network/packet/IPacket.java b/src/Java/binnie/core/network/packet/IPacket.java new file mode 100644 index 0000000000..b86516ea41 --- /dev/null +++ b/src/Java/binnie/core/network/packet/IPacket.java @@ -0,0 +1,8 @@ +package binnie.core.network.packet; + +import net.minecraft.network.Packet; + +public abstract interface IPacket +{ + public abstract Packet getPacket(); +} diff --git a/src/Java/binnie/core/network/packet/IPacketLocation.java b/src/Java/binnie/core/network/packet/IPacketLocation.java new file mode 100644 index 0000000000..d9d46cce70 --- /dev/null +++ b/src/Java/binnie/core/network/packet/IPacketLocation.java @@ -0,0 +1,15 @@ +package binnie.core.network.packet; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +abstract interface IPacketLocation +{ + public abstract TileEntity getTarget(World paramWorld); + + public abstract int getX(); + + public abstract int getY(); + + public abstract int getZ(); +} diff --git a/src/Java/binnie/core/network/packet/IndexInPayload.java b/src/Java/binnie/core/network/packet/IndexInPayload.java new file mode 100644 index 0000000000..ff59a0783f --- /dev/null +++ b/src/Java/binnie/core/network/packet/IndexInPayload.java @@ -0,0 +1,15 @@ +package binnie.core.network.packet; + +public class IndexInPayload +{ + public IndexInPayload(int intIndex, int floatIndex, int stringIndex) + { + this.intIndex = intIndex; + this.floatIndex = floatIndex; + this.stringIndex = stringIndex; + } + + public int intIndex = 0; + public int floatIndex = 0; + public int stringIndex = 0; +} diff --git a/src/Java/binnie/core/network/packet/MachinePayload.java b/src/Java/binnie/core/network/packet/MachinePayload.java new file mode 100644 index 0000000000..11eb8b62b9 --- /dev/null +++ b/src/Java/binnie/core/network/packet/MachinePayload.java @@ -0,0 +1,77 @@ +package binnie.core.network.packet; + +import java.util.ArrayList; +import java.util.List; + +public class MachinePayload +{ + private List<Integer> intPayload = new ArrayList(); + private List<Float> floatPayload = new ArrayList(); + private List<String> stringPayload = new ArrayList(); + private int id = 0; + + public MachinePayload(int id) + { + this.id = id; + this.intPayload.clear(); + this.floatPayload.clear(); + this.stringPayload.clear(); + } + + public MachinePayload() {} + + public void addInteger(int a) + { + this.intPayload.add(Integer.valueOf(a)); + } + + public void addFloat(float a) + { + this.floatPayload.add(Float.valueOf(a)); + } + + public void addString(String a) + { + this.stringPayload.add(a); + } + + public int getInteger() + { + return ((Integer)this.intPayload.remove(0)).intValue(); + } + + public float getFloat() + { + return ((Float)this.floatPayload.remove(0)).floatValue(); + } + + public String getString() + { + return (String)this.stringPayload.remove(0); + } + + public void append(MachinePayload other) + { + if (other == null) { + return; + } + this.intPayload.addAll(other.intPayload); + this.floatPayload.addAll(other.floatPayload); + this.stringPayload.addAll(other.stringPayload); + } + + public boolean isEmpty() + { + return (this.intPayload.isEmpty()) && (this.floatPayload.isEmpty()) && (this.stringPayload.isEmpty()); + } + + public int getID() + { + return this.id; + } + + public void setID(int readInt) + { + this.id = readInt; + } +} diff --git a/src/Java/binnie/core/network/packet/MessageBase.java b/src/Java/binnie/core/network/packet/MessageBase.java new file mode 100644 index 0000000000..e18da968ef --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageBase.java @@ -0,0 +1,69 @@ +package binnie.core.network.packet; + +import io.netty.buffer.ByteBuf; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; + +public class MessageBase +{ + private int id; + + public MessageBase(int id) + { + this.id = id; + } + + public MessageBase(MessageBinnie message) + { + try + { + readData(message.data); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + + public MessageBinnie GetMessage() + { + return new MessageBinnie(this.id, this); + } + + protected NBTTagCompound readNBTTagCompound(ByteBuf data) + throws IOException + { + short length = data.readShort(); + if (length < 0) { + return null; + } + byte[] compressed = new byte[length]; + data.readBytes(compressed); + return CompressedStreamTools.readCompressed(new ByteArrayInputStream(compressed)); + } + + protected void writeNBTTagCompound(NBTTagCompound nbttagcompound, ByteBuf data) + throws IOException + { + if (nbttagcompound == null) + { + data.writeShort(-1); + } + else + { + byte[] compressed = CompressedStreamTools.compress(nbttagcompound); + data.writeShort((short)compressed.length); + data.writeBytes(compressed); + } + } + + public void writeData(ByteBuf data) + throws IOException + {} + + public void readData(ByteBuf data) + throws IOException + {} +} diff --git a/src/Java/binnie/core/network/packet/MessageBinnie.java b/src/Java/binnie/core/network/packet/MessageBinnie.java new file mode 100644 index 0000000000..0559a07e30 --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageBinnie.java @@ -0,0 +1,40 @@ +package binnie.core.network.packet; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import io.netty.buffer.ByteBuf; +import java.io.IOException; + +public final class MessageBinnie + implements IMessage +{ + public int id; + private MessageBase message; + ByteBuf data; + + public MessageBinnie() {} + + public MessageBinnie(int id, MessageBase base) + { + this.id = id; + this.message = base; + } + + public void toBytes(ByteBuf buf) + { + buf.writeByte(this.id); + try + { + this.message.writeData(buf); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + + public void fromBytes(ByteBuf buf) + { + this.id = buf.readByte(); + this.data = buf; + } +} diff --git a/src/Java/binnie/core/network/packet/MessageContainerUpdate.java b/src/Java/binnie/core/network/packet/MessageContainerUpdate.java new file mode 100644 index 0000000000..98e64b0d1f --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageContainerUpdate.java @@ -0,0 +1,17 @@ +package binnie.core.network.packet; + +import net.minecraft.nbt.NBTTagCompound; + +public class MessageContainerUpdate + extends MessageCraftGUI +{ + public MessageContainerUpdate(NBTTagCompound nbt) + { + super(nbt); + } + + public MessageContainerUpdate(MessageBinnie message) + { + super(message); + } +} diff --git a/src/Java/binnie/core/network/packet/MessageCoordinates.java b/src/Java/binnie/core/network/packet/MessageCoordinates.java new file mode 100644 index 0000000000..928ed59d05 --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageCoordinates.java @@ -0,0 +1,59 @@ +package binnie.core.network.packet; + +import io.netty.buffer.ByteBuf; +import java.io.IOException; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.world.World; + +public class MessageCoordinates + extends MessageBase +{ + public int posX; + public int posY; + public int posZ; + + public MessageCoordinates(MessageBinnie message) + { + super(message); + } + + public MessageCoordinates(int id, ChunkCoordinates coordinates) + { + this(id, coordinates.posX, coordinates.posY, coordinates.posZ); + } + + public MessageCoordinates(int id, int posX, int posY, int posZ) + { + super(id); + this.posX = posX; + this.posY = posY; + this.posZ = posZ; + } + + public void writeData(ByteBuf data) + throws IOException + { + data.writeInt(this.posX); + data.writeInt(this.posY); + data.writeInt(this.posZ); + } + + public void readData(ByteBuf data) + throws IOException + { + this.posX = data.readInt(); + this.posY = data.readInt(); + this.posZ = data.readInt(); + } + + public ChunkCoordinates getCoordinates() + { + return new ChunkCoordinates(this.posX, this.posY, this.posZ); + } + + public TileEntity getTileEntity(World world) + { + return world.getTileEntity(this.posX, this.posY, this.posZ); + } +} diff --git a/src/Java/binnie/core/network/packet/MessageCraftGUI.java b/src/Java/binnie/core/network/packet/MessageCraftGUI.java new file mode 100644 index 0000000000..805c4a651b --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageCraftGUI.java @@ -0,0 +1,18 @@ +package binnie.core.network.packet; + +import binnie.core.network.BinnieCorePacketID; +import net.minecraft.nbt.NBTTagCompound; + +public class MessageCraftGUI + extends MessageNBT +{ + public MessageCraftGUI(MessageBinnie message) + { + super(message); + } + + public MessageCraftGUI(NBTTagCompound action) + { + super(BinnieCorePacketID.CraftGUIAction.ordinal(), action); + } +} diff --git a/src/Java/binnie/core/network/packet/MessageMetadata.java b/src/Java/binnie/core/network/packet/MessageMetadata.java new file mode 100644 index 0000000000..c8ce46dedb --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageMetadata.java @@ -0,0 +1,36 @@ +package binnie.core.network.packet; + +import binnie.core.network.BinnieCorePacketID; +import io.netty.buffer.ByteBuf; +import java.io.IOException; + +public class MessageMetadata + extends MessageCoordinates +{ + public int meta; + + public MessageMetadata(int posX, int posY, int posZ, int meta) + { + super(BinnieCorePacketID.TileMetadata.ordinal(), posX, posY, posZ); + this.meta = meta; + } + + public MessageMetadata(MessageBinnie message) + { + super(message); + } + + public void writeData(ByteBuf data) + throws IOException + { + super.writeData(data); + data.writeInt(this.meta); + } + + public void readData(ByteBuf data) + throws IOException + { + super.readData(data); + this.meta = data.readInt(); + } +} diff --git a/src/Java/binnie/core/network/packet/MessageNBT.java b/src/Java/binnie/core/network/packet/MessageNBT.java new file mode 100644 index 0000000000..c1c5345987 --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageNBT.java @@ -0,0 +1,49 @@ +package binnie.core.network.packet; + +import io.netty.buffer.ByteBuf; +import java.io.IOException; +import net.minecraft.nbt.NBTTagCompound; + +public class MessageNBT + extends MessageBase +{ + NBTTagCompound nbt; + + public NBTTagCompound getTagCompound() + { + return this.nbt; + } + + void setTagCompound(NBTTagCompound nbt) + { + this.nbt = nbt; + } + + public MessageNBT(int id) + { + super(id); + } + + public MessageNBT(int id, NBTTagCompound nbt) + { + this(id); + setTagCompound(nbt); + } + + public MessageNBT(MessageBinnie message) + { + super(message); + } + + public void writeData(ByteBuf data) + throws IOException + { + writeNBTTagCompound(this.nbt, data); + } + + public void readData(ByteBuf data) + throws IOException + { + this.nbt = readNBTTagCompound(data); + } +} diff --git a/src/Java/binnie/core/network/packet/MessageTileNBT.java b/src/Java/binnie/core/network/packet/MessageTileNBT.java new file mode 100644 index 0000000000..7ba41b8d09 --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageTileNBT.java @@ -0,0 +1,82 @@ +package binnie.core.network.packet; + +import io.netty.buffer.ByteBuf; +import java.io.IOException; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MessageTileNBT + extends MessageNBT + implements IPacketLocation +{ + private int posX; + private int posY; + private int posZ; + + public MessageTileNBT(MessageBinnie message) + { + super(message); + } + + public MessageTileNBT(int id, TileEntity tile, NBTTagCompound nbt) + { + super(id); + + this.posX = tile.xCoord; + this.posY = tile.yCoord; + this.posZ = tile.zCoord; + + this.nbt = nbt; + } + + public void writeData(ByteBuf data) + throws IOException + { + data.writeInt(this.posX); + data.writeInt(this.posY); + data.writeInt(this.posZ); + + super.writeData(data); + } + + public void readData(ByteBuf data) + throws IOException + { + this.posX = data.readInt(); + this.posY = data.readInt(); + this.posZ = data.readInt(); + + super.readData(data); + } + + public TileEntity getTarget(World world) + { + return world.getTileEntity(this.posX, this.posY, this.posZ); + } + + public int getX() + { + return this.posX; + } + + public int getY() + { + return this.posY; + } + + public int getZ() + { + return this.posZ; + } + + public NBTTagCompound getTagCompound() + { + return this.nbt; + } + + void setTagCompound(NBTTagCompound nbt) + { + this.nbt = nbt; + } +} diff --git a/src/Java/binnie/core/network/packet/MessageUpdate.java b/src/Java/binnie/core/network/packet/MessageUpdate.java new file mode 100644 index 0000000000..053246b318 --- /dev/null +++ b/src/Java/binnie/core/network/packet/MessageUpdate.java @@ -0,0 +1,92 @@ +package binnie.core.network.packet; + +import binnie.core.network.INetworkedEntity; +import io.netty.buffer.ByteBuf; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MessageUpdate + extends MessageCoordinates +{ + public PacketPayload payload; + + public MessageUpdate(MessageBinnie message) + { + super(message); + } + + public MessageUpdate(int id, INetworkedEntity tile) + { + super(id, ((TileEntity)tile).xCoord, ((TileEntity)tile).yCoord, ((TileEntity)tile).zCoord); + this.payload = new PacketPayload(); + tile.writeToPacket(this.payload); + } + + public void writeData(ByteBuf data) + throws IOException + { + super.writeData(data); + if (this.payload == null) + { + data.writeInt(0); + data.writeInt(0); + data.writeInt(0); + return; + } + data.writeInt(this.payload.intPayload.size()); + data.writeInt(this.payload.floatPayload.size()); + data.writeInt(this.payload.stringPayload.size()); + for (Iterator i$ = this.payload.intPayload.iterator(); i$.hasNext();) + { + int intData = ((Integer)i$.next()).intValue(); + data.writeInt(intData); + } + for (Iterator i$ = this.payload.floatPayload.iterator(); i$.hasNext();) + { + float floatData = ((Float)i$.next()).floatValue(); + data.writeFloat(floatData); + } + for (String stringData : this.payload.stringPayload) + { + byte[] bytes = stringData.getBytes("UTF-8"); + data.writeShort(bytes.length); + data.writeBytes(bytes); + } + } + + public void readData(ByteBuf data) + throws IOException + { + super.readData(data); + + this.payload = new PacketPayload(); + + int intLength = data.readInt(); + int floatLength = data.readInt(); + int stringLength = data.readInt(); + + this.payload.intPayload.clear(); + this.payload.floatPayload.clear(); + this.payload.stringPayload.clear(); + for (int i = 0; i < intLength; i++) { + this.payload.addInteger(data.readInt()); + } + for (int i = 0; i < floatLength; i++) { + this.payload.addFloat(data.readFloat()); + } + for (int i = 0; i < stringLength; i++) + { + int length = data.readShort(); + byte[] string = data.readBytes(length).array(); + this.payload.addString(new String(string, "UTF-8")); + } + } + + public TileEntity getTarget(World world) + { + return world.getTileEntity(this.posX, this.posY, this.posZ); + } +} diff --git a/src/Java/binnie/core/network/packet/PacketPayload.java b/src/Java/binnie/core/network/packet/PacketPayload.java new file mode 100644 index 0000000000..57d1a13759 --- /dev/null +++ b/src/Java/binnie/core/network/packet/PacketPayload.java @@ -0,0 +1,70 @@ +package binnie.core.network.packet; + +import binnie.core.network.INetworkedEntity; +import java.util.ArrayList; +import java.util.List; + +public class PacketPayload +{ + public List<Integer> intPayload = new ArrayList(); + public List<Float> floatPayload = new ArrayList(); + public List<String> stringPayload = new ArrayList(); + + public PacketPayload() + { + this.intPayload.clear(); + this.floatPayload.clear(); + this.stringPayload.clear(); + } + + public PacketPayload(INetworkedEntity tile) + { + this(); + tile.writeToPacket(this); + } + + public void addInteger(int a) + { + this.intPayload.add(Integer.valueOf(a)); + } + + public void addFloat(float a) + { + this.floatPayload.add(Float.valueOf(a)); + } + + public void addString(String a) + { + this.stringPayload.add(a); + } + + public int getInteger() + { + return ((Integer)this.intPayload.remove(0)).intValue(); + } + + public float getFloat() + { + return ((Float)this.floatPayload.remove(0)).floatValue(); + } + + public String getString() + { + return (String)this.stringPayload.remove(0); + } + + public void append(PacketPayload other) + { + if (other == null) { + return; + } + this.intPayload.addAll(other.intPayload); + this.floatPayload.addAll(other.floatPayload); + this.stringPayload.addAll(other.stringPayload); + } + + public boolean isEmpty() + { + return (this.intPayload.isEmpty()) && (this.floatPayload.isEmpty()) && (this.stringPayload.isEmpty()); + } +} |