From b8d68f771fffa0437db13e5ba7ea45ba14ddd535 Mon Sep 17 00:00:00 2001 From: zeng-github01 <95841646+zeng-github01@users.noreply.github.com> Date: Thu, 2 Apr 2026 08:38:04 +0800 Subject: [PATCH] refactor: disable auto-open GUI for BlockBorder and BlockNpcRedstone - Removed auto-open GUI logic upon placing BlockBorder and BlockNpcRedstone. - Resolved a race condition where the GUI would open before NBT/Permission data was fully synced from the server, causing "Permission Denied" or empty states. - Fixed a logic bug in SubGuiNpcAvailabilityDialog where 'questId' was incorrectly used instead of 'dialogId' when opening the selection picker. - This change ensures better UX as manual interaction guarantees all data is properly initialized. --- src/main/java/noppes/npcs/blocks/BlockBorder.java | 4 ---- src/main/java/noppes/npcs/blocks/BlockNpcRedstone.java | 7 ------- .../npcs/client/gui/SubGuiNpcAvailabilityDialog.java | 8 ++++---- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/main/java/noppes/npcs/blocks/BlockBorder.java b/src/main/java/noppes/npcs/blocks/BlockBorder.java index 3781b9c72..db7761b1c 100644 --- a/src/main/java/noppes/npcs/blocks/BlockBorder.java +++ b/src/main/java/noppes/npcs/blocks/BlockBorder.java @@ -67,10 +67,6 @@ public void onBlockPlacedBy(World par1World, int x, int y, int z, EntityLivingBa } tile.rotation = l; - - if (par5EntityLivingBase instanceof EntityPlayer && par1World.isRemote) { - CustomNpcs.proxy.openGui(x, y, z, EnumGuiType.Border, (EntityPlayer) par5EntityLivingBase); - } } private TileBorder getTile(World world, int x, int y, int z) { diff --git a/src/main/java/noppes/npcs/blocks/BlockNpcRedstone.java b/src/main/java/noppes/npcs/blocks/BlockNpcRedstone.java index e97096c72..6f89b442a 100644 --- a/src/main/java/noppes/npcs/blocks/BlockNpcRedstone.java +++ b/src/main/java/noppes/npcs/blocks/BlockNpcRedstone.java @@ -49,13 +49,6 @@ public void onBlockAdded(World par1World, int par2, int par3, int par4) { par1World.notifyBlocksOfNeighborChange(par2, par3, par4 + 1, this); } - @Override - public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack item) { - if (entityliving instanceof EntityPlayer && world.isRemote) { - CustomNpcs.proxy.openGui(i, j, k, EnumGuiType.RedstoneBlock, (EntityPlayer) entityliving); - } - } - @Override public void onBlockDestroyedByPlayer(World par1World, int par2, int par3, int par4, int par5) { onBlockAdded(par1World, par2, par3, par4); diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiNpcAvailabilityDialog.java b/src/main/java/noppes/npcs/client/gui/SubGuiNpcAvailabilityDialog.java index 802ede067..d3d93daa2 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiNpcAvailabilityDialog.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiNpcAvailabilityDialog.java @@ -112,19 +112,19 @@ protected void actionPerformed(GuiButton guibutton) { } if (button.id == 10) { slot = 1; - setSubGui(new GuiDialogSelection(availabitily.questId)); + setSubGui(new GuiDialogSelection(availabitily.dialogId)); } if (button.id == 11) { slot = 2; - setSubGui(new GuiDialogSelection(availabitily.quest2Id)); + setSubGui(new GuiDialogSelection(availabitily.dialog2Id)); } if (button.id == 12) { slot = 3; - setSubGui(new GuiDialogSelection(availabitily.quest3Id)); + setSubGui(new GuiDialogSelection(availabitily.dialog3Id)); } if (button.id == 13) { slot = 4; - setSubGui(new GuiDialogSelection(availabitily.quest4Id)); + setSubGui(new GuiDialogSelection(availabitily.dialog4Id)); } if (button.id == 20) { availabitily.dialogId = -1;