aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/net/MessageSetFlaskCapacity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/net/MessageSetFlaskCapacity.java')
-rw-r--r--src/main/java/gregtech/common/net/MessageSetFlaskCapacity.java59
1 files changed, 42 insertions, 17 deletions
diff --git a/src/main/java/gregtech/common/net/MessageSetFlaskCapacity.java b/src/main/java/gregtech/common/net/MessageSetFlaskCapacity.java
index c20b4002c3..ee869a2bd0 100644
--- a/src/main/java/gregtech/common/net/MessageSetFlaskCapacity.java
+++ b/src/main/java/gregtech/common/net/MessageSetFlaskCapacity.java
@@ -1,42 +1,67 @@
package gregtech.common.net;
-import cpw.mods.fml.common.network.simpleimpl.IMessage;
-import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
-import cpw.mods.fml.common.network.simpleimpl.MessageContext;
+import com.google.common.io.ByteArrayDataInput;
+import com.google.common.io.ByteArrayDataOutput;
+import com.google.common.io.ByteStreams;
+import gregtech.api.net.GT_Packet;
import gregtech.common.items.GT_VolumetricFlask;
-import io.netty.buffer.ByteBuf;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+import net.minecraftforge.common.DimensionManager;
-public final class MessageSetFlaskCapacity implements IMessage {
- private int capacity;
+public final class MessageSetFlaskCapacity extends GT_Packet {
+ private int capacity, dimID, playerID;
public MessageSetFlaskCapacity() {
+ super(true);
}
- public MessageSetFlaskCapacity(int capacity) {
+ public MessageSetFlaskCapacity(int capacity, int dimID, int playerID) {
+ super(false);
this.capacity = capacity;
+ this.dimID = dimID;
+ this.playerID = playerID;
}
+ public MessageSetFlaskCapacity(int capacity, EntityPlayer p) {
+ super(false);
+ this.capacity = capacity;
+ this.dimID = p.worldObj.provider.dimensionId;
+ this.playerID = p.getEntityId();
+ }
+
+ @Override
+ public byte getPacketID() {
+ return 5;
+ }
- public void fromBytes(ByteBuf buf) {
- this.capacity = buf.readInt();
+ @Override
+ public byte[] encode() {
+ ByteArrayDataOutput tOut = ByteStreams.newDataOutput(10);
+ tOut.writeInt(capacity);
+ tOut.writeInt(dimID);
+ tOut.writeInt(playerID);
+ return tOut.toByteArray();
}
- public void toBytes(ByteBuf buf) {
- buf.writeInt(this.capacity);
+ @Override
+ public GT_Packet decode(ByteArrayDataInput aData) {
+ return new MessageSetFlaskCapacity(aData.readInt(), aData.readInt(), aData.readInt());
}
- public static final class Handler
- implements IMessageHandler<MessageSetFlaskCapacity, IMessage> {
- public IMessage onMessage(MessageSetFlaskCapacity message, MessageContext ctx) {
- ItemStack stack = ctx.getServerHandler().playerEntity.getHeldItem();
+ @Override
+ public void process(IBlockAccess aWorld) {
+ World w = DimensionManager.getWorld(dimID);
+ if (w != null && w.getEntityByID(playerID) instanceof EntityPlayer) {
+ ItemStack stack = ((EntityPlayer) w.getEntityByID(playerID)).getHeldItem();
if ((stack != null) && (stack.stackSize > 0)) {
Item item = stack.getItem();
if ((item instanceof GT_VolumetricFlask))
- ((GT_VolumetricFlask) item).setCapacity(stack, message.capacity);
+ ((GT_VolumetricFlask) item).setCapacity(stack, capacity);
}
- return null;
}
}
} \ No newline at end of file