From fb0efe441456a92d81ebb9a53845c6aa42509bf3 Mon Sep 17 00:00:00 2001 From: Kam Date: Wed, 13 Mar 2024 20:38:19 -0400 Subject: [PATCH] Add Dialog Test Button and Fix oversaving spamming Packets to Client --- .../noppes/npcs/client/gui/SubGuiNpcDialog.java | 17 +++++++++++++++++ .../client/gui/global/GuiNPCManageDialogs.java | 4 ---- .../client/gui/global/GuiNPCManageQuest.java | 4 ---- .../client/gui/player/GuiDialogInteract.java | 15 +++++++++++++++ .../npcs/client/gui/util/GuiNPCInterface.java | 1 + .../resources/assets/customnpcs/lang/en_US.lang | 1 + 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiNpcDialog.java b/src/main/java/noppes/npcs/client/gui/SubGuiNpcDialog.java index fe83d277a..cb625cbbb 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiNpcDialog.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiNpcDialog.java @@ -1,15 +1,24 @@ package noppes.npcs.client.gui; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.CustomNpcs; +import noppes.npcs.NoppesUtilServer; +import noppes.npcs.Server; import noppes.npcs.client.Client; +import noppes.npcs.client.EntityUtil; +import noppes.npcs.client.NoppesUtil; import noppes.npcs.client.gui.global.GuiNPCManageDialogs; +import noppes.npcs.client.gui.player.GuiDialogInteract; import noppes.npcs.client.gui.select.GuiQuestSelection; import noppes.npcs.client.gui.select.GuiSoundSelection; import noppes.npcs.client.gui.util.*; import noppes.npcs.constants.EnumPacketServer; import noppes.npcs.controllers.data.Dialog; +import noppes.npcs.controllers.data.DialogOption; import noppes.npcs.controllers.data.PlayerMail; +import noppes.npcs.entity.EntityDialogNpc; public class SubGuiNpcDialog extends SubGuiInterface implements ISubGuiListener, GuiSelectionListener,ITextfieldListener { @@ -69,6 +78,7 @@ public class SubGuiNpcDialog extends SubGuiInterface implements ISubGuiListener, addLabel(new GuiNpcLabel(15, "dialog.disableEsc", guiLeft + 180, guiTop + 154 + 5)); addButton(new GuiNpcButton(16, guiLeft + 303, guiTop + 192, 50, 20, "gui.done")); + addButton(new GuiNpcButton(17, guiLeft + 303 - 55, guiTop + 192, 50, 20, "gui.test")); if(!parent.dialogQuestName.equals("")) getButton(7).setDisplayText(parent.dialogQuestName); @@ -124,6 +134,13 @@ public class SubGuiNpcDialog extends SubGuiInterface implements ISubGuiListener, if(id == 16){ close(); } + if(id == 17){ + EntityDialogNpc npc = new EntityDialogNpc(player.worldObj); + npc.display.name = "TEST"; + EntityUtil.Copy(player, npc); + GuiDialogInteract gui = new GuiDialogInteract(getParent(), npc, dialog); + NoppesUtil.openGUI(player, gui); + } } @Override diff --git a/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageDialogs.java b/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageDialogs.java index 5e61e605e..0954a8d8d 100644 --- a/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageDialogs.java +++ b/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageDialogs.java @@ -187,7 +187,6 @@ public class GuiNPCManageDialogs extends GuiNPCInterface2 implements IScrollGrou if(category != null && category.id >= 0){ // Add Dialog if(id == 1){ - saveType(true); String name = "New"; while(dialogData.containsKey(name)) name += "_"; @@ -201,7 +200,6 @@ public class GuiNPCManageDialogs extends GuiNPCInterface2 implements IScrollGrou } // Remove Dialog if(id == 2) { - saveType(true); if (dialogData.containsKey(dialogScroll.getSelected())) { Client.sendData(EnumPacketServer.DialogRemove, dialog.id, true); dialog = new Dialog(); @@ -210,14 +208,12 @@ public class GuiNPCManageDialogs extends GuiNPCInterface2 implements IScrollGrou } // Edit Dialog if(id == 0) { - saveType(true); if (dialogData.containsKey(dialogScroll.getSelected()) && dialog != null && dialog.id >= 0) { setSubGui(new SubGuiNpcDialog(this, dialog, category.id)); } } // Clone Dialog if(id == 3) { - saveType(true); if (dialogData.containsKey(dialogScroll.getSelected()) && dialog != null && dialog.id >= 0) { String name = dialog.title; while(dialogData.containsKey(name)) diff --git a/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageQuest.java b/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageQuest.java index 0b3ec4ce5..5343f3665 100644 --- a/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageQuest.java +++ b/src/main/java/noppes/npcs/client/gui/global/GuiNPCManageQuest.java @@ -191,7 +191,6 @@ public class GuiNPCManageQuest extends GuiNPCInterface2 implements IScrollGroup, if(category != null && category.id >= 0){ // Add Quest if(id == 1){ - saveType(true); String name = "New"; while(questData.containsKey(name)) name += "_"; @@ -205,7 +204,6 @@ public class GuiNPCManageQuest extends GuiNPCInterface2 implements IScrollGroup, } // Remove Quest if(id == 2) { - saveType(true); if (questData.containsKey(questScroll.getSelected())) { Client.sendData(EnumPacketServer.QuestRemove, quest.id, true); quest = new Quest(); @@ -214,14 +212,12 @@ public class GuiNPCManageQuest extends GuiNPCInterface2 implements IScrollGroup, } // Edit Quest if(id == 0) { - saveType(true); if (questData.containsKey(questScroll.getSelected()) && quest != null && quest.id >= 0) { setSubGui(new SubGuiNpcQuest(this, quest, category.id)); } } // Clone Quest if(id == 3) { - saveType(true); if (questData.containsKey(questScroll.getSelected()) && quest != null && quest.id >= 0) { String name = quest.title; while(questData.containsKey(name)) diff --git a/src/main/java/noppes/npcs/client/gui/player/GuiDialogInteract.java b/src/main/java/noppes/npcs/client/gui/player/GuiDialogInteract.java index bad2e68de..c850a0269 100644 --- a/src/main/java/noppes/npcs/client/gui/player/GuiDialogInteract.java +++ b/src/main/java/noppes/npcs/client/gui/player/GuiDialogInteract.java @@ -3,6 +3,7 @@ package noppes.npcs.client.gui.player; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; @@ -18,6 +19,7 @@ import noppes.npcs.client.NoppesUtil; import noppes.npcs.client.TextBlockClient; import noppes.npcs.client.controllers.MusicController; import noppes.npcs.client.gui.util.GuiNPCInterface; +import noppes.npcs.client.gui.util.GuiSelectionListener; import noppes.npcs.client.gui.util.IGuiClose; import noppes.npcs.constants.EnumOptionType; import noppes.npcs.constants.EnumPlayerPacket; @@ -36,6 +38,7 @@ import java.util.List; public class GuiDialogInteract extends GuiNPCInterface implements IGuiClose { + private GuiScreen parent; private Dialog dialog; private int selected = 0; private List lineBlocks = new ArrayList(); @@ -81,6 +84,11 @@ public class GuiDialogInteract extends GuiNPCInterface implements IGuiClose getResource("wheel4.png"),getResource("wheel5.png"),getResource("wheel6.png")}; } + public GuiDialogInteract(GuiScreen parent, EntityNPCInterface npc, Dialog dialog){ + this(npc, dialog); + this.parent = parent; + } + public void initGui(){ super.initGui(); isGrabbed = false; @@ -704,6 +712,13 @@ public class GuiDialogInteract extends GuiNPCInterface implements IGuiClose } } + @Override + public void close(){ + super.close(); + if(parent != null) + NoppesUtil.openGUI(player, parent); + } + @Override public void setClose(int i, NBTTagCompound data) { grabMouse(false); diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface.java b/src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface.java index 7cdd72efd..7f85a4823 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface.java @@ -12,6 +12,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import noppes.npcs.client.CustomNpcResourceListener; +import noppes.npcs.client.NoppesUtil; import noppes.npcs.client.TextBlockClient; import noppes.npcs.entity.EntityNPCInterface; import org.lwjgl.input.Keyboard; diff --git a/src/main/resources/assets/customnpcs/lang/en_US.lang b/src/main/resources/assets/customnpcs/lang/en_US.lang index d28f236b7..6b00243b0 100644 --- a/src/main/resources/assets/customnpcs/lang/en_US.lang +++ b/src/main/resources/assets/customnpcs/lang/en_US.lang @@ -108,6 +108,7 @@ gui.copy=Copy gui.clear=Clear gui.done=Done gui.paste=Paste +gui.test=Test gui.settings=Settings gui.enabled=Enabled gui.website=Website