diff --git a/PlanPluginBridge/pom.xml b/PlanPluginBridge/pom.xml
index 4224324e0..c53365861 100644
--- a/PlanPluginBridge/pom.xml
+++ b/PlanPluginBridge/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.djrapitops
PlanPluginBridge
- 4.8.8-R0.2
+ 4.9.0-R0.1
jar
${project.groupId}:${project.artifactId}
@@ -61,10 +61,6 @@
jitpack.io (GriefPrevention)
https://jitpack.io
-
- viaversion-repo
- https://repo.viaversion.com
-
placeholderapi
http://repo.extendedclip.com/content/repositories/placeholderapi/
@@ -127,12 +123,6 @@
2.10.3
provided
-
- us.myles
- viaversion
- 1.5.0
- provided
-
me.lucko.luckperms
luckperms-api
@@ -141,13 +131,6 @@
-
-
- me.konsolas
- AAC
- 4.0.0-b1
- provided
-
com.massivecraft
factions
diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/AdvancedAntiCheatData.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/AdvancedAntiCheatData.java
deleted file mode 100644
index 457e0bdde..000000000
--- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/AdvancedAntiCheatData.java
+++ /dev/null
@@ -1,91 +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.pluginbridge.plan.aac;
-
-import com.djrapitops.plan.data.element.AnalysisContainer;
-import com.djrapitops.plan.data.element.InspectContainer;
-import com.djrapitops.plan.data.element.TableContainer;
-import com.djrapitops.plan.data.plugin.ContainerSize;
-import com.djrapitops.plan.data.plugin.PluginData;
-import com.djrapitops.plan.db.Database;
-import com.djrapitops.plan.utilities.formatting.Formatter;
-import com.djrapitops.plan.utilities.html.icon.Color;
-import com.djrapitops.plan.utilities.html.icon.Family;
-import com.djrapitops.plan.utilities.html.icon.Icon;
-import com.djrapitops.plugin.utilities.Format;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-/**
- * PluginData for AAC plugin.
- *
- * @author Rsl1122
- */
-class AdvancedAntiCheatData extends PluginData {
-
- private final Database database;
- private final Formatter timestampFormatter;
-
- AdvancedAntiCheatData(Database database, Formatter timestampFormatter) {
- super(ContainerSize.THIRD, "AdvancedAntiCheat");
- this.timestampFormatter = timestampFormatter;
- super.setPluginIcon(Icon.called("heart").of(Color.RED).build());
- this.database = database;
- }
-
- @Override
- public InspectContainer getPlayerData(UUID uuid, InspectContainer inspectContainer) {
- List hackObjects = database.query(HackerTable.getHackObjects(uuid));
-
- inspectContainer.addValue(
- getWithIcon("Times Kicked for Possible Hacking", Icon.called("exclamation-triangle").of(Color.RED)),
- hackObjects.size()
- );
-
- TableContainer hackTable = new TableContainer(
- getWithIcon("Kicked", Icon.called("calendar").of(Family.REGULAR)),
- getWithIcon("Hack", Icon.called("exclamation-triangle")),
- getWithIcon("Violation Level", Icon.called("gavel"))
- );
- hackTable.setColor("red");
-
- for (HackObject hackObject : hackObjects) {
- String date = timestampFormatter.apply(hackObject.getDate());
- String hack = new Format(hackObject.getHackType()).capitalize().toString();
- hackTable.addRow(date, hack, hackObject.getViolationLevel());
- }
- inspectContainer.addTable("hackTable", hackTable);
-
- return inspectContainer;
- }
-
- @Override
- public AnalysisContainer getServerData(Collection collection, AnalysisContainer analysisContainer) {
- Map> hackObjects = database.query(HackerTable.getHackObjects());
-
- Map violations = hackObjects.entrySet().stream()
- .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().size()));
-
- analysisContainer.addPlayerTableValues(getWithIcon("Kicked for Hacking", Icon.called("exclamation-triangle")), violations);
-
- return analysisContainer;
- }
-}
\ No newline at end of file
diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/AdvancedAntiCheatHook.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/AdvancedAntiCheatHook.java
deleted file mode 100644
index d26d8b3f4..000000000
--- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/AdvancedAntiCheatHook.java
+++ /dev/null
@@ -1,72 +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.pluginbridge.plan.aac;
-
-import com.djrapitops.plan.Plan;
-import com.djrapitops.plan.data.plugin.HookHandler;
-import com.djrapitops.plan.db.Database;
-import com.djrapitops.plan.db.access.transactions.Transaction;
-import com.djrapitops.plan.system.database.DBSystem;
-import com.djrapitops.plan.utilities.formatting.Formatters;
-import com.djrapitops.pluginbridge.plan.Hook;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-/**
- * Hook for AAC plugin.
- *
- * @author Rsl1122
- */
-@Singleton
-public class AdvancedAntiCheatHook extends Hook {
-
- private final Plan plugin;
- private final DBSystem dbSystem;
- private final Formatters formatters;
-
- @Inject
- public AdvancedAntiCheatHook(
- Plan plugin,
- DBSystem dbSystem,
- Formatters formatters
- ) {
- super("me.konsolas.aac.AAC");
- this.plugin = plugin;
- this.dbSystem = dbSystem;
- this.formatters = formatters;
- }
-
- @Override
- public void hook(HookHandler hookHandler) throws NoClassDefFoundError {
- if (!enabled) {
- return;
- }
-
- Database database = dbSystem.getDatabase();
- database.executeTransaction(new Transaction() {
- @Override
- protected void performOperations() {
- execute(HackerTable.createTableSQL(database.getType()));
- }
- });
- database.executeTransaction(new HackerTableMissingDateColumnPatch());
-
- plugin.registerListener(new PlayerHackKickListener(database));
- hookHandler.addPluginDataSource(new AdvancedAntiCheatData(database, formatters.yearLong()));
- }
-}
\ No newline at end of file
diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/HackObject.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/HackObject.java
deleted file mode 100644
index 4229aada1..000000000
--- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/HackObject.java
+++ /dev/null
@@ -1,55 +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.pluginbridge.plan.aac;
-
-import java.util.UUID;
-
-/**
- * Data object for AAC data.
- *
- * @author Rsl1122
- */
-public class HackObject {
-
- private final UUID uuid;
- private final long date;
- private final String hackType;
- private final int violationLevel;
-
- public HackObject(UUID uuid, long date, String hackType, int violationLevel) {
- this.uuid = uuid;
- this.date = date;
- this.hackType = hackType;
- this.violationLevel = violationLevel;
- }
-
- public UUID getUuid() {
- return uuid;
- }
-
- public long getDate() {
- return date;
- }
-
- public String getHackType() {
- return hackType;
- }
-
- public int getViolationLevel() {
- return violationLevel;
- }
-}
\ No newline at end of file
diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/HackerTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/HackerTable.java
deleted file mode 100644
index 379b17d4f..000000000
--- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/aac/HackerTable.java
+++ /dev/null
@@ -1,102 +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.pluginbridge.plan.aac;
-
-import com.djrapitops.plan.db.DBType;
-import com.djrapitops.plan.db.access.Query;
-import com.djrapitops.plan.db.access.QueryAllStatement;
-import com.djrapitops.plan.db.access.QueryStatement;
-import com.djrapitops.plan.db.sql.parsing.CreateTableParser;
-import com.djrapitops.plan.db.sql.parsing.Select;
-import com.djrapitops.plan.db.sql.parsing.Sql;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.*;
-
-/**
- * Table information about 'plan_aac_hack_table'.
- *
- * @author Rsl1122
- */
-public class HackerTable {
-
- public static final String TABLE_NAME = "plan_aac_hack_table";
- public static final String COL_ID = "id";
- public static final String COL_UUID = "uuid";
- public static final String COL_DATE = "date";
- public static final String COL_HACK_TYPE = "hack_type";
- public static final String COL_VIOLATION_LEVEL = "violation_level";
-
- private HackerTable() {
- /* Static information class */
- }
-
- public static String createTableSQL(DBType dbType) {
- return CreateTableParser.create(TABLE_NAME, dbType)
- .column(COL_ID, Sql.INT).primaryKey()
- .column(COL_UUID, Sql.varchar(36)).notNull()
- .column(COL_DATE, Sql.LONG).notNull()
- .column(COL_HACK_TYPE, Sql.varchar(100)).notNull()
- .column(COL_VIOLATION_LEVEL, Sql.INT).notNull()
- .build();
- }
-
- public static Query> getHackObjects(UUID uuid) {
- String sql = "SELECT * FROM " + TABLE_NAME + " WHERE " + COL_UUID + "=?";
-
- return new QueryStatement>(sql) {
- @Override
- public void prepare(PreparedStatement statement) throws SQLException {
- statement.setString(1, uuid.toString());
- }
-
- @Override
- public List processResults(ResultSet set) throws SQLException {
- List hackObjects = new ArrayList<>();
- while (set.next()) {
- UUID uuid = UUID.fromString(set.getString(COL_UUID));
- long date = set.getLong(COL_DATE);
- String hackType = set.getString(COL_HACK_TYPE);
- int violationLevel = set.getInt(COL_VIOLATION_LEVEL);
- hackObjects.add(new HackObject(uuid, date, hackType, violationLevel));
- }
- return hackObjects;
- }
- };
- }
-
- public static Query