From: Irtimaled Date: Sun, 10 May 2020 09:01:06 +0000 (-0700) Subject: Move config to client module X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=5fb79bdb4a572647b00d0a0fc10215642d6b417d;p=BoundingBoxOutlineReloaded.git Move config to client module --- diff --git a/src/main/java/com/irtimaled/bbor/client/ClientProxy.java b/src/main/java/com/irtimaled/bbor/client/ClientProxy.java index 8d527ae..c85cb93 100644 --- a/src/main/java/com/irtimaled/bbor/client/ClientProxy.java +++ b/src/main/java/com/irtimaled/bbor/client/ClientProxy.java @@ -1,5 +1,6 @@ package com.irtimaled.bbor.client; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.events.*; import com.irtimaled.bbor.client.gui.LoadSavesScreen; import com.irtimaled.bbor.client.gui.SettingsScreen; @@ -10,7 +11,6 @@ import com.irtimaled.bbor.common.BoundingBoxCache; import com.irtimaled.bbor.common.CommonProxy; import com.irtimaled.bbor.common.EventBus; import com.irtimaled.bbor.common.VillageColorCache; -import com.irtimaled.bbor.config.ConfigManager; public class ClientProxy extends CommonProxy { static { @@ -24,6 +24,10 @@ public class ClientProxy extends CommonProxy { .onKeyPressHandler(LoadSavesScreen::show); } + public ClientProxy() { + ConfigManager.loadConfig(); + } + @Override public void init() { super.init(); diff --git a/src/main/java/com/irtimaled/bbor/client/ClientRenderer.java b/src/main/java/com/irtimaled/bbor/client/ClientRenderer.java index f4d73cd..6672c69 100644 --- a/src/main/java/com/irtimaled/bbor/client/ClientRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/ClientRenderer.java @@ -1,5 +1,6 @@ package com.irtimaled.bbor.client; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.interop.ClientInterop; import com.irtimaled.bbor.client.models.*; import com.irtimaled.bbor.client.providers.*; @@ -8,7 +9,6 @@ import com.irtimaled.bbor.common.MathHelper; import com.irtimaled.bbor.common.models.AbstractBoundingBox; import com.irtimaled.bbor.common.models.BoundingBoxCuboid; import com.irtimaled.bbor.common.models.BoundingBoxVillage; -import com.irtimaled.bbor.config.ConfigManager; import org.lwjgl.opengl.GL11; import java.util.HashMap; diff --git a/src/main/java/com/irtimaled/bbor/client/commands/ConfigCommand.java b/src/main/java/com/irtimaled/bbor/client/commands/ConfigCommand.java index 3e8aa95..48ab1ae 100644 --- a/src/main/java/com/irtimaled/bbor/client/commands/ConfigCommand.java +++ b/src/main/java/com/irtimaled/bbor/client/commands/ConfigCommand.java @@ -1,8 +1,8 @@ package com.irtimaled.bbor.client.commands; +import com.irtimaled.bbor.client.config.ConfigManager; +import com.irtimaled.bbor.client.config.Setting; import com.irtimaled.bbor.client.gui.SettingsScreen; -import com.irtimaled.bbor.config.ConfigManager; -import com.irtimaled.bbor.config.Setting; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.arguments.BoolArgumentType; import com.mojang.brigadier.arguments.IntegerArgumentType; diff --git a/src/main/java/com/irtimaled/bbor/client/config/AbstractSetting.java b/src/main/java/com/irtimaled/bbor/client/config/AbstractSetting.java new file mode 100644 index 0000000..0d64876 --- /dev/null +++ b/src/main/java/com/irtimaled/bbor/client/config/AbstractSetting.java @@ -0,0 +1,21 @@ +package com.irtimaled.bbor.client.config; + +public abstract class AbstractSetting { + String comment; + String category; + String name; + + private final char type; + + AbstractSetting(char type) { + this.type = type; + } + + public char getType() { + return type; + } + + public String getName() { return name; } + + abstract Object getValue(); +} diff --git a/src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java b/src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java index b86346e..084652f 100644 --- a/src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java +++ b/src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java @@ -1,8 +1,6 @@ package com.irtimaled.bbor.client.config; import com.irtimaled.bbor.common.BoundingBoxType; -import com.irtimaled.bbor.config.ConfigManager; -import com.irtimaled.bbor.config.Setting; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/com/irtimaled/bbor/client/config/ConfigManager.java b/src/main/java/com/irtimaled/bbor/client/config/ConfigManager.java new file mode 100644 index 0000000..d6c301c --- /dev/null +++ b/src/main/java/com/irtimaled/bbor/client/config/ConfigManager.java @@ -0,0 +1,150 @@ +package com.irtimaled.bbor.client.config; + +import java.io.File; +import java.util.HashSet; +import java.util.Set; + +public class ConfigManager { + private static final Set> settings = new HashSet<>(); + private static File configDir; + + public static Setting fill; + public static Setting drawVillages; + public static Setting drawDesertTemples; + public static Setting drawJungleTemples; + public static Setting drawWitchHuts; + public static Setting drawStrongholds; + public static Setting drawMineShafts; + public static Setting drawNetherFortresses; + public static Setting drawOceanMonuments; + public static Setting alwaysVisible; + public static Setting drawIronGolemSpawnArea; + public static Setting drawVillageDoors; + public static Setting drawSlimeChunks; + public static Setting slimeChunkMaxY; + public static Setting keepCacheBetweenSessions; + public static Setting drawWorldSpawn; + public static Setting worldSpawnMaxY; + public static Setting drawLazySpawnChunks; + public static Setting drawEndCities; + public static Setting drawMansions; + public static Setting drawShipwrecks; + public static Setting drawOceanRuins; + public static Setting drawBuriedTreasure; + public static Setting drawIgloos; + public static Setting drawMobSpawners; + public static Setting renderMobSpawnerSpawnArea; + public static Setting renderMobSpawnerActivationLines; + public static Setting drawPillagerOutposts; + public static Setting outerBoxesOnly; + public static Setting villageSphereDotSize; + public static Setting villageSphereDensity; + public static Setting drawVillageSpheres; + public static Setting drawAFKSpheres; + public static Setting renderAFKSpawnableBlocks; + public static Setting afkSpawnableBlocksRenderDistance; + public static Setting drawBeacons; + public static Setting drawBiomeBorders; + public static Setting renderOnlyCurrentBiome; + public static Setting biomeBordersRenderDistance; + public static Setting biomeBordersMaxY; + public static Setting drawNetherFossils; + public static Setting drawBastionRemnants; + public static Setting drawRuinedPortals; + public static Setting drawConduits; + public static Setting renderConduitMobHarmArea; + + public static void loadConfig() { + configDir = new File(".", "config"); + configDir.mkdirs(); + Configuration config = loadConfiguration(); + + fill = setup(config, "general", "fill", true, "If set to true the bounding boxes are filled."); + outerBoxesOnly = setup(config, "general", "outerBoxesOnly", false, "If set to true only the outer bounding boxes are rendered."); + alwaysVisible = setup(config, "general", "alwaysVisible", false, "If set to true boxes will be visible even through other blocks."); + keepCacheBetweenSessions = setup(config, "general", "keepCacheBetweenSessions", false, "If set to true bounding box caches will be kept between sessions."); + + drawBeacons = setup(config, "beacons", "drawBeacons", true, "If set to true beacon bounding boxes will be drawn."); + + drawConduits = setup(config, "conduits", "drawConduits", true, "If set to true conduit bounding spheres will be drawn."); + renderConduitMobHarmArea = setup(config, "conduits", "renderConduitMobHarmArea", true, "If set to true a box to show the area where hostile mobs are harmed will be drawn"); + + drawBiomeBorders = setup(config, "biomeBorders", "drawBiomeBorders", true, "If set to true biome borders will be drawn."); + renderOnlyCurrentBiome = setup(config, "biomeBorders", "renderOnlyCurrentBiome", true, "If set to true only the biome border for the current biome will be drawn."); + biomeBordersRenderDistance = setup(config, "biomeBorders", "biomeBordersRenderDistance", 3, "The distance from the player where biome borders will be drawn."); + biomeBordersMaxY = setup(config, "biomeBorders", "biomeBordersMaxY", -1, "The maximum top of the biome borders. If set to -1 it will use the value when activated, if set to 0 it will always track the players feet."); + + drawVillageSpheres = setup(config, "villages", "drawVillageSpheres", true, "If set to true village bounding spheres are drawn."); + drawIronGolemSpawnArea = setup(config, "villages", "drawIronGolemSpawnArea", true, "If set to true the iron golem spawn area of the village will be drawn. (default:true)"); + drawVillageDoors = setup(config, "villages", "drawVillageDoors", false, "If set to true lines between the village centre and doors will be drawn. (default:false)"); + villageSphereDotSize = setup(config, "villages", "villageSphereDotSize", 2, "The size of the dots used when rendering village as sphere."); + villageSphereDensity = setup(config, "villages", "villageSphereDensity", 3, "The density of the dots used when rendering village as sphere."); + + drawVillages = setup(config, "structures", "drawVillages", false, "If set to true village bounding boxes will be drawn."); + drawDesertTemples = setup(config, "structures", "drawDesertTemples", true, "If set to true desert temple bounding boxes are drawn."); + drawJungleTemples = setup(config, "structures", "drawJungleTemples", true, "If set to true jungle temple bounding boxes are drawn."); + drawWitchHuts = setup(config, "structures", "drawWitchHuts", true, "If set to true witch hut bounding boxes are drawn."); + drawStrongholds = setup(config, "structures", "drawStrongholds", false, "If set to true stronghold bounding boxes are drawn."); + drawMineShafts = setup(config, "structures", "drawMineShafts", false, "If set to true mineshaft bounding boxes are drawn."); + drawNetherFortresses = setup(config, "structures", "drawNetherFortresses", true, "If set to true nether fortress bounding boxes are drawn."); + drawOceanMonuments = setup(config, "structures", "drawOceanMonuments", true, "If set to true ocean monument bounding boxes are drawn."); + drawEndCities = setup(config, "structures", "drawEndCities", true, "If set to true end city bounding boxes will be drawn."); + drawMansions = setup(config, "structures", "drawMansions", true, "If set to true woodland mansions will be drawn."); + drawIgloos = setup(config, "structures", "drawIgloos", true, "If set to true igloos will be drawn."); + drawShipwrecks = setup(config, "structures", "drawShipwrecks", true, "If set to true shipwrecks will be drawn."); + drawOceanRuins = setup(config, "structures", "drawOceanRuins", true, "If set to true ocean ruins will be drawn."); + drawBuriedTreasure = setup(config, "structures", "drawBuriedTreasures", true, "If set to true buried treasure will be drawn."); + drawPillagerOutposts = setup(config, "structures", "drawPillagerOutposts", true, "If set to true pillager outposts will be drawn."); + drawNetherFossils = setup(config, "structures", "drawNetherFossils", true, "If set to true nether fossils will be drawn."); + drawBastionRemnants = setup(config, "structures", "drawBastionRemnants", true, "If set to true bastion remnants will be drawn."); + drawRuinedPortals = setup(config, "structures", "drawRuinedPortals", true, "If set to true ruined portals will be drawn."); + + drawSlimeChunks = setup(config, "slimeChunks", "drawSlimeChunks", true, "If set to true slime chunks bounding boxes are drawn."); + slimeChunkMaxY = setup(config, "slimeChunks", "slimeChunkMaxY", -1, "The maximum top of the slime chunk bounding box. If set to -1 it will use the value when activated, if set to 0 it will always track the player's feet."); + + drawWorldSpawn = setup(config, "worldSpawn", "drawWorldSpawn", true, "If set to true world spawn and spawn chunks bounding boxes are drawn."); + worldSpawnMaxY = setup(config, "worldSpawn", "worldSpawnMaxY", -1, "The maximum top of the world spawn bounding boxes. If set to -1 it will use the value when activated, if set to 0 it will always track the players feet."); + drawLazySpawnChunks = setup(config, "worldSpawn", "drawLazySpawnChunks", false, "If set to true the lazy spawn chunks bounding boxes will be drawn."); + + drawMobSpawners = setup(config, "mobSpawners", "drawMobSpawners", true, "If set to true mob spawners will be drawn."); + renderMobSpawnerSpawnArea = setup(config, "mobSpawners", "renderMobSpawnerSpawnArea", true, "If set to true a box to show the maximum possible spawn area (10x10x4) for a spawner will be drawn"); + renderMobSpawnerActivationLines = setup(config, "mobSpawners", "renderMobSpawnerActivationLines", true, "If set to true a red/orange/green line will be drawn to show if the spawner is active"); + + drawAFKSpheres = setup(config, "afkSpot", "drawAFKSpheres", true, "If set to true afk spot spheres will be drawn."); + renderAFKSpawnableBlocks = setup(config, "afkSpot", "renderAFKSpawnableBlocks", true, "If set to true boxes to show spawnable blocks within the AFK sphere will be drawn."); + afkSpawnableBlocksRenderDistance = setup(config, "afkSpot", "afkSpawnableBlocksRenderDistance", 3, "The distance from the player where spawnable blocks within the AFK sphere will be drawn."); + + config.save(); + } + + private static Configuration loadConfiguration() { + Configuration config = new Configuration(new File(configDir, "BBOutlineReloaded.cfg")); + config.load(); + return config; + } + + public static void saveConfig() { + Configuration config = new Configuration(new File(configDir, "BBOutlineReloaded.cfg")); + for (Setting setting : settings) { + config.put(setting); + } + config.save(); + } + + private static Setting setup(Configuration config, String category, String settingName, T defaultValue, String comment) { + Setting setting = config.get(category, settingName, defaultValue); + setting.category = category; + setting.name = settingName; + setting.comment = comment + " (default: " + defaultValue.toString() + ")"; + settings.add(setting); + return setting; + } + + public static void Toggle(Setting setting) { + setting.set(!setting.get()); + } + + public static Set> getSettings() { + return settings; + } +} diff --git a/src/main/java/com/irtimaled/bbor/client/config/Configuration.java b/src/main/java/com/irtimaled/bbor/client/config/Configuration.java new file mode 100644 index 0000000..65f9a0d --- /dev/null +++ b/src/main/java/com/irtimaled/bbor/client/config/Configuration.java @@ -0,0 +1,133 @@ +package com.irtimaled.bbor.client.config; + +import com.google.common.io.Files; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +class Configuration { + private static final String FALLBACK_CATEGORY = "features"; + private final File file; + + Configuration(File file) { + this.file = file; + } + + void save() { + try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8))) { + writer.write("# Configuration file\n"); + for (String category : settingsGroup.keySet()) { + writer.write("\n"); + writer.write(String.format("%s {\n", category)); + Map> settings = settingsGroup.get(category); + boolean first = true; + for (String settingName : settings.keySet()) { + if (!first) + writer.write("\n"); + first = false; + Setting setting = settings.get(settingName); + writer.write(String.format(" # %s\n", setting.comment)); + writer.write(String.format(" %s:%s=%s\n", setting.getType(), settingName, setting.getValue())); + } + writer.write("}\n"); + } + } catch (IOException ignored) { + } + } + + private final Map>> settingsGroup = new HashMap<>(); + + void load() { + try { + List lines = Files.readLines(file, StandardCharsets.UTF_8); + String category = null; + String lastCommentLine = null; + for (String line : lines) { + String trimmedLine = line.trim(); + if (trimmedLine.isEmpty()) { + continue; + } + if (trimmedLine.startsWith("#")) { + lastCommentLine = trimmedLine.substring(1).trim(); + continue; + } + if (trimmedLine.equals("}")) { + category = null; + continue; + } + if (category == null && trimmedLine.endsWith("{")) { + category = trimmedLine.substring(0, trimmedLine.length() - 1).trim(); + settingsGroup.put(category, new HashMap<>()); + continue; + } + if (category != null) { + String[] items = trimmedLine.split("[:=]"); + char type = items[0].charAt(0); + String name = items[1]; + String stringValue = items[2]; + Setting setting = getTypedSetting(type, stringValue); + setting.comment = lastCommentLine; + settingsGroup.get(category).put(name, setting); + } + } + } catch (IOException ignored) { + } + } + + private Setting getTypedSetting(char type, String value) { + switch (type) { + case 'I': + return new Setting<>(type, Integer.parseInt(value)); + case 'B': + return new Setting<>(type, value.equals("1") || value.toLowerCase().equals("true")); + } + return new Setting<>(type, value); + } + + Setting get(String category, String settingName, T defaultValue) { + char type = getType(defaultValue); + if (!settingsGroup.containsKey(category)) { + settingsGroup.put(category, new HashMap<>()); + } + Map> settings = settingsGroup.get(category); + Setting setting = settings.get(settingName); + if (setting == null && !category.equals(FALLBACK_CATEGORY)) + setting = getFallbackSetting(settingName, settings); + if (setting != null && setting.getType() != type) { + setting = null; + } + if (setting == null) { + settings.put(settingName, setting = new Setting<>(type, defaultValue)); + } + return (Setting) setting; + } + + private Setting getFallbackSetting(String settingName, Map> settings) { + Map> fallbackSettings = settingsGroup.get(FALLBACK_CATEGORY); + if (fallbackSettings == null) return null; + + Setting setting = fallbackSettings.get(settingName); + if (setting != null) { + fallbackSettings.remove(settingName); + settings.put(settingName, setting); + } + return setting; + } + + private char getType(T defaultValue) { + String[] typeNames = defaultValue.getClass().getName().split("[.]"); + return typeNames[typeNames.length - 1].charAt(0); + } + + void put(Setting setting) { + String category = setting.category; + if (!settingsGroup.containsKey(category)) { + settingsGroup.put(category, new HashMap<>()); + } + Map> settings = settingsGroup.get(category); + settings.put(setting.name, setting); + } +} diff --git a/src/main/java/com/irtimaled/bbor/client/config/Setting.java b/src/main/java/com/irtimaled/bbor/client/config/Setting.java new file mode 100644 index 0000000..f07f5fb --- /dev/null +++ b/src/main/java/com/irtimaled/bbor/client/config/Setting.java @@ -0,0 +1,23 @@ +package com.irtimaled.bbor.client.config; + +public class Setting extends AbstractSetting { + private T value; + + Setting(char type, T value) { + super(type); + this.value = value; + } + + public T get() { + return value; + } + + public void set(T value) { + this.value = value; + } + + @Override + Object getValue() { + return value; + } +} diff --git a/src/main/java/com/irtimaled/bbor/client/gui/BoolSettingButton.java b/src/main/java/com/irtimaled/bbor/client/gui/BoolSettingButton.java index da3c115..e4f7bb6 100644 --- a/src/main/java/com/irtimaled/bbor/client/gui/BoolSettingButton.java +++ b/src/main/java/com/irtimaled/bbor/client/gui/BoolSettingButton.java @@ -1,7 +1,7 @@ package com.irtimaled.bbor.client.gui; -import com.irtimaled.bbor.config.ConfigManager; -import com.irtimaled.bbor.config.Setting; +import com.irtimaled.bbor.client.config.ConfigManager; +import com.irtimaled.bbor.client.config.Setting; public class BoolSettingButton extends BoolButton { private final Setting setting; diff --git a/src/main/java/com/irtimaled/bbor/client/gui/IntSettingSlider.java b/src/main/java/com/irtimaled/bbor/client/gui/IntSettingSlider.java index 2c7eb62..587bb46 100644 --- a/src/main/java/com/irtimaled/bbor/client/gui/IntSettingSlider.java +++ b/src/main/java/com/irtimaled/bbor/client/gui/IntSettingSlider.java @@ -1,6 +1,6 @@ package com.irtimaled.bbor.client.gui; -import com.irtimaled.bbor.config.Setting; +import com.irtimaled.bbor.client.config.Setting; import net.minecraft.client.resources.I18n; import java.util.HashMap; diff --git a/src/main/java/com/irtimaled/bbor/client/gui/MaxYSettingSlider.java b/src/main/java/com/irtimaled/bbor/client/gui/MaxYSettingSlider.java index b518d7d..7c6562e 100644 --- a/src/main/java/com/irtimaled/bbor/client/gui/MaxYSettingSlider.java +++ b/src/main/java/com/irtimaled/bbor/client/gui/MaxYSettingSlider.java @@ -1,6 +1,6 @@ package com.irtimaled.bbor.client.gui; -import com.irtimaled.bbor.config.Setting; +import com.irtimaled.bbor.client.config.Setting; import net.minecraft.client.resources.I18n; class MaxYSettingSlider extends IntSettingSlider { diff --git a/src/main/java/com/irtimaled/bbor/client/gui/SettingsScreen.java b/src/main/java/com/irtimaled/bbor/client/gui/SettingsScreen.java index 0c58085..92da9ec 100644 --- a/src/main/java/com/irtimaled/bbor/client/gui/SettingsScreen.java +++ b/src/main/java/com/irtimaled/bbor/client/gui/SettingsScreen.java @@ -1,9 +1,9 @@ package com.irtimaled.bbor.client.gui; import com.irtimaled.bbor.client.ClientRenderer; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.interop.ClientInterop; import com.irtimaled.bbor.common.BoundingBoxType; -import com.irtimaled.bbor.config.ConfigManager; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/irtimaled/bbor/client/providers/BiomeBorderProvider.java b/src/main/java/com/irtimaled/bbor/client/providers/BiomeBorderProvider.java index 1957bd5..8fa64df 100644 --- a/src/main/java/com/irtimaled/bbor/client/providers/BiomeBorderProvider.java +++ b/src/main/java/com/irtimaled/bbor/client/providers/BiomeBorderProvider.java @@ -2,12 +2,12 @@ package com.irtimaled.bbor.client.providers; import com.irtimaled.bbor.client.Player; import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.interop.BiomeBorderHelper; import com.irtimaled.bbor.client.models.BoundingBoxBiomeBorder; import com.irtimaled.bbor.common.BoundingBoxType; import com.irtimaled.bbor.common.MathHelper; import com.irtimaled.bbor.common.models.Coords; -import com.irtimaled.bbor.config.ConfigManager; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/com/irtimaled/bbor/client/providers/CacheProvider.java b/src/main/java/com/irtimaled/bbor/client/providers/CacheProvider.java index 17687f1..b66b2da 100644 --- a/src/main/java/com/irtimaled/bbor/client/providers/CacheProvider.java +++ b/src/main/java/com/irtimaled/bbor/client/providers/CacheProvider.java @@ -3,11 +3,11 @@ package com.irtimaled.bbor.client.providers; import com.irtimaled.bbor.client.GetCache; import com.irtimaled.bbor.client.Player; import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.interop.ClientInterop; import com.irtimaled.bbor.common.BoundingBoxCache; import com.irtimaled.bbor.common.MathHelper; import com.irtimaled.bbor.common.models.AbstractBoundingBox; -import com.irtimaled.bbor.config.ConfigManager; import java.util.HashSet; import java.util.Map; diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/AbstractRenderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/AbstractRenderer.java index c40665e..d701e47 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/AbstractRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/AbstractRenderer.java @@ -1,7 +1,7 @@ package com.irtimaled.bbor.client.renderers; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.common.models.AbstractBoundingBox; -import com.irtimaled.bbor.config.ConfigManager; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.OpenGlHelper; diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/BiomeBorderRenderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/BiomeBorderRenderer.java index 8061b5c..34deb7c 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/BiomeBorderRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/BiomeBorderRenderer.java @@ -1,8 +1,8 @@ package com.irtimaled.bbor.client.renderers; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.models.BoundingBoxBiomeBorder; import com.irtimaled.bbor.common.models.Coords; -import com.irtimaled.bbor.config.ConfigManager; import java.awt.*; diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/ConduitRenderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/ConduitRenderer.java index 65e1d8c..a5b5ec2 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/ConduitRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/ConduitRenderer.java @@ -1,9 +1,9 @@ package com.irtimaled.bbor.client.renderers; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.models.BoundingBoxConduit; import com.irtimaled.bbor.common.models.Colors; import com.irtimaled.bbor.common.models.Coords; -import com.irtimaled.bbor.config.ConfigManager; import java.awt.*; diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/MobSpawnerRenderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/MobSpawnerRenderer.java index d3ac71c..0ee29c3 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/MobSpawnerRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/MobSpawnerRenderer.java @@ -1,10 +1,10 @@ package com.irtimaled.bbor.client.renderers; import com.irtimaled.bbor.client.Player; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.models.BoundingBoxMobSpawner; import com.irtimaled.bbor.common.models.Colors; import com.irtimaled.bbor.common.models.Coords; -import com.irtimaled.bbor.config.ConfigManager; import java.awt.*; diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/SlimeChunkRenderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/SlimeChunkRenderer.java index 47dea57..8fd38cb 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/SlimeChunkRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/SlimeChunkRenderer.java @@ -1,8 +1,8 @@ package com.irtimaled.bbor.client.renderers; import com.irtimaled.bbor.client.Player; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.models.BoundingBoxSlimeChunk; -import com.irtimaled.bbor.config.ConfigManager; import java.awt.*; diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/SpawningSphereRenderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/SpawningSphereRenderer.java index 929ecb5..dc42331 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/SpawningSphereRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/SpawningSphereRenderer.java @@ -1,10 +1,10 @@ package com.irtimaled.bbor.client.renderers; import com.irtimaled.bbor.client.Player; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.interop.SpawningSphereHelper; import com.irtimaled.bbor.client.models.BoundingBoxSpawningSphere; import com.irtimaled.bbor.common.MathHelper; -import com.irtimaled.bbor.config.ConfigManager; import net.minecraft.client.resources.I18n; import java.awt.*; diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/VillageRenderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/VillageRenderer.java index b064594..900943c 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/VillageRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/VillageRenderer.java @@ -1,8 +1,8 @@ package com.irtimaled.bbor.client.renderers; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.common.models.BoundingBoxVillage; import com.irtimaled.bbor.common.models.Coords; -import com.irtimaled.bbor.config.ConfigManager; import org.lwjgl.opengl.GL11; import java.awt.*; diff --git a/src/main/java/com/irtimaled/bbor/client/renderers/WorldSpawnRenderer.java b/src/main/java/com/irtimaled/bbor/client/renderers/WorldSpawnRenderer.java index 921f01c..91aadbe 100644 --- a/src/main/java/com/irtimaled/bbor/client/renderers/WorldSpawnRenderer.java +++ b/src/main/java/com/irtimaled/bbor/client/renderers/WorldSpawnRenderer.java @@ -1,9 +1,9 @@ package com.irtimaled.bbor.client.renderers; import com.irtimaled.bbor.client.Player; +import com.irtimaled.bbor.client.config.ConfigManager; import com.irtimaled.bbor.client.models.BoundingBoxWorldSpawn; import com.irtimaled.bbor.common.models.Coords; -import com.irtimaled.bbor.config.ConfigManager; import java.awt.*; diff --git a/src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java b/src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java index 305e989..0dbfb79 100644 --- a/src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java +++ b/src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java @@ -3,7 +3,6 @@ package com.irtimaled.bbor.common.interop; import com.irtimaled.bbor.common.EventBus; import com.irtimaled.bbor.common.events.*; import com.irtimaled.bbor.common.models.ServerPlayer; -import com.irtimaled.bbor.config.ConfigManager; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.NetHandlerPlayServer; import net.minecraft.network.NetworkManager; @@ -11,15 +10,10 @@ import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.gen.feature.structure.StructureStart; -import java.io.File; import java.util.Collection; import java.util.Map; public class CommonInterop { - public static void init() { - ConfigManager.loadConfig(new File(".")); - } - public static void chunkLoaded(Chunk chunk) { int dimensionId = chunk.getWorld().getDimension().getType().getId(); Map structures = chunk.getStructureStarts(); diff --git a/src/main/java/com/irtimaled/bbor/config/AbstractSetting.java b/src/main/java/com/irtimaled/bbor/config/AbstractSetting.java deleted file mode 100644 index 0ff0901..0000000 --- a/src/main/java/com/irtimaled/bbor/config/AbstractSetting.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.irtimaled.bbor.config; - -public abstract class AbstractSetting { - String comment; - String category; - String name; - - private final char type; - - AbstractSetting(char type) { - this.type = type; - } - - public char getType() { - return type; - } - - public String getName() { return name; } - - abstract Object getValue(); -} diff --git a/src/main/java/com/irtimaled/bbor/config/ConfigManager.java b/src/main/java/com/irtimaled/bbor/config/ConfigManager.java deleted file mode 100644 index 0815a40..0000000 --- a/src/main/java/com/irtimaled/bbor/config/ConfigManager.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.irtimaled.bbor.config; - -import java.io.File; -import java.util.HashSet; -import java.util.Set; - -public class ConfigManager { - private static final Set> settings = new HashSet<>(); - public static File configDir; - - public static Setting fill; - public static Setting drawVillages; - public static Setting drawDesertTemples; - public static Setting drawJungleTemples; - public static Setting drawWitchHuts; - public static Setting drawStrongholds; - public static Setting drawMineShafts; - public static Setting drawNetherFortresses; - public static Setting drawOceanMonuments; - public static Setting alwaysVisible; - public static Setting drawIronGolemSpawnArea; - public static Setting drawVillageDoors; - public static Setting drawSlimeChunks; - public static Setting slimeChunkMaxY; - public static Setting keepCacheBetweenSessions; - public static Setting drawWorldSpawn; - public static Setting worldSpawnMaxY; - public static Setting drawLazySpawnChunks; - public static Setting drawEndCities; - public static Setting drawMansions; - public static Setting drawShipwrecks; - public static Setting drawOceanRuins; - public static Setting drawBuriedTreasure; - public static Setting drawIgloos; - public static Setting drawMobSpawners; - public static Setting renderMobSpawnerSpawnArea; - public static Setting renderMobSpawnerActivationLines; - public static Setting drawPillagerOutposts; - public static Setting outerBoxesOnly; - public static Setting villageSphereDotSize; - public static Setting villageSphereDensity; - public static Setting drawVillageSpheres; - public static Setting drawAFKSpheres; - public static Setting renderAFKSpawnableBlocks; - public static Setting afkSpawnableBlocksRenderDistance; - public static Setting drawBeacons; - public static Setting drawBiomeBorders; - public static Setting renderOnlyCurrentBiome; - public static Setting biomeBordersRenderDistance; - public static Setting biomeBordersMaxY; - public static Setting drawNetherFossils; - public static Setting drawBastionRemnants; - public static Setting drawRuinedPortals; - public static Setting drawConduits; - public static Setting renderConduitMobHarmArea; - - public static void loadConfig(File mcConfigDir) { - configDir = new File(mcConfigDir, "config"); - configDir.mkdirs(); - Configuration config = loadConfig(); - - fill = setup(config, "general", "fill", true, "If set to true the bounding boxes are filled."); - outerBoxesOnly = setup(config, "general", "outerBoxesOnly", false, "If set to true only the outer bounding boxes are rendered."); - alwaysVisible = setup(config, "general", "alwaysVisible", false, "If set to true boxes will be visible even through other blocks."); - keepCacheBetweenSessions = setup(config, "general", "keepCacheBetweenSessions", false, "If set to true bounding box caches will be kept between sessions."); - - drawBeacons = setup(config, "beacons", "drawBeacons", true, "If set to true beacon bounding boxes will be drawn."); - - drawConduits = setup(config, "conduits", "drawConduits", true, "If set to true conduit bounding spheres will be drawn."); - renderConduitMobHarmArea = setup(config, "conduits", "renderConduitMobHarmArea", true, "If set to true a box to show the area where hostile mobs are harmed will be drawn"); - - drawBiomeBorders = setup(config, "biomeBorders", "drawBiomeBorders", true, "If set to true biome borders will be drawn."); - renderOnlyCurrentBiome = setup(config, "biomeBorders", "renderOnlyCurrentBiome", true, "If set to true only the biome border for the current biome will be drawn."); - biomeBordersRenderDistance = setup(config, "biomeBorders", "biomeBordersRenderDistance", 3, "The distance from the player where biome borders will be drawn."); - biomeBordersMaxY = setup(config, "biomeBorders", "biomeBordersMaxY", -1, "The maximum top of the biome borders. If set to -1 it will use the value when activated, if set to 0 it will always track the players feet."); - - drawVillageSpheres = setup(config, "villages", "drawVillageSpheres", true, "If set to true village bounding spheres are drawn."); - drawIronGolemSpawnArea = setup(config, "villages", "drawIronGolemSpawnArea", true, "If set to true the iron golem spawn area of the village will be drawn. (default:true)"); - drawVillageDoors = setup(config, "villages", "drawVillageDoors", false, "If set to true lines between the village centre and doors will be drawn. (default:false)"); - villageSphereDotSize = setup(config, "villages", "villageSphereDotSize", 2, "The size of the dots used when rendering village as sphere."); - villageSphereDensity = setup(config, "villages", "villageSphereDensity", 3, "The density of the dots used when rendering village as sphere."); - - drawVillages = setup(config, "structures", "drawVillages", false, "If set to true village bounding boxes will be drawn."); - drawDesertTemples = setup(config, "structures", "drawDesertTemples", true, "If set to true desert temple bounding boxes are drawn."); - drawJungleTemples = setup(config, "structures", "drawJungleTemples", true, "If set to true jungle temple bounding boxes are drawn."); - drawWitchHuts = setup(config, "structures", "drawWitchHuts", true, "If set to true witch hut bounding boxes are drawn."); - drawStrongholds = setup(config, "structures", "drawStrongholds", false, "If set to true stronghold bounding boxes are drawn."); - drawMineShafts = setup(config, "structures", "drawMineShafts", false, "If set to true mineshaft bounding boxes are drawn."); - drawNetherFortresses = setup(config, "structures", "drawNetherFortresses", true, "If set to true nether fortress bounding boxes are drawn."); - drawOceanMonuments = setup(config, "structures", "drawOceanMonuments", true, "If set to true ocean monument bounding boxes are drawn."); - drawEndCities = setup(config, "structures", "drawEndCities", true, "If set to true end city bounding boxes will be drawn."); - drawMansions = setup(config, "structures", "drawMansions", true, "If set to true woodland mansions will be drawn."); - drawIgloos = setup(config, "structures", "drawIgloos", true, "If set to true igloos will be drawn."); - drawShipwrecks = setup(config, "structures", "drawShipwrecks", true, "If set to true shipwrecks will be drawn."); - drawOceanRuins = setup(config, "structures", "drawOceanRuins", true, "If set to true ocean ruins will be drawn."); - drawBuriedTreasure = setup(config, "structures", "drawBuriedTreasures", true, "If set to true buried treasure will be drawn."); - drawPillagerOutposts = setup(config, "structures", "drawPillagerOutposts", true, "If set to true pillager outposts will be drawn."); - drawNetherFossils = setup(config, "structures", "drawNetherFossils", true, "If set to true nether fossils will be drawn."); - drawBastionRemnants = setup(config, "structures", "drawBastionRemnants", true, "If set to true bastion remnants will be drawn."); - drawRuinedPortals = setup(config, "structures", "drawRuinedPortals", true, "If set to true ruined portals will be drawn."); - - drawSlimeChunks = setup(config, "slimeChunks", "drawSlimeChunks", true, "If set to true slime chunks bounding boxes are drawn."); - slimeChunkMaxY = setup(config, "slimeChunks", "slimeChunkMaxY", -1, "The maximum top of the slime chunk bounding box. If set to -1 it will use the value when activated, if set to 0 it will always track the player's feet."); - - drawWorldSpawn = setup(config, "worldSpawn", "drawWorldSpawn", true, "If set to true world spawn and spawn chunks bounding boxes are drawn."); - worldSpawnMaxY = setup(config, "worldSpawn", "worldSpawnMaxY", -1, "The maximum top of the world spawn bounding boxes. If set to -1 it will use the value when activated, if set to 0 it will always track the players feet."); - drawLazySpawnChunks = setup(config, "worldSpawn", "drawLazySpawnChunks", false, "If set to true the lazy spawn chunks bounding boxes will be drawn."); - - drawMobSpawners = setup(config, "mobSpawners", "drawMobSpawners", true, "If set to true mob spawners will be drawn."); - renderMobSpawnerSpawnArea = setup(config, "mobSpawners", "renderMobSpawnerSpawnArea", true, "If set to true a box to show the maximum possible spawn area (10x10x4) for a spawner will be drawn"); - renderMobSpawnerActivationLines = setup(config, "mobSpawners", "renderMobSpawnerActivationLines", true, "If set to true a red/orange/green line will be drawn to show if the spawner is active"); - - drawAFKSpheres = setup(config, "afkSpot", "drawAFKSpheres", true, "If set to true afk spot spheres will be drawn."); - renderAFKSpawnableBlocks = setup(config, "afkSpot", "renderAFKSpawnableBlocks", true, "If set to true boxes to show spawnable blocks within the AFK sphere will be drawn."); - afkSpawnableBlocksRenderDistance = setup(config, "afkSpot", "afkSpawnableBlocksRenderDistance", 3, "The distance from the player where spawnable blocks within the AFK sphere will be drawn."); - - config.save(); - } - - private static Configuration loadConfig() { - Configuration config = new Configuration(new File(configDir, "BBOutlineReloaded.cfg")); - config.load(); - return config; - } - - public static void saveConfig() { - Configuration config = new Configuration(new File(configDir, "BBOutlineReloaded.cfg")); - for (Setting setting : settings) { - config.put(setting); - } - config.save(); - } - - private static Setting setup(Configuration config, String category, String settingName, T defaultValue, String comment) { - Setting setting = config.get(category, settingName, defaultValue); - setting.category = category; - setting.name = settingName; - setting.comment = comment + " (default: " + defaultValue.toString() + ")"; - settings.add(setting); - return setting; - } - - public static void Toggle(Setting setting) { - setting.set(!setting.get()); - } - - public static Set> getSettings() { - return settings; - } -} diff --git a/src/main/java/com/irtimaled/bbor/config/Configuration.java b/src/main/java/com/irtimaled/bbor/config/Configuration.java deleted file mode 100644 index f061093..0000000 --- a/src/main/java/com/irtimaled/bbor/config/Configuration.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.irtimaled.bbor.config; - -import com.google.common.io.Files; - -import java.io.*; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class Configuration { - public static final String FALLBACK_CATEGORY = "features"; - private final File file; - - Configuration(File file) { - this.file = file; - } - - void save() { - try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8))) { - writer.write("# Configuration file\n"); - for (String category : settingsGroup.keySet()) { - writer.write("\n"); - writer.write(String.format("%s {\n", category)); - Map> settings = settingsGroup.get(category); - boolean first = true; - for (String settingName : settings.keySet()) { - if (!first) - writer.write("\n"); - first = false; - Setting setting = settings.get(settingName); - writer.write(String.format(" # %s\n", setting.comment)); - writer.write(String.format(" %s:%s=%s\n", setting.getType(), settingName, setting.getValue())); - } - writer.write("}\n"); - } - } catch (IOException ignored) { - } - } - - private final Map>> settingsGroup = new HashMap<>(); - - void load() { - try { - List lines = Files.readLines(file, StandardCharsets.UTF_8); - String category = null; - String lastCommentLine = null; - for (String line : lines) { - String trimmedLine = line.trim(); - if (trimmedLine.isEmpty()) { - continue; - } - if (trimmedLine.startsWith("#")) { - lastCommentLine = trimmedLine.substring(1).trim(); - continue; - } - if (trimmedLine.equals("}")) { - category = null; - continue; - } - if (category == null && trimmedLine.endsWith("{")) { - category = trimmedLine.substring(0, trimmedLine.length() - 1).trim(); - settingsGroup.put(category, new HashMap<>()); - continue; - } - if (category != null) { - String[] items = trimmedLine.split("[:=]"); - char type = items[0].charAt(0); - String name = items[1]; - String stringValue = items[2]; - Setting setting = getTypedSetting(type, stringValue); - setting.comment = lastCommentLine; - settingsGroup.get(category).put(name, setting); - } - } - } catch (IOException ignored) { - } - } - - private Setting getTypedSetting(char type, String value) { - switch (type) { - case 'I': - return new Setting<>(type, Integer.parseInt(value)); - case 'B': - return new Setting<>(type, value.equals("1") || value.toLowerCase().equals("true")); - } - return new Setting<>(type, value); - } - - Setting get(String category, String settingName, T defaultValue) { - char type = getType(defaultValue); - if (!settingsGroup.containsKey(category)) { - settingsGroup.put(category, new HashMap<>()); - } - Map> settings = settingsGroup.get(category); - Setting setting = settings.get(settingName); - if (setting == null && !category.equals(FALLBACK_CATEGORY)) - setting = getFallbackSetting(settingName, settings); - if (setting != null && setting.getType() != type) { - setting = null; - } - if (setting == null) { - settings.put(settingName, setting = new Setting<>(type, defaultValue)); - } - return (Setting) setting; - } - - private Setting getFallbackSetting(String settingName, Map> settings) { - Map> fallbackSettings = settingsGroup.get(FALLBACK_CATEGORY); - if (fallbackSettings == null) return null; - - Setting setting = fallbackSettings.get(settingName); - if (setting != null) { - fallbackSettings.remove(settingName); - settings.put(settingName, setting); - } - return setting; - } - - private char getType(T defaultValue) { - String[] typeNames = defaultValue.getClass().getName().split("[.]"); - return typeNames[typeNames.length - 1].charAt(0); - } - - void put(Setting setting) { - String category = setting.category; - if (!settingsGroup.containsKey(category)) { - settingsGroup.put(category, new HashMap<>()); - } - Map> settings = settingsGroup.get(category); - settings.put(setting.name, setting); - } -} diff --git a/src/main/java/com/irtimaled/bbor/config/Setting.java b/src/main/java/com/irtimaled/bbor/config/Setting.java deleted file mode 100644 index e1dabf3..0000000 --- a/src/main/java/com/irtimaled/bbor/config/Setting.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.irtimaled.bbor.config; - -public class Setting extends AbstractSetting { - private T value; - - Setting(char type, T value) { - super(type); - this.value = value; - } - - public T get() { - return value; - } - - public void set(T value) { - this.value = value; - } - - @Override - Object getValue() { - return value; - } -} diff --git a/src/main/java/com/irtimaled/bbor/mixin/client/MixinMinecraft.java b/src/main/java/com/irtimaled/bbor/mixin/client/MixinMinecraft.java index b3213f4..5b500cd 100644 --- a/src/main/java/com/irtimaled/bbor/mixin/client/MixinMinecraft.java +++ b/src/main/java/com/irtimaled/bbor/mixin/client/MixinMinecraft.java @@ -2,7 +2,6 @@ package com.irtimaled.bbor.mixin.client; import com.irtimaled.bbor.client.ClientProxy; import com.irtimaled.bbor.client.interop.ModPackFinder; -import com.irtimaled.bbor.common.interop.CommonInterop; import net.minecraft.client.Minecraft; import net.minecraft.client.main.GameConfiguration; import net.minecraft.client.resources.ResourcePackInfoClient; @@ -21,7 +20,6 @@ public class MixinMinecraft { @Inject(method = "", at = @At("RETURN")) private void constructor(GameConfiguration configuration, CallbackInfo ci) { - CommonInterop.init(); clientProxy = new ClientProxy(); this.resourcePackRepository.addPackFinder(new ModPackFinder()); } diff --git a/src/main/java/com/irtimaled/bbor/mixin/server/dedicated/MixinDedicatedServer.java b/src/main/java/com/irtimaled/bbor/mixin/server/dedicated/MixinDedicatedServer.java index 983def3..193bb81 100644 --- a/src/main/java/com/irtimaled/bbor/mixin/server/dedicated/MixinDedicatedServer.java +++ b/src/main/java/com/irtimaled/bbor/mixin/server/dedicated/MixinDedicatedServer.java @@ -1,7 +1,6 @@ package com.irtimaled.bbor.mixin.server.dedicated; import com.irtimaled.bbor.common.CommonProxy; -import com.irtimaled.bbor.common.interop.CommonInterop; import net.minecraft.server.dedicated.DedicatedServer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -12,7 +11,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; public class MixinDedicatedServer { @Inject(method = "init", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/dedicated/DedicatedServer;loadAllWorlds(Ljava/lang/String;Ljava/lang/String;JLnet/minecraft/world/WorldType;Lcom/google/gson/JsonElement;)V")) private void init(CallbackInfoReturnable cir) { - CommonInterop.init(); new CommonProxy().init(); } }