diff --git a/Plan/src/main/java/com/djrapitops/plan/system/settings/theme/Theme.java b/Plan/src/main/java/com/djrapitops/plan/system/settings/theme/Theme.java index 0efef34d1..ba95584cd 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/settings/theme/Theme.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/settings/theme/Theme.java @@ -6,7 +6,6 @@ package com.djrapitops.plan.system.settings.theme; import com.djrapitops.plan.api.exceptions.EnableException; import com.djrapitops.plan.system.SubSystem; -import com.djrapitops.plan.system.settings.config.ConfigSystem; import com.djrapitops.plugin.logging.console.PluginLogger; import com.djrapitops.plugin.utilities.Verify; @@ -35,13 +34,6 @@ public class Theme implements SubSystem { this.logger = logger; } - @Deprecated - public static Theme getInstance() { - Theme themeSystem = ConfigSystem.getInstance().getThemeSystem(); - Verify.nullCheck(themeSystem, () -> new IllegalStateException("Theme System has not been initialized.")); - return themeSystem; - } - public String getValue(ThemeVal variable) { try { return getThemeValue(variable); @@ -50,11 +42,6 @@ public class Theme implements SubSystem { } } - @Deprecated - public static String replaceColors(String resourceString) { - return getInstance().replaceThemeColors(resourceString); - } - @Override public void enable() throws EnableException { try { @@ -112,7 +99,7 @@ public class Theme implements SubSystem { replaced = replaced.replace(defaultValue, value); } } - return replaced; + return replaced.replace("${defaultTheme}", getValue(ThemeVal.THEME_DEFAULT)); } private String getThemeValue(ThemeVal color) { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/RequestHandler.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/RequestHandler.java index f1b5b04ef..efc224848 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/RequestHandler.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/RequestHandler.java @@ -8,6 +8,7 @@ import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.locale.Locale; import com.djrapitops.plan.system.settings.Settings; import com.djrapitops.plan.system.settings.config.PlanConfig; +import com.djrapitops.plan.system.settings.theme.Theme; import com.djrapitops.plan.system.webserver.auth.Authentication; import com.djrapitops.plan.system.webserver.auth.BasicAuthentication; import com.djrapitops.plan.system.webserver.response.PromptAuthorizationResponse; @@ -36,6 +37,7 @@ public class RequestHandler implements HttpHandler { private final Locale locale; private final PlanConfig config; + private final Theme theme; private final Database database; private final ResponseHandler responseHandler; private final Timings timings; @@ -46,6 +48,7 @@ public class RequestHandler implements HttpHandler { RequestHandler( Locale locale, PlanConfig config, + Theme theme, Database database, ResponseHandler responseHandler, Timings timings, @@ -54,6 +57,7 @@ public class RequestHandler implements HttpHandler { ) { this.locale = locale; this.config = config; + this.theme = theme; this.database = database; this.responseHandler = responseHandler; this.timings = timings; @@ -81,7 +85,7 @@ public class RequestHandler implements HttpHandler { } response.setResponseHeaders(responseHeaders); - response.send(exchange, locale); + response.send(exchange, locale, theme); } catch (Exception e) { if (inDevMode) { logger.warn("THIS ERROR IS ONLY LOGGED IN DEV MODE:"); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/CSSResponse.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/CSSResponse.java index 0c23cfde0..0f665a135 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/CSSResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/CSSResponse.java @@ -1,16 +1,14 @@ package com.djrapitops.plan.system.webserver.response; -import com.djrapitops.plan.system.settings.theme.Theme; - /** * @author Rsl1122 * @since 4.0.0 */ public class CSSResponse extends FileResponse { - public CSSResponse(String fileName, Theme theme) { + public CSSResponse(String fileName) { super(format(fileName)); super.setType(ResponseType.CSS); - setContent(theme.replaceThemeColors(getContent())); + setContent(getContent()); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/JavaScriptResponse.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/JavaScriptResponse.java index 05da9ee97..c194c1e32 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/JavaScriptResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/JavaScriptResponse.java @@ -1,33 +1,13 @@ package com.djrapitops.plan.system.webserver.response; -import com.djrapitops.plan.system.locale.Locale; -import com.djrapitops.plan.system.settings.theme.Theme; -import com.djrapitops.plan.system.settings.theme.ThemeVal; -import org.apache.commons.text.StringSubstitutor; - -import java.util.HashMap; -import java.util.Map; - /** * @author Rsl1122 * @since 3.5.2 */ public class JavaScriptResponse extends FileResponse { - private final Locale locale; - - JavaScriptResponse(String fileName, Locale locale, Theme theme) { + JavaScriptResponse(String fileName) { super(format(fileName)); - this.locale = locale; - super.setType(ResponseType.JAVASCRIPT); - Map replace = new HashMap<>(); - replace.put("defaultTheme", theme.getValue(ThemeVal.THEME_DEFAULT)); - setContent(StringSubstitutor.replace(theme.replaceThemeColors(getContent()), replace)); - } - - @Override - public String getContent() { - return locale.replaceMatchingLanguage(super.getContent()); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/RedirectResponse.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/RedirectResponse.java index 86fa225a4..430090c97 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/RedirectResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/RedirectResponse.java @@ -1,6 +1,7 @@ package com.djrapitops.plan.system.webserver.response; import com.djrapitops.plan.system.locale.Locale; +import com.djrapitops.plan.system.settings.theme.Theme; import com.sun.net.httpserver.HttpExchange; import java.io.IOException; @@ -17,8 +18,8 @@ public class RedirectResponse extends Response { } @Override - public void send(HttpExchange exchange, Locale locale) throws IOException { + public void send(HttpExchange exchange, Locale locale, Theme theme) throws IOException { responseHeaders.set("Location", getContent()); - super.send(exchange, locale); + super.send(exchange, locale, theme); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/Response.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/Response.java index a8bff4ca4..3ddd69927 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/Response.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/Response.java @@ -1,6 +1,7 @@ package com.djrapitops.plan.system.webserver.response; import com.djrapitops.plan.system.locale.Locale; +import com.djrapitops.plan.system.settings.theme.Theme; import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; @@ -83,12 +84,16 @@ public abstract class Response { this.responseHeaders = responseHeaders; } - public void send(HttpExchange exchange, Locale locale) throws IOException { + public void send(HttpExchange exchange, Locale locale, Theme theme) throws IOException { responseHeaders.set("Content-Type", type); responseHeaders.set("Content-Encoding", "gzip"); exchange.sendResponseHeaders(getCode(), 0); String sentContent = getContent(); + if (!(this instanceof JavaScriptResponse)) { + sentContent = locale.replaceMatchingLanguage(sentContent); + } + sentContent = theme.replaceThemeColors(sentContent); try (GZIPOutputStream out = new GZIPOutputStream(exchange.getResponseBody()); ByteArrayInputStream bis = new ByteArrayInputStream(sentContent.getBytes(StandardCharsets.UTF_8))) { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/ResponseFactory.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/ResponseFactory.java index a829f1bef..53566f453 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/ResponseFactory.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/ResponseFactory.java @@ -4,7 +4,6 @@ import com.djrapitops.plan.api.exceptions.ParseException; import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.locale.Locale; import com.djrapitops.plan.system.locale.lang.ErrorPageLang; -import com.djrapitops.plan.system.settings.theme.Theme; import com.djrapitops.plan.system.webserver.response.errors.ErrorResponse; import com.djrapitops.plan.system.webserver.response.errors.InternalErrorResponse; import com.djrapitops.plan.system.webserver.response.errors.NotFoundResponse; @@ -25,19 +24,16 @@ public class ResponseFactory { private final PageFactory pageFactory; private final Locale locale; - private final Theme theme; private final Database database; @Inject public ResponseFactory( PageFactory pageFactory, Locale locale, - Theme theme, Database database ) { this.pageFactory = pageFactory; this.locale = locale; - this.theme = theme; this.database = database; } @@ -70,11 +66,11 @@ public class ResponseFactory { } public Response javaScriptResponse(String fileName) { - return new JavaScriptResponse(fileName, locale, theme); + return new JavaScriptResponse(fileName); } public Response cssResponse(String fileName) { - return new CSSResponse(fileName, theme); + return new CSSResponse(fileName); } public Response redirectResponse(String location) { diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/errors/ErrorResponse.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/errors/ErrorResponse.java index d8d2ecd9e..05bb9f07f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/errors/ErrorResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/errors/ErrorResponse.java @@ -4,11 +4,11 @@ */ package com.djrapitops.plan.system.webserver.response.errors; -import com.djrapitops.plan.system.settings.theme.Theme; import com.djrapitops.plan.system.webserver.response.Response; import com.djrapitops.plan.utilities.MiscUtils; import com.djrapitops.plan.utilities.file.FileUtil; -import com.djrapitops.plugin.api.utility.log.Log; +import com.djrapitops.plugin.logging.L; +import com.djrapitops.plugin.logging.error.ErrorHandler; import org.apache.commons.text.StringSubstitutor; import java.io.IOException; @@ -25,11 +25,14 @@ public class ErrorResponse extends Response { private String title; private String paragraph; + // TODO + private ErrorHandler errorHandler; + public ErrorResponse() { try { - setContent(Theme.replaceColors(FileUtil.getStringFromResource("web/error.html"))); + setContent(FileUtil.getStringFromResource("web/error.html")); } catch (IOException e) { - Log.toLog(this.getClass(), e); + errorHandler.log(L.WARN, this.getClass(), e); } } diff --git a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/InspectPageResponse.java b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/InspectPageResponse.java index bf41399f1..ffa8c4034 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/InspectPageResponse.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/webserver/response/pages/InspectPageResponse.java @@ -1,6 +1,5 @@ package com.djrapitops.plan.system.webserver.response.pages; -import com.djrapitops.plan.system.settings.theme.Theme; import com.djrapitops.plan.system.webserver.cache.PageId; import com.djrapitops.plan.system.webserver.cache.ResponseCache; import com.djrapitops.plan.system.webserver.response.Response; @@ -22,7 +21,7 @@ public class InspectPageResponse extends Response { public InspectPageResponse(UUID uuid, String html) { super.setHeader("HTTP/1.1 200 OK"); - super.setContent(Theme.replaceColors(html)); + super.setContent(html); this.uuid = uuid; } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java b/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java index 6e7a5ca38..941dca357 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/MiscUtils.java @@ -103,6 +103,7 @@ public class MiscUtils { } } + @Deprecated public static String getPlanVersion() { return PlanPlugin.getInstance().getVersion(); } diff --git a/Plan/src/main/java/com/djrapitops/plan/utilities/html/pages/PageFactory.java b/Plan/src/main/java/com/djrapitops/plan/utilities/html/pages/PageFactory.java index f558b5838..7bd7ee799 100644 --- a/Plan/src/main/java/com/djrapitops/plan/utilities/html/pages/PageFactory.java +++ b/Plan/src/main/java/com/djrapitops/plan/utilities/html/pages/PageFactory.java @@ -7,6 +7,7 @@ import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.info.connection.ConnectionSystem; import com.djrapitops.plan.system.info.server.ServerInfo; import com.djrapitops.plan.system.settings.config.PlanConfig; +import com.djrapitops.plan.system.settings.theme.Theme; import com.djrapitops.plan.utilities.formatting.Formatters; import com.djrapitops.plan.utilities.html.graphs.Graphs; import com.djrapitops.plan.utilities.html.tables.HtmlTables; @@ -31,6 +32,7 @@ public class PageFactory { private final String version; private final Lazy config; + private final Lazy theme; private final Lazy database; private final Lazy serverInfo; private final Lazy connectionSystem; @@ -45,6 +47,7 @@ public class PageFactory { public PageFactory( @Named("currentVersion") String version, Lazy config, + Lazy theme, Lazy database, Lazy serverInfo, Lazy connectionSystem, @@ -57,6 +60,7 @@ public class PageFactory { ) { this.version = version; this.config = config; + this.theme = theme; this.database = database; this.serverInfo = serverInfo; this.connectionSystem = connectionSystem; @@ -90,7 +94,7 @@ public class PageFactory { Map serverNames = database.get().fetch().getServerNames(); return new InspectPage( player, serverNames, - config.get(), theme, graphs.get(), tables.get(), formatters.get(), serverInfo.get(), timings.get() + config.get(), theme.get(), graphs.get(), tables.get(), formatters.get(), serverInfo.get(), timings.get() ); }