diff options
Diffstat (limited to 'src/main/java')
31 files changed, 491 insertions, 208 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/Config.java b/src/main/java/kr/syeyoung/dungeonsguide/Config.java deleted file mode 100644 index eec433f9..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/Config.java +++ /dev/null @@ -1,59 +0,0 @@ -package kr.syeyoung.dungeonsguide; - -import net.minecraftforge.common.config.Configuration; -import net.minecraftforge.common.config.Property; - -public class Config { - public static Configuration configuration; - - public static final String CATEGORY_ADVANCED = "Advanced"; - public static final String CATEGORY_PUZZLE_SOLVER = "Solver"; - public static final String CATEGORY_QOL = "Tooltips"; - - public static boolean DEBUG = true; - - public static boolean solver_riddle; - public static boolean solver_kahoot; - public static boolean solver_blaze; - public static boolean solver_tictactoe; - public static boolean solver_icepath; - public static boolean solver_icesilverfish; - public static boolean solver_waterpuzzle; - public static boolean solver_box; - public static boolean solver_creeper; - public static boolean solver_teleport; - - - public static boolean itemtooltip_dungeonstat; - public static boolean itemtooltip_price; - - public static void syncConfig(boolean load) { // Gets called from preInit - try { - // Load config - if (load) - configuration.load(); - - // Read props from config - solver_riddle = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "riddle", "true", "Riddle puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_kahoot = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "kahoot", "true", "Omnicrescent puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_teleport = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "teleport", "true", "Teleport puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_creeper = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "creeper", "true", "Creeper puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_blaze = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "blaze", "true", "Blaze puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_tictactoe = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "tictactoe", "true", "Tictactoe puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_icepath = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "icepath", "true", "Icepath puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_icesilverfish = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "silverfish", "true", "Silverfish puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_waterpuzzle = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "water", "true", "Water puzzle solver", Property.Type.BOOLEAN).getBoolean(); - solver_box = configuration.get(Config.CATEGORY_PUZZLE_SOLVER, "box", "true", "Box puzzle solver", Property.Type.BOOLEAN).getBoolean(); - - itemtooltip_dungeonstat = configuration.get(Config.CATEGORY_QOL, "dungeonstat", "true", "Show what floor dungeon item was obtained", Property.Type.BOOLEAN).getBoolean(); - itemtooltip_price = configuration.get(Config.CATEGORY_QOL, "price", "true", "Show prices of any item", Property.Type.BOOLEAN).getBoolean(); - - DEBUG = configuration.get(Config.CATEGORY_ADVANCED, "debug","false", "Enable debug mode", Property.Type.BOOLEAN).getBoolean(); // Comment - } catch (Exception e) { - // Failed reading/writing, just continue - } finally { - // Save props to config IF config changed - if (configuration.hasChanged()) configuration.save(); - } - } -} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/a.java b/src/main/java/kr/syeyoung/dungeonsguide/a.java index 23875cb7..2ce0e96c 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/a.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/a.java @@ -40,77 +40,77 @@ public class a d.init(a); } -// @EventHandler -// public void a(FMLPreInitializationEvent a) { -// b b = new b(); -// String c = null; -// try { -// c = b.b(); -// if (c != null) { -// this.a = this; -// URL.setURLStreamHandlerFactory(new c(b)); -// LaunchClassLoader d = (LaunchClassLoader) a.class.getClassLoader(); -// d.addURL(new URL("z:///")); -// -// try { -// this.d = new e(b); -// this.d.pre(a); -// } catch (Exception e) { -// e.printStackTrace(); -// -// a(new String[]{ -// "Couldn't load Dungeons Guide", -// "Please contact developer if this problem persists after restart" -// }); -// } -// return; -// } -// } catch (IOException e) { -// e.printStackTrace(); -// } catch (AuthenticationException e) { -// e.printStackTrace(); -// } catch (NoSuchAlgorithmException e) { -// e.printStackTrace(); -// } catch (NoSuchPaddingException e) { -// e.printStackTrace(); -// } catch (InvalidKeyException e) { -// e.printStackTrace(); -// } catch (InvalidAlgorithmParameterException e) { -// e.printStackTrace(); -// } catch (IllegalBlockSizeException e) { -// e.printStackTrace(); -// } catch (BadPaddingException e) { -// e.printStackTrace(); -// } catch (CertificateException e) { -// e.printStackTrace(); -// } catch (KeyStoreException e) { -// e.printStackTrace(); -// } catch (KeyManagementException e) { -// e.printStackTrace(); -// } -// -// a(new String[]{ -// "Can't validate current installation of Dungeons Guide", -// "Steps to fix", -// "1. check if other people can't join minecraft servers.", -// "2. restart minecraft launcher", -// "3. make sure you're on the right account", -// "4. restart your computer", -// "If the problem persists after following these steps, please contact developer", -// "If you haven't purchased the mod, please consider doing so" -// }); -// } @EventHandler - public void pre(FMLPreInitializationEvent event) { - a = this; - URL.setURLStreamHandlerFactory(new c(null)); + public void a(FMLPreInitializationEvent a) { + b b = new b(); + String c = null; + try { + c = b.b(); + if (c != null) { + this.a = this; + URL.setURLStreamHandlerFactory(new c(b)); + LaunchClassLoader d = (LaunchClassLoader) a.class.getClassLoader(); + d.addURL(new URL("z:///")); + try { - d = new e(null); - d.pre(event); + this.d = new e(b); + this.d.pre(a); } catch (Exception e) { e.printStackTrace(); + + a(new String[]{ + "Couldn't load Dungeons Guide", + "Please contact developer if this problem persists after restart" + }); } + return; + } + } catch (IOException e) { + e.printStackTrace(); + } catch (AuthenticationException e) { + e.printStackTrace(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (InvalidAlgorithmParameterException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } catch (CertificateException e) { + e.printStackTrace(); + } catch (KeyStoreException e) { + e.printStackTrace(); + } catch (KeyManagementException e) { + e.printStackTrace(); + } + + a(new String[]{ + "Can't validate current installation of Dungeons Guide", + "Steps to fix", + "1. check if other people can't join minecraft servers.", + "2. restart minecraft launcher", + "3. make sure you're on the right account", + "4. restart your computer", + "If the problem persists after following these steps, please contact developer", + "If you haven't purchased the mod, please consider doing so" + }); } +// @EventHandler +// public void pre(FMLPreInitializationEvent event) { +// a = this; +// URL.setURLStreamHandlerFactory(new c(null)); +// try { +// d = new e(null); +// d.pre(event); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } public void a(final String[] a) { final GuiScreen b = new GuiErrorScreen(null, null) { diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/CategoryEditPane.java b/src/main/java/kr/syeyoung/dungeonsguide/config/CategoryEditPane.java index 95079857..0a0aea98 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/config/CategoryEditPane.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/CategoryEditPane.java @@ -1,18 +1,13 @@ package kr.syeyoung.dungeonsguide.config; -import kr.syeyoung.dungeonsguide.Config; -import kr.syeyoung.dungeonsguide.dungeon.data.DungeonRoomInfo; -import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; import kr.syeyoung.dungeonsguide.roomedit.MPanel; import kr.syeyoung.dungeonsguide.roomedit.Parameter; import kr.syeyoung.dungeonsguide.roomedit.elements.*; import kr.syeyoung.dungeonsguide.roomedit.panes.DynamicEditor; -import kr.syeyoung.dungeonsguide.roomedit.valueedit.ValueEdit; import kr.syeyoung.dungeonsguide.roomedit.valueedit.ValueEditCreator; import kr.syeyoung.dungeonsguide.roomedit.valueedit.ValueEditRegistry; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Property; -import scala.actors.threadpool.Arrays; import java.awt.*; import java.util.*; diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/Config.java b/src/main/java/kr/syeyoung/dungeonsguide/config/Config.java new file mode 100644 index 00000000..aff6a02f --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/Config.java @@ -0,0 +1,23 @@ +package kr.syeyoung.dungeonsguide.config; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStreamReader; + +public class Config { + public static JsonObject configuration; + + + public static void loadConfig(File f) throws FileNotFoundException { + configuration = (JsonObject) new JsonParser().parse(new InputStreamReader(new FileInputStream(f))); + + + } + +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/GuiConfig.java b/src/main/java/kr/syeyoung/dungeonsguide/config/GuiConfig.java index 5e5b8aac..e8bfc6bd 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/config/GuiConfig.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/GuiConfig.java @@ -1,10 +1,7 @@ package kr.syeyoung.dungeonsguide.config; -import kr.syeyoung.dungeonsguide.Config; -import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; import kr.syeyoung.dungeonsguide.roomedit.MPanel; import kr.syeyoung.dungeonsguide.roomedit.elements.MTabbedPane; -import kr.syeyoung.dungeonsguide.roomedit.panes.*; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; @@ -26,8 +23,8 @@ public class GuiConfig extends GuiScreen { mainPanel.add(tabbedPane); tabbedPane.setBackground2(new Color(17, 17, 17, 179)); - for (String cate:Config.configuration.getCategoryNames()) - tabbedPane.addTab(cate, new CategoryEditPane(Config.configuration.getCategory(cate))); +// for (String cate:Config.configuration.getCategoryNames()) +// tabbedPane.addTab(cate, new CategoryEditPane(Config.configuration.getCategory(cate))); this.tabbedPane = tabbedPane; } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCBoolean.java b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCBoolean.java new file mode 100644 index 00000000..ba4e44be --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCBoolean.java @@ -0,0 +1,21 @@ +package kr.syeyoung.dungeonsguide.config.types; + +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; + +public class TCBoolean implements TypeConverter<Boolean> { + @Override + public String getTypeString() { + return "boolean"; + } + + @Override + public Boolean deserialize(JsonElement element) { + return element.getAsBoolean(); + } + + @Override + public JsonElement serialize(Boolean element) { + return new JsonPrimitive(element); + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCInteger.java b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCInteger.java new file mode 100644 index 00000000..3b5195de --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCInteger.java @@ -0,0 +1,21 @@ +package kr.syeyoung.dungeonsguide.config.types; + +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; + +public class TCInteger implements TypeConverter<Integer> { + @Override + public String getTypeString() { + return "integer"; + } + + @Override + public Integer deserialize(JsonElement element) { + return element.getAsInt(); + } + + @Override + public JsonElement serialize(Integer element) { + return new JsonPrimitive(element); + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCRectangle.java b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCRectangle.java new file mode 100644 index 00000000..2d571da7 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCRectangle.java @@ -0,0 +1,35 @@ +package kr.syeyoung.dungeonsguide.config.types; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import org.w3c.dom.css.Rect; + +import java.awt.*; + +public class TCRectangle implements TypeConverter<Rectangle> { + @Override + public String getTypeString() { + return "rect"; + } + + @Override + public Rectangle deserialize(JsonElement element) { + Rectangle rectangle = new Rectangle(); + rectangle.x = ((JsonObject)element).get("x").getAsInt(); + rectangle.y = ((JsonObject)element).get("y").getAsInt(); + rectangle.width = ((JsonObject)element).get("width").getAsInt(); + rectangle.height = ((JsonObject)element).get("height").getAsInt(); + return rectangle; + } + + @Override + public JsonElement serialize(Rectangle element) { + JsonObject object = new JsonObject(); + object.addProperty("x", element.x); + object.addProperty("y", element.y); + object.addProperty("width", element.width); + object.addProperty("height", element.height); + return object; + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCString.java b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCString.java new file mode 100644 index 00000000..fa28c1b6 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TCString.java @@ -0,0 +1,21 @@ +package kr.syeyoung.dungeonsguide.config.types; + +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; + +public class TCString implements TypeConverter<String> { + @Override + public String getTypeString() { + return "string"; + } + + @Override + public String deserialize(JsonElement element) { + return element.getAsString(); + } + + @Override + public JsonElement serialize(String element) { + return new JsonPrimitive(element); + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/types/TypeConverter.java b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TypeConverter.java new file mode 100644 index 00000000..b5b69be0 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TypeConverter.java @@ -0,0 +1,11 @@ +package kr.syeyoung.dungeonsguide.config.types; + +import com.google.gson.JsonElement; + +public interface TypeConverter<T> { + String getTypeString(); + + T deserialize(JsonElement element); + + JsonElement serialize(T element); +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/config/types/TypeConverterRegistry.java b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TypeConverterRegistry.java new file mode 100644 index 00000000..82bfe3fc --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/config/types/TypeConverterRegistry.java @@ -0,0 +1,21 @@ +package kr.syeyoung.dungeonsguide.config.types; + +import kr.syeyoung.dungeonsguide.roomedit.Parameter; + +import java.util.HashMap; +import java.util.Map; + +public class TypeConverterRegistry { + private static Map<String, TypeConverter> typeConverterMap = new HashMap<String, TypeConverter>(); + + public static void register(TypeConverter typeConverter) { + typeConverterMap.put(typeConverter.getTypeString(), typeConverter); + } + + public static TypeConverter getTypeConverter(String type_string) { + return typeConverterMap.get(type_string); + } + public static <T> TypeConverter<T> getTypeConverter(String type_string, Class<T> t) { + return (TypeConverter<T>)typeConverterMap.get(type_string); + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/RoomMatcher.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/RoomMatcher.java index ac713082..43675f61 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/RoomMatcher.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/RoomMatcher.java @@ -95,6 +95,7 @@ public class RoomMatcher { } roomInfo.setBlocks(data); + roomInfo.setUserMade(true); return roomInfo; } } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/e.java b/src/main/java/kr/syeyoung/dungeonsguide/e.java index 8cd34154..aeefe8c8 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/e.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/e.java @@ -1,9 +1,11 @@ package kr.syeyoung.dungeonsguide; import kr.syeyoung.dungeonsguide.commands.*; +import kr.syeyoung.dungeonsguide.config.Config; import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoomInfoRegistry; import kr.syeyoung.dungeonsguide.eventlistener.DungeonListener; import kr.syeyoung.dungeonsguide.eventlistener.ItemGuiListener; +import kr.syeyoung.dungeonsguide.features.FeatureRegistry; import kr.syeyoung.dungeonsguide.utils.AhUtils; import lombok.Getter; import net.minecraft.client.Minecraft; @@ -18,10 +20,7 @@ import org.apache.commons.io.IOUtils; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; @@ -41,7 +40,7 @@ public class e implements c { } public static void sendDebugChat(IChatComponent iChatComponent) { - if (Config.DEBUG) + if (FeatureRegistry.DEBUG.isEnabled()) Minecraft.getMinecraft().thePlayer.addChatMessage(iChatComponent); } @@ -80,12 +79,15 @@ public class e implements c { } public void pre(FMLPreInitializationEvent event) { configDir = new File(event.getModConfigurationDirectory(),"dungeonsguide"); - File configFile = new File(configDir, "config.conf"); + File configFile = new File(configDir, "config.json"); if (!configFile.exists()) { configDir.mkdirs(); } - Config.configuration = new Configuration(configFile); - Config.syncConfig( true ); + try { + Config.loadConfig( configFile ); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } } private void copy(InputStream inputStream, File f) throws IOException { FileOutputStream fos = new FileOutputStream(f); diff --git a/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/DungeonListener.java b/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/DungeonListener.java index 118626f5..f1dd3bff 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/DungeonListener.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/DungeonListener.java @@ -1,12 +1,13 @@ package kr.syeyoung.dungeonsguide.eventlistener; -import kr.syeyoung.dungeonsguide.Config; +import kr.syeyoung.dungeonsguide.config.Config; import kr.syeyoung.dungeonsguide.Keybinds; import kr.syeyoung.dungeonsguide.SkyblockStatus; import kr.syeyoung.dungeonsguide.dungeon.DungeonContext; import kr.syeyoung.dungeonsguide.dungeon.doorfinder.DungeonDoor; import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; import kr.syeyoung.dungeonsguide.e; +import kr.syeyoung.dungeonsguide.features.FeatureRegistry; import kr.syeyoung.dungeonsguide.roomedit.EditingContext; import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonAddSet; import kr.syeyoung.dungeonsguide.roomedit.gui.GuiDungeonParameterEdit; @@ -78,7 +79,7 @@ public class DungeonListener { if (postRender.type != RenderGameOverlayEvent.ElementType.TEXT) return; SkyblockStatus skyblockStatus = (SkyblockStatus) e.getDungeonsGuide().getSkyblockStatus(); if (!skyblockStatus.isOnDungeon()) return; - if (Config.DEBUG) { + if (FeatureRegistry.DEBUG.isEnabled()) { int[] textureData = dynamicTexture.getTextureData(); MapUtils.getImage().getRGB(0, 0, 128, 128, textureData, 0, 128); dynamicTexture.updateDynamicTexture(); @@ -95,10 +96,10 @@ public class DungeonListener { DungeonRoom dungeonRoom = context.getRoomMapper().get(roomPt); FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; if (dungeonRoom == null) { - if (Config.DEBUG) + if (FeatureRegistry.DEBUG.isEnabled()) fontRenderer.drawString("Where are you?!", 5, 128, 0xFFFFFF); } else { - if (Config.DEBUG) { + if (FeatureRegistry.DEBUG.isEnabled()) { fontRenderer.drawString("you're in the room... " + dungeonRoom.getColor() + " / " + dungeonRoom.getShape(), 5, 128, 0xFFFFFF); fontRenderer.drawString("room uuid: " + dungeonRoom.getDungeonRoomInfo().getUuid() + (dungeonRoom.getDungeonRoomInfo().isRegistered() ? "" : " (not registered)"), 5, 138, 0xFFFFFF); fontRenderer.drawString("room name: " + dungeonRoom.getDungeonRoomInfo().getName(), 5, 148, 0xFFFFFF); @@ -162,7 +163,7 @@ public class DungeonListener { DungeonContext context = skyblockStatus.getContext(); if (context == null) return; - if (Config.DEBUG) { + if (FeatureRegistry.DEBUG.isEnabled()) { for (DungeonRoom dungeonRoom : context.getDungeonRoomList()) { for(DungeonDoor door : dungeonRoom.getDoors()) { RenderUtils.renderDoor(door, renderWorldLastEvent.partialTicks); @@ -208,7 +209,7 @@ public class DungeonListener { @SubscribeEvent public void onKeyInput(InputEvent.KeyInputEvent keyInputEvent) { - if (Config.DEBUG && Keybinds.editingSession.isKeyDown() ){ + if (FeatureRegistry.DEBUG.isEnabled() && Keybinds.editingSession.isKeyDown() ){ EditingContext ec = EditingContext.getEditingContext(); if (ec == null) { DungeonContext context = e.getDungeonsGuide().getSkyblockStatus().getContext(); diff --git a/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/ItemGuiListener.java b/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/ItemGuiListener.java index 829513bf..ba7499db 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/ItemGuiListener.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/eventlistener/ItemGuiListener.java @@ -1,14 +1,11 @@ package kr.syeyoung.dungeonsguide.eventlistener; -import kr.syeyoung.dungeonsguide.Config; +import kr.syeyoung.dungeonsguide.config.Config; import kr.syeyoung.dungeonsguide.e; import kr.syeyoung.dungeonsguide.utils.AhUtils; import kr.syeyoung.dungeonsguide.utils.TextUtils; -import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.scoreboard.ScoreObjective; -import net.minecraft.scoreboard.Scoreboard; import net.minecraftforge.event.entity.player.ItemTooltipEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/AbstractFeature.java b/src/main/java/kr/syeyoung/dungeonsguide/features/AbstractFeature.java new file mode 100644 index 00000000..4964ee5f --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/features/AbstractFeature.java @@ -0,0 +1,64 @@ +package kr.syeyoung.dungeonsguide.features; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import kr.syeyoung.dungeonsguide.config.types.TypeConverter; +import kr.syeyoung.dungeonsguide.config.types.TypeConverterRegistry; +import lombok.Getter; +import lombok.Setter; + +import java.util.*; + +public abstract class AbstractFeature { + @Getter + private final String category; + @Getter + private final String name; + + @Getter + private final String description; + + @Getter + private final String key; + + protected Map<String, FeatureParameter> parameters = new HashMap<String, Feat |
