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