aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-08-03 17:23:41 +0900
committersyeyoung <cyong06@naver.com>2021-08-03 17:23:41 +0900
commit982e460c861579f49959c08e25505a27e9c6b3f0 (patch)
tree4cccbe086fd69f5f5be138a3eb24237e0211b76e /src
parentd1c36c2412b98350f8336e38361e49b3655982d5 (diff)
downloadSkyblock-Dungeons-Guide-982e460c861579f49959c08e25505a27e9c6b3f0.tar.gz
Skyblock-Dungeons-Guide-982e460c861579f49959c08e25505a27e9c6b3f0.tar.bz2
Skyblock-Dungeons-Guide-982e460c861579f49959c08e25505a27e9c6b3f0.zip
Too many changes to describe
Config gui overhaul. v2
Diffstat (limited to 'src')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java54
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/GuiConfigV2.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MCategoryElement.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeature.java10
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeatureEdit.java30
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MPanelCategory.java16
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/NestedCategory.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/RootConfigPanel.java79
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/AbstractFeature.java4
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/FeatureParameter.java17
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/FeatureRegistry.java44
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureAutoReparty.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureBoxRealLivid.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureHideAnimals.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureTerracotaTimer.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureThornBearPercentage.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureThornSpiritBowTimer.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/FeatureWarningOnPortal.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/terminal/FeatureSimonSaysSolver.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/boss/terminal/FeatureTerminalSolvers.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureBoxBats.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureBoxSkelemaster.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureBoxStarMobs.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonCurrentRoomSecrets.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonDeaths.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonMilestone.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonRealTime.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonRoomName.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonSBTime.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonScore.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonSecrets.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonTombs.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureHideNameTags.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeaturePlayerESP.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureWarnLowHealth.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureWatcherWarning.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureAutoAcceptReparty.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureCooldownCounter.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureCopyMessages.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureDecreaseExplosionSound.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureDisableMessage.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeaturePenguins.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureRepartyCommand.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureTooltipDungeonStat.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureTooltipPrice.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/FeatureUpdateAlarm.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/etc/ability/FeatureAbilityCooldown.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/APIKey.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/customgui/FeatureCustomPartyFinder.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/playerpreview/DataRendererEditor.java7
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/party/playerpreview/FeatureViewPlayerOnJoin.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/secret/FeatureMechanicBrowse.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/secret/FeatureSoulRoomWarning.java2
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/text/PanelTextParameterConfig.java270
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/text/TextHUDFeature.java7
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/gui/elements/MButton.java8
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MModal.java87
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MModalConfirmation.java88
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MRootPanel.java1
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/gui/elements/MTextField.java2
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/gui/elements/MToggleButton.java5
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/utils/RenderUtils.java29
62 files changed, 648 insertions, 209 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java
index 437c1689..84c677ab 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/commands/CommandDungeonsGuide.java
@@ -22,6 +22,7 @@ import com.google.gson.JsonObject;
import kr.syeyoung.dungeonsguide.DungeonsGuide;
import kr.syeyoung.dungeonsguide.SkyblockStatus;
import kr.syeyoung.dungeonsguide.config.guiconfig.nyu.GuiConfigV2;
+import kr.syeyoung.dungeonsguide.config.guiconfig.nyu.NestedCategory;
import kr.syeyoung.dungeonsguide.cosmetics.CosmeticsManager;
import kr.syeyoung.dungeonsguide.dungeon.DungeonContext;
import kr.syeyoung.dungeonsguide.dungeon.MapProcessor;
@@ -35,6 +36,7 @@ import kr.syeyoung.dungeonsguide.dungeon.mechanics.*;
import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoomInfoRegistry;
import kr.syeyoung.dungeonsguide.events.DungeonLeftEvent;
+import kr.syeyoung.dungeonsguide.features.AbstractFeature;
import kr.syeyoung.dungeonsguide.features.FeatureRegistry;
import kr.syeyoung.dungeonsguide.features.impl.party.playerpreview.FeatureViewPlayerOnJoin;
import kr.syeyoung.dungeonsguide.features.impl.party.api.ApiFetchur;
@@ -61,6 +63,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatStyle;
+import net.minecraft.util.Tuple;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.common.MinecraftForge;
@@ -78,10 +81,8 @@ import java.io.*;
import java.security.*;
import java.security.cert.CertificateException;
import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
+import java.util.List;
import java.util.regex.Pattern;
public class CommandDungeonsGuide extends CommandBase {
@@ -489,6 +490,51 @@ public class CommandDungeonsGuide extends CommandBase {
} else if (args[0].equals("CloseContext")) {
DungeonsGuide.getDungeonsGuide().getSkyblockStatus().setForceIsOnDungeon(false);
DungeonsGuide.getDungeonsGuide().getSkyblockStatus().setContext(null);
+ } else if (args[0].equals("dumpsettings")) {
+ NestedCategory root = new NestedCategory("ROOT");
+ for (AbstractFeature abstractFeature : FeatureRegistry.getFeatureList()) {
+ String category = abstractFeature.getCategory();
+ NestedCategory currentRoot = root;
+ for (String s : category.split("\\.")) {
+ NestedCategory finalCurrentRoot = currentRoot;
+ if (currentRoot.children().containsKey(s))
+ currentRoot = currentRoot.children().get(s);
+ else {
+ currentRoot.child(currentRoot = new NestedCategory(finalCurrentRoot.categoryFull()+"."+s));
+ }
+ }
+ }
+
+ StringBuilder stringBuilder = new StringBuilder();
+ StringBuilder stringBuilder2 = new StringBuilder();
+
+ Stack<Tuple<NestedCategory, Integer>> stak = new Stack<>();
+ stak.push(new Tuple<>(root, 0));
+ Set<NestedCategory> discovered = new HashSet<>();
+ while (!stak.isEmpty()) {
+ Tuple<NestedCategory, Integer> n = stak.pop();
+ if (discovered.contains(n.getFirst())) continue;
+ discovered.add(n.getFirst());
+ for (Map.Entry<String, NestedCategory> stringNestedCategoryEntry : n.getFirst().children().entrySet()) {
+ stak.push(new Tuple<>(stringNestedCategoryEntry.getValue(), n.getSecond() + 1));
+ }
+
+ if (n.getFirst().categoryFull().equals("ROOT")) continue;
+
+ String prefix = "";
+ for (int i = 0; i < n.getSecond()-1; i++) {
+ prefix += " ";
+ }
+
+ List<AbstractFeature> abstractFeatureList = FeatureRegistry.getFeaturesByCategory().getOrDefault(n.getFirst().categoryFull().substring(5), Collections.emptyList());
+ stringBuilder.append(prefix).append("- C ").append(n.getFirst().categoryFull()).append("\n");
+ stringBuilder2.append(n.getFirst().categoryFull()).append("\n");
+ for (AbstractFeature abstractFeature : abstractFeatureList) {
+ stringBuilder.append(prefix).append(" - F ").append(abstractFeature.getName()).append(" / ").append(abstractFeature.getDescription().replace("\n", "$NEW_LINE$")).append("\n");
+ }
+ }
+ System.out.println(stringBuilder.toString());
+ System.out.println(stringBuilder2.toString());
} else {
sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg §7-§fOpens configuration gui"));
sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg gui §7-§fOpens configuration gui"));
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/GuiConfigV2.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/GuiConfigV2.java
index 267d9a5a..8b3e3eb4 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/GuiConfigV2.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/GuiConfigV2.java
@@ -31,7 +31,6 @@ public class GuiConfigV2 extends MGui {
public GuiConfigV2() {
rootConfigPanel = new RootConfigPanel(this);
- rootConfigPanel.setPageGenerator(ConfigPanelCreator.INSTANCE);
getMainPanel().add(rootConfigPanel);
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MCategoryElement.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MCategoryElement.java
index 67087dd8..7df00626 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MCategoryElement.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MCategoryElement.java
@@ -22,8 +22,10 @@ import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.utils.RenderUtils;
import kr.syeyoung.dungeonsguide.utils.cursor.EnumCursor;
import net.minecraft.client.Minecraft;
+import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.Gui;
+import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import java.awt.*;
@@ -48,7 +50,7 @@ public class MCategoryElement extends MPanel {
if (rootConfigPanel.getCurrentPage().equals(category)) {
clip(0,scissor.y, Minecraft.getMinecraft().displayWidth, scissor.height);
Gui.drawRect(leftPad - offsetX, 0, getBounds().width, getBounds().height, RenderUtils.blendAlpha(0x141414, 0.13f));
- } else if (lastAbsClip.contains(absMousex, absMousey)) {
+ } else if (lastAbsClip.contains(absMousex, absMousey) && getTooltipsOpen() == 0) {
clip(0,scissor.y, Minecraft.getMinecraft().displayWidth, scissor.height);
Gui.drawRect(leftPad - offsetX, 0, getBounds().width, getBounds().height, RenderUtils.blendAlpha(0x141414, 0.09f));
}
@@ -69,8 +71,10 @@ public class MCategoryElement extends MPanel {
@Override
public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) {
- if (!lastAbsClip.contains(absMouseX, absMouseY)) { return; }
+ if (!lastAbsClip.contains(absMouseX, absMouseY) || getTooltipsOpen() > 0) { return; }
if (onClick != null) onClick.run();
+ Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F));
+
}
@Override
public void mouseMoved(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0) {
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeature.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeature.java
index 15b36216..7585d56c 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeature.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeature.java
@@ -106,9 +106,15 @@ public class MFeature extends MPanel {
@Override
public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) {
- Gui.drawRect(0,0,getBounds().width, getBounds().height, RenderUtils.blendAlpha(0x141414, 0.12f));
+
+ int border = RenderUtils.blendAlpha(0x141414, 0.12f);
+ if (!panel.getSearchWord().isEmpty() && (feature.getName().contains(panel.getSearchWord()) || feature.getDescription().contains(panel.getSearchWord()))) {
+ border = 0xFF02EE67;
+ }
+
+ Gui.drawRect(0,0,getBounds().width, getBounds().height,border);
Gui.drawRect(1,18,getBounds().width -1, getBounds().height-1, RenderUtils.blendAlpha(0x141414, 0.15f));
- Gui.drawRect(0,17,getBounds().width, 18,RenderUtils.blendAlpha(0x141414, 0.12f));
+ Gui.drawRect(1,1,getBounds().width-1, 18, RenderUtils.blendAlpha(0x141414, 0.12f));
FontRenderer fr = Minecraft.getMinecraft().fontRendererObj;
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeatureEdit.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeatureEdit.java
index 3256c408..fbc1924f 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeatureEdit.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MFeatureEdit.java
@@ -23,6 +23,8 @@ import kr.syeyoung.dungeonsguide.features.FeatureParameter;
import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.gui.elements.MButton;
import kr.syeyoung.dungeonsguide.gui.elements.MList;
+import kr.syeyoung.dungeonsguide.gui.elements.MModal;
+import kr.syeyoung.dungeonsguide.gui.elements.MModalConfirmation;
import java.awt.*;
import java.util.HashMap;
@@ -30,7 +32,7 @@ import java.util.Map;
public class MFeatureEdit extends MPanel {
private MList list;
- private MButton goBack;
+ private MButton goBack, resetToDefault;
private RootConfigPanel rootConfigPanel;
private AbstractFeature abstractFeature;
@@ -48,6 +50,30 @@ public class MFeatureEdit extends MPanel {
goBack.setText("< Go Back");
goBack.setOnActionPerformed(rootConfigPanel::goBack);
add(goBack);
+ resetToDefault = new MButton();
+ resetToDefault.setText("Reset To Default");
+ resetToDefault.setForeground(Color.red);
+ resetToDefault.setOnActionPerformed(() -> {
+ openResetConfirmation();
+ });
+ add(resetToDefault);
+ }
+
+ public void openResetConfirmation() {
+ MModalConfirmation mModal = new MModalConfirmation("Are you sure?",
+ "Resetting to default will reset your configuration for the selected feature to default",
+ () -> {
+ for (FeatureParameter parameter : abstractFeature.getParameters()) {
+ parameter.setToDefault();
+ }
+ abstractFeature.onParameterReset();
+ rootConfigPanel.invalidatePage(abstractFeature.getEditRoute(rootConfigPanel));
+ }, () -> {});
+ mModal.setScale(getScale());
+ mModal.getYes().setBorder(0xFFFF0000);
+ mModal.getYes().setText("Yes, Reset it");
+ mModal.getNo().setText("Cancel");
+ mModal.open(MFeatureEdit.this);
}
public void addParameterEdit(String name, MPanel paramEdit) {
@@ -73,9 +99,11 @@ public class MFeatureEdit extends MPanel {
public void setBounds(Rectangle bounds) {
super.setBounds(bounds);
goBack.setBounds(new Rectangle(5,5,75,15));
+ resetToDefault.setBounds(new Rectangle(bounds.width - 105, 5, 100, 15));
list.setBounds(new Rectangle(5,25,bounds.width - 10, bounds.height - 10));
list.realignChildren();
+
}
@Override
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MPanelCategory.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MPanelCategory.java
index 5df29c3b..c2033f7a 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MPanelCategory.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/MPanelCategory.java
@@ -45,13 +45,15 @@ public class MPanelCategory extends MPanel {
for (NestedCategory value : nestedCategory.children().values()) {
list.add(new MCategory(value, rootConfigPanel));
}
- String actualCategory = nestedCategory.categoryFull().substring(5);
- if (FeatureRegistry.getFeaturesByCategory().containsKey(actualCategory))
- for (AbstractFeature abstractFeature : FeatureRegistry.getFeaturesByCategory().get(actualCategory)) {
- MFeature mFeature = new MFeature(abstractFeature, rootConfigPanel);
- list.add(mFeature);
- mFeature.setHover(new Color(94, 94, 94, 255));
- }
+ if (nestedCategory.parent() != null) {
+ String actualCategory = nestedCategory.categoryFull().substring(5);
+ if (FeatureRegistry.getFeaturesByCategory().containsKey(actualCategory))
+ for (AbstractFeature abstractFeature : FeatureRegistry.getFeaturesByCategory().get(actualCategory)) {
+ MFeature mFeature = new MFeature(abstractFeature, rootConfigPanel);
+ list.add(mFeature);
+ mFeature.setHover(new Color(94, 94, 94, 255));
+ }
+ }
list.realignChildren();
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/NestedCategory.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/NestedCategory.java
index ac3b8f49..25e262b3 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/NestedCategory.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/NestedCategory.java
@@ -19,6 +19,8 @@
package kr.syeyoung.dungeonsguide.config.guiconfig.nyu;
import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.HashMap;
@@ -26,9 +28,13 @@ import java.util.Map;
@Data
@Accessors(chain = true, fluent = true)
+public
class NestedCategory {
private final String categoryFull;
+ @EqualsAndHashCode.Exclude
private String categoryName;
+ @EqualsAndHashCode.Exclude
+ @ToString.Exclude
private NestedCategory parent;
public NestedCategory(String categoryFull) {
@@ -36,6 +42,8 @@ class NestedCategory {
this.categoryName = categoryFull.substring(categoryFull.lastIndexOf(".") + 1);
}
+ @EqualsAndHashCode.Exclude
+ @ToString.Exclude
private Map<String, NestedCategory> children = new HashMap<>();
public NestedCategory child(NestedCategory child) {
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/RootConfigPanel.java b/src/main/java/kr/syeyoung/dungeonsguide/config/guiconfig/nyu/RootConfigPanel.java
index e2b97b7f..d43a45da 100644
--- a/src/main/java/kr/syeyo