completed setting parser
This commit is contained in:
parent
4cf58d64b5
commit
4af9e11bf4
5 changed files with 96 additions and 7 deletions
|
@ -1,3 +1,5 @@
|
||||||
# This is the default settings file. All lines starting with a '#' are treated as comments and will be ignored.
|
# This is the default settings file. All lines starting with a '#' are treated as comments and will be ignored.
|
||||||
# 'resurrection_time' is the amount of time in milliseconds Resurrection will force the player to wait. Default value is 8640000 milliseconds (24 hours).
|
# 'resurrection_time' is the amount of time in milliseconds Resurrection will force the player to wait. Default value is 8640000 milliseconds (24 hours).
|
||||||
resurrection_time=8640000
|
resurrection_time=8640000
|
||||||
|
# 'debug' enables debug messages in the console and players' chat as the plugin runs. The only valid values are 'true' and 'false'. Default value is false.
|
||||||
|
debug=false
|
|
@ -1,12 +1,94 @@
|
||||||
package net.brysonsteck.Resurrection;
|
package net.brysonsteck.Resurrection;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class ParseSettings {
|
public class ParseSettings {
|
||||||
Hashtable<String, String> settings = new Hashtable<>();
|
Hashtable<String, String> settings = new Hashtable<>();
|
||||||
|
|
||||||
public ParseSettings() {
|
// <setting that failed / does it exist? (true = the value is wrong, false = the setting is missing)>
|
||||||
|
String failedSetting;
|
||||||
|
boolean settingsComplete;
|
||||||
|
boolean valuesComplete;
|
||||||
|
|
||||||
|
|
||||||
|
public ParseSettings() {
|
||||||
|
try {
|
||||||
|
String rawData = "";
|
||||||
|
BufferedReader reader = new BufferedReader(new FileReader("plugins/settings.resurrection"));
|
||||||
|
String line;
|
||||||
|
String[] setting;
|
||||||
|
while (true) {
|
||||||
|
line = reader.readLine();
|
||||||
|
if (line == null) {
|
||||||
|
break;
|
||||||
|
} else if (!line.startsWith("#")) {
|
||||||
|
rawData = rawData + line;
|
||||||
|
setting = line.split("=");
|
||||||
|
settings.put(setting[0], setting[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!verifySettings()) {
|
||||||
|
System.out.println("[Resurrection] There is a syntax issue inside the Settings file:");
|
||||||
|
if (!settingsComplete) {
|
||||||
|
System.out.println("[Resurrection] The setting \"" + failedSetting + "\" is not present in the settings file.\n" +
|
||||||
|
"[Resurrection] Please double check the settings file to make sure the setting exists and a valid corresponding value is set.\n" +
|
||||||
|
"[Resurrection] Example: \"resurrection_time=8640000\"\n" +
|
||||||
|
"[Resurrection] Example: \"debug=false\"");
|
||||||
|
} else if (!valuesComplete) {
|
||||||
|
System.out.println("[Resurrection] The setting \"" + failedSetting + "\" contains an invalid or empty value.\n" +
|
||||||
|
"[Resurrection] Please double check the settings file to make sure that a valid value is set for this setting.\n" +
|
||||||
|
"[Resurrection] Example: \"resurrection_time=8640000\"\n" +
|
||||||
|
"[Resurrection] Example: \"debug=false\"");
|
||||||
|
}
|
||||||
|
System.out.println("[Resurrection] This file is crucial to Resurrection. Since the file is not complete, the plugin will now stop.");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("[Resurrection] There was an issue reading the Settings file.");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean verifySettings() {
|
||||||
|
settingsComplete = false;
|
||||||
|
valuesComplete = false;
|
||||||
|
|
||||||
|
if (!settings.containsKey("resurrection_time")) {
|
||||||
|
failedSetting = "resurrection_time";
|
||||||
|
return false;
|
||||||
|
} else if (!settings.containsKey("debug")) {
|
||||||
|
failedSetting = "debug";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
settingsComplete = true;
|
||||||
|
|
||||||
|
// is resurrection_time a long?
|
||||||
|
try {
|
||||||
|
long time = Long.parseLong(settings.get("resurrection_time"));
|
||||||
|
} catch (NumberFormatException | NullPointerException e) {
|
||||||
|
failedSetting = "resurrection_time";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// is debug a boolean?
|
||||||
|
if (settings.get("debug") == null) {
|
||||||
|
failedSetting = "debug";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (settings.get("debug").toLowerCase().contains("true") && settings.get("debug").toLowerCase().contains("false")) {
|
||||||
|
failedSetting = "debug";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
valuesComplete = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSetting(String setting) {
|
public String getSetting(String setting) {
|
||||||
|
|
|
@ -82,7 +82,6 @@ public class Resurrection extends JavaPlugin implements Listener {
|
||||||
System.out.println("[Resurrection] An error has occurred creating the player data file!");
|
System.out.println("[Resurrection] An error has occurred creating the player data file!");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
System.out.println("[Resurrection] This file is crucial to Resurrection. Since the file could not be created, the plugin will now stop.");
|
System.out.println("[Resurrection] This file is crucial to Resurrection. Since the file could not be created, the plugin will now stop.");
|
||||||
System.exit(1);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
System.out.println("[Resurrection] The player data file has been found!");
|
System.out.println("[Resurrection] The player data file has been found!");
|
||||||
|
@ -90,13 +89,13 @@ public class Resurrection extends JavaPlugin implements Listener {
|
||||||
if (!settingsFile.exists()) {
|
if (!settingsFile.exists()) {
|
||||||
System.out.println("[Resurrection] Settings file does not exist. (This file is new with the 0.2 beta if you upgraded.) Creating now in the \"plugins\" directory...");
|
System.out.println("[Resurrection] Settings file does not exist. (This file is new with the 0.2 beta if you upgraded.) Creating now in the \"plugins\" directory...");
|
||||||
try {
|
try {
|
||||||
playerFile.createNewFile();
|
settingsFile.createNewFile();
|
||||||
System.out.println("[Resurrection] Settings file created successfully.");
|
System.out.println("[Resurrection] Settings file created successfully.");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("[Resurrection] An error has occurred creating the settings file!");
|
System.out.println("[Resurrection] An error has occurred creating the settings file!");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
System.out.println("[Resurrection] This file is crucial to Resurrection. Since the file could not be created, the plugin will now stop.");
|
System.out.println("[Resurrection] This file is crucial to Resurrection. Since the file could not be created, the plugin will now stop.");
|
||||||
System.exit(1);
|
Bukkit.getPluginManager().disablePlugin(this);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
System.out.println("[Resurrection] The settings file has also been found!");
|
System.out.println("[Resurrection] The settings file has also been found!");
|
||||||
|
@ -159,7 +158,6 @@ public class Resurrection extends JavaPlugin implements Listener {
|
||||||
|
|
||||||
// TimeCheck timeCheck = new TimeCheck((System.currentTimeMillis() + 86212345) - System.currentTimeMillis());
|
// TimeCheck timeCheck = new TimeCheck((System.currentTimeMillis() + 86212345) - System.currentTimeMillis());
|
||||||
// System.out.println(timeCheck.formatTime());
|
// System.out.println(timeCheck.formatTime());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
package net.brysonsteck.Resurrection.player;
|
package net.brysonsteck.Resurrection.player;
|
||||||
|
|
||||||
|
|
||||||
|
import net.brysonsteck.Resurrection.Resurrection;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
|
|
||||||
|
@ -38,7 +42,10 @@ public class PlayerData {
|
||||||
this.playerData.put(playerData[0], playerHash);
|
this.playerData.put(playerData[0], playerHash);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
System.out.println("[Resurrection] There was an issue reading the player data file.");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
System.out.println("[Resurrection] This file is crucial to Resurrection. Since the file could not be read, the plugin will now stop.");
|
||||||
|
Bukkit.getPluginManager().disablePlugin(JavaPlugin.getProvidingPlugin(Resurrection.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
main: net.brysonsteck.Resurrection.Resurrection
|
main: net.brysonsteck.Resurrection.Resurrection
|
||||||
name: Resurrection
|
name: Resurrection
|
||||||
author: 'Bryson Steck'
|
author: 'Bryson Steck'
|
||||||
version: '0.1 beta'
|
version: '0.2 beta'
|
||||||
commands:
|
commands:
|
||||||
about:
|
about:
|
||||||
description: Displays information about Resurrection.
|
description: Displays information about Resurrection.
|
||||||
|
|
Loading…
Add table
Reference in a new issue