Basic item grid actions (insert/extract)
This commit is contained in:
@@ -1,11 +1,13 @@
|
|||||||
package com.raoulvdberge.refinedstorage;
|
package com.raoulvdberge.refinedstorage;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.GridFactoryGridBlock;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.GridFactoryGridBlock;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.CableNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.CableNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.DiskDriveNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.DiskDriveNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.FluidStorageType;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.ItemStorageType;
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.ItemStorageType;
|
||||||
@@ -36,6 +38,7 @@ import net.minecraft.inventory.container.ContainerType;
|
|||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemGroup;
|
import net.minecraft.item.ItemGroup;
|
||||||
import net.minecraft.item.crafting.IRecipeSerializer;
|
import net.minecraft.item.crafting.IRecipeSerializer;
|
||||||
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.tileentity.TileEntityType;
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
@@ -85,18 +88,19 @@ public final class RS {
|
|||||||
API.instance().getStorageDiskRegistry().add(StorageDiskFactoryItem.ID, new StorageDiskFactoryItem());
|
API.instance().getStorageDiskRegistry().add(StorageDiskFactoryItem.ID, new StorageDiskFactoryItem());
|
||||||
API.instance().getStorageDiskRegistry().add(StorageDiskFactoryFluid.ID, new StorageDiskFactoryFluid());
|
API.instance().getStorageDiskRegistry().add(StorageDiskFactoryFluid.ID, new StorageDiskFactoryFluid());
|
||||||
|
|
||||||
API.instance().getNetworkNodeRegistry().add(DiskDriveNetworkNode.ID, (tag, world, pos) -> {
|
API.instance().getNetworkNodeRegistry().add(DiskDriveNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new DiskDriveNetworkNode(world, pos)));
|
||||||
DiskDriveNetworkNode drive = new DiskDriveNetworkNode(world, pos);
|
API.instance().getNetworkNodeRegistry().add(CableNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new CableNetworkNode(world, pos)));
|
||||||
drive.read(tag);
|
API.instance().getNetworkNodeRegistry().add(GridNetworkNode.ID, (tag, world, pos) -> readAndReturn(tag, new GridNetworkNode(world, pos, GridType.NORMAL)));
|
||||||
return drive;
|
|
||||||
});
|
|
||||||
|
|
||||||
API.instance().getNetworkNodeRegistry().add(CableNetworkNode.ID, (tag, world, pos) -> new CableNetworkNode(world, pos));
|
|
||||||
API.instance().getNetworkNodeRegistry().add(GridNetworkNode.ID, (tag, world, pos) -> new GridNetworkNode(world, pos, GridType.NORMAL));
|
|
||||||
|
|
||||||
API.instance().getGridManager().add(GridFactoryGridBlock.ID, new GridFactoryGridBlock());
|
API.instance().getGridManager().add(GridFactoryGridBlock.ID, new GridFactoryGridBlock());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private INetworkNode readAndReturn(CompoundNBT tag, NetworkNode node) {
|
||||||
|
node.read(tag);
|
||||||
|
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onRegisterRecipeSerializers(RegistryEvent.Register<IRecipeSerializer<?>> e) {
|
public void onRegisterRecipeSerializers(RegistryEvent.Register<IRecipeSerializer<?>> e) {
|
||||||
e.getRegistry().register(new UpgradeWithEnchantedBookRecipeSerializer().setRegistryName(RS.ID, "upgrade_with_enchanted_book"));
|
e.getRegistry().register(new UpgradeWithEnchantedBookRecipeSerializer().setRegistryName(RS.ID, "upgrade_with_enchanted_book"));
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridExtractUsage);
|
// TODO network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridExtractUsage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
|
|
||||||
ItemStack remainder = network.insertItem(stack, stack.getCount(), Action.PERFORM);
|
ItemStack remainder = network.insertItem(stack, stack.getCount(), Action.PERFORM);
|
||||||
|
|
||||||
network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridInsertUsage);
|
// TODO network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridInsertUsage);
|
||||||
|
|
||||||
return remainder;
|
return remainder;
|
||||||
}
|
}
|
||||||
@@ -148,7 +148,7 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
|
|
||||||
player.updateHeldItem();
|
player.updateHeldItem();
|
||||||
|
|
||||||
network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridInsertUsage);
|
// TODO network.getNetworkItemHandler().drainEnergy(player, RS.INSTANCE.config.wirelessGridInsertUsage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ public class GridNetworkNode extends NetworkNode implements IGridNetworkAware, I
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isActive() {
|
public boolean isActive() {
|
||||||
return world.getBlockState(pos).get(NodeBlock.CONNECTED);
|
return getBlockState().get(NodeBlock.CONNECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor {
|
|||||||
protected INetwork network;
|
protected INetwork network;
|
||||||
protected World world;
|
protected World world;
|
||||||
protected BlockPos pos;
|
protected BlockPos pos;
|
||||||
|
private BlockState cachedBlockState;
|
||||||
protected int ticks;
|
protected int ticks;
|
||||||
protected RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
protected RedstoneMode redstoneMode = RedstoneMode.IGNORE;
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -60,6 +61,14 @@ public abstract class NetworkNode implements INetworkNode, INetworkNodeVisitor {
|
|||||||
this.pos = pos;
|
this.pos = pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BlockState getBlockState() {
|
||||||
|
if (cachedBlockState == null) {
|
||||||
|
cachedBlockState = world.getBlockState(pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
return cachedBlockState;
|
||||||
|
}
|
||||||
|
|
||||||
public RedstoneMode getRedstoneMode() {
|
public RedstoneMode getRedstoneMode() {
|
||||||
return redstoneMode;
|
return redstoneMode;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.network;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
|
||||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
|
||||||
import net.minecraft.inventory.Container;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
|
||||||
|
|
||||||
public class MessageGridItemInsertHeld extends MessageHandlerPlayerToServer<MessageGridItemInsertHeld> implements IMessage {
|
|
||||||
private boolean single;
|
|
||||||
|
|
||||||
public MessageGridItemInsertHeld() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageGridItemInsertHeld(boolean single) {
|
|
||||||
this.single = single;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes(ByteBuf buf) {
|
|
||||||
single = buf.readBoolean();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void toBytes(ByteBuf buf) {
|
|
||||||
buf.writeBoolean(single);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handle(MessageGridItemInsertHeld message, ServerPlayerEntity player) {
|
|
||||||
Container container = player.openContainer;
|
|
||||||
|
|
||||||
if (container instanceof ContainerGrid) {
|
|
||||||
IGrid grid = ((ContainerGrid) container).getGrid();
|
|
||||||
|
|
||||||
if (grid.getItemHandler() != null) {
|
|
||||||
grid.getItemHandler().onInsertHeldItem(player, message.single);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.network;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
|
||||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
|
||||||
import net.minecraft.inventory.Container;
|
|
||||||
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
|
||||||
|
|
||||||
public class MessageGridItemPull extends MessageHandlerPlayerToServer<MessageGridItemPull> implements IMessage {
|
|
||||||
private int hash;
|
|
||||||
private int flags;
|
|
||||||
|
|
||||||
public MessageGridItemPull() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageGridItemPull(int hash, int flags) {
|
|
||||||
this.hash = hash;
|
|
||||||
this.flags = flags;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes(ByteBuf buf) {
|
|
||||||
hash = buf.readInt();
|
|
||||||
flags = buf.readInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void toBytes(ByteBuf buf) {
|
|
||||||
buf.writeInt(hash);
|
|
||||||
buf.writeInt(flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handle(MessageGridItemPull message, ServerPlayerEntity player) {
|
|
||||||
Container container = player.openContainer;
|
|
||||||
|
|
||||||
if (container instanceof ContainerGrid) {
|
|
||||||
IGrid grid = ((ContainerGrid) container).getGrid();
|
|
||||||
|
|
||||||
if (grid.getItemHandler() != null) {
|
|
||||||
grid.getItemHandler().onExtract(player, message.hash, message.flags);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,6 +4,8 @@ import com.raoulvdberge.refinedstorage.RS;
|
|||||||
import com.raoulvdberge.refinedstorage.network.disk.StorageDiskSizeRequestMessage;
|
import com.raoulvdberge.refinedstorage.network.disk.StorageDiskSizeRequestMessage;
|
||||||
import com.raoulvdberge.refinedstorage.network.disk.StorageDiskSizeResponseMessage;
|
import com.raoulvdberge.refinedstorage.network.disk.StorageDiskSizeResponseMessage;
|
||||||
import com.raoulvdberge.refinedstorage.network.grid.GridItemDeltaMessage;
|
import com.raoulvdberge.refinedstorage.network.grid.GridItemDeltaMessage;
|
||||||
|
import com.raoulvdberge.refinedstorage.network.grid.GridItemInsertHeldMessage;
|
||||||
|
import com.raoulvdberge.refinedstorage.network.grid.GridItemPullMessage;
|
||||||
import com.raoulvdberge.refinedstorage.network.grid.GridItemUpdateMessage;
|
import com.raoulvdberge.refinedstorage.network.grid.GridItemUpdateMessage;
|
||||||
import com.raoulvdberge.refinedstorage.network.tiledata.TileDataParameterMessage;
|
import com.raoulvdberge.refinedstorage.network.tiledata.TileDataParameterMessage;
|
||||||
import com.raoulvdberge.refinedstorage.network.tiledata.TileDataParameterUpdateMessage;
|
import com.raoulvdberge.refinedstorage.network.tiledata.TileDataParameterUpdateMessage;
|
||||||
@@ -34,6 +36,8 @@ public class NetworkHandler {
|
|||||||
handler.registerMessage(id++, TileDataParameterUpdateMessage.class, TileDataParameterUpdateMessage::encode, TileDataParameterUpdateMessage::decode, TileDataParameterUpdateMessage::handle);
|
handler.registerMessage(id++, TileDataParameterUpdateMessage.class, TileDataParameterUpdateMessage::encode, TileDataParameterUpdateMessage::decode, TileDataParameterUpdateMessage::handle);
|
||||||
handler.registerMessage(id++, GridItemUpdateMessage.class, GridItemUpdateMessage::encode, GridItemUpdateMessage::decode, GridItemUpdateMessage::handle);
|
handler.registerMessage(id++, GridItemUpdateMessage.class, GridItemUpdateMessage::encode, GridItemUpdateMessage::decode, GridItemUpdateMessage::handle);
|
||||||
handler.registerMessage(id++, GridItemDeltaMessage.class, GridItemDeltaMessage::encode, GridItemDeltaMessage::decode, GridItemDeltaMessage::handle);
|
handler.registerMessage(id++, GridItemDeltaMessage.class, GridItemDeltaMessage::encode, GridItemDeltaMessage::decode, GridItemDeltaMessage::handle);
|
||||||
|
handler.registerMessage(id++, GridItemPullMessage.class, GridItemPullMessage::encode, GridItemPullMessage::decode, GridItemPullMessage::handle);
|
||||||
|
handler.registerMessage(id++, GridItemInsertHeldMessage.class, GridItemInsertHeldMessage::encode, GridItemInsertHeldMessage::decode, GridItemInsertHeldMessage::handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendToServer(Object message) {
|
public void sendToServer(Object message) {
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.network.grid;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
|
import net.minecraft.inventory.container.Container;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class GridItemInsertHeldMessage {
|
||||||
|
private boolean single;
|
||||||
|
|
||||||
|
public GridItemInsertHeldMessage(boolean single) {
|
||||||
|
this.single = single;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GridItemInsertHeldMessage decode(PacketBuffer buf) {
|
||||||
|
return new GridItemInsertHeldMessage(buf.readBoolean());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void encode(GridItemInsertHeldMessage message, PacketBuffer buf) {
|
||||||
|
buf.writeBoolean(message.single);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handle(GridItemInsertHeldMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||||
|
ServerPlayerEntity player = ctx.get().getSender();
|
||||||
|
|
||||||
|
ctx.get().enqueueWork(() -> {
|
||||||
|
if (player != null) {
|
||||||
|
Container container = player.openContainer;
|
||||||
|
|
||||||
|
if (container instanceof GridContainer) {
|
||||||
|
IGrid grid = ((GridContainer) container).getGrid();
|
||||||
|
|
||||||
|
if (grid.getItemHandler() != null) {
|
||||||
|
grid.getItemHandler().onInsertHeldItem(player, message.single);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ctx.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.network.grid;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
|
import net.minecraft.inventory.container.Container;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class GridItemPullMessage {
|
||||||
|
private int hash;
|
||||||
|
private int flags;
|
||||||
|
|
||||||
|
public GridItemPullMessage(int hash, int flags) {
|
||||||
|
this.hash = hash;
|
||||||
|
this.flags = flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GridItemPullMessage decode(PacketBuffer buf) {
|
||||||
|
return new GridItemPullMessage(buf.readInt(), buf.readInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void encode(GridItemPullMessage message, PacketBuffer buf) {
|
||||||
|
buf.writeInt(message.hash);
|
||||||
|
buf.writeInt(message.flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handle(GridItemPullMessage message, Supplier<NetworkEvent.Context> ctx) {
|
||||||
|
ServerPlayerEntity player = ctx.get().getSender();
|
||||||
|
|
||||||
|
ctx.get().enqueueWork(() -> {
|
||||||
|
if (player != null) {
|
||||||
|
Container container = player.openContainer;
|
||||||
|
|
||||||
|
if (container instanceof GridContainer) {
|
||||||
|
IGrid grid = ((GridContainer) container).getGrid();
|
||||||
|
|
||||||
|
if (grid.getItemHandler() != null) {
|
||||||
|
grid.getItemHandler().onExtract(player, message.hash, message.flags);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
ctx.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,8 @@ import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.GridNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.render.ElementDrawers;
|
import com.raoulvdberge.refinedstorage.apiimpl.render.ElementDrawers;
|
||||||
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
import com.raoulvdberge.refinedstorage.container.GridContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.network.grid.GridItemInsertHeldMessage;
|
||||||
|
import com.raoulvdberge.refinedstorage.network.grid.GridItemPullMessage;
|
||||||
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
|
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
|
||||||
import com.raoulvdberge.refinedstorage.screen.IScreenInfoProvider;
|
import com.raoulvdberge.refinedstorage.screen.IScreenInfoProvider;
|
||||||
import com.raoulvdberge.refinedstorage.screen.grid.sorting.*;
|
import com.raoulvdberge.refinedstorage.screen.grid.sorting.*;
|
||||||
@@ -215,7 +217,7 @@ public class GridScreen extends BaseScreen<GridContainer> implements IScreenInfo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getSearchFieldText() {
|
public String getSearchFieldText() {
|
||||||
return searchField == null ? "" : searchField.getText();
|
return searchField.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -441,7 +443,11 @@ public class GridScreen extends BaseScreen<GridContainer> implements IScreenInfo
|
|||||||
ItemStack held = container.getPlayer().inventory.getItemStack();
|
ItemStack held = container.getPlayer().inventory.getItemStack();
|
||||||
|
|
||||||
if (isOverSlotArea(mouseX - guiLeft, mouseY - guiTop) && !held.isEmpty() && (clickedButton == 0 || clickedButton == 1)) {
|
if (isOverSlotArea(mouseX - guiLeft, mouseY - guiTop) && !held.isEmpty() && (clickedButton == 0 || clickedButton == 1)) {
|
||||||
// @TODO RS.INSTANCE.network.sendToServer(grid.getGridType() == GridType.FLUID ? new MessageGridFluidInsertHeld() : new MessageGridItemInsertHeld(clickedButton == 1));
|
if (grid.getGridType() == GridType.NORMAL) {
|
||||||
|
RS.NETWORK_HANDLER.sendToServer(new GridItemInsertHeldMessage(clickedButton == 1));
|
||||||
|
} else if (grid.getGridType() == GridType.FLUID) {
|
||||||
|
// @TODO RS.INSTANCE.network.sendToServer(new MessageGridFluidInsertHeld());
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -472,7 +478,7 @@ public class GridScreen extends BaseScreen<GridContainer> implements IScreenInfo
|
|||||||
flags |= IItemGridHandler.EXTRACT_SINGLE;
|
flags |= IItemGridHandler.EXTRACT_SINGLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @TODO RS.INSTANCE.network.sendToServer(new MessageGridItemPull(stack.getHash(), flags));
|
RS.NETWORK_HANDLER.sendToServer(new GridItemPullMessage(stack.getHash(), flags));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public abstract class BaseGridView implements IGridView {
|
|||||||
|
|
||||||
List<Predicate<IGridStack>> filters = GridFilterParser.getFilters(
|
List<Predicate<IGridStack>> filters = GridFilterParser.getFilters(
|
||||||
grid,
|
grid,
|
||||||
screen.getSearchField() != null ? screen.getSearchField().getText() : "",
|
screen.getSearchFieldText(),
|
||||||
(grid.getTabSelected() >= 0 && grid.getTabSelected() < grid.getTabs().size()) ? grid.getTabs().get(grid.getTabSelected()).getFilters() : grid.getFilters()
|
(grid.getTabSelected() >= 0 && grid.getTabSelected() < grid.getTabs().size()) ? grid.getTabs().get(grid.getTabSelected()).getFilters() : grid.getFilters()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -28,11 +28,13 @@ public class NetworkUtils {
|
|||||||
if (proxy != null) {
|
if (proxy != null) {
|
||||||
INetworkNode node = proxy.getNode();
|
INetworkNode node = proxy.getNode();
|
||||||
|
|
||||||
for (Permission permission : permissionsRequired) {
|
if (node.getNetwork() != null) {
|
||||||
if (!node.getNetwork().getSecurityManager().hasPermission(permission, player)) {
|
for (Permission permission : permissionsRequired) {
|
||||||
WorldUtils.sendNoPermissionMessage(player);
|
if (!node.getNetwork().getSecurityManager().hasPermission(permission, player)) {
|
||||||
|
WorldUtils.sendNoPermissionMessage(player);
|
||||||
|
|
||||||
return true; // Avoid placing blocks
|
return true; // Avoid placing blocks
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user