From ff02eefb2084d5cac11c74ab68f2dd3afa6892cb Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Tue, 28 Aug 2018 12:00:03 +0300 Subject: [PATCH] WorldAliasSettings initialized by Dagger, ConnectionLog changes --- .../connection/BungeeConnectionSystem.java | 10 ++-- .../system/info/connection/ConnectionIn.java | 17 +++--- .../system/info/connection/ConnectionLog.java | 52 ++++++++++++------- .../system/info/connection/ConnectionOut.java | 24 ++++----- .../info/connection/ConnectionSystem.java | 36 ++++++------- .../connection/InfoRequestPageHandler.java | 17 ++++-- .../connection/ServerConnectionSystem.java | 10 ++-- .../info/connection/WebExceptionLogger.java | 4 +- .../settings/ServerSpecificSettings.java | 39 ++++++++------ .../system/settings/WorldAliasSettings.java | 50 ++++++++++++------ .../system/settings/config/PlanConfig.java | 18 ++++++- .../settings/network/NetworkSettings.java | 17 +++--- .../plan/utilities/html/pages/DebugPage.java | 2 +- 13 files changed, 185 insertions(+), 111 deletions(-) diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/BungeeConnectionSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/BungeeConnectionSystem.java index bb27a4443..8283898b5 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/BungeeConnectionSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/BungeeConnectionSystem.java @@ -7,6 +7,7 @@ package com.djrapitops.plan.system.info.connection; import com.djrapitops.plan.api.exceptions.connection.NoServersException; import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.system.database.databases.Database; +import com.djrapitops.plan.system.info.InfoSystem; import com.djrapitops.plan.system.info.request.*; import com.djrapitops.plan.system.info.server.Server; import com.djrapitops.plan.system.info.server.ServerInfo; @@ -14,6 +15,7 @@ import com.djrapitops.plan.system.webserver.WebServer; import com.djrapitops.plugin.api.TimeAmount; import com.djrapitops.plugin.logging.L; import com.djrapitops.plugin.logging.error.ErrorHandler; +import dagger.Lazy; import javax.inject.Inject; import javax.inject.Singleton; @@ -28,7 +30,6 @@ import java.util.UUID; public class BungeeConnectionSystem extends ConnectionSystem { private final Database database; - private final ServerInfo serverInfo; private final WebServer webServer; private ErrorHandler errorHandler; @@ -37,14 +38,15 @@ public class BungeeConnectionSystem extends ConnectionSystem { @Inject public BungeeConnectionSystem( Database database, - ServerInfo serverInfo, WebServer webServer, + ConnectionLog connectionLog, InfoRequests infoRequests, + Lazy infoSystem, + ServerInfo serverInfo, ErrorHandler errorHandler ) { - super(infoRequests); + super(connectionLog, infoRequests, infoSystem, serverInfo); this.database = database; - this.serverInfo = serverInfo; this.webServer = webServer; this.errorHandler = errorHandler; diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionIn.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionIn.java index b7aa29eb2..b578f2068 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionIn.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionIn.java @@ -7,7 +7,6 @@ import com.djrapitops.plan.system.info.request.InfoRequest; import com.djrapitops.plan.system.info.request.SetupRequest; import com.djrapitops.plan.system.webserver.Request; import com.djrapitops.plan.system.webserver.response.Response; -import com.djrapitops.plugin.api.utility.log.Log; import com.djrapitops.plugin.utilities.Verify; import java.io.ByteArrayOutputStream; @@ -23,8 +22,16 @@ public class ConnectionIn { private final Map variables; private final InfoRequest infoRequest; + private final Database database; + private final ConnectionSystem connectionSystem; - public ConnectionIn(Request httpRequest, InfoRequest infoRequest) throws WebException { + public ConnectionIn( + Request httpRequest, InfoRequest infoRequest, + Database database, + ConnectionSystem connectionSystem + ) throws WebException { + this.database = database; + this.connectionSystem = connectionSystem; Verify.nullCheck(httpRequest, infoRequest); this.variables = readVariables(httpRequest); @@ -37,17 +44,15 @@ public class ConnectionIn { UUID serverUUID = getServerUUID(); try { - if (Database.getActive().check().isServerInDatabase(serverUUID)) { + if (database.check().isServerInDatabase(serverUUID)) { return; } } catch (DBOpException e) { throw new TransferDatabaseException(e); } - Log.debug("ConnectionIn: " + infoRequest.getClass().getSimpleName()); - if (infoRequest instanceof SetupRequest) { - if (!ConnectionSystem.isSetupAllowed_Old()) { + if (!connectionSystem.isSetupAllowed()) { throw new ForbiddenException("Setup not enabled on this server, use commands to enable."); } } else { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionLog.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionLog.java index db16a8369..7a789f236 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionLog.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionLog.java @@ -7,23 +7,28 @@ package com.djrapitops.plan.system.info.connection; import com.djrapitops.plan.data.store.objects.DateHolder; import com.djrapitops.plan.system.info.request.InfoRequest; import com.djrapitops.plan.system.info.server.Server; -import com.djrapitops.plugin.api.utility.log.Log; +import com.djrapitops.plugin.logging.debug.DebugLogger; +import javax.inject.Inject; import java.util.HashMap; import java.util.Map; import java.util.Objects; /** - * Class responsible for logging what ConnectionOut objects get in return. + * Class responsible for logging what {@link ConnectionOut} and {@link ConnectionIn} objects get as response. * * @author Rsl1122 */ public class ConnectionLog { - private Map> log; + private final DebugLogger debugLogger; - public ConnectionLog() { - this.log = new HashMap<>(); + private final Map> log; + + @Inject + public ConnectionLog(DebugLogger debugLogger) { + this.debugLogger = debugLogger; + log = new HashMap<>(); } /** @@ -31,34 +36,45 @@ public class ConnectionLog { * * @return {@code Map<"In: "/"Out: "+Address, Map>} */ - public static Map> getLogEntries() { - return getInstance().getLog(); + @Deprecated + public static Map> getLogEntries_Old() { + return getInstance().getLogEntries(); } - public static void logConnectionTo(Server server, InfoRequest request, int responseCode) { + @Deprecated + public static void logConnectionTo_Old(Server server, InfoRequest request, int responseCode) { + getInstance().logConnectionTo(server, request, responseCode); + } + + @Deprecated + public static void logConnectionFrom_Old(String server, String requestTarget, int responseCode) { + getInstance().logConnectionFrom(server, requestTarget, responseCode); + } + + @Deprecated + private static ConnectionLog getInstance() { + return ConnectionSystem.getInstance().getConnectionLog(); + } + + public void logConnectionTo(Server server, InfoRequest request, int responseCode) { String requestName = request.getClass().getSimpleName(); String address = server.getWebAddress(); logConnection(address, "Out: " + requestName, responseCode); - Log.debug("ConnectionOut: " + requestName + " to " + address); + debugLogger.logOn("Connections", "ConnectionOut: " + requestName + " to " + address); } - public static void logConnectionFrom(String server, String requestTarget, int responseCode) { + public void logConnectionFrom(String server, String requestTarget, int responseCode) { logConnection(server, "In: " + requestTarget, responseCode); - Log.debug("ConnectionIn: " + requestTarget + " from " + server); + debugLogger.logOn("Connections", "ConnectionIn: " + requestTarget + " from " + server); } - private static void logConnection(String address, String infoRequestName, int responseCode) { - Map> log = getInstance().log; + private void logConnection(String address, String infoRequestName, int responseCode) { Map requestMap = log.getOrDefault(address, new HashMap<>()); requestMap.put(infoRequestName, new Entry(responseCode, System.currentTimeMillis())); log.put(address, requestMap); } - private static ConnectionLog getInstance() { - return ConnectionSystem.getInstance().getConnectionLog(); - } - - public Map> getLog() { + public Map> getLogEntries() { return log; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionOut.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionOut.java index ca2b9fbe3..a9546b52c 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionOut.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionOut.java @@ -8,10 +8,8 @@ import com.djrapitops.plan.api.exceptions.connection.*; import com.djrapitops.plan.system.info.request.InfoRequest; import com.djrapitops.plan.system.info.request.InfoRequestWithVariables; import com.djrapitops.plan.system.info.server.Server; -import com.djrapitops.plan.system.settings.Settings; import com.djrapitops.plan.utilities.MiscUtils; import com.djrapitops.plugin.api.TimeAmount; -import com.djrapitops.plugin.api.utility.log.Log; import com.djrapitops.plugin.utilities.Verify; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; @@ -57,14 +55,20 @@ public class ConnectionOut { } } + private final ConnectionLog connectionLog; + /** * Constructor. - * - * @param toServer Full address to another Plan webserver. (http://something:port) + * @param toServer Full address to another Plan webserver. (http://something:port) * @param serverUUID UUID of server this outbound connection. * @param infoRequest Type of the action this connection wants to be performed. + * @param connectionLog */ - public ConnectionOut(Server toServer, UUID serverUUID, InfoRequest infoRequest) { + public ConnectionOut( + Server toServer, UUID serverUUID, InfoRequest infoRequest, + ConnectionLog connectionLog + ) { + this.connectionLog = connectionLog; Verify.nullCheck(toServer, serverUUID, infoRequest); this.toServer = toServer; this.serverUUID = serverUUID; @@ -91,14 +95,10 @@ public class ConnectionOut { handleResult(url, parameters, responseCode); } catch (SocketTimeoutException e) { - ConnectionLog.logConnectionTo(toServer, infoRequest, 0); + connectionLog.logConnectionTo(toServer, infoRequest, 0); throw new ConnectionFailException("Connection to " + address + " timed out after 10 seconds.", e); } catch (NoSuchAlgorithmException | KeyStoreException | KeyManagementException | IOException e) { - if (Settings.DEV_MODE.isTrue()) { - Log.warn("THIS ERROR IS ONLY LOGGED IN DEV MODE:"); - Log.toLog(this.getClass(), e); - } - ConnectionLog.logConnectionTo(toServer, infoRequest, -1); + connectionLog.logConnectionTo(toServer, infoRequest, -1); throw new ConnectionFailException("Connection failed to address: " + address + " - Make sure the server is online.", e); } finally { if (post != null) { @@ -110,7 +110,7 @@ public class ConnectionOut { } private void handleResult(String url, String parameters, int responseCode) throws WebException { - ConnectionLog.logConnectionTo(toServer, infoRequest, responseCode); + connectionLog.logConnectionTo(toServer, infoRequest, responseCode); switch (responseCode) { case 200: return; diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionSystem.java index c9e8bbb4a..f7ae7f7c2 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ConnectionSystem.java @@ -13,6 +13,7 @@ import com.djrapitops.plan.system.info.request.WideRequest; import com.djrapitops.plan.system.info.server.Server; import com.djrapitops.plan.system.info.server.ServerInfo; import com.djrapitops.plugin.utilities.Verify; +import dagger.Lazy; import java.util.*; @@ -27,14 +28,24 @@ public abstract class ConnectionSystem implements SubSystem { protected final ConnectionLog connectionLog; protected final Map dataRequests; + protected final Lazy infoSystem; + protected final ServerInfo serverInfo; + protected Map bukkitServers; private boolean setupAllowed; - public ConnectionSystem(Map dataRequests) { + public ConnectionSystem( + ConnectionLog connectionLog, + Map dataRequests, + Lazy infoSystem, + ServerInfo serverInfo + ) { + this.connectionLog = connectionLog; + this.infoSystem = infoSystem; + this.serverInfo = serverInfo; setupAllowed = false; bukkitServers = new HashMap<>(); this.dataRequests = dataRequests; - connectionLog = new ConnectionLog(); } @Deprecated @@ -44,16 +55,6 @@ public abstract class ConnectionSystem implements SubSystem { return connectionSystem; } - @Deprecated - public static boolean isSetupAllowed_Old() { - return getInstance().setupAllowed; - } - - @Deprecated - public static String getAddress() { - return getInstance().getMainAddress(); - } - public InfoRequest getInfoRequest(String name) { return dataRequests.get(name.toLowerCase()); } @@ -62,10 +63,6 @@ public abstract class ConnectionSystem implements SubSystem { this.setupAllowed = setupAllowed; } - private void putRequest(InfoRequest request) { - dataRequests.put(request.getClass().getSimpleName().toLowerCase(), request); - } - protected abstract Server selectServerForRequest(InfoRequest infoRequest) throws NoServersException; public boolean isSetupAllowed() { @@ -78,10 +75,11 @@ public abstract class ConnectionSystem implements SubSystem { } public void sendInfoRequest(InfoRequest infoRequest, Server toServer) throws WebException { - if (ServerInfo.getServerUUID_Old().equals(toServer.getUuid())) { - InfoSystem.getInstance().runLocally(infoRequest); + UUID serverUUID = serverInfo.getServerUUID(); + if (serverUUID.equals(toServer.getUuid())) { + infoSystem.get().runLocally(infoRequest); } else { - new ConnectionOut(toServer, ServerInfo.getServerUUID_Old(), infoRequest).sendRequest(); + new ConnectionOut(toServer, serverUUID, infoRequest, connectionLog).sendRequest(); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/InfoRequestPageHandler.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/InfoRequestPageHandler.java index 306698e1c..8e3cec049 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/InfoRequestPageHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/InfoRequestPageHandler.java @@ -6,6 +6,7 @@ package com.djrapitops.plan.system.info.connection; import com.djrapitops.plan.api.exceptions.connection.NotFoundException; import com.djrapitops.plan.api.exceptions.connection.WebException; +import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.request.InfoRequest; import com.djrapitops.plan.system.locale.lang.ErrorPageLang; import com.djrapitops.plan.system.webserver.Request; @@ -13,6 +14,7 @@ import com.djrapitops.plan.system.webserver.pages.PageHandler; import com.djrapitops.plan.system.webserver.response.Response; import com.djrapitops.plan.system.webserver.response.errors.BadRequestResponse; import com.djrapitops.plan.system.webserver.response.errors.NotFoundResponse; +import com.djrapitops.plugin.logging.console.PluginLogger; import com.djrapitops.plugin.utilities.Verify; import javax.inject.Inject; @@ -31,11 +33,19 @@ import java.util.List; @Singleton public class InfoRequestPageHandler implements PageHandler { + private final Database database; private final ConnectionSystem connectionSystem; + private final PluginLogger logger; @Inject - public InfoRequestPageHandler(ConnectionSystem connectionSystem) { + public InfoRequestPageHandler( + Database database, + ConnectionSystem connectionSystem, + PluginLogger logger + ) { + this.database = database; this.connectionSystem = connectionSystem; + this.logger = logger; } @Override @@ -56,12 +66,13 @@ public class InfoRequestPageHandler implements PageHandler { Verify.nullCheck(infoRequest, () -> new NotFoundException("Info Request has not been registered.")); - return new ConnectionIn(request, infoRequest).handleRequest(); + logger.debug("ConnectionIn: " + infoRequest.getClass().getSimpleName()); + return new ConnectionIn(request, infoRequest, database, connectionSystem).handleRequest(); } catch (WebException e) { responseCode = getResponseCodeFor(e); throw e; } finally { - ConnectionLog.logConnectionFrom(request.getRemoteAddress(), request.getTarget(), responseCode); + ConnectionLog.logConnectionFrom_Old(request.getRemoteAddress(), request.getTarget(), responseCode); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ServerConnectionSystem.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ServerConnectionSystem.java index f615ef91b..b487d7b99 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ServerConnectionSystem.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/ServerConnectionSystem.java @@ -7,6 +7,7 @@ package com.djrapitops.plan.system.info.connection; import com.djrapitops.plan.api.exceptions.connection.ConnectionFailException; import com.djrapitops.plan.api.exceptions.connection.NoServersException; import com.djrapitops.plan.system.database.databases.Database; +import com.djrapitops.plan.system.info.InfoSystem; import com.djrapitops.plan.system.info.request.*; import com.djrapitops.plan.system.info.server.Server; import com.djrapitops.plan.system.info.server.ServerInfo; @@ -19,6 +20,7 @@ import com.djrapitops.plan.system.webserver.WebServer; import com.djrapitops.plugin.api.TimeAmount; import com.djrapitops.plugin.logging.L; import com.djrapitops.plugin.logging.console.PluginLogger; +import dagger.Lazy; import javax.inject.Inject; import javax.inject.Singleton; @@ -37,7 +39,6 @@ public class ServerConnectionSystem extends ConnectionSystem { private final PlanConfig config; private final Database database; private final WebServer webServer; - private final ServerInfo serverInfo; private final PluginLogger pluginLogger; private long latestServerMapRefresh; @@ -50,16 +51,17 @@ public class ServerConnectionSystem extends ConnectionSystem { PlanConfig config, Database database, WebServer webServer, - ServerInfo serverInfo, + ConnectionLog connectionLog, InfoRequests infoRequests, + Lazy infoSystem, + ServerInfo serverInfo, PluginLogger pluginLogger ) { - super(infoRequests); + super(connectionLog, infoRequests, infoSystem, serverInfo); this.locale = locale; this.config = config; this.database = database; this.webServer = webServer; - this.serverInfo = serverInfo; this.pluginLogger = pluginLogger; latestServerMapRefresh = 0; } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/WebExceptionLogger.java b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/WebExceptionLogger.java index 73bac53ff..f595e50f5 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/info/connection/WebExceptionLogger.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/info/connection/WebExceptionLogger.java @@ -20,6 +20,7 @@ import java.util.Map; */ public class WebExceptionLogger { + @Deprecated public static void logIfOccurs(Class c, ThrowingVoidFunction function) { try { function.apply(); @@ -35,12 +36,13 @@ public class WebExceptionLogger { } } + @Deprecated private static boolean shouldLog(ConnectionFailException e) { String address = getAddress(e); if (address == null) { return true; } - Map> logEntries = ConnectionLog.getLogEntries(); + Map> logEntries = ConnectionLog.getLogEntries_Old(); Map entries = logEntries.get("Out: " + address); if (entries != null) { List connections = new ArrayList<>(entries.values()); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/settings/ServerSpecificSettings.java b/Plan/src/main/java/com/djrapitops/plan/system/settings/ServerSpecificSettings.java index 3a6c6e940..03de86a3d 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/settings/ServerSpecificSettings.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/settings/ServerSpecificSettings.java @@ -8,6 +8,7 @@ import com.djrapitops.plan.PlanPlugin; import com.djrapitops.plan.system.settings.config.PlanConfig; import com.djrapitops.plugin.logging.console.PluginLogger; import com.djrapitops.plugin.utilities.Verify; +import dagger.Lazy; import javax.inject.Inject; import javax.inject.Singleton; @@ -26,22 +27,24 @@ import java.util.UUID; @Singleton public class ServerSpecificSettings { + private final Lazy config; + private final PluginLogger logger; - private PlanConfig config; @Inject - public ServerSpecificSettings(PluginLogger logger) { - this.logger = logger; - } - - public void setConfig(PlanConfig config) { + public ServerSpecificSettings( + Lazy config, + PluginLogger logger + ) { this.config = config; + this.logger = logger; } public void updateSettings(Map settings) throws IOException { logger.debug("Checking new settings.."); boolean changedSomething = false; + PlanConfig planConfig = config.get(); for (Map.Entry setting : settings.entrySet()) { try { String path = setting.getKey(); @@ -50,11 +53,11 @@ public class ServerSpecificSettings { } String stringValue = setting.getValue(); Object value = getValue(stringValue); - String currentValue = config.getString(path); + String currentValue = planConfig.getString(path); if (stringValue.equals(currentValue)) { continue; } - config.set(path, value); + planConfig.set(path, value); logger.debug(" " + path + ": " + value); } catch (NullPointerException ignored) { } @@ -62,7 +65,7 @@ public class ServerSpecificSettings { } if (changedSomething) { - config.save(); + planConfig.save(); logger.info("----------------------------------"); logger.info("The Received Bungee Settings changed the config values, restarting Plan.."); logger.info("----------------------------------"); @@ -87,13 +90,14 @@ public class ServerSpecificSettings { } public void addOriginalBukkitSettings(UUID serverUUID, Map settings) throws IOException { - if (!Verify.isEmpty(config.getString("Servers." + serverUUID + ".ServerName"))) { + PlanConfig planConfig = config.get(); + if (!Verify.isEmpty(planConfig.getString("Servers." + serverUUID + ".ServerName"))) { return; } for (Map.Entry entry : settings.entrySet()) { - config.set("Servers." + serverUUID + "." + entry.getKey(), entry.getValue()); + planConfig.set("Servers." + serverUUID + "." + entry.getKey(), entry.getValue()); } - config.save(); + planConfig.save(); } private String getPath(UUID serverUUID, Settings setting) { @@ -116,22 +120,23 @@ public class ServerSpecificSettings { public boolean getBoolean(UUID serverUUID, Settings setting) { String path = getPath(serverUUID, setting); - return config.getBoolean(path); + return config.get().getBoolean(path); } public String getString(UUID serverUUID, Settings setting) { String path = getPath(serverUUID, setting); - return config.getString(path); + return config.get().getString(path); } public Integer getInt(UUID serverUUID, Settings setting) { String path = getPath(serverUUID, setting); - return config.getInt(path); + return config.get().getInt(path); } public void set(UUID serverUUID, Settings setting, Object value) throws IOException { String path = getPath(serverUUID, setting); - config.set(path, value); - config.save(); + PlanConfig planConfig = config.get(); + planConfig.set(path, value); + planConfig.save(); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/settings/WorldAliasSettings.java b/Plan/src/main/java/com/djrapitops/plan/system/settings/WorldAliasSettings.java index 93a98f9c5..b96fdaa67 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/settings/WorldAliasSettings.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/settings/WorldAliasSettings.java @@ -5,30 +5,56 @@ package com.djrapitops.plan.system.settings; import com.djrapitops.plan.system.processing.Processing; -import com.djrapitops.plan.system.settings.config.ConfigSystem; -import com.djrapitops.plugin.api.utility.log.Log; -import com.djrapitops.plugin.config.Config; +import com.djrapitops.plan.system.settings.config.PlanConfig; import com.djrapitops.plugin.config.ConfigNode; +import com.djrapitops.plugin.logging.L; +import com.djrapitops.plugin.logging.error.ErrorHandler; import com.djrapitops.plugin.utilities.Verify; +import dagger.Lazy; +import javax.inject.Inject; +import javax.inject.Singleton; import java.io.IOException; import java.util.HashMap; import java.util.Map; /** - * Class responsible for managing Bukkit side config settings for World Aliases. + * Class responsible for managing config settings for World Aliases. * * @author Rsl1122 */ +@Singleton public class WorldAliasSettings { - + + private final Lazy config; + private final ErrorHandler errorHandler; + + @Inject + public WorldAliasSettings(Lazy config, ErrorHandler errorHandler) { + this.config = config; + this.errorHandler = errorHandler; + } + + @Deprecated + public static Map getAliases_Old() { + return new HashMap<>(); + } + + @Deprecated + public static void addWorld_Old(String world) { + + } + + private ConfigNode getAliasSection() { + return config.get().getConfigNode(Settings.WORLD_ALIASES); + } + /** * Used to get all World aliases in the config * * @return Map: Original name, Alias */ - @Deprecated - public static Map getAliases_Old() { + public Map getAliases() { ConfigNode aliasSect = getAliasSection(); Map aliasMap = new HashMap<>(); @@ -38,11 +64,6 @@ public class WorldAliasSettings { return aliasMap; } - private static ConfigNode getAliasSection() { - Config config = ConfigSystem.getConfig_Old(); - return config.getConfigNode(Settings.WORLD_ALIASES.getPath()); - } - /** * Adds a new World to the config section. *

@@ -50,8 +71,7 @@ public class WorldAliasSettings { * * @param world World name */ - @Deprecated - public static void addWorld_Old(String world) { + public void addWorld(String world) { ConfigNode aliasSect = getAliasSection(); String previousValue = aliasSect.getConfigNode(world).getValue(); @@ -61,7 +81,7 @@ public class WorldAliasSettings { try { aliasSect.save(); } catch (IOException e) { - Log.toLog(WorldAliasSettings.class, e); + errorHandler.log(L.WARN, WorldAliasSettings.class, e); } }); } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/settings/config/PlanConfig.java b/Plan/src/main/java/com/djrapitops/plan/system/settings/config/PlanConfig.java index 057471783..646228782 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/settings/config/PlanConfig.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/settings/config/PlanConfig.java @@ -1,11 +1,14 @@ package com.djrapitops.plan.system.settings.config; import com.djrapitops.plan.data.plugin.PluginsConfigSection; +import com.djrapitops.plan.system.settings.WorldAliasSettings; import com.djrapitops.plan.system.settings.network.NetworkSettings; import com.djrapitops.plugin.config.Config; +import com.djrapitops.plugin.config.ConfigNode; import javax.inject.Inject; import javax.inject.Named; +import javax.inject.Singleton; import java.io.File; import java.util.List; @@ -14,20 +17,23 @@ import java.util.List; * * @author Rsl1122 */ +@Singleton public class PlanConfig extends Config { private final PluginsConfigSection pluginsConfigSection; private final NetworkSettings networkSettings; + private final WorldAliasSettings worldAliasSettings; @Inject public PlanConfig( @Named("configFile") File file, - NetworkSettings networkSettings + NetworkSettings networkSettings, + WorldAliasSettings worldAliasSettings ) { super(file); this.networkSettings = networkSettings; - networkSettings.setConfig(this); + this.worldAliasSettings = worldAliasSettings; pluginsConfigSection = new PluginsConfigSection(this); } @@ -62,6 +68,10 @@ public class PlanConfig extends Config { return getStringList(setting.getPath()); } + public ConfigNode getConfigNode(Setting setting) { + return getConfigNode(setting.getPath()); + } + public void set(Setting setting, Object value) { set(setting.getPath(), value); } @@ -73,4 +83,8 @@ public class PlanConfig extends Config { public NetworkSettings getNetworkSettings() { return networkSettings; } + + public WorldAliasSettings getWorldAliasSettings() { + return worldAliasSettings; + } } \ No newline at end of file diff --git a/Plan/src/main/java/com/djrapitops/plan/system/settings/network/NetworkSettings.java b/Plan/src/main/java/com/djrapitops/plan/system/settings/network/NetworkSettings.java index 638849dba..4ea962263 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/settings/network/NetworkSettings.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/settings/network/NetworkSettings.java @@ -39,21 +39,23 @@ public class NetworkSettings { private static final String SPLIT = ";;SETTING;;"; private static final String VAL_SPLIT = ";;VALUE;;"; + private final Lazy config; private final Lazy database; private final Lazy serverInfo; private final PluginLogger logger; private final ErrorHandler errorHandler; private final ServerSpecificSettings serverSpecificSettings; - private PlanConfig config; @Inject public NetworkSettings( + Lazy config, ServerSpecificSettings serverSpecificSettings, Lazy database, Lazy serverInfo, PluginLogger logger, ErrorHandler errorHandler ) { + this.config = config; this.serverSpecificSettings = serverSpecificSettings; this.database = database; this.serverInfo = serverInfo; @@ -61,17 +63,13 @@ public class NetworkSettings { this.errorHandler = errorHandler; } - public void setConfig(PlanConfig config) { - this.config = config; - serverSpecificSettings.setConfig(config); - } - public void loadSettingsFromDB() { if (Check.isBungeeAvailable()) { return; } - if (config.isTrue(BUNGEE_OVERRIDE_STANDALONE_MODE) || config.isFalse(BUNGEE_COPY_CONFIG)) { + PlanConfig planConfig = config.get(); + if (planConfig.isTrue(BUNGEE_OVERRIDE_STANDALONE_MODE) || planConfig.isFalse(BUNGEE_COPY_CONFIG)) { // Don't load settings if they are overridden. return; } @@ -203,10 +201,11 @@ public class NetworkSettings { KEEP_INACTIVE_PLAYERS_DAYS }; logger.debug("NetworkSettings: Adding Config Values.."); + PlanConfig planConfig = config.get(); for (Settings setting : sameStrings) { - addConfigValue(configValues, setting, config.getString(setting)); + addConfigValue(configValues, setting, planConfig.getString(setting)); } - addConfigValue(configValues, DB_PORT, config.getNumber(DB_PORT)); + addConfigValue(configValues, DB_PORT, planConfig.getNumber(DB_PORT)); addServerSpecificValues(configValues); return configValues; } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/pages/DebugPage.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/pages/DebugPage.java index d1585c8ed..edd430e64 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/pages/DebugPage.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/pages/DebugPage.java @@ -156,7 +156,7 @@ public class DebugPage implements Page { private void appendConnectionLog(StringBuilder content) { try { - Map> logEntries = ConnectionLog.getLogEntries(); + Map> logEntries = connectionSystem.getConnectionLog().getLogEntries(); content.append("

### Connection Log:

"); content.append("Server Address | Request Type | Response | Sent
")