diff --git a/Plan/common/src/main/java/com/djrapitops/plan/api/CommonAPI.java b/Plan/common/src/main/java/com/djrapitops/plan/api/CommonAPI.java index 1bd2ac7cf..97bc6b8b9 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/api/CommonAPI.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/api/CommonAPI.java @@ -19,14 +19,22 @@ package com.djrapitops.plan.api; import com.djrapitops.plan.api.data.PlayerContainer; import com.djrapitops.plan.api.data.ServerContainer; import com.djrapitops.plan.api.exceptions.database.DBOpException; +import com.djrapitops.plan.data.plugin.HookHandler; +import com.djrapitops.plan.data.plugin.PluginData; import com.djrapitops.plan.db.access.Query; import com.djrapitops.plan.db.access.queries.containers.ContainerFetchQueries; import com.djrapitops.plan.db.access.queries.objects.ServerQueries; import com.djrapitops.plan.db.access.queries.objects.UserIdentifierQueries; +import com.djrapitops.plan.system.database.DBSystem; +import com.djrapitops.plan.system.database.databases.operation.FetchOperations; +import com.djrapitops.plan.system.database.databases.sql.operation.SQLFetchOps; import com.djrapitops.plan.utilities.uuid.UUIDUtility; import com.djrapitops.plugin.logging.L; +import com.djrapitops.plugin.logging.console.PluginLogger; import com.djrapitops.plugin.logging.error.ErrorHandler; +import javax.inject.Inject; +import javax.inject.Singleton; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -37,17 +45,36 @@ import java.util.UUID; * * @author Rsl1122 */ -public abstract class CommonAPI implements PlanAPI { +@Singleton +public class CommonAPI implements PlanAPI { + private final DBSystem dbSystem; private final UUIDUtility uuidUtility; + private final HookHandler hookHandler; + private final PluginLogger logger; private final ErrorHandler errorHandler; - CommonAPI(UUIDUtility uuidUtility, ErrorHandler errorHandler) { + @Inject + public CommonAPI( + DBSystem dbSystem, + UUIDUtility uuidUtility, + HookHandler hookHandler, + PluginLogger logger, + ErrorHandler errorHandler + ) { + this.dbSystem = dbSystem; this.uuidUtility = uuidUtility; + this.hookHandler = hookHandler; + this.logger = logger; this.errorHandler = errorHandler; PlanAPIHolder.set(this); } + @Override + public void addPluginDataSource(PluginData pluginData) { + hookHandler.addPluginDataSource(pluginData); + } + @Override public String getPlayerInspectPageLink(UUID uuid) { return getPlayerInspectPageLink(getPlayerName(uuid)); @@ -73,8 +100,6 @@ public abstract class CommonAPI implements PlanAPI { } } - protected abstract T queryDB(Query query); - @Override public PlayerContainer fetchPlayerContainer(UUID uuid) { return new PlayerContainer(queryDB(ContainerFetchQueries.fetchPlayerContainer(uuid))); @@ -94,4 +119,17 @@ public abstract class CommonAPI implements PlanAPI { public String getPlayerName(UUID playerUUID) { return queryDB(UserIdentifierQueries.fetchPlayerNameOf(playerUUID)).orElse(null); } + + @Override + public FetchOperations fetchFromPlanDB() { + logger.warn("PlanAPI#fetchFromPlanDB has been deprecated and will be removed in the future. Stack trace to follow"); + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + logger.warn(element.toString()); + } + return new SQLFetchOps(dbSystem.getDatabase()); + } + + private T queryDB(Query query) { + return dbSystem.getDatabase().query(query); + } } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/api/ProxyAPI.java b/Plan/common/src/main/java/com/djrapitops/plan/api/ProxyAPI.java deleted file mode 100644 index 4a3162ee8..000000000 --- a/Plan/common/src/main/java/com/djrapitops/plan/api/ProxyAPI.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * This file is part of Player Analytics (Plan). - * - * Plan is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License v3 as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Plan is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Plan. If not, see . - */ -package com.djrapitops.plan.api; - -import com.djrapitops.plan.data.plugin.HookHandler; -import com.djrapitops.plan.data.plugin.PluginData; -import com.djrapitops.plan.db.access.Query; -import com.djrapitops.plan.system.database.DBSystem; -import com.djrapitops.plan.system.database.databases.operation.FetchOperations; -import com.djrapitops.plan.system.database.databases.sql.operation.SQLFetchOps; -import com.djrapitops.plan.utilities.uuid.UUIDUtility; -import com.djrapitops.plugin.logging.error.ErrorHandler; - -import javax.inject.Inject; -import javax.inject.Singleton; - -/** - * PlanAPI extension for proxy servers. - * - * @author Rsl1122 - */ -@Singleton -public class ProxyAPI extends CommonAPI { - - private final HookHandler hookHandler; - private final DBSystem dbSystem; - - @Inject - public ProxyAPI( - UUIDUtility uuidUtility, - DBSystem dbSystem, - HookHandler hookHandler, - ErrorHandler errorHandler - ) { - super(uuidUtility, errorHandler); - - this.dbSystem = dbSystem; - this.hookHandler = hookHandler; - } - - @Override - public void addPluginDataSource(PluginData pluginData) { - hookHandler.addPluginDataSource(pluginData); - } - - @Override - public FetchOperations fetchFromPlanDB() { - return new SQLFetchOps(dbSystem.getDatabase()); - } - - @Override - protected T queryDB(Query query) { - return dbSystem.getDatabase().query(query); - } -} diff --git a/Plan/common/src/main/java/com/djrapitops/plan/api/ServerAPI.java b/Plan/common/src/main/java/com/djrapitops/plan/api/ServerAPI.java deleted file mode 100644 index 162840c8e..000000000 --- a/Plan/common/src/main/java/com/djrapitops/plan/api/ServerAPI.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * This file is part of Player Analytics (Plan). - * - * Plan is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License v3 as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Plan is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Plan. If not, see . - */ -package com.djrapitops.plan.api; - -import com.djrapitops.plan.data.plugin.HookHandler; -import com.djrapitops.plan.data.plugin.PluginData; -import com.djrapitops.plan.db.access.Query; -import com.djrapitops.plan.system.database.DBSystem; -import com.djrapitops.plan.system.database.databases.operation.FetchOperations; -import com.djrapitops.plan.system.database.databases.sql.operation.SQLFetchOps; -import com.djrapitops.plan.utilities.uuid.UUIDUtility; -import com.djrapitops.plugin.logging.error.ErrorHandler; - -import javax.inject.Inject; -import javax.inject.Singleton; - -/** - * PlanAPI extension for Bukkit - * - * @author Rsl1122 - */ -@Singleton -public class ServerAPI extends CommonAPI { - - private final HookHandler hookHandler; - private final DBSystem dbSystem; - - @Inject - public ServerAPI( - UUIDUtility uuidUtility, - HookHandler hookHandler, - DBSystem dbSystem, - ErrorHandler errorHandler - ) { - super(uuidUtility, errorHandler); - this.hookHandler = hookHandler; - this.dbSystem = dbSystem; - } - - @Override - public void addPluginDataSource(PluginData pluginData) { - hookHandler.addPluginDataSource(pluginData); - } - - @Override - public FetchOperations fetchFromPlanDB() { - return new SQLFetchOps(dbSystem.getDatabase()); - } - - @Override - protected T queryDB(Query query) { - return dbSystem.getDatabase().query(query); - } -} diff --git a/Plan/common/src/main/java/com/djrapitops/plan/modules/ProxySuperClassBindingModule.java b/Plan/common/src/main/java/com/djrapitops/plan/modules/ProxySuperClassBindingModule.java index 6a0fa289a..a11ad9f87 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/modules/ProxySuperClassBindingModule.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/modules/ProxySuperClassBindingModule.java @@ -16,8 +16,8 @@ */ package com.djrapitops.plan.modules; +import com.djrapitops.plan.api.CommonAPI; import com.djrapitops.plan.api.PlanAPI; -import com.djrapitops.plan.api.ProxyAPI; import com.djrapitops.plan.system.cache.ProxySessionCache; import com.djrapitops.plan.system.cache.SessionCache; import com.djrapitops.plan.system.database.DBSystem; @@ -42,7 +42,7 @@ import dagger.Module; public interface ProxySuperClassBindingModule { @Binds - PlanAPI bindProxyPlanAPI(ProxyAPI proxyAPI); + PlanAPI bindProxyPlanAPI(CommonAPI proxyAPI); @Binds DBSystem bindProxyDatabaseSystem(ProxyDBSystem proxyDBSystem); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/modules/ServerSuperClassBindingModule.java b/Plan/common/src/main/java/com/djrapitops/plan/modules/ServerSuperClassBindingModule.java index 97f206d91..56a1e8e3d 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/modules/ServerSuperClassBindingModule.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/modules/ServerSuperClassBindingModule.java @@ -16,8 +16,8 @@ */ package com.djrapitops.plan.modules; +import com.djrapitops.plan.api.CommonAPI; import com.djrapitops.plan.api.PlanAPI; -import com.djrapitops.plan.api.ServerAPI; import com.djrapitops.plan.system.info.InfoSystem; import com.djrapitops.plan.system.info.ServerInfoSystem; import com.djrapitops.plan.system.info.connection.ConnectionSystem; @@ -34,7 +34,7 @@ import dagger.Module; public interface ServerSuperClassBindingModule { @Binds - PlanAPI bindServerPlanAPI(ServerAPI serverAPI); + PlanAPI bindServerPlanAPI(CommonAPI serverAPI); @Binds InfoSystem bindServerInfoSystem(ServerInfoSystem serverInfoSystem); diff --git a/Plan/common/src/test/java/com/djrapitops/plan/utilities/html/tables/PlayersTableTest.java b/Plan/common/src/test/java/com/djrapitops/plan/utilities/html/tables/PlayersTableTest.java index c26095816..cf1020ef2 100644 --- a/Plan/common/src/test/java/com/djrapitops/plan/utilities/html/tables/PlayersTableTest.java +++ b/Plan/common/src/test/java/com/djrapitops/plan/utilities/html/tables/PlayersTableTest.java @@ -16,7 +16,7 @@ */ package com.djrapitops.plan.utilities.html.tables; -import com.djrapitops.plan.api.ServerAPI; +import com.djrapitops.plan.api.CommonAPI; import com.djrapitops.plan.data.plugin.HookHandler; import com.djrapitops.plan.data.store.containers.PlayerContainer; import com.djrapitops.plan.data.store.keys.PlayerKeys; @@ -45,10 +45,11 @@ public class PlayersTableTest { @BeforeClass public static void setUpClass() { - new ServerAPI( + new CommonAPI( + Mockito.mock(DBSystem.class), Mockito.mock(UUIDUtility.class), Mockito.mock(HookHandler.class), - Mockito.mock(DBSystem.class), + new TestPluginLogger(), new ConsoleErrorLogger(new TestPluginLogger()) ); }