diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/SQLDB.java b/Plan/common/src/main/java/com/djrapitops/plan/db/SQLDB.java
index f92e7c793..13e6087df 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/db/SQLDB.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/db/SQLDB.java
@@ -155,7 +155,8 @@ public abstract class SQLDB extends AbstractDatabase {
new TransferTableRemovalPatch(),
new IPAnonPatch(),
new BadAFKThresholdValuePatch(),
- new DeleteIPHashesPatch()
+ new DeleteIPHashesPatch(),
+ new ExtensionShowInPlayersTablePatch()
};
}
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/patches/ExtensionShowInPlayersTablePatch.java b/Plan/common/src/main/java/com/djrapitops/plan/db/patches/ExtensionShowInPlayersTablePatch.java
new file mode 100644
index 000000000..66c12e74a
--- /dev/null
+++ b/Plan/common/src/main/java/com/djrapitops/plan/db/patches/ExtensionShowInPlayersTablePatch.java
@@ -0,0 +1,38 @@
+/*
+ * 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.db.patches;
+
+import com.djrapitops.plan.db.sql.parsing.Sql;
+import com.djrapitops.plan.db.sql.tables.ExtensionProviderTable;
+
+/**
+ * Patch to add 'show_in_players_table' to 'plan_extension_providers'
+ *
+ * @author Rsl1122
+ */
+public class ExtensionShowInPlayersTablePatch extends Patch {
+
+ @Override
+ public boolean hasBeenApplied() {
+ return hasColumn(ExtensionProviderTable.TABLE_NAME, ExtensionProviderTable.SHOW_IN_PLAYERS_TABLE);
+ }
+
+ @Override
+ protected void applyPatch() {
+ addColumn(ExtensionProviderTable.TABLE_NAME, ExtensionProviderTable.SHOW_IN_PLAYERS_TABLE + ' ' + Sql.BOOL + " NOT NULL DEFAULT 0");
+ }
+}
\ No newline at end of file
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/ExtensionProviderTable.java b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/ExtensionProviderTable.java
index cb14fad5e..140863c49 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/ExtensionProviderTable.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/ExtensionProviderTable.java
@@ -45,6 +45,7 @@ public class ExtensionProviderTable {
public static final String PLUGIN_ID = "plugin_id";
public static final String ICON_ID = "icon_id";
public static final String TAB_ID = "tab_id"; // Can be null, related to @Tab
+ public static final String SHOW_IN_PLAYERS_TABLE = "show_in_players_table"; // default false
public static final String HIDDEN = "hidden"; // default false, related to @BooleanProvider
public static final String PROVIDED_CONDITION = "provided_condition"; // Can be null, related to @BooleanProvider
@@ -71,6 +72,7 @@ public class ExtensionProviderTable {
.column(TEXT, Sql.varchar(50)).notNull()
.column(DESCRIPTION, Sql.varchar(150))
.column(PRIORITY, INT).notNull().defaultValue("0")
+ .column(SHOW_IN_PLAYERS_TABLE, BOOL).notNull().defaultValue(false)
.column(GROUPABLE, BOOL).notNull().defaultValue(false)
.column(CONDITION, Sql.varchar(54)) // 50 + 4 for "not_"
.column(PROVIDED_CONDITION, Sql.varchar(50))
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/ProviderInformation.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/ProviderInformation.java
index 0e446f422..a06b625cd 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/ProviderInformation.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/ProviderInformation.java
@@ -32,14 +32,16 @@ import java.util.Optional;
public class ProviderInformation extends ExtensionDescriptive {
private final String pluginName;
+ private final boolean showInPlayersTable;
private final String tab; // can be null
private final Conditional condition; // can be null
public ProviderInformation(
- String pluginName, String name, String text, String description, Icon icon, int priority, String tab, Conditional condition
+ String pluginName, String name, String text, String description, Icon icon, int priority, boolean showInPlayersTable, String tab, Conditional condition
) {
super(name, text, description, icon, priority);
this.pluginName = pluginName;
+ this.showInPlayersTable = showInPlayersTable;
this.tab = tab;
this.condition = condition;
}
@@ -48,6 +50,10 @@ public class ProviderInformation extends ExtensionDescriptive {
return StringUtils.truncate(pluginName, 50);
}
+ public boolean isShownInPlayersTable() {
+ return showInPlayersTable;
+ }
+
public Optional getTab() {
return tab == null || tab.isEmpty()
? Optional.empty()
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/BooleanDataProvider.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/BooleanDataProvider.java
index 0673d27af..332c735b0 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/BooleanDataProvider.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/BooleanDataProvider.java
@@ -52,7 +52,7 @@ public class BooleanDataProvider extends DataProvider {
Icon providerIcon = new Icon(annotation.iconFamily(), annotation.iconName(), annotation.iconColor());
ProviderInformation providerInformation = new ProviderInformation(
- pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), tab, condition
+ pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), annotation.showInPlayerTable(), tab, condition
);
dataProviders.put(new BooleanDataProvider(providerInformation, methodWrapper, annotation.conditionName(), annotation.hidden()));
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/DoubleDataProvider.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/DoubleDataProvider.java
index 204b28c73..ac467983e 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/DoubleDataProvider.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/DoubleDataProvider.java
@@ -44,7 +44,7 @@ public class DoubleDataProvider extends DataProvider {
Icon providerIcon = new Icon(annotation.iconFamily(), annotation.iconName(), annotation.iconColor());
ProviderInformation providerInformation = new ProviderInformation(
- pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), tab, condition
+ pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), annotation.showInPlayerTable(), tab, condition
);
dataProviders.put(new DoubleDataProvider(providerInformation, methodWrapper));
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/NumberDataProvider.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/NumberDataProvider.java
index 353dbdd44..c1c41eac0 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/NumberDataProvider.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/NumberDataProvider.java
@@ -48,7 +48,7 @@ public class NumberDataProvider extends DataProvider {
Icon providerIcon = new Icon(annotation.iconFamily(), annotation.iconName(), annotation.iconColor());
ProviderInformation providerInformation = new ProviderInformation(
- pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), tab, condition
+ pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), annotation.showInPlayerTable(), tab, condition
);
dataProviders.put(new NumberDataProvider(providerInformation, methodWrapper, annotation.format()));
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/PercentageDataProvider.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/PercentageDataProvider.java
index 8aaa4dfd9..6c07db992 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/PercentageDataProvider.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/PercentageDataProvider.java
@@ -44,7 +44,7 @@ public class PercentageDataProvider extends DataProvider {
Icon providerIcon = new Icon(annotation.iconFamily(), annotation.iconName(), annotation.iconColor());
ProviderInformation providerInformation = new ProviderInformation(
- pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), tab, condition
+ pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), annotation.showInPlayerTable(), tab, condition
);
dataProviders.put(new PercentageDataProvider(providerInformation, methodWrapper));
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/StringDataProvider.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/StringDataProvider.java
index fa90e00a8..f6293ab96 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/StringDataProvider.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/StringDataProvider.java
@@ -47,7 +47,7 @@ public class StringDataProvider extends DataProvider {
Icon providerIcon = new Icon(annotation.iconFamily(), annotation.iconName(), annotation.iconColor());
ProviderInformation providerInformation = new ProviderInformation(
- pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), tab, condition
+ pluginName, method.getName(), annotation.text(), annotation.description(), providerIcon, annotation.priority(), annotation.showInPlayerTable(), tab, condition
);
boolean playerName = annotation.playerName();
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/TableDataProvider.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/TableDataProvider.java
index 77150fe6b..16600ca9e 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/TableDataProvider.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/providers/TableDataProvider.java
@@ -50,7 +50,7 @@ public class TableDataProvider extends DataProvider {
MethodWrapper methodWrapper = new MethodWrapper<>(method, Table.class);
ProviderInformation providerInformation = new ProviderInformation(
- pluginName, method.getName(), null, null, null, 0, tab, condition
+ pluginName, method.getName(), null, null, null, 0, false, tab, condition
);
dataProviders.put(new TableDataProvider(providerInformation, methodWrapper, annotation.tableColor()));
diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/queries/ExtensionServerPlayerDataTableQuery.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/queries/ExtensionServerPlayerDataTableQuery.java
index 7bf3f3a45..8a4954064 100644
--- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/queries/ExtensionServerPlayerDataTableQuery.java
+++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/queries/ExtensionServerPlayerDataTableQuery.java
@@ -68,7 +68,9 @@ public class ExtensionServerPlayerDataTableQuery implements Query