From 3922d6ca26c6ce9cd8370ea59015224b48c0f204 Mon Sep 17 00:00:00 2001 From: repo-alt Date: Thu, 9 Dec 2021 23:21:34 +0300 Subject: Allow toolbox usage for maintenance w/o opening GUI (#790) (Also resolves https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/9044) --- .../GT_MetaTileEntity_Hatch_Maintenance.java | 43 ++++++++++++---------- 1 file changed, 24 insertions(+), 19 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java index 88506d928e..e29144f560 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java @@ -1,5 +1,6 @@ package gregtech.api.metatileentity.implementations; +import com.mojang.authlib.GameProfile; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; @@ -17,7 +18,6 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import ic2.core.IHasGui; -import ic2.core.Ic2Items; import ic2.core.item.ItemToolbox; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -27,6 +27,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import java.util.HashSet; +import net.minecraftforge.common.util.FakePlayer; + import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE_IDLE; @@ -131,8 +133,17 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch @Override public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) { - if (aBaseMetaTileEntity.isClientSide()) return true; - if (aSide == aBaseMetaTileEntity.getFrontFacing()) aBaseMetaTileEntity.openGUI(aPlayer); + if (aBaseMetaTileEntity.isClientSide()) + return true; + if (aSide == aBaseMetaTileEntity.getFrontFacing()) { + // only allow OC robot fake player + if (aPlayer instanceof FakePlayer && !aPlayer.getGameProfile().getName().endsWith(".robot")) + return true; + if (aPlayer.getCurrentEquippedItem() != null && aPlayer.getCurrentEquippedItem().getItem() instanceof ItemToolbox) + applyToolbox(aPlayer.getCurrentEquippedItem(), aPlayer); + else + aBaseMetaTileEntity.openGUI(aPlayer); + } return true; } @@ -225,23 +236,10 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch // Allow IC2 Toolbox with tools to function for maint issues. if (aStack.getItem() instanceof ItemToolbox && aPlayer instanceof EntityPlayer) { - EntityPlayer aPlayerEntity = (EntityPlayer) aPlayer; - ItemToolbox aToolbox = (ItemToolbox) aStack.getItem(); - IHasGui aToolboxGUI = aToolbox.getInventory(aPlayerEntity, aStack); - HashSet aToolboxContents = new HashSet(); - for (int i=0; i