Change HMOD to use its own config file

This commit is contained in:
RhysB 2020-11-23 21:39:27 +10:00
parent 4c49c87995
commit 311f190d92
2 changed files with 114 additions and 46 deletions

View File

@ -34,6 +34,7 @@ public class MineOnlineBroadcast extends Plugin {
PluginRegisteredListener registeredListener; PluginRegisteredListener registeredListener;
boolean initialized; boolean initialized;
String serverName = "Minecraft Server"; String serverName = "Minecraft Server";
private MineOnlineConfig mineOnlineConfig;
public void launchProxy() throws IOException { public void launchProxy() throws IOException {
ServerSocket serverSocket = new ServerSocket(0); ServerSocket serverSocket = new ServerSocket(0);
@ -177,24 +178,20 @@ public class MineOnlineBroadcast extends Plugin {
while (true) { while (true) {
if (System.currentTimeMillis() - MineOnlineBroadcast.lastPing > 45000) { if (System.currentTimeMillis() - MineOnlineBroadcast.lastPing > 45000) {
lastPing = System.currentTimeMillis(); lastPing = System.currentTimeMillis();
try { boolean isPublic = mineOnlineConfig.getConfigBoolean("public");
Properties propertiesFile = new Properties();
propertiesFile.load(new FileInputStream(new File("server.properties")));
boolean isPublic = propertiesFile.getProperty("public", "true").equals("true");
if (!isPublic) if (!isPublic)
return; return;
String ip = propertiesFile.getProperty("serverlist-ip", propertiesFile.getProperty("server-ip", propertiesFile.getProperty("ip", null))); String ip = mineOnlineConfig.getConfigString("serverlist-ip");
String port = propertiesFile.getProperty("serverlist-port", propertiesFile.getProperty("server-port", propertiesFile.getProperty("port", "25565"))); String port = mineOnlineConfig.getConfigString("serverlist-port");
int users = etc.getServer().getPlayerList().size(); int users = etc.getServer().getPlayerList().size();
int maxUsers = Integer.parseInt(propertiesFile.getProperty("max-players", "20")); int maxUsers = mineOnlineConfig.getConfigInteger("max-players");
String name = propertiesFile.getProperty("server-name", "Minecraft Server"); String name = mineOnlineConfig.getConfigString("server-name");
boolean onlineMode = propertiesFile.getProperty("online-mode", "true").equals("true"); boolean onlineMode = mineOnlineConfig.getConfigBoolean("online-mode");
//String md5 = propertiesFile.getProperty("version-md5", ""); //String md5 = propertiesFile.getProperty("version-md5", "");
boolean whitelisted = propertiesFile.getProperty("whitelist", "false").equals("true"); boolean whitelisted = mineOnlineConfig.getConfigBoolean("whitelist");
boolean dontListPlayers = propertiesFile.getProperty("dont-list-players", "false").equals("true"); boolean dontListPlayers = mineOnlineConfig.getConfigBoolean("dont-list-players");
String motd = propertiesFile.getProperty("serverlist-motd", null); String motd = mineOnlineConfig.getConfigString("serverlist-motd");
String[] playerNames = etc.getServer().getPlayerList().stream().map(player -> player.getName()).collect(Collectors.toList()).toArray(new String[users]); String[] playerNames = etc.getServer().getPlayerList().stream().map(player -> player.getName()).collect(Collectors.toList()).toArray(new String[users]);
@ -211,10 +208,6 @@ public class MineOnlineBroadcast extends Plugin {
motd, motd,
dontListPlayers dontListPlayers
); );
} catch (IOException ex) {
//ex.printStackTrace();
// ignore.
}
} }
} }
} }
@ -231,6 +224,8 @@ public class MineOnlineBroadcast extends Plugin {
MinecraftColorCodeProvider colorCodeProvider = new MinecraftColorCodeProvider(); MinecraftColorCodeProvider colorCodeProvider = new MinecraftColorCodeProvider();
mineOnlineConfig = new MineOnlineConfig(new File("." + File.separator + "plugins" + File.separator + "MineOnlineBroadcast" + File.separator + "config.properties"));
Properties propertiesFile = new Properties(); Properties propertiesFile = new Properties();
try { try {

73
src/MineOnlineConfig.java Normal file
View File

@ -0,0 +1,73 @@
import java.io.File;
public class MineOnlineConfig {
private boolean newFile = false;
private PropertiesFile propertiesFile;
public MineOnlineConfig(File file) {
if (!file.exists()) {
newFile = true;
file.getParentFile().mkdirs();
}
propertiesFile = new PropertiesFile(file.getAbsolutePath());
write();
propertiesFile.save();
}
public void write() {
//Main
generateConfigOption("config-version", 1);
//Setting
generateConfigOption("public", true);
generateConfigOption("serverlist-ip", null);
generateConfigOption("serverlist-port", 25565);
generateConfigOption("max-players", 20);
generateConfigOption("server-name", "Minecraft Server");
generateConfigOption("online-mode", true);
generateConfigOption("version-md", "");
generateConfigOption("whitelist", false);
generateConfigOption("dont-list-players", false);
generateConfigOption("serverlist-motd", null);
}
//Getters Start
public Object getConfigOption(String key) {
return this.propertiesFile.getProperty(key);
}
public String getConfigString(String key) {
return String.valueOf(getConfigOption(key));
}
public Integer getConfigInteger(String key) {
return Integer.valueOf(getConfigString(key));
}
public Long getConfigLong(String key) {
return Long.valueOf(getConfigString(key));
}
public Double getConfigDouble(String key) {
return Double.valueOf(getConfigString(key));
}
public Boolean getConfigBoolean(String key) {
return Boolean.valueOf(getConfigString(key));
}
//Getters End
private void generateConfigOption(String key, Object defaultValue) {
if (propertiesFile.getProperty(key) == null) {
propertiesFile.setString(key, String.valueOf(defaultValue));
}
final Object value = propertiesFile.getProperty(key);
propertiesFile.removeKey(key);
propertiesFile.setString(key, String.valueOf(value));
}
}