From 27be10dfbf02bb1037016eb0af9821d7475f2115 Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:36:27 +0800 Subject: [PATCH] try to improve robustness of channels gui Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> --- .../structurelib/gui/GuiScreenConfigureChannels.java | 3 +-- .../structurelib/item/ItemConstructableTrigger.java | 4 +++- .../structurelib/structure/StructureUtility.java | 12 +++++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gtnewhorizon/structurelib/gui/GuiScreenConfigureChannels.java b/src/main/java/com/gtnewhorizon/structurelib/gui/GuiScreenConfigureChannels.java index 10dcba09..da7dfa6c 100644 --- a/src/main/java/com/gtnewhorizon/structurelib/gui/GuiScreenConfigureChannels.java +++ b/src/main/java/com/gtnewhorizon/structurelib/gui/GuiScreenConfigureChannels.java @@ -276,7 +276,7 @@ public class GuiScreenConfigureChannels extends GuiScreen implements IGuiScreen getButtonList().get(ADD_BTN).displayString = existing ? I18n.format("item.structurelib.constructableTrigger.gui.set") : I18n.format("item.structurelib.constructableTrigger.gui.add"); - getButtonList().get(ADD_BTN).enabled = !StringUtils.isBlank(value.getText()); + getButtonList().get(ADD_BTN).enabled = !StringUtils.isBlank(value.getText()) && Integer.parseInt(value.getText()) > 0; getButtonList().get(UNSET_BTN).enabled = existing && !StringUtils.isBlank(value.getText()); if (ChannelDataAccessor.hasSubChannel(trigger, SHOW_ERROR_CHANNEL)) { @@ -293,7 +293,6 @@ public class GuiScreenConfigureChannels extends GuiScreen implements IGuiScreen getButtonList().get(GT_NO_HATCH_BTN).displayString = "No Hatch"; } } - } private int getValue() { diff --git a/src/main/java/com/gtnewhorizon/structurelib/item/ItemConstructableTrigger.java b/src/main/java/com/gtnewhorizon/structurelib/item/ItemConstructableTrigger.java index 6aedef93..21996079 100644 --- a/src/main/java/com/gtnewhorizon/structurelib/item/ItemConstructableTrigger.java +++ b/src/main/java/com/gtnewhorizon/structurelib/item/ItemConstructableTrigger.java @@ -7,6 +7,8 @@ import static net.minecraft.util.StatCollector.translateToLocalFormatted; import java.util.List; +import com.gtnewhorizon.structurelib.gui.GuiScreenConfigureChannels; +import cpw.mods.fml.common.FMLCommonHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -32,7 +34,7 @@ public class ItemConstructableTrigger extends Item { if (player.isSneaking()) { StructureLib.instance().proxy().displayConfigGUI("registries"); } else { - player.openGui(StructureLib.instance(), 0, world, player.inventory.currentItem, 0, 0); + FMLCommonHandler.instance().showGuiScreen(new GuiScreenConfigureChannels(stack)); } } return super.onItemRightClick(stack, world, player); diff --git a/src/main/java/com/gtnewhorizon/structurelib/structure/StructureUtility.java b/src/main/java/com/gtnewhorizon/structurelib/structure/StructureUtility.java index f44e3095..cda7a1fe 100644 --- a/src/main/java/com/gtnewhorizon/structurelib/structure/StructureUtility.java +++ b/src/main/java/com/gtnewhorizon/structurelib/structure/StructureUtility.java @@ -1,5 +1,7 @@ package com.gtnewhorizon.structurelib.structure; +import static com.gtnewhorizon.structurelib.StructureLib.LOGGER; +import static com.gtnewhorizon.structurelib.StructureLib.PANIC_MODE; import static java.lang.Integer.MIN_VALUE; import java.util.Arrays; @@ -586,7 +588,7 @@ public class StructureUtility { TIER current = getter.apply(t); if (Objects.equals(notSet, current)) { if (Objects.equals(notSet, tier)) { - if (StructureLib.PANIC_MODE) { + if (PANIC_MODE) { throw new AssertionError("tierExtractor should never return notSet: " + notSet); } else { StructureLib.LOGGER.error("#########################################"); @@ -1348,6 +1350,14 @@ public class StructureUtility { if (block == null || defaultBlock == null) { throw new IllegalArgumentException(); } + if (block == Blocks.air) { + if (PANIC_MODE) { + throw new IllegalArgumentException("ofBlock() does not accept air. use isAir() instead"); + } else { + LOGGER.warn("ofBlock() does not accept air. use isAir() instead"); + return isAir(); + } + } if (block instanceof ICustomBlockSetting) { return new IStructureElement() {