start working on modules
This commit is contained in:
parent
c94f9c5cdc
commit
14f187c32d
@ -15,6 +15,7 @@ import fr.xephi.authme.converter.Converter;
|
|||||||
import fr.xephi.authme.converter.ForceFlatToSqlite;
|
import fr.xephi.authme.converter.ForceFlatToSqlite;
|
||||||
import fr.xephi.authme.datasource.*;
|
import fr.xephi.authme.datasource.*;
|
||||||
import fr.xephi.authme.listener.*;
|
import fr.xephi.authme.listener.*;
|
||||||
|
import fr.xephi.authme.modules.ModuleManager;
|
||||||
import fr.xephi.authme.plugin.manager.BungeeCordMessage;
|
import fr.xephi.authme.plugin.manager.BungeeCordMessage;
|
||||||
import fr.xephi.authme.plugin.manager.EssSpawn;
|
import fr.xephi.authme.plugin.manager.EssSpawn;
|
||||||
import fr.xephi.authme.process.Management;
|
import fr.xephi.authme.process.Management;
|
||||||
@ -24,7 +25,6 @@ import fr.xephi.authme.settings.Settings;
|
|||||||
import fr.xephi.authme.settings.Spawn;
|
import fr.xephi.authme.settings.Spawn;
|
||||||
import net.milkbowl.vault.permission.Permission;
|
import net.milkbowl.vault.permission.Permission;
|
||||||
import net.minelink.ctplus.CombatTagPlus;
|
import net.minelink.ctplus.CombatTagPlus;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -64,15 +64,22 @@ public class AuthMe extends JavaPlugin {
|
|||||||
public DataSource database;
|
public DataSource database;
|
||||||
private JsonCache playerBackup;
|
private JsonCache playerBackup;
|
||||||
public OtherAccounts otherAccounts;
|
public OtherAccounts otherAccounts;
|
||||||
public Permission permission;
|
|
||||||
public Essentials ess;
|
|
||||||
public Location essentialsSpawn;
|
public Location essentialsSpawn;
|
||||||
public MultiverseCore multiverse;
|
|
||||||
public LookupService lookupService;
|
public LookupService lookupService;
|
||||||
public CombatTagPlus combatTagPlus = null;
|
|
||||||
public boolean legacyChestShop = false;
|
public boolean legacyChestShop = false;
|
||||||
public boolean antibotMod = false;
|
public boolean antibotMod = false;
|
||||||
public boolean delayedAntiBot = true;
|
public boolean delayedAntiBot = true;
|
||||||
|
|
||||||
|
// Hooks TODO: move into modules
|
||||||
|
public Permission permission;
|
||||||
|
public Essentials ess;
|
||||||
|
public MultiverseCore multiverse;
|
||||||
|
public CombatTagPlus combatTagPlus;
|
||||||
|
|
||||||
|
// Manager
|
||||||
|
private ModuleManager moduleManager;
|
||||||
|
|
||||||
|
// TODO: Create Manager for fields below
|
||||||
public ConcurrentHashMap<String, BukkitTask> sessions = new ConcurrentHashMap<>();
|
public ConcurrentHashMap<String, BukkitTask> sessions = new ConcurrentHashMap<>();
|
||||||
public ConcurrentHashMap<String, Integer> captcha = new ConcurrentHashMap<>();
|
public ConcurrentHashMap<String, Integer> captcha = new ConcurrentHashMap<>();
|
||||||
public ConcurrentHashMap<String, String> cap = new ConcurrentHashMap<>();
|
public ConcurrentHashMap<String, String> cap = new ConcurrentHashMap<>();
|
||||||
@ -101,6 +108,9 @@ public class AuthMe extends JavaPlugin {
|
|||||||
authme = this;
|
authme = this;
|
||||||
|
|
||||||
// TODO: split the plugin in more modules
|
// TODO: split the plugin in more modules
|
||||||
|
moduleManager = new ModuleManager(this);
|
||||||
|
int loaded = moduleManager.loadModules();
|
||||||
|
|
||||||
// TODO: remove vault as hard dependency
|
// TODO: remove vault as hard dependency
|
||||||
PluginManager pm = server.getPluginManager();
|
PluginManager pm = server.getPluginManager();
|
||||||
|
|
||||||
@ -312,16 +322,17 @@ public class AuthMe extends JavaPlugin {
|
|||||||
|
|
||||||
// Do backup on stop if enabled
|
// Do backup on stop if enabled
|
||||||
if (Settings.isBackupActivated && Settings.isBackupOnStop) {
|
if (Settings.isBackupActivated && Settings.isBackupOnStop) {
|
||||||
Boolean Backup = new PerformBackup(this).doBackup();
|
boolean Backup = new PerformBackup(this).doBackup();
|
||||||
if (Backup)
|
if (Backup)
|
||||||
ConsoleLogger.info("Backup performed correctly.");
|
ConsoleLogger.info("Backup performed correctly.");
|
||||||
else ConsoleLogger.showError("Error while performing the backup!");
|
else ConsoleLogger.showError("Error while performing the backup!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unload modules
|
||||||
|
moduleManager.unloadModules();
|
||||||
|
|
||||||
// Disabled correctly
|
// Disabled correctly
|
||||||
ConsoleLogger.info("AuthMe " + this.getDescription().getVersion() + " disabled!");
|
ConsoleLogger.info("AuthMe " + this.getDescription().getVersion() + " disabled!");
|
||||||
|
|
||||||
authme = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stop/unload the server/plugin as defined in the configuration
|
// Stop/unload the server/plugin as defined in the configuration
|
||||||
|
|||||||
@ -1,28 +1,24 @@
|
|||||||
package fr.xephi.authme.modules;
|
package fr.xephi.authme.modules;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
public abstract class Module {
|
||||||
|
|
||||||
public interface Module {
|
enum ModuleType {
|
||||||
|
|
||||||
public String getName();
|
|
||||||
|
|
||||||
public AuthMe getInstanceOfAuthMe();
|
|
||||||
|
|
||||||
public Module getInstance();
|
|
||||||
|
|
||||||
public enum ModuleType {
|
|
||||||
MANAGER,
|
MANAGER,
|
||||||
MYSQL,
|
MYSQL,
|
||||||
REDIS,
|
REDIS,
|
||||||
ACTIONS,
|
ACTIONS,
|
||||||
CONVERTERS,
|
CONVERTERS,
|
||||||
EMAILS,
|
EMAILS,
|
||||||
CUSTOM;
|
CUSTOM
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModuleType getType();
|
public abstract String getName();
|
||||||
|
|
||||||
public boolean load();
|
public abstract ModuleType getType();
|
||||||
|
|
||||||
public boolean unload();
|
public void load() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void unload() {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import java.net.URL;
|
|||||||
import java.net.URLClassLoader;
|
import java.net.URLClassLoader;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.jar.JarEntry;
|
import java.util.jar.JarEntry;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
@ -111,10 +112,23 @@ public class ModuleManager {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void unloadModule(String name) {
|
||||||
|
Iterator<Module> it = modules.iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Module m = it.next();
|
||||||
|
if (m.getName().equalsIgnoreCase(name)) {
|
||||||
|
m.unload();
|
||||||
|
it.remove();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void unloadModules() {
|
public void unloadModules() {
|
||||||
for (Module m : modules) {
|
Iterator<Module> it = modules.iterator();
|
||||||
m.unload();
|
while (it.hasNext()) {
|
||||||
modules.remove(m);
|
it.next().unload();
|
||||||
|
it.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user