Network packet improvements

This commit is contained in:
Raoul Van den Berge
2016-05-28 14:52:28 +02:00
parent a36a5c4526
commit 079a2735c3
7 changed files with 53 additions and 55 deletions

View File

@@ -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);
}
}
}

View File

@@ -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) {

View File

@@ -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);
}
}
}
}

View File

@@ -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);

View File

@@ -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());
}

View File

@@ -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);

View File

@@ -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);