diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/DynamicSpawnControl.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/DynamicSpawnControl.java index 6a38724..74782ba 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/DynamicSpawnControl.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/DynamicSpawnControl.java @@ -12,11 +12,13 @@ import net.minecraftforge.fml.common.event.FMLServerStoppedEvent; import org.imesense.dynamicspawncontrol.debug.CheckDebugger; +import org.imesense.dynamicspawncontrol.technical.eventprocessor.single.OnWindowTitle; import org.imesense.dynamicspawncontrol.technical.initializer.RegisterGameplayClasses; import org.imesense.dynamicspawncontrol.technical.initializer.RegisterCommandsClasses; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; import org.imesense.dynamicspawncontrol.technical.eventprocessor.single.OnUpdateTimeWorld; import org.imesense.dynamicspawncontrol.technical.gamestructures.Structures; +import org.imesense.dynamicspawncontrol.technical.initializer.RegisterTechnicalClasses; import org.imesense.dynamicspawncontrol.technical.network.MessageHandler; import org.imesense.dynamicspawncontrol.technical.proxy.IProxy; import org.imesense.dynamicspawncontrol.technical.worldcache.CacheConfig; @@ -178,7 +180,7 @@ public synchronized void preInit(FMLPreInitializationEvent event) // Log.createLogFile(globalDirectory.getPath() + File.separator + STRUCT_FILES_DIRS.NAME_DIRECTORY); - Log.writeDataToLogFile(0, "Check debugger -> " + checkDebugger.IsRunDebugger); + Log.writeDataToLogFile(1, "Debugger is running: " + (checkDebugger.IsRunDebugger ? "true" : "false")); // MessageHandler.init(); @@ -186,6 +188,12 @@ public synchronized void preInit(FMLPreInitializationEvent event) // cacheStorage = new CacheStorage("CacheStorage"); + // + RegisterTechnicalClasses.registerClasses(); + + // + OnWindowTitle.replace(); + // RegisterGameplayClasses.registerClasses(); @@ -227,7 +235,7 @@ public synchronized void postInit(FMLPostInitializationEvent event) @EventHandler public synchronized void onLoadComplete(FMLLoadCompleteEvent event) { - cacheConfig = new CacheConfig("onLoadComplete -> CacheConfig"); + cacheConfig = new CacheConfig("CacheConfig"); cacheConfig.loadConfig(true); } diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigDebugSingleEvents.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigDebugSingleEvents.java index ace69eb..7b11893 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigDebugSingleEvents.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigDebugSingleEvents.java @@ -8,7 +8,7 @@ /** * */ -public class ConfigDebugSingleEvents implements IConfig +public final class ConfigDebugSingleEvents implements IConfig { /** * @@ -32,13 +32,10 @@ public ConfigDebugSingleEvents(final String nameClass) /** * * @param event - * @param nameClass */ @Override - public void init(FMLPreInitializationEvent event, final String nameClass) + public void init(FMLPreInitializationEvent event) { - Log.writeDataToLogFile(0, nameClass); - ClientProxy.ConfigDebugSingleEvents = this.createConfiguration("debug_actions_single_events"); this.read(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigGameDebugger.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigGameDebugger.java index 519186d..afea547 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigGameDebugger.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigGameDebugger.java @@ -80,13 +80,10 @@ public ConfigGameDebugger(final String nameClass) /** * * @param event - * @param nameClass */ @Override - public void init(FMLPreInitializationEvent event, final String nameClass) + public void init(FMLPreInitializationEvent event) { - Log.writeDataToLogFile(0, nameClass); - ClientProxy.ConfigGameDebugger = this.createConfiguration("game_debugger"); this.read(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigLogFile.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigLogFile.java index 9e3077f..b44d02f 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigLogFile.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigLogFile.java @@ -29,13 +29,10 @@ public ConfigLogFile(final String nameClass) /** * * @param event - * @param nameClass */ @Override - public void init(FMLPreInitializationEvent event, final String nameClass) + public void init(FMLPreInitializationEvent event) { - Log.writeDataToLogFile(0, nameClass); - ClientProxy.ConfigLogFile = this.createConfiguration("log"); this.read(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigPlayer.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigPlayer.java index 67b78e2..2068187 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigPlayer.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigPlayer.java @@ -30,13 +30,10 @@ public ConfigPlayer(final String nameClass) /** * * @param event - * @param nameClass */ @Override - public void init(FMLPreInitializationEvent event, final String nameClass) + public void init(FMLPreInitializationEvent event) { - Log.writeDataToLogFile(0, nameClass); - ClientProxy.ConfigPlayer = this.createConfiguration("player"); this.read(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigRenderNight.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigRenderNight.java index 446ab92..ccb9596 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigRenderNight.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigRenderNight.java @@ -11,7 +11,7 @@ /** * */ -public class ConfigRenderNight implements IConfig +public final class ConfigRenderNight implements IConfig { /** * @@ -85,13 +85,10 @@ public ConfigRenderNight(final String nameClass) /** * * @param event - * @param nameClass */ @Override - public void init(FMLPreInitializationEvent event, final String nameClass) + public void init(FMLPreInitializationEvent event) { - Log.writeDataToLogFile(0, nameClass); - ClientProxy.ConfigNights = this.createConfiguration("nights"); this.read(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWindowTitle.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWindowTitle.java new file mode 100644 index 0000000..6d56610 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWindowTitle.java @@ -0,0 +1,73 @@ +package org.imesense.dynamicspawncontrol.technical.configs; + +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import org.imesense.dynamicspawncontrol.DynamicSpawnControl; +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; +import org.imesense.dynamicspawncontrol.technical.proxy.ClientProxy; + +/** + * + */ +public final class ConfigWindowTitle implements IConfig +{ + /** + * + */ + public static String WindowTitle = + String.format("Minecraft: %s + %s", DynamicSpawnControl.STRUCT_INFO_MOD.VERSION, DynamicSpawnControl.STRUCT_INFO_MOD.NAME); + + public ConfigWindowTitle(final String nameClass) + { + + } + + /** + * + * @param event + */ + @Override + public void init(FMLPreInitializationEvent event) + { + ClientProxy.ConfigWindowTitle = this.createConfiguration("name_window"); + + this.read(); + } + + /** + * + * @param configuration + */ + @Override + public void readProperties(Configuration configuration) + { + WindowTitle = this.getConfigValueS( + configuration, + "Window title", + "window", WindowTitle, + "The title of the Minecraft window"); + } + + /** + * + */ + @Override + public void read() + { + Configuration configuration = ClientProxy.ConfigWindowTitle; + + try + { + configuration.load(); + + this.readProperties(configuration); + } + finally + { + if (configuration.hasChanged()) + { + configuration.save(); + } + } + } +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldGenerator.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldGenerator.java index d64048b..1c4ecd1 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldGenerator.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldGenerator.java @@ -40,13 +40,10 @@ public ConfigWorldGenerator(final String nameClass) /** * * @param event - * @param nameClass */ @Override - public void init(FMLPreInitializationEvent event, final String nameClass) + public void init(FMLPreInitializationEvent event) { - Log.writeDataToLogFile(0, nameClass); - ClientProxy.ConfigOreGeneratorFile = this.createConfiguration("ore_generator"); this.read(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldTime.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldTime.java index d7d8cff..0763e44 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldTime.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldTime.java @@ -50,13 +50,10 @@ public ConfigWorldTime(final String nameClass) /** * * @param event - * @param nameClass */ @Override - public void init(FMLPreInitializationEvent event, final String nameClass) + public void init(FMLPreInitializationEvent event) { - Log.writeDataToLogFile(0, nameClass); - ClientProxy.ConfigWorldTime = this.createConfiguration("world_time"); this.read(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigZombieDropItem.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigZombieDropItem.java index 333a03d..99d5fe5 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigZombieDropItem.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigZombieDropItem.java @@ -60,13 +60,10 @@ public ConfigZombieDropItem(final String nameClass) /** * * @param event - * @param nameClass */ @Override - public void init(FMLPreInitializationEvent event, final String nameClass) + public void init(FMLPreInitializationEvent event) { - Log.writeDataToLogFile(0, nameClass); - ClientProxy.ConfigZombieDropItem = this.createConfiguration("zombie_drop"); this.read(); diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/IConfig.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/IConfig.java index 24b35ad..10c7c61 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/IConfig.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/IConfig.java @@ -14,9 +14,8 @@ public interface IConfig /** * * @param event - * @param nameClass */ - void init(FMLPreInitializationEvent event, final String nameClass); + void init(FMLPreInitializationEvent event); /** * @@ -72,6 +71,20 @@ default boolean getConfigValueB(Configuration config, String name, String catego return config.getBoolean(name, category, defaultValue, comment); } + /** + * + * @param config + * @param name + * @param category + * @param defaultValue + * @param comment + * @return + */ + default String getConfigValueS(Configuration config, String name, String category, String defaultValue, String comment) + { + return config.getString(name, category, defaultValue, comment); + } + /** * * @param config diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/single/OnWindowTitle.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/single/OnWindowTitle.java new file mode 100644 index 0000000..a665aa1 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/eventprocessor/single/OnWindowTitle.java @@ -0,0 +1,76 @@ +package org.imesense.dynamicspawncontrol.technical.eventprocessor.single; + +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.EventPriority; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; +import org.imesense.dynamicspawncontrol.technical.configs.ConfigWindowTitle; +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; +import org.lwjgl.opengl.Display; + +import javax.annotation.Nonnull; +import java.util.Objects; + +/** + * + */ +@Mod.EventBusSubscriber +public final class OnWindowTitle +{ + /** + * + * @param nameClass + */ + public OnWindowTitle(final String nameClass) + { + + } + + /** + * + */ + @Nonnull + private static final String TITLE = ConfigWindowTitle.WindowTitle; + + /** + * + * @param event + */ + @SubscribeEvent(priority = EventPriority.LOWEST) + public synchronized void onUpdateClientTick_0(TickEvent.ClientTickEvent event) + { + replace(); + } + + /** + * + * @param formatString + * @return + */ + public static String setTextWindowTitle(@Nonnull String formatString) + { + @Nonnull final String mcVersion = Loader.instance().getMinecraftModContainer().getVersion(); + @Nonnull final String modCount = Integer.toString(Loader.instance().getModList().size()); + + formatString = formatString.replaceAll("%mcver%", mcVersion); + formatString = formatString.replaceAll("%modcount%", modCount); + + return formatString; + } + + /** + * + */ + public static void replace() + { + if (FMLCommonHandler.instance().getSide().isClient()) + { + if (!Objects.equals(TITLE, "")) + { + Display.setTitle(setTextWindowTitle(TITLE)); + } + } + } +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterConfigClasses.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterConfigClasses.java index 64f982d..dff8b4e 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterConfigClasses.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterConfigClasses.java @@ -15,6 +15,7 @@ public final class RegisterConfigClasses */ private static final Class[] CONFIG_CLASSES = { + ConfigWindowTitle.class, ConfigLogFile.class, ConfigGameDebugger.class, ConfigWorldGenerator.class, @@ -43,17 +44,17 @@ public static void init(FMLPreInitializationEvent event) { try { - Log.writeDataToLogFile(0, "Start reading class: " + configClass.getName()); + Log.writeDataToLogFile(0, "Reading class: " + configClass.getName()); if (!CodeGenericUtils.hasConstructorWithParameter(configClass, String.class)) { - Log.writeDataToLogFile(0, "Class " + configClass.getName() + " does not have a constructor with a String parameter."); + Log.writeDataToLogFile(2, "Class " + configClass.getName() + " does not have a constructor with a String parameter."); throw new RuntimeException(); } Object configInstance = configClass.getConstructor(String.class).newInstance(configClass.getSimpleName()); - ((IConfig)configInstance).init(event, configClass.getSimpleName()); + ((IConfig)configInstance).init(event); } catch (Exception exception) { diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterTechnicalClasses.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterTechnicalClasses.java new file mode 100644 index 0000000..7370dd1 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterTechnicalClasses.java @@ -0,0 +1,49 @@ +package org.imesense.dynamicspawncontrol.technical.initializer; + +import net.minecraftforge.common.MinecraftForge; +import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; +import org.imesense.dynamicspawncontrol.technical.eventprocessor.single.OnWindowTitle; + +/** + * + */ +public final class RegisterTechnicalClasses +{ + /** + * + */ + private static final Class[] EVENT_CLASSES = + { + OnWindowTitle.class + }; + + /** + * + * @param nameClass + */ + public RegisterTechnicalClasses(final String nameClass) + { + } + + /** + * + */ + public static void registerClasses() + { + for (Class eventClass : EVENT_CLASSES) + { + try + { + Log.writeDataToLogFile(0, "Reading class: " + eventClass.getName()); + + Object eventInstance = eventClass.getConstructor(String.class).newInstance(eventClass.getSimpleName()); + MinecraftForge.EVENT_BUS.register(eventInstance); + } + catch (Exception exception) + { + Log.writeDataToLogFile(2, "Exception in class: " + eventClass.getName() + " - " + exception.getMessage()); + throw new RuntimeException(exception); + } + } + } +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java index ec8b14e..6b7509b 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java @@ -61,6 +61,11 @@ public final class ClientProxy implements IProxy */ public static Configuration ConfigDebugSingleEvents; + /** + * + */ + public static Configuration ConfigWindowTitle; + /** * Preinitialize modification * @@ -94,6 +99,7 @@ public void postInit(FMLPostInitializationEvent event) { CodeGenericUtils.checkObjectNotNull(ConfigLogFile, "ConfigLogFile").save(); CodeGenericUtils.checkObjectNotNull(ConfigGameDebugger, "ConfigGameDebugger").save(); + CodeGenericUtils.checkObjectNotNull(ConfigWindowTitle, "ConfigWindowTitle").save(); CodeGenericUtils.checkObjectNotNull(ConfigDebugSingleEvents, "ConfigDebugSingleEvents").save(); CodeGenericUtils.checkObjectNotNull(ConfigOreGeneratorFile, "ConfigOreGeneratorFile").save(); CodeGenericUtils.checkObjectNotNull(ConfigNights, "ConfigNights").save();