summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPepich <benedikt.abel@yahoo.de>2017-03-29 14:46:33 +0200
committerPepich <benedikt.abel@yahoo.de>2017-03-29 14:46:33 +0200
commitd9ffac4678381c4f482ac60f90700223a8a86f3c (patch)
tree57b2298d060c946186254e22b4d4aba670dfa6db
parentb5eebeddab4364f7c56e2e70bab4a8012d35f59a (diff)
Made module auto loading config based
-rw-r--r--src/com/redstoner/misc/Main.java131
1 files changed, 92 insertions, 39 deletions
diff --git a/src/com/redstoner/misc/Main.java b/src/com/redstoner/misc/Main.java
index 92ee7d7..8880806 100644
--- a/src/com/redstoner/misc/Main.java
+++ b/src/com/redstoner/misc/Main.java
@@ -1,5 +1,11 @@
package com.redstoner.misc;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.List;
+
+import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.plugin.java.JavaPlugin;
import com.redstoner.annotations.Version;
@@ -10,56 +16,103 @@ import com.redstoner.misc.mysql.MysqlHandler;
/** Main class. Duh.
*
* @author Pepich */
-@Version(major = 3, minor = 0, revision = 0, compatible = -1)
+@Version(major = 3, minor = 0, revision = 1, compatible = -1)
public class Main extends JavaPlugin
{
public static JavaPlugin plugin;
+ public static File configFile;
@Override
public void onEnable()
{
plugin = this;
+ configFile = new File(this.getDataFolder(), "config.yml");
Debugger.init();
ModuleLoader.init();
MysqlHandler.init();
- ModuleLoader.addDynamicModule("com.redstoner.modules.abot.Abot");
- ModuleLoader.addDynamicModule("com.redstoner.modules.adminchat.Adminchat");
- ModuleLoader.addDynamicModule("com.redstoner.modules.adminnotes.AdminNotes");
- // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.blockplacemods.BlockplaceMods");
- // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.calc.Calc");
- ModuleLoader.addDynamicModule("com.redstoner.modules.challenge.Challenge");
- ModuleLoader.addDynamicModule("com.redstoner.modules.chatonly.ChatOnly");
- ModuleLoader.addDynamicModule("com.redstoner.modules.clear.Clear");
- ModuleLoader.addDynamicModule("com.redstoner.modules.clearonjoin.ClearOnJoin");
- ModuleLoader.addDynamicModule("com.redstoner.modules.chatalias.Chatalias");
- ModuleLoader.addDynamicModule("com.redstoner.modules.cycle.Cycle");
- ModuleLoader.addDynamicModule("com.redstoner.modules.chatgroups.Chatgroups");
- ModuleLoader.addDynamicModule("com.redstoner.modules.check.Check");
- ModuleLoader.addDynamicModule("com.redstoner.modules.damnspam.DamnSpam");
- // ModuleLoader.addDynamicModule("com.redstoner.modules.essentials.Essentials");
- ModuleLoader.addDynamicModule("com.redstoner.modules.firstseen.FirstSeen");
- // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.friends.Friends");
- ModuleLoader.addDynamicModule("com.redstoner.modules.illumination.Illumination");
- // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.imbusy.Imbusy");
- ModuleLoader.addDynamicModule("com.redstoner.modules.imout.Imout");
- ModuleLoader.addDynamicModule("com.redstoner.modules.lagchunks.LagChunks");
- ModuleLoader.addDynamicModule("com.redstoner.modules.loginsecurity.LoginSecurity");
- ModuleLoader.addDynamicModule("com.redstoner.modules.mentio.Mentio");
- ModuleLoader.addDynamicModule("com.redstoner.modules.misc.Misc");
- ModuleLoader.addDynamicModule("com.redstoner.modules.motd.Motd");
- ModuleLoader.addDynamicModule("com.redstoner.modules.naming.Naming");
- ModuleLoader.addDynamicModule("com.redstoner.modules.nametags.Nametags");
- ModuleLoader.addDynamicModule("com.redstoner.modules.pmtoggle.Pmtoggle");
- ModuleLoader.addDynamicModule("com.redstoner.modules.reports.Reports");
- ModuleLoader.addDynamicModule("com.redstoner.modules.saylol.Saylol");
- ModuleLoader.addDynamicModule("com.redstoner.modules.scriptutils.Scriptutils");
- // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.serversigns.Serversigns");
- // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.signalstrength.Signalstrength");
- ModuleLoader.addDynamicModule("com.redstoner.modules.skullclick.SkullClick");
- ModuleLoader.addDynamicModule("com.redstoner.modules.tag.Tag");
- ModuleLoader.addDynamicModule("com.redstoner.modules.vanish.Vanish");
- ModuleLoader.addDynamicModule("com.redstoner.modules.warn.Warn");
- ModuleLoader.addDynamicModule("com.redstoner.modules.webtoken.WebToken");
+ try
+ {
+ if (!configFile.exists())
+ {
+ configFile.getParentFile().mkdirs();
+ configFile.createNewFile();
+ }
+ getConfig().load(configFile);
+ }
+ catch (FileNotFoundException e)
+ {}
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ catch (InvalidConfigurationException e)
+ {
+ configFile.delete();
+ try
+ {
+ configFile.createNewFile();
+ }
+ catch (IOException e1)
+ {
+ e1.printStackTrace();
+ }
+ Utils.error("Invalid config file! Creating new, blank file!");
+ }
+ List<String> autoload = this.getConfig().getStringList("autoLoad");
+ if (autoload == null || autoload.isEmpty())
+ {
+ getConfig().set("autoLoad", new String[] {"# Add the modules here!"});
+ saveConfig();
+ try
+ {
+ getConfig().save(configFile);
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ for (String s : autoload)
+ if (!s.startsWith("#"))
+ ModuleLoader.addDynamicModule(s);
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.abot.Abot");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.adminchat.Adminchat");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.adminnotes.AdminNotes");
+ // // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.blockplacemods.BlockplaceMods");
+ // // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.calc.Calc");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.challenge.Challenge");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.chatonly.ChatOnly");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.clear.Clear");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.clearonjoin.ClearOnJoin");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.chatalias.Chatalias");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.cycle.Cycle");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.chatgroups.Chatgroups");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.check.Check");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.damnspam.DamnSpam");
+ // // ModuleLoader.addDynamicModule("com.redstoner.modules.essentials.Essentials");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.firstseen.FirstSeen");
+ // // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.friends.Friends");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.illumination.Illumination");
+ // // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.imbusy.Imbusy");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.imout.Imout");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.lagchunks.LagChunks");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.loginsecurity.LoginSecurity");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.mentio.Mentio");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.misc.Misc");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.motd.Motd");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.naming.Naming");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.nametags.Nametags");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.pmtoggle.Pmtoggle");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.reports.Reports");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.saylol.Saylol");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.scriptutils.Scriptutils");
+ // // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.serversigns.Serversigns");
+ // // TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.signalstrength.Signalstrength");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.skullclick.SkullClick");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.tag.Tag");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.vanish.Vanish");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.warn.Warn");
+ // ModuleLoader.addDynamicModule("com.redstoner.modules.webtoken.WebToken");
// And enable them
ModuleLoader.enableModules();
}