diff --git a/src/cc/co/evenprime/bukkit/nocheat/NoCheatConfiguration.java b/src/cc/co/evenprime/bukkit/nocheat/NoCheatConfiguration.java new file mode 100644 index 00000000..97d76814 --- /dev/null +++ b/src/cc/co/evenprime/bukkit/nocheat/NoCheatConfiguration.java @@ -0,0 +1,78 @@ +package cc.co.evenprime.bukkit.nocheat; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.logging.ConsoleHandler; +import java.util.logging.FileHandler; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.logging.SimpleFormatter; + +import org.bukkit.util.config.Configuration; + +public class NoCheatConfiguration { + + public static final String loggerName = "cc.co.evenprime.bukkit.nocheat"; + public static final Logger logger = Logger.getLogger(loggerName); + + private NoCheatConfiguration() {} + + public static void config(File configurationFile) { + + if(!configurationFile.exists()) { + createStandardConfigFile(configurationFile); + } + Configuration c = new Configuration(configurationFile); + c.load(); + + logger.setLevel(Level.INFO); + logger.setUseParentHandlers(false); + + ConsoleHandler ch = new ConsoleHandler(); + + ch.setLevel(stringToLevel(c.getString("logging.logtoconsole"))); + ch.setFormatter(Logger.getLogger("Minecraft").getHandlers()[0].getFormatter()); + logger.addHandler(ch); + + FileHandler fh = null; + try { + fh = new FileHandler(c.getString("logging.filename"), true); + fh.setLevel(stringToLevel(c.getString("logging.logtofile"))); + fh.setFormatter(Logger.getLogger("Minecraft").getHandlers()[0].getFormatter()); + logger.addHandler(fh); + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private static Level stringToLevel(String string) { + + if(string == null) { + return Level.OFF; + } + + if(string.trim().equals("info")) return Level.INFO; + if(string.trim().equals("warn")) return Level.WARNING; + if(string.trim().equals("severe")) return Level.SEVERE; + return Level.OFF; + } + + private static void createStandardConfigFile(File f) { + try { + BufferedWriter w = new BufferedWriter(new FileWriter(f)); + + w.write("logging:"); w.newLine(); + w.write(" filename: nocheat.log"); w.newLine(); + w.write(" logtofile: info"); w.newLine(); + w.write(" logtoconsole: severe"); w.newLine(); + w.flush(); w.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} diff --git a/src/cc/co/evenprime/bukkit/nocheat/NoCheatPlugin.java b/src/cc/co/evenprime/bukkit/nocheat/NoCheatPlugin.java index ae4dcb21..3ac94369 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/NoCheatPlugin.java +++ b/src/cc/co/evenprime/bukkit/nocheat/NoCheatPlugin.java @@ -27,8 +27,8 @@ public class NoCheatPlugin extends JavaPlugin { private final NoCheatPluginPlayerListener playerListener; private final NoCheatPluginVehicleListener vehicleListener; - - public static final Logger log = Logger.getLogger("Minecraft"); + + public static Logger log; public static PermissionHandler Permissions = null; public NoCheatPlugin(PluginLoader pluginLoader, Server instance, PluginDescriptionFile desc, File folder, File plugin, ClassLoader cLoader) { @@ -36,9 +36,14 @@ public class NoCheatPlugin extends JavaPlugin { playerListener = new NoCheatPluginPlayerListener(this); vehicleListener = new NoCheatPluginVehicleListener(this, playerListener); + + setupConfig(); + + log = NoCheatConfiguration.logger; } - public void onDisable() { } + public void onDisable() { + } public void onEnable() { @@ -50,7 +55,7 @@ public class NoCheatPlugin extends JavaPlugin { PluginDescriptionFile pdfFile = this.getDescription(); - log.info( "NoCheat version " + pdfFile.getVersion() + " is enabled!" ); + Logger.getLogger("Minecraft").info( "NoCheat version " + pdfFile.getVersion() + " is enabled!" ); setupPermissions(); } @@ -68,4 +73,12 @@ public class NoCheatPlugin extends JavaPlugin { } } } + + public void setupConfig() { + NoCheatConfiguration.config(new File("nocheat.yml")); + + // Test config + Logger l = Logger.getLogger(NoCheatConfiguration.loggerName); + + } } \ No newline at end of file