-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
145 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,52 @@ | ||
package me.nixuge.serverlistbufferfixer; | ||
|
||
import java.io.File; | ||
|
||
import lombok.Getter; | ||
import lombok.Setter; | ||
import me.nixuge.serverlistbufferfixer.config.ConfigCache; | ||
import net.minecraftforge.common.MinecraftForge; | ||
import net.minecraftforge.common.config.Configuration; | ||
import net.minecraftforge.fml.common.Mod; | ||
import net.minecraftforge.fml.common.event.FMLInitializationEvent; | ||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; | ||
|
||
@Mod( | ||
modid = McMod.MOD_ID, | ||
name = McMod.NAME, | ||
version = McMod.VERSION, | ||
guiFactory = "me.nixuge.serverlistbufferfixer.gui.GuiFactory", | ||
clientSideOnly = true | ||
) | ||
|
||
@Setter | ||
public class McMod { | ||
public static final String MOD_ID = "serverlistbufferfixer"; | ||
public static final String NAME = "Serverlist Buffer Fixer"; | ||
public static final String VERSION = "1.0.0"; | ||
public static final String VERSION = "1.0.1"; | ||
|
||
|
||
@Getter | ||
@Mod.Instance(value = McMod.MOD_ID) | ||
private static McMod instance; | ||
|
||
//@Mod.EventHandler | ||
//public void preInit(final FMLPreInitializationEvent event) { | ||
// Keeping that to setup the config later | ||
// (timeout & custom messages?) | ||
//} | ||
@Getter | ||
private Configuration configuration; | ||
@Getter | ||
private String configDirectory; | ||
@Getter | ||
private ConfigCache configCache; | ||
|
||
@Mod.EventHandler | ||
public void preInit(final FMLPreInitializationEvent event) { | ||
this.configDirectory = event.getModConfigurationDirectory().toString(); | ||
final File path = new File(this.configDirectory + File.separator + McMod.MOD_ID + ".cfg"); | ||
this.configuration = new Configuration(path); | ||
this.configCache = new ConfigCache(this.configuration); | ||
} | ||
|
||
@Mod.EventHandler | ||
public void init(final FMLInitializationEvent event) { | ||
MinecraftForge.EVENT_BUS.register(configCache); | ||
} | ||
} |
59 changes: 59 additions & 0 deletions
59
src/main/java/me/nixuge/serverlistbufferfixer/config/ConfigCache.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
package me.nixuge.serverlistbufferfixer.config; | ||
|
||
import lombok.Getter; | ||
import me.nixuge.serverlistbufferfixer.McMod; | ||
import net.minecraftforge.common.config.Configuration; | ||
import net.minecraftforge.fml.client.event.ConfigChangedEvent; | ||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; | ||
|
||
@Getter | ||
public class ConfigCache { | ||
private final Configuration configuration; | ||
|
||
private int maxThreadCountPinger; | ||
private int maxThreadCountTimeout; | ||
private int serverTimeout; | ||
|
||
public ConfigCache(final Configuration configuration) { | ||
this.configuration = configuration; | ||
this.loadConfiguration(); | ||
this.configuration.save(); | ||
} | ||
|
||
private void loadConfiguration() { | ||
// Enable | ||
this.maxThreadCountPinger = this.configuration.getInt( | ||
"Max threadcount (Pinger)", | ||
"General", | ||
50, | ||
5, | ||
500, | ||
"Max numbers of threads for the server pinger. Mc defaults to 5, this mods defaults to 50. Those threads are lightweight so shouldn't cause performance issues, and are only used when loading/reloading servers. Requires a Minecraft restart." | ||
); | ||
this.maxThreadCountTimeout = this.configuration.getInt( | ||
"Max threadcount (timeouts)", | ||
"General", | ||
100, | ||
10, | ||
1000, | ||
"Max numbers of threads for the server timeout. Usually double of the max threadcount for the server pinger. This mods defaults to 100. Those threads are lightweight so shouldn't cause performance issues, and are only used when loading/reloading servers. Requires a Minecraft restart." | ||
); | ||
this.serverTimeout = this.configuration.getInt( | ||
"Server fetching timeout", | ||
"General", | ||
4, | ||
1, | ||
60, | ||
"Timeout for fetching a server's data." | ||
); | ||
|
||
} | ||
|
||
@SubscribeEvent | ||
public void onConfigurationChangeEvent(final ConfigChangedEvent.OnConfigChangedEvent event) { | ||
this.configuration.save(); | ||
if (event.modID.equalsIgnoreCase(McMod.MOD_ID)) { | ||
this.loadConfiguration(); | ||
} | ||
} | ||
} |
29 changes: 29 additions & 0 deletions
29
src/main/java/me/nixuge/serverlistbufferfixer/gui/GuiFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package me.nixuge.serverlistbufferfixer.gui; | ||
|
||
import net.minecraft.client.Minecraft; | ||
import net.minecraft.client.gui.GuiScreen; | ||
import net.minecraftforge.fml.client.IModGuiFactory; | ||
|
||
import java.util.HashSet; | ||
import java.util.Set; | ||
|
||
public class GuiFactory implements IModGuiFactory { | ||
@Override | ||
public void initialize(final Minecraft minecraftInstance) { | ||
} | ||
|
||
@Override | ||
public Class<? extends GuiScreen> mainConfigGuiClass() { | ||
return ModGuiConfig.class; | ||
} | ||
|
||
@Override | ||
public Set<RuntimeOptionCategoryElement> runtimeGuiCategories() { | ||
return new HashSet<>(); | ||
} | ||
|
||
@Override | ||
public RuntimeOptionGuiHandler getHandlerFor(final RuntimeOptionCategoryElement element) { | ||
return null; | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/main/java/me/nixuge/serverlistbufferfixer/gui/ModGuiConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package me.nixuge.serverlistbufferfixer.gui; | ||
|
||
import me.nixuge.serverlistbufferfixer.McMod; | ||
import net.minecraft.client.gui.GuiScreen; | ||
import net.minecraftforge.common.config.ConfigElement; | ||
import net.minecraftforge.common.config.Configuration; | ||
import net.minecraftforge.fml.client.config.GuiConfig; | ||
|
||
public class ModGuiConfig extends GuiConfig { | ||
public ModGuiConfig(final GuiScreen guiScreen) { | ||
super( | ||
guiScreen, | ||
new ConfigElement(McMod.getInstance().getConfiguration().getCategory(Configuration.CATEGORY_GENERAL)).getChildElements(), | ||
McMod.MOD_ID, | ||
false, | ||
false, | ||
McMod.NAME + " Configuration" | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters