Initial batch of refactoring:

- Started constructing the new system to plan.system package
- ProcessingQueue
- VersionCheckSystem
- ConfigSystem
- getInstance accessor methods now check for null
This commit is contained in:
Rsl1122 2018-01-11 16:19:30 +02:00
parent 4b33c5882d
commit eeadbd2efb
129 changed files with 649 additions and 1099 deletions

View File

@ -20,12 +20,11 @@
package com.djrapitops.plan;
import com.djrapitops.plan.api.API;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.api.exceptions.PlanEnableException;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.command.PlanCommand;
import com.djrapitops.plan.data.plugin.HookHandler;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.settings.theme.PlanColorScheme;
@ -33,8 +32,8 @@ import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.systems.cache.DataCache;
import com.djrapitops.plan.systems.cache.GeolocationCache;
import com.djrapitops.plan.systems.file.FileSystem;
import com.djrapitops.plan.systems.file.config.ConfigSystem;
import com.djrapitops.plan.system.file.FileSystem;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plan.systems.file.database.DBSystem;
import com.djrapitops.plan.systems.info.BukkitInformationManager;
import com.djrapitops.plan.systems.info.ImporterManager;
@ -43,9 +42,9 @@ import com.djrapitops.plan.systems.info.server.BukkitServerInfoManager;
import com.djrapitops.plan.systems.listeners.*;
import com.djrapitops.plan.systems.processing.Processor;
import com.djrapitops.plan.systems.processing.importing.importers.OfflinePlayerImporter;
import com.djrapitops.plan.systems.queue.ProcessingQueue;
import com.djrapitops.plan.system.processing.ProcessingQueue;
import com.djrapitops.plan.systems.tasks.TaskSystem;
import com.djrapitops.plan.systems.update.VersionCheckSystem;
import com.djrapitops.plan.system.update.VersionCheckSystem;
import com.djrapitops.plan.systems.webserver.WebServer;
import com.djrapitops.plan.systems.webserver.WebServerSystem;
import com.djrapitops.plan.systems.webserver.pagecache.PageCache;
@ -78,7 +77,7 @@ import java.util.UUID;
* @author Rsl1122
* @since 1.0.0
*/
public class Plan extends BukkitPlugin implements IPlan {
public class Plan extends BukkitPlugin implements PlanPlugin {
private API api;
@ -135,12 +134,12 @@ public class Plan extends BukkitPlugin implements IPlan {
super.onEnable();
try {
systems = new Systems(this);
FileSystem.getInstance().init();
ConfigSystem.getInstance().init();
FileSystem.getInstance().enable();
ConfigSystem.getInstance().enable();
Log.setDebugMode(Settings.DEBUG.toString());
VersionCheckSystem.getInstance().init();
VersionCheckSystem.getInstance().enable();
Benchmark.start("Enable");
@ -149,25 +148,25 @@ public class Plan extends BukkitPlugin implements IPlan {
} catch (UnknownHostException e) {
Log.error("Plan Requires internet access on first run to download GeoLite2 Geolocation database.");
} catch (IOException e) {
throw new PlanEnableException("Something went wrong saving the downloaded GeoLite2 Geolocation database", e);
throw new EnableException("Something went wrong saving the downloaded GeoLite2 Geolocation database", e);
}
new Locale().loadLocale();
Theme.getInstance().init();
Theme.getInstance().enable();
Benchmark.start("Reading server variables");
serverVariableHolder = new ServerVariableHolder(getServer());
Benchmark.stop("Enable", "Reading server variables");
DBSystem.getInstance().init();
DBSystem.getInstance().enable();
Benchmark.start("WebServer Initialization");
processingQueue = new ProcessingQueue();
serverInfoManager = new BukkitServerInfoManager(this);
infoManager = new BukkitInformationManager(this);
WebServerSystem.getInstance().init();
WebServerSystem.getInstance().enable();
if (!WebServerSystem.isWebServerEnabled()) {
if (Settings.WEBSERVER_DISABLED.isTrue()) {
Log.warn("WebServer was not initialized. (WebServer.DisableWebServer: true)");
@ -186,7 +185,7 @@ public class Plan extends BukkitPlugin implements IPlan {
}
PlanPlayerListener.setCountKicks(true);
TaskSystem.getInstance().init();
TaskSystem.getInstance().enable();
this.api = new API(this);

View File

@ -4,26 +4,25 @@
*/
package com.djrapitops.plan;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.command.PlanBungeeCommand;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.settings.theme.PlanColorScheme;
import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.systems.file.FileSystem;
import com.djrapitops.plan.systems.file.config.ConfigSystem;
import com.djrapitops.plan.system.file.FileSystem;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plan.systems.file.database.DBSystem;
import com.djrapitops.plan.systems.info.BungeeInformationManager;
import com.djrapitops.plan.systems.info.InformationManager;
import com.djrapitops.plan.systems.info.server.BungeeServerInfoManager;
import com.djrapitops.plan.systems.listeners.BungeePlayerListener;
import com.djrapitops.plan.systems.processing.Processor;
import com.djrapitops.plan.systems.queue.ProcessingQueue;
import com.djrapitops.plan.system.processing.ProcessingQueue;
import com.djrapitops.plan.systems.tasks.TaskSystem;
import com.djrapitops.plan.systems.update.VersionCheckSystem;
import com.djrapitops.plan.system.update.VersionCheckSystem;
import com.djrapitops.plan.systems.webserver.WebServer;
import com.djrapitops.plan.systems.webserver.WebServerSystem;
import com.djrapitops.plan.utilities.file.export.HtmlExport;
@ -45,13 +44,13 @@ import java.util.UUID;
*
* @author Rsl1122
*/
public class PlanBungee extends BungeePlugin implements IPlan {
public class PlanBungee extends BungeePlugin implements PlanPlugin {
private Systems systems;
private BungeeServerInfoManager serverInfoManager;
private BungeeInformationManager infoManager;
private com.djrapitops.plan.ServerVariableHolder variableHolder;
private ServerVariableHolder variableHolder;
private ProcessingQueue processingQueue;
@ -62,19 +61,19 @@ public class PlanBungee extends BungeePlugin implements IPlan {
super.onEnable();
try {
systems = new Systems(this);
FileSystem.getInstance().init();
ConfigSystem.getInstance().init();
FileSystem.getInstance().enable();
ConfigSystem.getInstance().enable();
Log.setDebugMode(Settings.DEBUG.toString());
VersionCheckSystem.getInstance().init();
VersionCheckSystem.getInstance().enable();
variableHolder = new com.djrapitops.plan.ServerVariableHolder(getProxy());
variableHolder = new ServerVariableHolder(getProxy());
new Locale().loadLocale();
Theme.getInstance().init();
DBSystem.getInstance().init();
Theme.getInstance().enable();
DBSystem.getInstance().enable();
String ip = variableHolder.getIp();
if ("0.0.0.0".equals(ip)) {
@ -88,10 +87,10 @@ public class PlanBungee extends BungeePlugin implements IPlan {
serverInfoManager = new BungeeServerInfoManager(this);
infoManager = new BungeeInformationManager(this);
WebServerSystem.getInstance().init();
WebServerSystem.getInstance().enable();
serverInfoManager.loadServerInfo();
TaskSystem.getInstance().init();
TaskSystem.getInstance().enable();
processingQueue = new ProcessingQueue();
@ -188,7 +187,7 @@ public class PlanBungee extends BungeePlugin implements IPlan {
}
@Override
public com.djrapitops.plan.ServerVariableHolder getVariable() {
public ServerVariableHolder getVariable() {
return variableHolder;
}

View File

@ -1,17 +1,17 @@
/*
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.api;
package com.djrapitops.plan;
import com.djrapitops.plan.ServerVariableHolder;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.system.processing.ProcessingQueue;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.systems.info.InformationManager;
import com.djrapitops.plan.systems.processing.Processor;
import com.djrapitops.plan.systems.queue.ProcessingQueue;
import com.djrapitops.plan.systems.webserver.WebServer;
import com.djrapitops.plugin.IPlugin;
import com.djrapitops.plugin.api.Check;
import com.djrapitops.plugin.api.config.Config;
import com.djrapitops.plugin.settings.ColorScheme;
@ -24,7 +24,7 @@ import java.util.UUID;
*
* @author Rsl1122
*/
public interface IPlan extends IPlugin {
public interface PlanPlugin extends IPlugin {
Database getDB();
ServerVariableHolder getVariable();
@ -48,4 +48,19 @@ public interface IPlan extends IPlugin {
ColorScheme getColorScheme();
Systems getSystems();
boolean isReloading();
static PlanPlugin getInstance() {
boolean bukkitAvailable = Check.isBukkitAvailable();
boolean bungeeAvailable = Check.isBungeeAvailable();
if (bukkitAvailable && bungeeAvailable) {
// TODO Test Plugin
} else if (bungeeAvailable) {
return Plan.getInstance();
} else if (bukkitAvailable) {
return PlanBungee.getInstance();
}
throw new IllegalAccessError("Plugin instance not available");
}
}

View File

@ -1,6 +1,6 @@
package com.djrapitops.plan;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import net.md_5.bungee.api.ProxyServer;
import org.bukkit.Server;

View File

@ -9,13 +9,13 @@ package com.djrapitops.plan.api.exceptions;
*
* @author Rsl1122
*/
public class PlanEnableException extends Exception {
public class EnableException extends Exception {
public PlanEnableException(String message, Throwable cause) {
public EnableException(String message, Throwable cause) {
super(message, cause);
}
public PlanEnableException(String message) {
public EnableException(String message) {
super(message);
}
}

View File

@ -2,7 +2,7 @@ package com.djrapitops.plan.command;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.command.commands.*;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.command.CommandType;

View File

@ -2,8 +2,8 @@ package com.djrapitops.plan.command;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.command.commands.*;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.command.CommandType;

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.info.InformationManager;

View File

@ -5,7 +5,7 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plugin.command.CommandType;
import com.djrapitops.plugin.command.ISender;
import com.djrapitops.plugin.command.SubCommand;

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.command.CommandType;

View File

@ -2,7 +2,7 @@ package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.command.ConditionUtils;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.processing.info.InspectCacheRequestProcessor;

View File

@ -1,6 +1,6 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.MiscUtils;
@ -43,7 +43,7 @@ public class ListCommand extends SubCommand {
sender.sendMessage(Locale.get(Msg.CMD_CONSTANT_FOOTER).parse());
// Link
String url = MiscUtils.getIPlan().getInfoManager().getLinkTo("/players/");
String url = PlanPlugin.getInstance().getInfoManager().getLinkTo("/players/");
String message = Locale.get(Msg.CMD_INFO_LINK).toString();
boolean console = !CommandUtils.isPlayer(sender);
if (console) {

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.api.utility.log.Log;
@ -21,14 +21,14 @@ import java.util.Map;
*/
public class ListServersCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
/**
* Subcommand constructor.
*
* @param plugin Current instance of Plan
*/
public ListServersCommand(IPlan plugin) {
public ListServersCommand(PlanPlugin plugin) {
super("servers, serverlist, listservers, sl",
CommandType.CONSOLE,
Permissions.MANAGE.getPermission(),

View File

@ -2,7 +2,7 @@ package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.command.commands.manage.*;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.command.CommandType;

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.command.CommandType;
@ -19,12 +19,12 @@ import com.djrapitops.plugin.command.SubCommand;
*/
public class NetworkCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
/**
* Class Constructor.
*/
public NetworkCommand(IPlan plugin) {
public NetworkCommand(PlanPlugin plugin) {
super("network, n, netw",
CommandType.CONSOLE,
Permissions.ANALYZE.getPermission(),

View File

@ -1,8 +1,8 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.data.PlayerProfile;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;
@ -30,14 +30,14 @@ import java.util.UUID;
*/
public class QInspectCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
/**
* Class Constructor.
*
* @param plugin Current instance of Plan
*/
public QInspectCommand(IPlan plugin) {
public QInspectCommand(PlanPlugin plugin) {
super("qinspect",
CommandType.PLAYER_OR_ARGS,
Permissions.QUICK_INSPECT.getPermission(),

View File

@ -1,9 +1,9 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.data.WebUser;
import com.djrapitops.plan.database.tables.SecurityTable;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;
@ -31,9 +31,9 @@ import com.djrapitops.plugin.task.RunnableFactory;
*/
public class RegisterCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
public RegisterCommand(IPlan plugin) {
public RegisterCommand(PlanPlugin plugin) {
super("register",
CommandType.PLAYER_OR_ARGS,
"", // No Permission Requirement

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.api.utility.log.Log;
@ -17,14 +17,14 @@ import com.djrapitops.plugin.command.SubCommand;
*/
public class ReloadCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
/**
* Subcommand constructor.
*
* @param plugin Current instance of Plan
*/
public ReloadCommand(IPlan plugin) {
public ReloadCommand(PlanPlugin plugin) {
super("reload",
CommandType.CONSOLE,
Permissions.MANAGE.getPermission(),

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;

View File

@ -2,12 +2,12 @@ package com.djrapitops.plan.command.commands;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.command.commands.webuser.WebCheckCommand;
import com.djrapitops.plan.command.commands.webuser.WebDeleteCommand;
import com.djrapitops.plan.command.commands.webuser.WebLevelCommand;
import com.djrapitops.plan.command.commands.webuser.WebListUsersCommand;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.command.CommandType;
@ -19,7 +19,7 @@ import com.djrapitops.plugin.command.TreeCommand;
* @author Rsl1122
* @since 3.5.2
*/
public class WebUserCommand extends TreeCommand<IPlan> {
public class WebUserCommand extends TreeCommand<PlanPlugin> {
public WebUserCommand(Plan plugin, RegisterCommand register) {
super(plugin, "webuser, web",

View File

@ -3,7 +3,7 @@ package com.djrapitops.plan.command.commands.manage;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.api.exceptions.DatabaseInitException;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;

View File

@ -4,7 +4,7 @@ import com.djrapitops.plan.Plan;
import com.djrapitops.plan.api.exceptions.DatabaseInitException;
import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.cache.DataCache;

View File

@ -1,6 +1,6 @@
package com.djrapitops.plan.command.commands.manage;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.listeners.PlanPlayerListener;

View File

@ -2,8 +2,8 @@ package com.djrapitops.plan.command.commands.manage;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.command.commands.manage;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.info.ImporterManager;

View File

@ -2,7 +2,7 @@ package com.djrapitops.plan.command.commands.manage;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;

View File

@ -2,7 +2,7 @@ package com.djrapitops.plan.command.commands.manage;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.cache.DataCache;

View File

@ -3,7 +3,7 @@ package com.djrapitops.plan.command.commands.manage;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.database.databases.SQLiteDB;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;

View File

@ -3,8 +3,8 @@ package com.djrapitops.plan.command.commands.manage;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.api.exceptions.WebAPIForbiddenException;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.webserver.webapi.bungee.RequestSetupWebAPI;

View File

@ -1,9 +1,9 @@
package com.djrapitops.plan.command.commands.webuser;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.data.WebUser;
import com.djrapitops.plan.database.tables.SecurityTable;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;
@ -23,9 +23,9 @@ import org.bukkit.ChatColor;
*/
public class WebCheckCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
public WebCheckCommand(IPlan plugin) {
public WebCheckCommand(PlanPlugin plugin) {
super("check",
CommandType.PLAYER_OR_ARGS,
Permissions.MANAGE_WEB.getPerm(),

View File

@ -1,8 +1,8 @@
package com.djrapitops.plan.command.commands.webuser;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.database.tables.SecurityTable;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.Condition;
@ -22,9 +22,9 @@ import net.md_5.bungee.api.ChatColor;
*/
public class WebDeleteCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
public WebDeleteCommand(IPlan plugin) {
public WebDeleteCommand(PlanPlugin plugin) {
super("delete, remove",
CommandType.PLAYER_OR_ARGS,
Permissions.MANAGE_WEB.getPerm(),

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.command.commands.webuser;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plugin.command.CommandType;
@ -17,9 +17,9 @@ import com.djrapitops.plugin.settings.ColorScheme;
*/
public class WebLevelCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
public WebLevelCommand(IPlan plugin) {
public WebLevelCommand(PlanPlugin plugin) {
super("level",
CommandType.CONSOLE,
Permissions.MANAGE_WEB.getPerm(),

View File

@ -1,8 +1,8 @@
package com.djrapitops.plan.command.commands.webuser;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.data.WebUser;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.utilities.comparators.WebUserComparator;
@ -24,9 +24,9 @@ import java.util.List;
*/
public class WebListUsersCommand extends SubCommand {
private final IPlan plugin;
private final PlanPlugin plugin;
public WebListUsersCommand(IPlan plugin) {
public WebListUsersCommand(PlanPlugin plugin) {
super("list", CommandType.CONSOLE, Permissions.MANAGE_WEB.getPerm(), "List registered web users & permission levels.");
this.plugin = plugin;
}

View File

@ -7,7 +7,7 @@ import com.djrapitops.plan.data.element.AnalysisContainer;
import com.djrapitops.plan.data.element.HealthNotes;
import com.djrapitops.plan.data.plugin.PluginData;
import com.djrapitops.plan.data.time.WorldTimes;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.settings.theme.ThemeVal;
import com.djrapitops.plan.utilities.FormatUtils;
@ -66,7 +66,7 @@ public class AnalysisData extends RawData {
}
private void addConstants() {
addValue("version", MiscUtils.getIPlan().getVersion());
addValue("version", PlanPlugin.getInstance().getVersion());
addValue("worldPieColors", Theme.getValue(ThemeVal.GRAPH_WORLD_PIE));
addValue("gmPieColors", Theme.getValue(ThemeVal.GRAPH_GM_PIE));
addValue("serverName", Settings.SERVER_NAME.toString().replaceAll("[^a-zA-Z0-9_\\s]", "_"));

View File

@ -9,7 +9,7 @@ import com.djrapitops.plan.data.container.GeoInfo;
import com.djrapitops.plan.data.container.PlayerKill;
import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.data.time.WorldTimes;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plan.utilities.comparators.ActionComparator;
import com.djrapitops.plan.utilities.comparators.GeoInfoComparator;
@ -410,7 +410,7 @@ public class PlayerProfile implements OfflinePlayer {
}
public void addActiveSession(Session activeSession) {
UUID serverUUID = MiscUtils.getIPlan().getServerUuid();
UUID serverUUID = PlanPlugin.getInstance().getServerUuid();
List<Session> sessions = getSessions(serverUUID);
sessions.add(activeSession);
this.sessions.put(serverUUID, sessions);
@ -553,7 +553,7 @@ public class PlayerProfile implements OfflinePlayer {
@Override
public long getLastPlayed() {
return getLastSeen(MiscUtils.getIPlan().getServerUuid());
return getLastSeen(PlanPlugin.getInstance().getServerUuid());
}
@Override
@ -573,7 +573,7 @@ public class PlayerProfile implements OfflinePlayer {
@Override
public boolean isOp() {
return oppedOnServers.contains(MiscUtils.getIPlan().getServerUuid());
return oppedOnServers.contains(PlanPlugin.getInstance().getServerUuid());
}
@Override
@ -582,7 +582,7 @@ public class PlayerProfile implements OfflinePlayer {
}
public void calculateWorldTimesPerServer() {
if (worldTimesMap.containsKey(MiscUtils.getIPlan().getServerUuid())) {
if (worldTimesMap.containsKey(PlanPlugin.getInstance().getServerUuid())) {
return;
}

View File

@ -11,7 +11,7 @@ import com.djrapitops.plan.data.container.PlayerKill;
import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.data.container.TPS;
import com.djrapitops.plan.data.time.WorldTimes;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plan.utilities.analysis.AnalysisUtils;
import com.djrapitops.plan.utilities.analysis.MathUtils;
@ -295,7 +295,7 @@ public class ServerProfile {
}
public static int getPlayersMax() {
return MiscUtils.getIPlan().getVariable().getMaxPlayers();
return PlanPlugin.getInstance().getVariable().getMaxPlayers();
}
public Stream<PlayerProfile> getOps() {

View File

@ -9,7 +9,7 @@ import com.djrapitops.plan.data.PlayerProfile;
import com.djrapitops.plan.data.ServerProfile;
import com.djrapitops.plan.data.container.StickyData;
import com.djrapitops.plan.data.container.TPS;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.utilities.FormatUtils;
import com.djrapitops.plan.utilities.analysis.MathUtils;
import com.djrapitops.plan.utilities.html.Html;

View File

@ -1,6 +1,6 @@
package com.djrapitops.plan.data.plugin;
import com.djrapitops.plan.systems.file.config.ConfigSystem;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plugin.api.config.ConfigNode;
import com.djrapitops.plugin.api.utility.log.Log;

View File

@ -1,6 +1,6 @@
package com.djrapitops.plan.database.databases;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plugin.api.utility.log.Log;
import org.apache.commons.dbcp2.BasicDataSource;

View File

@ -55,7 +55,7 @@ public class SQLiteDB extends SQLDB {
return null; // Should never happen.
}
String dbFilePath = new File(MiscUtils.getIPlan().getDataFolder(), dbName + ".db").getAbsolutePath();
String dbFilePath = new File(PlanPlugin.getInstance().getDataFolder(), dbName + ".db").getAbsolutePath();
Connection connection;
try {

View File

@ -76,7 +76,7 @@ public class TPSTable extends Table {
* @return @throws SQLException
*/
public List<TPS> getTPSData() throws SQLException {
return getTPSData(MiscUtils.getIPlan().getServerUuid());
return getTPSData(PlanPlugin.getInstance().getServerUuid());
}
public List<TPS> getTPSData(UUID serverUUID) throws SQLException {
@ -112,7 +112,7 @@ public class TPSTable extends Table {
execute(new ExecStatement(insertStatement) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, MiscUtils.getIPlan().getServerUuid().toString());
statement.setString(1, PlanPlugin.getInstance().getServerUuid().toString());
statement.setLong(2, tps.getDate());
statement.setDouble(3, tps.getTicksPerSecond());
statement.setInt(4, tps.getPlayers());
@ -162,7 +162,7 @@ public class TPSTable extends Table {
}
public Optional<TPS> getPeakPlayerCount(long afterDate) throws SQLException {
return getPeakPlayerCount(MiscUtils.getIPlan().getServerUuid(), afterDate);
return getPeakPlayerCount(PlanPlugin.getInstance().getServerUuid(), afterDate);
}
public Optional<TPS> getPeakPlayerCount(UUID serverUUID, long afterDate) throws SQLException {

View File

@ -83,7 +83,7 @@ public class UserInfoTable extends UserIDTable {
}
public boolean isRegistered(UUID uuid) throws SQLException {
return isRegistered(uuid, MiscUtils.getIPlan().getServerUuid());
return isRegistered(uuid, PlanPlugin.getInstance().getServerUuid());
}
public boolean isRegistered(UUID uuid, UUID serverUUID) throws SQLException {
@ -122,7 +122,7 @@ public class UserInfoTable extends UserIDTable {
}
public UserInfo getUserInfo(UUID uuid) throws SQLException {
return getAllUserInfo(uuid).get(MiscUtils.getIPlan().getServerUuid());
return getAllUserInfo(uuid).get(PlanPlugin.getInstance().getServerUuid());
}
public Map<UUID, UserInfo> getAllUserInfo(UUID uuid) throws SQLException {

View File

@ -114,7 +114,7 @@ public class WorldTable extends Table {
}
public Set<String> getWorldNames() throws SQLException {
return getWorldNames(MiscUtils.getIPlan().getServerUuid());
return getWorldNames(PlanPlugin.getInstance().getServerUuid());
}
public Set<String> getWorldNames(UUID serverUUID) throws SQLException {

View File

@ -6,6 +6,7 @@ package com.djrapitops.plan.settings;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plugin.api.config.Config;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.utilities.Verify;

View File

@ -4,7 +4,8 @@
*/
package com.djrapitops.plan.settings;
import com.djrapitops.plan.systems.file.config.ConfigSystem;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plugin.api.config.Config;
import com.djrapitops.plugin.api.config.ConfigNode;
import com.djrapitops.plugin.api.utility.log.Log;

View File

@ -1,10 +1,11 @@
package com.djrapitops.plan.settings.locale;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.systems.file.FileSystem;
import com.djrapitops.plan.systems.file.config.ConfigSystem;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.system.file.FileSystem;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plan.utilities.NullCheck;
import com.djrapitops.plan.utilities.comparators.LocaleEntryComparator;
import com.djrapitops.plan.utilities.comparators.StringLengthComparator;
import com.djrapitops.plan.utilities.file.FileUtil;
@ -40,24 +41,21 @@ public class Locale {
private final Map<Msg, Message> messages;
public Locale() {
LocaleHolder.setLocale(this);
messages = new EnumMap<>(Msg.class);
}
public static void unload() {
Locale locale = LocaleHolder.getLocale();
if (locale != null) {
locale.messages.clear();
LocaleHolder.locale = null;
}
public void unload() {
messages.clear();
}
public static Locale getInstance() {
Locale locale = ConfigSystem.getInstance().getLocale();
NullCheck.check(locale, new IllegalStateException("Locale has not been initialized."));
return locale;
}
public static Message get(Msg msg) {
Locale locale = LocaleHolder.getLocale();
if (locale == null) {
throw new IllegalStateException("Locale has not been initialized.");
}
return locale.getMessage(msg);
return getInstance().getMessage(msg);
}
public void loadLocale() {
@ -120,7 +118,7 @@ public class Locale {
String yellow = "§e";
String red = "§c";
String arrowsRight = DefaultMessages.ARROWS_RIGHT.parse();
ColorScheme cs = MiscUtils.getIPlan().getColorScheme();
ColorScheme cs = PlanPlugin.getInstance().getColorScheme();
String mCol = cs.getMainColor();
String sCol = cs.getSecondaryColor();
String tCol = cs.getTertiaryColor();
@ -342,21 +340,4 @@ public class Locale {
public Message getMessage(Msg msg) {
return messages.getOrDefault(msg, new Message(""));
}
private static class LocaleHolder {
private static Locale locale;
private LocaleHolder() {
throw new IllegalStateException("Static variable holder class");
}
public static Locale getLocale() {
return locale;
}
public static void setLocale(Locale locale) {
LocaleHolder.locale = locale;
}
}
}

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.settings.theme;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.settings.ColorScheme;

View File

@ -4,10 +4,12 @@
*/
package com.djrapitops.plan.settings.theme;
import com.djrapitops.plan.api.exceptions.PlanEnableException;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.systems.SubSystem;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.utilities.NullCheck;
import com.djrapitops.plugin.api.utility.EnumUtility;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.utilities.Verify;
@ -27,21 +29,23 @@ public class Theme implements SubSystem {
private ThemeConfig config;
public static Theme getInstance() {
return Systems.getInstance().getThemeSystem();
Theme themeSystem = ConfigSystem.getInstance().getThemeSystem();
NullCheck.check(themeSystem, new IllegalStateException("Theme System has not been initialized."));
return themeSystem;
}
@Override
public void init() throws PlanEnableException {
public void enable() throws EnableException {
String themeName = Settings.THEME_BASE.toString();
try {
config = new ThemeConfig(themeName);
} catch (IOException e) {
throw new PlanEnableException("Default theme could not be loaded.", e);
throw new EnableException("Default theme could not be loaded.", e);
}
}
@Override
public void close() {
public void disable() {
}

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.settings.theme;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plan.utilities.file.FileUtil;
import com.djrapitops.plugin.api.config.Config;
@ -33,7 +33,7 @@ public class ThemeConfig extends Config {
private static List<String> getDefaults(String fileName) throws IOException {
String fileLocation = getFileLocation(fileName);
IPlan plugin = MiscUtils.getIPlan();
PlanPlugin plugin = PlanPlugin.getInstance();
try {
return FileUtil.lines(plugin, fileLocation);
} catch (IOException e) {
@ -71,7 +71,7 @@ public class ThemeConfig extends Config {
private static File getConfigFile() throws IOException {
File folder = MiscUtils.getIPlan().getDataFolder();
File folder = PlanPlugin.getInstance().getDataFolder();
if (!folder.exists()) {
folder.mkdirs();
}

View File

@ -0,0 +1,97 @@
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.system;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.system.processing.ProcessingQueue;
import com.djrapitops.plan.system.update.VersionCheckSystem;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plan.system.file.FileSystem;
import com.djrapitops.plan.utilities.NullCheck;
import com.djrapitops.plugin.api.Check;
/**
* PlanSystem contains everything Plan needs to run.
* <p>
* This is an abstraction layer on top of Plugin instances so that tests can be run with less mocks.
*
* @author Rsl1122
*/
public abstract class PlanSystem implements SubSystem {
// Initialized in this class
protected final ProcessingQueue processingQueue;
// These need to be initialized in the sub class.
protected VersionCheckSystem versionCheckSystem;
protected FileSystem fileSystem;
protected ConfigSystem configSystem;
public PlanSystem() {
processingQueue = new ProcessingQueue();
}
@Override
public void enable() throws EnableException {
checkSubSystemInitialization();
versionCheckSystem.enable();
configSystem.enable();
processingQueue.enable();
}
@Override
public void disable() {
processingQueue.disable();
configSystem.disable();
versionCheckSystem.disable();
}
public void reload() throws EnableException {
checkSubSystemInitialization();
configSystem.reload();
}
private void checkSubSystemInitialization() throws EnableException {
try {
NullCheck.check(versionCheckSystem, new IllegalStateException("Version Check system was not initialized."));
NullCheck.check(fileSystem, new IllegalStateException("File system was not initialized."));
NullCheck.check(configSystem, new IllegalStateException("Config system was not initialized."));
} catch (Exception e) {
throw new EnableException("One of the subsystems is not initialized on enable for " + this.getClass().getSimpleName() + ".", e);
}
}
public static PlanSystem getInstance() {
boolean bukkitAvailable = Check.isBukkitAvailable();
boolean bungeeAvailable = Check.isBungeeAvailable();
if (bukkitAvailable && bungeeAvailable) {
// TODO test system.
} else if (bungeeAvailable) {
// todo bungee
} else {
// Todo bukkit
}
throw new IllegalAccessError("PlanSystem is not available on this platform.");
}
// Accessor methods.
public ProcessingQueue getProcessingQueue() {
return processingQueue;
}
public VersionCheckSystem getVersionCheckSystem() {
return versionCheckSystem;
}
public ConfigSystem getConfigSystem() {
return configSystem;
}
public FileSystem getFileSystem() {
return fileSystem;
}
}

View File

@ -0,0 +1,28 @@
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.system;
import com.djrapitops.plan.api.exceptions.EnableException;
/**
* Represents a system that can be enabled and disabled.
*
* @author Rsl1122
*/
public interface SubSystem {
/**
* Performs enable actions for the subsystem.
*
* @throws EnableException If an error occurred during enable and it is fatal to the subsystem.
*/
void enable() throws EnableException;
/**
* Performs disable actions for the subsystem
*/
void disable();
}

View File

@ -2,12 +2,12 @@
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.systems.file;
package com.djrapitops.plan.system.file;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.systems.SubSystem;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.PlanSystem;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.utilities.NullCheck;
import com.djrapitops.plan.utilities.file.FileUtil;
import java.io.File;
@ -24,16 +24,19 @@ public class FileSystem implements SubSystem {
private final File dataFolder;
private File configFile;
public FileSystem(IPlan plugin) {
public FileSystem(PlanPlugin plugin) {
this(plugin.getDataFolder());
}
public FileSystem(File dataFolder) {
this.dataFolder = dataFolder;
configFile = new File(dataFolder, "config.yml");
}
public static FileSystem getInstance() {
return Systems.getInstance().getFileSystem();
FileSystem fileSystem = PlanSystem.getInstance().getFileSystem();
NullCheck.check(fileSystem, new IllegalStateException("File system was not initialized."));
return fileSystem;
}
public static File getDataFolder() {
@ -49,17 +52,16 @@ public class FileSystem implements SubSystem {
}
public static List<String> readFromResource(String fileName) throws IOException {
return FileUtil.lines(MiscUtils.getIPlan(), fileName);
return FileUtil.lines(PlanPlugin.getInstance(), fileName);
}
@Override
public void init() {
public void enable() {
dataFolder.mkdirs();
configFile = new File(dataFolder, "config.yml");
}
@Override
public void close() {
public void disable() {
}
}

View File

@ -1,9 +1,20 @@
package com.djrapitops.plan.systems.queue;
package com.djrapitops.plan.system.processing;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.PlanSystem;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.systems.processing.Processor;
import com.djrapitops.plan.systems.queue.Consumer;
import com.djrapitops.plan.systems.queue.Queue;
import com.djrapitops.plan.systems.queue.Setup;
import com.djrapitops.plan.utilities.NullCheck;
import com.djrapitops.plugin.api.Benchmark;
import com.djrapitops.plugin.api.TimeAmount;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.task.AbsRunnable;
import com.djrapitops.plugin.task.RunnableFactory;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
@ -14,17 +25,46 @@ import java.util.concurrent.BlockingQueue;
* @author Rsl1122
* @since 3.0.0
*/
public class ProcessingQueue extends Queue<Processor> {
public class ProcessingQueue extends Queue<Processor> implements SubSystem {
/**
* Class constructor, starts the new Thread for processing.
*/
public ProcessingQueue() {
super(new ArrayBlockingQueue<>(20000));
setup = new ProcessSetup(queue);
}
public static ProcessingQueue getInstance() {
ProcessingQueue processingQueue = PlanSystem.getInstance().getProcessingQueue();
NullCheck.check(processingQueue, new IllegalStateException("ProcessingQueue has not been initialized."));
return processingQueue;
}
@Override
public void enable() {
setup.go();
}
@Override
public void disable() {
List<Processor> processors = stopAndReturnLeftovers();
if (PlanPlugin.getInstance().isReloading()) {
RunnableFactory.createNew("Re-Add processors", new AbsRunnable() {
@Override
public void run() {
ProcessingQueue que = ProcessingQueue.getInstance();
for (Processor processor : processors) {
que.addToQueue(processor);
}
cancel();
}
}).runTaskLaterAsynchronously(TimeAmount.SECOND.ticks() * 5L);
} else {
Log.info("Processing unprocessed processors. (" + processors.size() + ")");
for (Processor processor : processors) {
processor.process();
}
}
}
/**
* Used to add Processor object to be processed.
*

View File

@ -1,4 +1,4 @@
package com.djrapitops.plan.settings;
package com.djrapitops.plan.system.settings;
/**
* Permissions class is used easily check every permission node.

View File

@ -1,6 +1,7 @@
package com.djrapitops.plan.settings;
package com.djrapitops.plan.system.settings;
import com.djrapitops.plan.systems.file.config.ConfigSystem;
import com.djrapitops.plan.settings.ServerSpecificSettings;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plugin.api.Check;
import com.djrapitops.plugin.api.config.Config;

View File

@ -2,10 +2,11 @@
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.systems.file.config;
package com.djrapitops.plan.system.settings.config;
import com.djrapitops.plan.systems.file.FileSystem;
import com.djrapitops.plan.system.file.FileSystem;
import java.io.File;
import java.io.IOException;
/**
@ -13,7 +14,11 @@ import java.io.IOException;
*
* @author Rsl1122
*/
public class PlanConfigSystem extends ConfigSystem {
public class BukkitConfigSystem extends ConfigSystem {
public BukkitConfigSystem(File configFile) {
super(configFile);
}
@Override
protected void copyDefaults() throws IOException {

View File

@ -2,10 +2,11 @@
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.systems.file.config;
package com.djrapitops.plan.system.settings.config;
import com.djrapitops.plan.systems.file.FileSystem;
import com.djrapitops.plan.system.file.FileSystem;
import java.io.File;
import java.io.IOException;
/**
@ -13,7 +14,11 @@ import java.io.IOException;
*
* @author Rsl1122
*/
public class PlanBungeeConfigSystem extends ConfigSystem {
public class BungeeConfigSystem extends ConfigSystem {
public BungeeConfigSystem(File configFile) {
super(configFile);
}
@Override
protected void copyDefaults() throws IOException {

View File

@ -0,0 +1,81 @@
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.system.settings.config;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.utilities.NullCheck;
import com.djrapitops.plugin.api.config.Config;
import com.djrapitops.plugin.api.utility.log.Log;
import java.io.File;
import java.io.IOException;
/**
* //TODO Class Javadoc Comment
*
* @author Rsl1122
*/
public abstract class ConfigSystem implements SubSystem {
protected final Config config;
protected final Locale locale;
protected final Theme theme;
public ConfigSystem(File configFile) {
config = new Config(configFile);
locale = new Locale();
theme = new Theme();
}
public static ConfigSystem getInstance() {
ConfigSystem configSystem = Systems.getInstance().getConfigSystem();
NullCheck.check(configSystem, new IllegalStateException("Config System has not been initialized."));
return configSystem;
}
public Theme getThemeSystem() {
return theme;
}
public Config getConfig() {
return config;
}
@Override
public void enable() throws EnableException {
try {
copyDefaults();
config.save();
} catch (IOException e) {
throw new EnableException("Failed to save default config.", e);
}
locale.loadLocale();
theme.enable();
}
protected abstract void copyDefaults() throws IOException;
@Override
public void disable() {
theme.disable();
locale.unload();
}
public void reload() {
try {
config.read();
} catch (IOException e) {
Log.toLog(ConfigSystem.class, e);
}
}
public Locale getLocale() {
return locale;
}
}

View File

@ -2,10 +2,11 @@
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.systems.update;
package com.djrapitops.plan.system.update;
import com.djrapitops.plan.systems.SubSystem;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.system.PlanSystem;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.utilities.NullCheck;
import com.djrapitops.plugin.api.Priority;
import com.djrapitops.plugin.api.systems.NotificationCenter;
import com.djrapitops.plugin.api.utility.Version;
@ -28,11 +29,13 @@ public class VersionCheckSystem implements SubSystem {
}
public static VersionCheckSystem getInstance() {
return Systems.getInstance().getVersionCheckSystem();
VersionCheckSystem versionCheckSystem = PlanSystem.getInstance().getVersionCheckSystem();
NullCheck.check(versionCheckSystem, new IllegalStateException("Version Check system has not been initialized."));
return versionCheckSystem;
}
@Override
public void init() {
public void enable() {
checkForNewVersion();
}
@ -45,7 +48,7 @@ public class VersionCheckSystem implements SubSystem {
if (newVersionAvailable) {
String newVersionNotification = "New Version is available at " + spigotUrl;
Log.infoColor("§a----------------------------------------");
Log.infoColor("§a"+newVersionNotification);
Log.infoColor("§a" + newVersionNotification);
Log.infoColor("§a----------------------------------------");
NotificationCenter.addNotification(Priority.HIGH, newVersionNotification);
} else {
@ -57,7 +60,7 @@ public class VersionCheckSystem implements SubSystem {
}
@Override
public void close() {
public void disable() {
/* Does not need to be closed */
}

View File

@ -1,20 +0,0 @@
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.systems;
import com.djrapitops.plan.api.exceptions.PlanEnableException;
/**
* //TODO Class Javadoc Comment
*
* @author Rsl1122
*/
public interface SubSystem {
void init() throws PlanEnableException;
void close();
}

View File

@ -7,17 +7,18 @@ package com.djrapitops.plan.systems;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.systems.file.FileSystem;
import com.djrapitops.plan.systems.file.config.ConfigSystem;
import com.djrapitops.plan.systems.file.config.PlanBungeeConfigSystem;
import com.djrapitops.plan.systems.file.config.PlanConfigSystem;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.system.file.FileSystem;
import com.djrapitops.plan.system.settings.config.ConfigSystem;
import com.djrapitops.plan.system.settings.config.BungeeConfigSystem;
import com.djrapitops.plan.system.settings.config.BukkitConfigSystem;
import com.djrapitops.plan.systems.file.database.DBSystem;
import com.djrapitops.plan.systems.file.database.PlanBungeeDBSystem;
import com.djrapitops.plan.systems.file.database.PlanDBSystem;
import com.djrapitops.plan.systems.tasks.PlanBungeeTaskSystem;
import com.djrapitops.plan.systems.tasks.PlanTaskSystem;
import com.djrapitops.plan.systems.tasks.TaskSystem;
import com.djrapitops.plan.systems.update.VersionCheckSystem;
import com.djrapitops.plan.system.update.VersionCheckSystem;
import com.djrapitops.plan.systems.webserver.WebServerSystem;
import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plugin.api.utility.log.Log;
@ -48,7 +49,7 @@ public class Systems {
*/
public Systems(Plan plugin) {
fileSystem = new FileSystem(plugin);
configSystem = new PlanConfigSystem();
configSystem = new BukkitConfigSystem();
databaseSystem = new PlanDBSystem();
versionCheckSystem = new VersionCheckSystem(plugin.getVersion());
@ -65,7 +66,7 @@ public class Systems {
*/
public Systems(PlanBungee plugin) {
fileSystem = new FileSystem(plugin);
configSystem = new PlanBungeeConfigSystem();
configSystem = new BungeeConfigSystem();
databaseSystem = new PlanBungeeDBSystem();
versionCheckSystem = new VersionCheckSystem(plugin.getVersion());
@ -92,7 +93,7 @@ public class Systems {
ArrayUtils.reverse(subSystems);
for (SubSystem subSystem : subSystems) {
try {
subSystem.close();
subSystem.disable();
} catch (Exception e) {
Log.toLog(Systems.class, e);
}
@ -100,7 +101,7 @@ public class Systems {
}
public static Systems getInstance() {
return MiscUtils.getIPlan().getSystems();
return PlanPlugin.getInstance().getSystems();
}
public FileSystem getFileSystem() {

View File

@ -29,7 +29,7 @@ import java.util.zip.GZIPInputStream;
*/
public class GeolocationCache {
private static File geolocationDB = new File(MiscUtils.getIPlan().getDataFolder(), "GeoIP.dat");
private static File geolocationDB = new File(PlanPlugin.getInstance().getDataFolder(), "GeoIP.dat");
private static final Cache<String, String> geolocationCache = CacheBuilder.newBuilder()
.build();

View File

@ -1,58 +0,0 @@
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.plan.systems.file.config;
import com.djrapitops.plan.api.exceptions.PlanEnableException;
import com.djrapitops.plan.systems.SubSystem;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.systems.file.FileSystem;
import com.djrapitops.plugin.api.config.Config;
import com.djrapitops.plugin.api.utility.log.Log;
import java.io.IOException;
/**
* //TODO Class Javadoc Comment
*
* @author Rsl1122
*/
public abstract class ConfigSystem implements SubSystem {
protected Config config;
public static ConfigSystem getInstance() {
return Systems.getInstance().getConfigSystem();
}
public Config getConfig() {
return config;
}
@Override
public void init() throws PlanEnableException {
try {
config = new Config(FileSystem.getConfigFile());
copyDefaults();
config.save();
} catch (IOException e) {
throw new PlanEnableException("Config Subsystem failed to initialize", e);
}
}
protected abstract void copyDefaults() throws IOException;
@Override
public void close() {
}
public static void reload() {
try {
getInstance().config.read();
} catch (IOException e) {
Log.toLog(ConfigSystem.class, e);
}
}
}

View File

@ -5,12 +5,12 @@
package com.djrapitops.plan.systems.file.database;
import com.djrapitops.plan.api.exceptions.DatabaseInitException;
import com.djrapitops.plan.api.exceptions.PlanEnableException;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.database.databases.SQLDB;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.SubSystem;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plugin.api.Benchmark;
import com.djrapitops.plugin.api.utility.log.Log;
@ -39,7 +39,7 @@ public abstract class DBSystem implements SubSystem {
}
@Override
public void init() throws PlanEnableException {
public void enable() throws EnableException {
try {
Benchmark.start("Init Database");
Log.info(Locale.get(Msg.ENABLE_DB_INIT).toString());
@ -48,7 +48,7 @@ public abstract class DBSystem implements SubSystem {
Log.info(Locale.get(Msg.ENABLE_DB_INFO).parse(db.getConfigName()));
Benchmark.stop("Systems", "Init Database");
} catch (DatabaseInitException e) {
throw new PlanEnableException(db.getName() + "-Database failed to initialize", e);
throw new EnableException(db.getName() + "-Database failed to initialize", e);
}
}
@ -63,7 +63,7 @@ public abstract class DBSystem implements SubSystem {
}
@Override
public void close() {
public void disable() {
try {
if (db != null) {
db.close();

View File

@ -7,7 +7,7 @@ package com.djrapitops.plan.systems.file.database;
import com.djrapitops.plan.api.exceptions.DatabaseInitException;
import com.djrapitops.plan.database.databases.MySQLDB;
import com.djrapitops.plan.database.databases.SQLiteDB;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
/**
* //TODO Class Javadoc Comment

View File

@ -11,7 +11,7 @@ import com.djrapitops.plan.data.AnalysisData;
import com.djrapitops.plan.data.element.InspectContainer;
import com.djrapitops.plan.data.plugin.HookHandler;
import com.djrapitops.plan.data.plugin.PluginData;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.systems.cache.DataCache;
import com.djrapitops.plan.systems.info.parsing.AnalysisPageParser;

View File

@ -9,7 +9,7 @@ import com.djrapitops.plan.api.exceptions.ParseException;
import com.djrapitops.plan.api.exceptions.WebAPIConnectionFailException;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.api.exceptions.WebAPINotFoundException;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.systems.cache.DataCache;
import com.djrapitops.plan.systems.info.parsing.NetworkPageParser;
import com.djrapitops.plan.systems.info.server.BungeeServerInfoManager;
@ -368,7 +368,7 @@ public class BungeeInformationManager extends InformationManager {
@Override
public void updateNetworkPageContent() {
UUID serverUUID = MiscUtils.getIPlan().getServerUuid();
UUID serverUUID = PlanPlugin.getInstance().getServerUuid();
PageCache.cachePage(PageId.SERVER.of(serverUUID), () -> new AnalysisPageResponse(this));
if (Settings.ANALYSIS_EXPORT.isTrue()) {
HtmlExport.exportServer(plugin, serverUUID);

View File

@ -6,7 +6,7 @@ package com.djrapitops.plan.systems.info.parsing;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.ParseException;
import com.djrapitops.plan.data.AnalysisData;
import com.djrapitops.plan.utilities.file.FileUtil;
@ -23,9 +23,9 @@ import java.io.IOException;
public class AnalysisPageParser extends PageParser {
private final AnalysisData data;
private final IPlan plugin;
private final PlanPlugin plugin;
public AnalysisPageParser(AnalysisData analysisData, IPlan plugin) {
public AnalysisPageParser(AnalysisData analysisData, PlanPlugin plugin) {
this.data = analysisData;
this.plugin = plugin;
}

View File

@ -4,14 +4,14 @@
*/
package com.djrapitops.plan.systems.info.parsing;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.ParseException;
import com.djrapitops.plan.data.PlayerProfile;
import com.djrapitops.plan.data.container.Action;
import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.data.time.WorldTimes;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.settings.theme.ThemeVal;
import com.djrapitops.plan.utilities.FormatUtils;
@ -46,9 +46,9 @@ import java.util.stream.Collectors;
public class InspectPageParser extends PageParser {
private final UUID uuid;
private final IPlan plugin;
private final PlanPlugin plugin;
public InspectPageParser(UUID uuid, IPlan plugin) {
public InspectPageParser(UUID uuid, PlanPlugin plugin) {
this.uuid = uuid;
this.plugin = plugin;
}
@ -65,7 +65,7 @@ public class InspectPageParser extends PageParser {
if (profile == null) {
throw new IllegalStateException("Player profile was null!");
}
UUID serverUUID = MiscUtils.getIPlan().getServerUuid();
UUID serverUUID = PlanPlugin.getInstance().getServerUuid();
Map<UUID, String> serverNames = db.getServerTable().getServerNames();
Benchmark.stop("Inspect Parse, Fetch");

View File

@ -9,7 +9,7 @@ import com.djrapitops.plan.api.exceptions.ParseException;
import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.data.container.TPS;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.settings.theme.ThemeVal;
import com.djrapitops.plan.systems.info.BungeeInformationManager;

View File

@ -7,10 +7,10 @@ package com.djrapitops.plan.systems.info.server;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.ServerVariableHolder;
import com.djrapitops.plan.api.exceptions.PlanEnableException;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.database.tables.ServerTable;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plugin.api.utility.log.Log;
import java.io.IOException;
@ -32,7 +32,7 @@ public class BukkitServerInfoManager {
private ServerInfoFile serverInfoFile;
private final ServerTable serverTable;
public BukkitServerInfoManager(Plan plugin) throws PlanEnableException {
public BukkitServerInfoManager(Plan plugin) throws EnableException {
this.plugin = plugin;
Database db = plugin.getDB();
serverTable = db.getServerTable();
@ -40,7 +40,7 @@ public class BukkitServerInfoManager {
try {
serverInfoFile = new ServerInfoFile(plugin);
} catch (IOException e) {
throw new PlanEnableException("Failed to read ServerInfoFile.yml", e);
throw new EnableException("Failed to read ServerInfoFile.yml", e);
}
}

View File

@ -6,7 +6,7 @@ package com.djrapitops.plan.systems.info.server;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.ServerVariableHolder;
import com.djrapitops.plan.api.exceptions.PlanEnableException;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.database.tables.ServerTable;
@ -45,7 +45,7 @@ public class BungeeServerInfoManager {
onlineServers = new HashSet<>();
}
public void loadServerInfo() throws PlanEnableException {
public void loadServerInfo() throws EnableException {
try {
Optional<ServerInfo> bungeeInfo = db.getServerTable().getBungeeInfo();
if (bungeeInfo.isPresent()) {
@ -59,11 +59,11 @@ public class BungeeServerInfoManager {
serverInfo = registerBungeeInfo();
}
} catch (SQLException e) {
throw new PlanEnableException("Failed to read Database for ServerInfo");
throw new EnableException("Failed to read Database for ServerInfo");
}
}
private ServerInfo registerBungeeInfo() throws SQLException, PlanEnableException {
private ServerInfo registerBungeeInfo() throws SQLException, EnableException {
ServerVariableHolder variable = plugin.getVariable();
UUID serverUUID = generateNewUUID(variable);
String accessAddress = plugin.getWebServer().getAccessAddress();
@ -76,7 +76,7 @@ public class BungeeServerInfoManager {
if (bungeeInfo.isPresent()) {
return bungeeInfo.get();
}
throw new PlanEnableException("BungeeCord registration failed (DB)");
throw new EnableException("BungeeCord registration failed (DB)");
}
private UUID generateNewUUID(ServerVariableHolder variableHolder) {

View File

@ -1,8 +1,8 @@
package com.djrapitops.plan.systems.listeners;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.settings.Permissions;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Permissions;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.systems.processing.CommandProcessor;
import com.djrapitops.plugin.api.utility.log.Log;
import org.bukkit.command.Command;

View File

@ -4,6 +4,8 @@
*/
package com.djrapitops.plan.systems.processing;
import com.djrapitops.plan.system.processing.ProcessingQueue;
/**
* Abstract class for processing different objects using Generics.
*
@ -21,4 +23,12 @@ public abstract class Processor<T> {
public T getObject() {
return object;
}
public void que() {
que(this);
}
public static void que(Processor processor) {
ProcessingQueue.getInstance().addToQueue(processor);
}
}

View File

@ -36,7 +36,7 @@ public class TPSInsertProcessor extends Processor<List<TPS>> {
TPS tps = new TPS(lastDate, averageTPS, averagePlayersOnline, averageCPUUsage, averageUsedMemory, averageEntityCount, averageChunksLoaded);
try {
MiscUtils.getIPlan().getDB().getTpsTable().insertTPS(tps);
PlanPlugin.getInstance().getDB().getTpsTable().insertTPS(tps);
} catch (SQLException e) {
Log.toLog(this.getClass().getName(), e);
}

View File

@ -5,7 +5,7 @@
package com.djrapitops.plan.systems.processing.info;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.cache.DataCache;
@ -34,7 +34,7 @@ public class InspectCacheRequestProcessor extends PlayerProcessor {
@Override
public void process() {
IPlan plugin = MiscUtils.getIPlan();
PlanPlugin plugin = PlanPlugin.getInstance();
plugin.getInfoManager().cachePlayer(getUUID());
DataCache dataCache = plugin.getInfoManager().getDataCache();
if (dataCache != null) {

View File

@ -17,7 +17,7 @@ import com.djrapitops.plugin.task.AbsRunnable;
public class PlanBungeeTaskSystem extends TaskSystem {
@Override
public void init() {
public void enable() {
registerTasks();
}

View File

@ -5,7 +5,7 @@
package com.djrapitops.plan.systems.tasks;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.info.InformationManager;
@ -28,7 +28,7 @@ public class PlanTaskSystem extends TaskSystem {
private ITask bootAnalysisTask;
@Override
public void init() {
public void enable() {
registerTasks();
}

View File

@ -2,7 +2,7 @@ package com.djrapitops.plan.systems.tasks;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.data.container.TPS;
import com.djrapitops.plan.systems.processing.TPSInsertProcessor;
import com.djrapitops.plan.utilities.MiscUtils;
@ -25,7 +25,7 @@ import java.util.List;
*/
public class TPSCountTimer extends AbsRunnable {
private final IPlan plugin;
private final PlanPlugin plugin;
private final List<TPS> history;
private long lastCheckNano;
@ -33,7 +33,7 @@ public class TPSCountTimer extends AbsRunnable {
private int latestPlayersOnline = 0;
public TPSCountTimer(IPlan plugin) {
public TPSCountTimer(PlanPlugin plugin) {
super("TPSCountTimer");
lastCheckNano = -1;
this.plugin = plugin;

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.tasks;
import com.djrapitops.plan.systems.SubSystem;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plugin.api.systems.TaskCenter;
@ -35,8 +35,8 @@ public abstract class TaskSystem implements SubSystem {
}
@Override
public void close() {
TaskCenter.cancelAllKnownTasks(MiscUtils.getIPlan().getClass());
public void disable() {
TaskCenter.cancelAllKnownTasks(PlanPlugin.getInstance().getClass());
}
public TPSCountTimer getTpsCountTimer() {

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.webserver;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.systems.webserver.response.Response;
import com.djrapitops.plan.systems.webserver.webapi.WebAPIManager;
import com.djrapitops.plugin.api.Benchmark;

View File

@ -55,7 +55,7 @@ public class APIResponseHandler {
}
if (args.length < 2 || !"api".equals(args[1])) {
String address = MiscUtils.getIPlan().getInfoManager().getWebServerAddress() + target;
String address = PlanPlugin.getInstance().getInfoManager().getWebServerAddress() + target;
String link = Html.LINK.parse(address, address);
return PageCache.loadPage(PageId.ERROR.of("Non-API Request"), () -> new NotFoundResponse("WebServer is in WebAPI-only mode, " +
"connect to the Bungee server instead: " + link));
@ -121,7 +121,7 @@ public class APIResponseHandler {
return PageCache.loadPage(PageId.ERROR.of(error), () -> new BadRequestResponse(error));
}
Response response = api.processRequest(MiscUtils.getIPlan(), variables);
Response response = api.processRequest(PlanPlugin.getInstance(), variables);
Log.debug("Response: " + response.getResponse().split("\r\n")[0]);
@ -152,7 +152,7 @@ public class APIResponseHandler {
}
try {
List<UUID> uuids = MiscUtils.getIPlan().getDB().getServerTable().getServerUUIDs();
List<UUID> uuids = PlanPlugin.getInstance().getDB().getServerTable().getServerUUIDs();
UUID keyUUID = UUID.fromString(sender);
return uuids.contains(keyUUID);
} catch (SQLException | IllegalArgumentException e) {

View File

@ -4,8 +4,8 @@
*/
package com.djrapitops.plan.systems.webserver;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.systems.webserver.response.PromptAuthorizationResponse;
import com.djrapitops.plan.systems.webserver.response.Response;
import com.djrapitops.plugin.api.Benchmark;
@ -25,7 +25,7 @@ public class RequestHandler implements HttpHandler {
private final ResponseHandler responseHandler;
RequestHandler(IPlan plugin, WebServer webServer) {
RequestHandler(PlanPlugin plugin, WebServer webServer) {
responseHandler = new ResponseHandler(plugin, webServer);
}

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.webserver;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.ParseException;
import com.djrapitops.plan.api.exceptions.WebUserAuthException;
import com.djrapitops.plan.data.WebUser;
@ -29,11 +29,11 @@ import java.util.UUID;
*/
public class ResponseHandler extends APIResponseHandler {
private final IPlan plugin;
private final PlanPlugin plugin;
private final boolean usingHttps;
public ResponseHandler(IPlan plugin, WebServer webServer) {
public ResponseHandler(PlanPlugin plugin, WebServer webServer) {
super(webServer.getWebAPI());
this.plugin = plugin;
this.usingHttps = webServer.isUsingHTTPS();
@ -57,7 +57,7 @@ public class ResponseHandler extends APIResponseHandler {
return PageCache.loadPage(PageId.JS.of(target), () -> new JavaScriptResponse(target));
}
UUID serverUUID = MiscUtils.getIPlan().getServerUuid();
UUID serverUUID = PlanPlugin.getInstance().getServerUuid();
if (usingHttps) {
if (!request.hasAuth()) {

View File

@ -1,7 +1,7 @@
package com.djrapitops.plan.systems.webserver;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.locale.Locale;
import com.djrapitops.plan.settings.locale.Msg;
import com.djrapitops.plan.systems.webserver.webapi.WebAPIManager;
@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit;
*/
public class WebServer {
private final IPlan plugin;
private final PlanPlugin plugin;
private final WebAPIManager webAPI;
private final int port;
@ -45,7 +45,7 @@ public class WebServer {
private boolean usingHttps = false;
public WebServer(IPlan plugin) {
public WebServer(PlanPlugin plugin) {
this.plugin = plugin;
this.port = Settings.WEBSERVER_PORT.getNumber();
webAPI = new WebAPIManager();

View File

@ -4,8 +4,8 @@
*/
package com.djrapitops.plan.systems.webserver;
import com.djrapitops.plan.api.exceptions.PlanEnableException;
import com.djrapitops.plan.systems.SubSystem;
import com.djrapitops.plan.api.exceptions.EnableException;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.systems.Systems;
import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plugin.api.Check;
@ -28,16 +28,16 @@ public class WebServerSystem implements SubSystem {
}
@Override
public void init() throws PlanEnableException {
webServer = new WebServer(MiscUtils.getIPlan());
public void enable() throws EnableException {
webServer = new WebServer(PlanPlugin.getInstance());
webServer.initServer();
if (Check.isBungeeAvailable() && !webServer.isEnabled()) {
throw new PlanEnableException("WebServer did not initialize!");
throw new EnableException("WebServer did not initialize!");
}
}
@Override
public void close() {
public void disable() {
// TODO Remove after WebServer setting requirement is gone.
if (webServer != null) {
webServer.stop();

View File

@ -6,7 +6,7 @@ package com.djrapitops.plan.systems.webserver.response;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.ServerVariableHolder;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.systems.info.server.BungeeServerInfoManager;
import com.djrapitops.plan.systems.info.server.ServerInfo;
import com.djrapitops.plan.utilities.MiscUtils;
@ -63,7 +63,7 @@ public class DebugPageResponse extends ErrorResponse {
}
private void appendServerInformation(StringBuilder content) {
IPlan plugin = MiscUtils.getIPlan();
PlanPlugin plugin = PlanPlugin.getInstance();
ServerVariableHolder variable = plugin.getVariable();
content.append("<pre>### Server Information<br>")
@ -111,7 +111,7 @@ public class DebugPageResponse extends ErrorResponse {
private void appendConfig(StringBuilder content) {
try {
File configFile = new File(MiscUtils.getIPlan().getDataFolder(), "config.yml");
File configFile = new File(PlanPlugin.getInstance().getDataFolder(), "config.yml");
if (configFile.exists()) {
content.append("<pre>### config.yml<br>&#96;&#96;&#96;<br>");
FileUtil.lines(configFile, Charset.forName("UTF-8"))
@ -169,7 +169,7 @@ public class DebugPageResponse extends ErrorResponse {
try {
content.append("<pre>### Logged Errors<br>");
TreeMap<String, List<String>> errors = MiscUtils.getIPlan().getInfoManager().getErrors();
TreeMap<String, List<String>> errors = PlanPlugin.getInstance().getInfoManager().getErrors();
if (!errors.isEmpty()) {
List<String> errorLines = new ArrayList<>();

View File

@ -1,12 +1,12 @@
package com.djrapitops.plan.systems.webserver.response;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.data.container.GeoInfo;
import com.djrapitops.plan.data.container.Session;
import com.djrapitops.plan.data.container.UserInfo;
import com.djrapitops.plan.data.element.TableContainer;
import com.djrapitops.plan.database.Database;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.settings.theme.Theme;
import com.djrapitops.plan.utilities.FormatUtils;
import com.djrapitops.plan.utilities.MiscUtils;
@ -32,7 +32,7 @@ public class PlayersPageResponse extends Response {
public PlayersPageResponse() {
super.setHeader("HTTP/1.1 200 OK");
try {
IPlan plugin = MiscUtils.getIPlan();
PlanPlugin plugin = PlanPlugin.getInstance();
List<String> names = new ArrayList<>(plugin.getDB().getUsersTable().getPlayerNames().values());
Collections.sort(names);
Map<String, String> replace = new HashMap<>();

View File

@ -4,9 +4,9 @@
*/
package com.djrapitops.plan.systems.webserver.webapi;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.*;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.systems.webserver.pagecache.PageCache;
import com.djrapitops.plan.systems.webserver.pagecache.PageId;
import com.djrapitops.plan.systems.webserver.response.NotFoundResponse;
@ -42,7 +42,7 @@ public abstract class WebAPI {
this.variables = new HashMap<>();
}
public Response processRequest(IPlan plugin, Map<String, String> variables) {
public Response processRequest(PlanPlugin plugin, Map<String, String> variables) {
String sender = variables.get("sender");
if (sender == null) {
Log.debug(getClass().getSimpleName() + ": Sender not Found");
@ -58,7 +58,7 @@ public abstract class WebAPI {
return onRequest(plugin, variables);
}
public abstract Response onRequest(IPlan plugin, Map<String, String> variables);
public abstract Response onRequest(PlanPlugin plugin, Map<String, String> variables);
public void sendRequest(String address) throws WebAPIException {
Verify.nullCheck(address);
@ -183,7 +183,7 @@ public abstract class WebAPI {
private String parseVariables() {
StringBuilder parameters = new StringBuilder();
String serverUUID = MiscUtils.getIPlan().getServerUuid().toString();
String serverUUID = PlanPlugin.getInstance().getServerUuid().toString();
parameters.append("sender=").append(serverUUID);
for (Map.Entry<String, String> entry : variables.entrySet()) {
parameters.append(";&variable;").append(entry.getKey()).append("=").append(entry.getValue());

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.webserver.webapi.bukkit;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.systems.webserver.response.Response;
import com.djrapitops.plan.systems.webserver.webapi.WebAPI;
@ -17,7 +17,7 @@ import java.util.UUID;
*/
public class AnalysisReadyWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
String serverUUIDS = variables.get("serverUUID");
if (serverUUIDS == null) {
return badRequest("serverUUID was not present");

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.webserver.webapi.bukkit;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.systems.webserver.response.Response;
import com.djrapitops.plan.systems.webserver.webapi.WebAPI;
@ -17,7 +17,7 @@ import java.util.UUID;
*/
public class AnalyzeWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
String serverUUIDS = variables.get("serverUUID");
if (serverUUIDS == null) {
return badRequest("serverUUID was not present");

View File

@ -6,10 +6,10 @@ package com.djrapitops.plan.systems.webserver.webapi.bukkit;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.settings.ServerSpecificSettings;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.systems.webserver.response.Response;
import com.djrapitops.plan.systems.webserver.webapi.WebAPI;
import com.djrapitops.plugin.api.Check;
@ -26,7 +26,7 @@ import java.util.UUID;
public class ConfigurationWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
if (!Check.isBukkitAvailable()) {
Log.debug("Called a wrong server type");
return badRequest("Called a Bungee Server");

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.webserver.webapi.bukkit;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.systems.webserver.response.Response;
import com.djrapitops.plan.systems.webserver.webapi.WebAPI;
@ -17,7 +17,7 @@ import java.util.UUID;
*/
public class InspectWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
String uuidS = variables.get("uuid");
if (uuidS == null) {
return badRequest("UUID not included");

View File

@ -5,7 +5,7 @@
package com.djrapitops.plan.systems.webserver.webapi.bukkit;
import com.djrapitops.plan.Plan;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.systems.webserver.response.Response;
import com.djrapitops.plan.systems.webserver.webapi.WebAPI;
@ -19,7 +19,7 @@ import java.util.UUID;
*/
public class IsOnlineWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
String uuidS = variables.get("uuid");
if (uuidS == null) {
return badRequest("UUID not included");

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.webserver.webapi.bukkit;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.systems.info.BukkitInformationManager;
import com.djrapitops.plan.systems.webserver.response.Response;
@ -28,7 +28,7 @@ import java.util.UUID;
public class RequestInspectPluginsTabBukkitWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
if (!Check.isBukkitAvailable()) {
return badRequest("Called a Bungee Server");
}

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.webserver.webapi.bungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.api.exceptions.WebAPINotFoundException;
import com.djrapitops.plan.systems.info.InformationManager;
@ -22,7 +22,7 @@ import java.util.UUID;
public class IsCachedWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
try {
String target = variables.get("target");
InformationManager infoManager = plugin.getInfoManager();

View File

@ -4,9 +4,9 @@
*/
package com.djrapitops.plan.systems.webserver.webapi.bungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.systems.info.InformationManager;
import com.djrapitops.plan.systems.webserver.pagecache.PageCache;
import com.djrapitops.plan.systems.webserver.pagecache.PageId;
@ -30,7 +30,7 @@ import java.util.UUID;
public class PostHtmlWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
try {
String htmlVariable = variables.get("html");
if (htmlVariable == null) {

View File

@ -4,7 +4,7 @@
*/
package com.djrapitops.plan.systems.webserver.webapi.bungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.systems.info.BungeeInformationManager;
import com.djrapitops.plan.systems.webserver.response.Response;
@ -25,7 +25,7 @@ import java.util.UUID;
*/
public class PostInspectPluginsTabWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
String uuidS = variables.get("uuid");
if (uuidS == null) {
return badRequest("uuid not included");

View File

@ -5,7 +5,7 @@
package com.djrapitops.plan.systems.webserver.webapi.bungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.systems.info.BungeeInformationManager;
import com.djrapitops.plan.systems.webserver.response.Response;
@ -22,7 +22,7 @@ import java.util.UUID;
*/
public class PostNetworkPageContentWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
if (Check.isBukkitAvailable()) {
return badRequest("Called a Bukkit server.");
}

View File

@ -6,9 +6,9 @@ package com.djrapitops.plan.systems.webserver.webapi.bungee;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.api.IPlan;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.WebAPIException;
import com.djrapitops.plan.settings.Settings;
import com.djrapitops.plan.system.settings.Settings;
import com.djrapitops.plan.systems.webserver.response.Response;
import com.djrapitops.plan.systems.webserver.webapi.WebAPI;
import com.djrapitops.plugin.api.Check;
@ -26,7 +26,7 @@ import java.util.UUID;
public class PostOriginalBukkitSettingsWebAPI extends WebAPI {
@Override
public Response onRequest(IPlan plugin, Map<String, String> variables) {
public Response onRequest(PlanPlugin plugin, Map<String, String> variables) {
if (Check.isBukkitAvailable()) {
return badRequest("Called a Bukkit Server");
}

Some files were not shown because too many files have changed in this diff Show More