0

Made module auto loading config based

This commit is contained in:
Pepich 2017-03-29 14:46:33 +02:00
parent b5eebeddab
commit d9ffac4678

View File

@ -1,5 +1,11 @@
package com.redstoner.misc; 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 org.bukkit.plugin.java.JavaPlugin;
import com.redstoner.annotations.Version; import com.redstoner.annotations.Version;
@ -10,56 +16,103 @@ import com.redstoner.misc.mysql.MysqlHandler;
/** Main class. Duh. /** Main class. Duh.
* *
* @author Pepich */ * @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 class Main extends JavaPlugin
{ {
public static JavaPlugin plugin; public static JavaPlugin plugin;
public static File configFile;
@Override @Override
public void onEnable() public void onEnable()
{ {
plugin = this; plugin = this;
configFile = new File(this.getDataFolder(), "config.yml");
Debugger.init(); Debugger.init();
ModuleLoader.init(); ModuleLoader.init();
MysqlHandler.init(); MysqlHandler.init();
ModuleLoader.addDynamicModule("com.redstoner.modules.abot.Abot"); try
ModuleLoader.addDynamicModule("com.redstoner.modules.adminchat.Adminchat"); {
ModuleLoader.addDynamicModule("com.redstoner.modules.adminnotes.AdminNotes"); if (!configFile.exists())
// TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.blockplacemods.BlockplaceMods"); {
// TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.calc.Calc"); configFile.getParentFile().mkdirs();
ModuleLoader.addDynamicModule("com.redstoner.modules.challenge.Challenge"); configFile.createNewFile();
ModuleLoader.addDynamicModule("com.redstoner.modules.chatonly.ChatOnly"); }
ModuleLoader.addDynamicModule("com.redstoner.modules.clear.Clear"); getConfig().load(configFile);
ModuleLoader.addDynamicModule("com.redstoner.modules.clearonjoin.ClearOnJoin"); }
ModuleLoader.addDynamicModule("com.redstoner.modules.chatalias.Chatalias"); catch (FileNotFoundException e)
ModuleLoader.addDynamicModule("com.redstoner.modules.cycle.Cycle"); {}
ModuleLoader.addDynamicModule("com.redstoner.modules.chatgroups.Chatgroups"); catch (IOException e)
ModuleLoader.addDynamicModule("com.redstoner.modules.check.Check"); {
ModuleLoader.addDynamicModule("com.redstoner.modules.damnspam.DamnSpam"); e.printStackTrace();
// ModuleLoader.addDynamicModule("com.redstoner.modules.essentials.Essentials"); }
ModuleLoader.addDynamicModule("com.redstoner.modules.firstseen.FirstSeen"); catch (InvalidConfigurationException e)
// TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.friends.Friends"); {
ModuleLoader.addDynamicModule("com.redstoner.modules.illumination.Illumination"); configFile.delete();
// TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.imbusy.Imbusy"); try
ModuleLoader.addDynamicModule("com.redstoner.modules.imout.Imout"); {
ModuleLoader.addDynamicModule("com.redstoner.modules.lagchunks.LagChunks"); configFile.createNewFile();
ModuleLoader.addDynamicModule("com.redstoner.modules.loginsecurity.LoginSecurity"); }
ModuleLoader.addDynamicModule("com.redstoner.modules.mentio.Mentio"); catch (IOException e1)
ModuleLoader.addDynamicModule("com.redstoner.modules.misc.Misc"); {
ModuleLoader.addDynamicModule("com.redstoner.modules.motd.Motd"); e1.printStackTrace();
ModuleLoader.addDynamicModule("com.redstoner.modules.naming.Naming"); }
ModuleLoader.addDynamicModule("com.redstoner.modules.nametags.Nametags"); Utils.error("Invalid config file! Creating new, blank file!");
ModuleLoader.addDynamicModule("com.redstoner.modules.pmtoggle.Pmtoggle"); }
ModuleLoader.addDynamicModule("com.redstoner.modules.reports.Reports"); List<String> autoload = this.getConfig().getStringList("autoLoad");
ModuleLoader.addDynamicModule("com.redstoner.modules.saylol.Saylol"); if (autoload == null || autoload.isEmpty())
ModuleLoader.addDynamicModule("com.redstoner.modules.scriptutils.Scriptutils"); {
// TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.serversigns.Serversigns"); getConfig().set("autoLoad", new String[] {"# Add the modules here!"});
// TODO: ModuleLoader.addDynamicModule("com.redstoner.modules.signalstrength.Signalstrength"); saveConfig();
ModuleLoader.addDynamicModule("com.redstoner.modules.skullclick.SkullClick"); try
ModuleLoader.addDynamicModule("com.redstoner.modules.tag.Tag"); {
ModuleLoader.addDynamicModule("com.redstoner.modules.vanish.Vanish"); getConfig().save(configFile);
ModuleLoader.addDynamicModule("com.redstoner.modules.warn.Warn"); }
ModuleLoader.addDynamicModule("com.redstoner.modules.webtoken.WebToken"); 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 // And enable them
ModuleLoader.enableModules(); ModuleLoader.enableModules();
} }