Network packet improvements
This commit is contained in:
@@ -44,10 +44,10 @@ public class MessageCraftingMonitorCancel extends MessageHandlerPlayerToServer<M
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileCraftingMonitor) {
|
||||
TileCraftingMonitor craftingMonitor = (TileCraftingMonitor) tile;
|
||||
TileCraftingMonitor monitor = (TileCraftingMonitor) tile;
|
||||
|
||||
if (craftingMonitor.isConnected()) {
|
||||
craftingMonitor.getController().getStorageHandler().handleCraftingCancel(message.id);
|
||||
if (monitor.isConnected()) {
|
||||
monitor.getController().getStorageHandler().handleCraftingCancel(message.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -48,7 +48,7 @@ public class MessageGridCraftingPush extends MessageHandlerPlayerToServer<Messag
|
||||
if (tile instanceof TileGrid) {
|
||||
TileGrid grid = (TileGrid) tile;
|
||||
|
||||
if (grid.isConnected() && grid.getType() == EnumGridType.CRAFTING && message.craftingSlot < grid.getMatrix().getSizeInventory()) {
|
||||
if (grid.isConnected() && grid.getType() == EnumGridType.CRAFTING && message.craftingSlot >= 0 && message.craftingSlot < grid.getMatrix().getSizeInventory()) {
|
||||
ItemStack stack = grid.getMatrix().getStackInSlot(message.craftingSlot);
|
||||
|
||||
if (stack != null) {
|
||||
|
@@ -5,7 +5,6 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.block.EnumGridType;
|
||||
import refinedstorage.container.ContainerGrid;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
@@ -41,8 +40,12 @@ public class MessageGridCraftingShift extends MessageHandlerPlayerToServer<Messa
|
||||
public void handle(MessageGridCraftingShift message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileGrid && ((TileGrid) tile).getType() == EnumGridType.CRAFTING && player.openContainer instanceof ContainerGrid) {
|
||||
((TileGrid) ((ContainerGrid) player.openContainer).getGrid()).onCraftedShift((ContainerGrid) player.openContainer, player);
|
||||
if (tile instanceof TileGrid) {
|
||||
TileGrid grid = (TileGrid) tile;
|
||||
|
||||
if (grid.isConnected() && player.openContainer instanceof ContainerGrid) {
|
||||
grid.onCraftedShift((ContainerGrid) player.openContainer, player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -8,44 +8,44 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<MessageGridCraftingStart> implements IMessage {
|
||||
private int gridX;
|
||||
private int gridY;
|
||||
private int gridZ;
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
private int id;
|
||||
private int quantity;
|
||||
|
||||
public MessageGridCraftingStart() {
|
||||
}
|
||||
|
||||
public MessageGridCraftingStart(int gridX, int gridY, int gridZ, int id, int quantity) {
|
||||
this.gridX = gridX;
|
||||
this.gridY = gridY;
|
||||
this.gridZ = gridZ;
|
||||
public MessageGridCraftingStart(int x, int y, int z, int id, int quantity) {
|
||||
this.x = x;
|
||||
this.y = z;
|
||||
this.z = z;
|
||||
this.id = id;
|
||||
this.quantity = quantity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
gridX = buf.readInt();
|
||||
gridY = buf.readInt();
|
||||
gridZ = buf.readInt();
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
id = buf.readInt();
|
||||
quantity = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(gridX);
|
||||
buf.writeInt(gridY);
|
||||
buf.writeInt(gridZ);
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
buf.writeInt(id);
|
||||
buf.writeInt(quantity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageGridCraftingStart message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.gridX, message.gridY, message.gridZ));
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileGrid && ((TileGrid) tile).isConnected()) {
|
||||
((TileGrid) tile).getController().getStorageHandler().handleCraftingRequest(message.id, message.quantity);
|
||||
|
@@ -31,14 +31,10 @@ public class MessageGridItems implements IMessage, IMessageHandler<MessageGridIt
|
||||
int size = buf.readInt();
|
||||
|
||||
for (int i = 0; i < size; ++i) {
|
||||
int id = buf.readInt();
|
||||
|
||||
int quantity = buf.readInt();
|
||||
|
||||
ItemStack stack = ByteBufUtils.readItemStack(buf);
|
||||
stack.stackSize = quantity;
|
||||
|
||||
groups.add(new ClientItemGroup(id, stack));
|
||||
groups.add(new ClientItemGroup(i, stack));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +43,6 @@ public class MessageGridItems implements IMessage, IMessageHandler<MessageGridIt
|
||||
buf.writeInt(controller.getItemGroups().size());
|
||||
|
||||
for (int i = 0; i < controller.getItemGroups().size(); ++i) {
|
||||
buf.writeInt(i);
|
||||
buf.writeInt(controller.getItemGroups().get(i).getQuantity());
|
||||
ByteBufUtils.writeItemStack(buf, controller.getItemGroups().get(i).toStack());
|
||||
}
|
||||
|
@@ -8,44 +8,44 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
public class MessageGridStoragePull extends MessageHandlerPlayerToServer<MessageGridStoragePull> implements IMessage {
|
||||
private int gridX;
|
||||
private int gridY;
|
||||
private int gridZ;
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
private int id;
|
||||
private int flags;
|
||||
|
||||
public MessageGridStoragePull() {
|
||||
}
|
||||
|
||||
public MessageGridStoragePull(int gridX, int gridY, int gridZ, int id, int flags) {
|
||||
this.gridX = gridX;
|
||||
this.gridY = gridY;
|
||||
this.gridZ = gridZ;
|
||||
public MessageGridStoragePull(int x, int y, int z, int id, int flags) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.id = id;
|
||||
this.flags = flags;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
gridX = buf.readInt();
|
||||
gridY = buf.readInt();
|
||||
gridZ = buf.readInt();
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
id = buf.readInt();
|
||||
flags = buf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(gridX);
|
||||
buf.writeInt(gridY);
|
||||
buf.writeInt(gridZ);
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
buf.writeInt(id);
|
||||
buf.writeInt(flags);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageGridStoragePull message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.gridX, message.gridY, message.gridZ));
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileGrid && ((TileGrid) tile).isConnected()) {
|
||||
((TileGrid) tile).getController().getStorageHandler().handlePull(message.id, message.flags, player);
|
||||
|
@@ -8,44 +8,44 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
public class MessageGridStoragePush extends MessageHandlerPlayerToServer<MessageGridStoragePush> implements IMessage {
|
||||
private int gridX;
|
||||
private int gridY;
|
||||
private int gridZ;
|
||||
private int x;
|
||||
private int y;
|
||||
private int z;
|
||||
private int playerSlot;
|
||||
private boolean one;
|
||||
|
||||
public MessageGridStoragePush() {
|
||||
}
|
||||
|
||||
public MessageGridStoragePush(int gridX, int gridY, int gridZ, int playerSlot, boolean one) {
|
||||
this.gridX = gridX;
|
||||
this.gridY = gridY;
|
||||
this.gridZ = gridZ;
|
||||
public MessageGridStoragePush(int x, int y, int z, int playerSlot, boolean one) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.playerSlot = playerSlot;
|
||||
this.one = one;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
gridX = buf.readInt();
|
||||
gridY = buf.readInt();
|
||||
gridZ = buf.readInt();
|
||||
x = buf.readInt();
|
||||
y = buf.readInt();
|
||||
z = buf.readInt();
|
||||
playerSlot = buf.readInt();
|
||||
one = buf.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
buf.writeInt(gridX);
|
||||
buf.writeInt(gridY);
|
||||
buf.writeInt(gridZ);
|
||||
buf.writeInt(x);
|
||||
buf.writeInt(y);
|
||||
buf.writeInt(z);
|
||||
buf.writeInt(playerSlot);
|
||||
buf.writeBoolean(one);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(MessageGridStoragePush message, EntityPlayerMP player) {
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.gridX, message.gridY, message.gridZ));
|
||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||
|
||||
if (tile instanceof TileGrid && ((TileGrid) tile).isConnected()) {
|
||||
((TileGrid) tile).getController().getStorageHandler().handlePush(message.playerSlot, message.one, player);
|
||||
|
Reference in New Issue
Block a user