Skip to content

Commit

Permalink
Implementation of the config manager
Browse files Browse the repository at this point in the history
  • Loading branch information
OldSerpskiStalker committed Sep 17, 2024
1 parent 6dfec3d commit 3bff94c
Show file tree
Hide file tree
Showing 6 changed files with 111 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import net.minecraftforge.fml.common.event.FMLServerStoppedEvent;

import org.imesense.dynamicspawncontrol.debug.CheckDebugger;
import org.imesense.dynamicspawncontrol.technical.configs.IConfig;
import org.imesense.dynamicspawncontrol.technical.configs.SettingsLogFile;
import org.imesense.dynamicspawncontrol.technical.customlibrary.Log;
import org.imesense.dynamicspawncontrol.technical.proxy.IProxy;

Expand Down Expand Up @@ -41,6 +43,11 @@ public class DynamicSpawnControl
*/
public static final String VERSION = "1.12.2-14.23.5.2860";

/**
*
*/
public static final String NAME_DIRECTORY = "DynamicsSpawnControl";

/**
* Main class instance
*/
Expand All @@ -50,7 +57,7 @@ public class DynamicSpawnControl
/**
*
*/
private static CheckDebugger checkDebugger;
static CheckDebugger checkDebugger;

/**
*
Expand Down Expand Up @@ -94,7 +101,7 @@ public synchronized void preInit(FMLPreInitializationEvent event)
checkDebugger = new CheckDebugger();
globalDirectory = event.getModConfigurationDirectory();

Log.createLogFile(globalDirectory.getPath() + File.separator + "DynamicsSpawnControl");
Log.createLogFile(globalDirectory.getPath() + File.separator + NAME_DIRECTORY);
Log.writeDataToLogFile(Log.TypeLog[0], "Check debugger -> " + checkDebugger.IsRunDebugger);

Proxy.preInit(event);
Expand Down Expand Up @@ -150,5 +157,6 @@ public synchronized void serverLoad(FMLServerStartingEvent event)
@EventHandler
public synchronized void serverStopped(FMLServerStoppedEvent event)
{
Log.closeExecutor();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.imesense.dynamicspawncontrol.technical.configs;

import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

import java.util.ArrayList;
import java.util.List;

public class ConfigManager
{
private static final List<IConfig> settingList = new ArrayList<>();

static
{
settingList.add(new SettingsLogFile());
}

public static void init(FMLPreInitializationEvent event)
{
for (IConfig config : settingList)
{
config.init(event, config.getClass().getSimpleName());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.imesense.dynamicspawncontrol.technical.configs;

import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

public interface IConfig
{
void init(FMLPreInitializationEvent event, String nameClass);

void readProperties(Configuration configuration);

void read();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
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;

import java.io.File;

public final class SettingsLogFile implements IConfig
{
public static int LogMaxLines = 32767;

@Override
public void init(FMLPreInitializationEvent event, String nameClass)
{
Log.writeDataToLogFile(Log.TypeLog[0], nameClass);

ClientProxy.ConfigLogFile = new Configuration(new File(DynamicSpawnControl.getGlobalPathToConfigs().getPath() +
File.separator + DynamicSpawnControl.NAME_DIRECTORY + File.separator + "configs", "log.ltx"));

read();
}

@Override
public void readProperties(Configuration configuration)
{
LogMaxLines =
configuration.getInt
("Log maximum lines", "log_file_settings", LogMaxLines, 5, 32767,
"The parameter is responsible for the maximum number of lines in the log");
}

@Override
public void read()
{
Configuration configuration = ClientProxy.ConfigLogFile;

try
{
configuration.load();

readProperties(configuration);
}
finally
{
if (configuration.hasChanged())
{
configuration.save();
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.imesense.dynamicspawncontrol.technical.customlibrary;

import org.imesense.dynamicspawncontrol.technical.configs.SettingsLogFile;

import javax.annotation.Nonnull;
import java.io.*;
import java.text.SimpleDateFormat;
Expand Down Expand Up @@ -46,7 +48,7 @@ public static void createLogFile(String path)

writer.write("***********************************************");
writer.write("\n** Log file created: " + currentDate);
writer.write("\n** DynamicSpawnControl. Authors: OldSerpskiStalker, acidicMercury8");
writer.write("\n** DynamicsSpawnControl. Authors: OldSerpskiStalker, acidicMercury8");
writer.write("\n***********************************************");

writer.close();
Expand Down Expand Up @@ -123,7 +125,7 @@ public static void writeDataToLogFile(@Nonnull String typeInfo, String data)
writer.write("\n" + typeInfo + data);
writer.close();

cleanFile(logFile, 2000/*INFConfigLog._logMaxLines*/);
cleanFile(logFile, SettingsLogFile.LogMaxLines);
System.out.println("The data has been successfully written to the log file: " + logFile.getAbsolutePath());
}
catch (IOException e)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import org.imesense.dynamicspawncontrol.technical.configs.ConfigManager;

/**
* Client sided proxy
*/
public class ClientProxy implements IProxy
{
public static Configuration ConfigLogFile;

/**
* Preinitialize modification
*
Expand All @@ -24,6 +28,7 @@ public class ClientProxy implements IProxy
@Override
public void preInit(FMLPreInitializationEvent event)
{
ConfigManager.init(event);
}

/**
Expand All @@ -44,6 +49,7 @@ public void init(FMLInitializationEvent event)
@Override
public void postInit(FMLPostInitializationEvent event)
{
ConfigLogFile.save();
}

/**
Expand Down

0 comments on commit 3bff94c

Please sign in to comment.