fix network packet so that they're threaded
This commit is contained in:
@@ -200,7 +200,7 @@ public class GuiGrid extends GuiBase
|
|||||||
|
|
||||||
if (isHoveringOverValidSlot())
|
if (isHoveringOverValidSlot())
|
||||||
{
|
{
|
||||||
drawTooltip(mouseX, mouseY, items.get(hoveringSlotId).toItemStack());
|
drawTooltip(mouseX, mouseY, getItems().get(hoveringSlotId).toItemStack());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (grid.getType() == EnumGridType.CRAFTING && isHoveringOverClear(mouseX, mouseY))
|
if (grid.getType() == EnumGridType.CRAFTING && isHoveringOverClear(mouseX, mouseY))
|
||||||
|
|||||||
@@ -5,11 +5,9 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
|
||||||
import storagecraft.tile.ICompareSetting;
|
import storagecraft.tile.ICompareSetting;
|
||||||
|
|
||||||
public class MessageCompareUpdate implements IMessage, IMessageHandler<MessageCompareUpdate, IMessage>
|
public class MessageCompareUpdate extends MessageHandlerPlayerToServer<MessageCompareUpdate> implements IMessage
|
||||||
{
|
{
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -47,17 +45,13 @@ public class MessageCompareUpdate implements IMessage, IMessageHandler<MessageCo
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageCompareUpdate message, MessageContext context)
|
public void handle(MessageCompareUpdate message, EntityPlayerMP player)
|
||||||
{
|
{
|
||||||
EntityPlayerMP player = context.getServerHandler().playerEntity;
|
|
||||||
|
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (tile instanceof ICompareSetting)
|
if (tile instanceof ICompareSetting)
|
||||||
{
|
{
|
||||||
((ICompareSetting) tile).setCompare(message.compare);
|
((ICompareSetting) tile).setCompare(message.compare);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,9 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
|
||||||
import storagecraft.tile.TileDetector;
|
import storagecraft.tile.TileDetector;
|
||||||
|
|
||||||
public class MessageDetectorAmountUpdate implements IMessage, IMessageHandler<MessageDetectorAmountUpdate, IMessage>
|
public class MessageDetectorAmountUpdate extends MessageHandlerPlayerToServer<MessageDetectorAmountUpdate> implements IMessage
|
||||||
{
|
{
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -47,17 +45,13 @@ public class MessageDetectorAmountUpdate implements IMessage, IMessageHandler<Me
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageDetectorAmountUpdate message, MessageContext context)
|
public void handle(MessageDetectorAmountUpdate message, EntityPlayerMP player)
|
||||||
{
|
{
|
||||||
EntityPlayerMP player = context.getServerHandler().playerEntity;
|
|
||||||
|
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (tile instanceof TileDetector && message.amount >= 0)
|
if (tile instanceof TileDetector && message.amount >= 0)
|
||||||
{
|
{
|
||||||
((TileDetector) tile).setAmount(message.amount);
|
((TileDetector) tile).setAmount(message.amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,9 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
|
||||||
import storagecraft.tile.TileDetector;
|
import storagecraft.tile.TileDetector;
|
||||||
|
|
||||||
public class MessageDetectorModeUpdate implements IMessage, IMessageHandler<MessageDetectorModeUpdate, IMessage>
|
public class MessageDetectorModeUpdate extends MessageHandlerPlayerToServer<MessageDetectorModeUpdate> implements IMessage
|
||||||
{
|
{
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -43,10 +41,8 @@ public class MessageDetectorModeUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageDetectorModeUpdate message, MessageContext context)
|
public void handle(MessageDetectorModeUpdate message, EntityPlayerMP player)
|
||||||
{
|
{
|
||||||
EntityPlayerMP player = context.getServerHandler().playerEntity;
|
|
||||||
|
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (tile instanceof TileDetector)
|
if (tile instanceof TileDetector)
|
||||||
@@ -66,7 +62,5 @@ public class MessageDetectorModeUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,9 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
|
||||||
import storagecraft.tile.TileGrid;
|
import storagecraft.tile.TileGrid;
|
||||||
|
|
||||||
public class MessageGridCraftingClear implements IMessage, IMessageHandler<MessageGridCraftingClear, IMessage>
|
public class MessageGridCraftingClear extends MessageHandlerPlayerToServer<MessageGridCraftingClear> implements IMessage
|
||||||
{
|
{
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -44,10 +42,8 @@ public class MessageGridCraftingClear implements IMessage, IMessageHandler<Messa
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageGridCraftingClear message, MessageContext context)
|
public void handle(MessageGridCraftingClear message, EntityPlayerMP player)
|
||||||
{
|
{
|
||||||
EntityPlayerMP player = context.getServerHandler().playerEntity;
|
|
||||||
|
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (tile instanceof TileGrid)
|
if (tile instanceof TileGrid)
|
||||||
@@ -70,7 +66,5 @@ public class MessageGridCraftingClear implements IMessage, IMessageHandler<Messa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,12 @@ public class MessageGridCraftingUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageGridCraftingUpdate message, MessageContext context)
|
public IMessage onMessage(final MessageGridCraftingUpdate message, MessageContext context)
|
||||||
|
{
|
||||||
|
Minecraft.getMinecraft().addScheduledTask(new Runnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
{
|
{
|
||||||
TileEntity tile = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
@@ -72,6 +77,8 @@ public class MessageGridCraftingUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
((TileGrid) tile).getCraftingMatrix().setInventorySlotContents(i, message.craftingMatrix[i]);
|
((TileGrid) tile).getCraftingMatrix().setInventorySlotContents(i, message.craftingMatrix[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package storagecraft.network;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
||||||
|
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
||||||
|
|
||||||
|
public abstract class MessageHandlerPlayerToServer<T extends IMessage> implements IMessageHandler<T, IMessage>
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public IMessage onMessage(final T message, MessageContext context)
|
||||||
|
{
|
||||||
|
final EntityPlayerMP player = context.getServerHandler().playerEntity;
|
||||||
|
|
||||||
|
player.getServerForPlayer().addScheduledTask(new Runnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
handle(message, player);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void handle(T message, EntityPlayerMP player);
|
||||||
|
}
|
||||||
@@ -5,11 +5,9 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
|
||||||
import storagecraft.tile.TileImporter;
|
import storagecraft.tile.TileImporter;
|
||||||
|
|
||||||
public class MessageImporterModeUpdate implements IMessage, IMessageHandler<MessageImporterModeUpdate, IMessage>
|
public class MessageImporterModeUpdate extends MessageHandlerPlayerToServer<MessageImporterModeUpdate> implements IMessage
|
||||||
{
|
{
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -43,10 +41,8 @@ public class MessageImporterModeUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageImporterModeUpdate message, MessageContext context)
|
public void handle(MessageImporterModeUpdate message, EntityPlayerMP player)
|
||||||
{
|
{
|
||||||
EntityPlayerMP player = context.getServerHandler().playerEntity;
|
|
||||||
|
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (tile instanceof TileImporter)
|
if (tile instanceof TileImporter)
|
||||||
@@ -55,7 +51,5 @@ public class MessageImporterModeUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
|
|
||||||
importer.setMode(importer.getMode() == TileImporter.MODE_WHITELIST ? TileImporter.MODE_BLACKLIST : TileImporter.MODE_WHITELIST);
|
importer.setMode(importer.getMode() == TileImporter.MODE_WHITELIST ? TileImporter.MODE_BLACKLIST : TileImporter.MODE_WHITELIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,9 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
|
||||||
import storagecraft.tile.IRedstoneModeSetting;
|
import storagecraft.tile.IRedstoneModeSetting;
|
||||||
|
|
||||||
public class MessageRedstoneModeUpdate implements IMessage, IMessageHandler<MessageRedstoneModeUpdate, IMessage>
|
public class MessageRedstoneModeUpdate extends MessageHandlerPlayerToServer<MessageRedstoneModeUpdate> implements IMessage
|
||||||
{
|
{
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -43,10 +41,8 @@ public class MessageRedstoneModeUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageRedstoneModeUpdate message, MessageContext context)
|
public void handle(MessageRedstoneModeUpdate message, EntityPlayerMP player)
|
||||||
{
|
{
|
||||||
EntityPlayerMP player = context.getServerHandler().playerEntity;
|
|
||||||
|
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (tile instanceof IRedstoneModeSetting)
|
if (tile instanceof IRedstoneModeSetting)
|
||||||
@@ -55,7 +51,5 @@ public class MessageRedstoneModeUpdate implements IMessage, IMessageHandler<Mess
|
|||||||
|
|
||||||
setting.setRedstoneMode(setting.getRedstoneMode().next());
|
setting.setRedstoneMode(setting.getRedstoneMode().next());
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,12 +6,10 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
|
||||||
import storagecraft.storage.StorageItem;
|
import storagecraft.storage.StorageItem;
|
||||||
import storagecraft.tile.TileController;
|
import storagecraft.tile.TileController;
|
||||||
|
|
||||||
public class MessageStoragePull implements IMessage, IMessageHandler<MessageStoragePull, IMessage>
|
public class MessageStoragePull extends MessageHandlerPlayerToServer<MessageStoragePull> implements IMessage
|
||||||
{
|
{
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -57,10 +55,8 @@ public class MessageStoragePull implements IMessage, IMessageHandler<MessageStor
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageStoragePull message, MessageContext context)
|
public void handle(MessageStoragePull message, EntityPlayerMP player)
|
||||||
{
|
{
|
||||||
EntityPlayerMP player = context.getServerHandler().playerEntity;
|
|
||||||
|
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (tile instanceof TileController)
|
if (tile instanceof TileController)
|
||||||
@@ -102,7 +98,5 @@ public class MessageStoragePull implements IMessage, IMessageHandler<MessageStor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,9 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
|
||||||
import storagecraft.tile.TileController;
|
import storagecraft.tile.TileController;
|
||||||
|
|
||||||
public class MessageStoragePush implements IMessage, IMessageHandler<MessageStoragePush, IMessage>
|
public class MessageStoragePush extends MessageHandlerPlayerToServer<MessageStoragePush> implements IMessage
|
||||||
{
|
{
|
||||||
private int x;
|
private int x;
|
||||||
private int y;
|
private int y;
|
||||||
@@ -52,10 +50,8 @@ public class MessageStoragePush implements IMessage, IMessageHandler<MessageStor
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMessage onMessage(MessageStoragePush message, MessageContext context)
|
public void handle(MessageStoragePush message, EntityPlayerMP player)
|
||||||
{
|
{
|
||||||
EntityPlayerMP player = context.getServerHandler().playerEntity;
|
|
||||||
|
|
||||||
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
|
||||||
|
|
||||||
if (tile instanceof TileController)
|
if (tile instanceof TileController)
|
||||||
@@ -105,12 +101,9 @@ public class MessageStoragePush implements IMessage, IMessageHandler<MessageStor
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
player.inventory.setInventorySlotContents(message.slot, null);
|
player.inventory.setInventorySlotContents(message.slot, null);
|
||||||
player.openContainer.detectAndSendChanges();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user