Implemented 'showInPlayerTable' for Providers

- Added the boolean to ProviderInformation
- Added a column to plan_extension_providers
- Added a patch to add the column to old databases
- Added value for the column to the provider store transactions
- Changed ServerPlayerDataTableQuery to only include showInPlayerTable
  = true providers
- Changed test to take changes into account
This commit is contained in:
Rsl1122 2019-05-12 13:45:25 +03:00
parent ef35312844
commit 91895f9a84
16 changed files with 130 additions and 53 deletions

View File

@ -155,7 +155,8 @@ public abstract class SQLDB extends AbstractDatabase {
new TransferTableRemovalPatch(),
new IPAnonPatch(),
new BadAFKThresholdValuePatch(),
new DeleteIPHashesPatch()
new DeleteIPHashesPatch(),
new ExtensionShowInPlayersTablePatch()
};
}

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
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");
}
}

View File

@ -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))

View File

@ -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<String> getTab() {
return tab == null || tab.isEmpty()
? Optional.empty()

View File

@ -52,7 +52,7 @@ public class BooleanDataProvider extends DataProvider<Boolean> {
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()));

View File

@ -44,7 +44,7 @@ public class DoubleDataProvider extends DataProvider<Double> {
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));

View File

@ -48,7 +48,7 @@ public class NumberDataProvider extends DataProvider<Long> {
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()));

View File

@ -44,7 +44,7 @@ public class PercentageDataProvider extends DataProvider<Double> {
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));

View File

@ -47,7 +47,7 @@ public class StringDataProvider extends DataProvider<String> {
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();

View File

@ -50,7 +50,7 @@ public class TableDataProvider extends DataProvider<Table> {
MethodWrapper<Table> 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()));

View File

@ -68,7 +68,9 @@ public class ExtensionServerPlayerDataTableQuery implements Query<Map<UUID, Exte
String sql = SELECT +
"v1." + ExtensionPlayerValueTable.USER_UUID + " as uuid," +
"v1." + ExtensionPlayerValueTable.BOOLEAN_VALUE + " as boolean_value," +
"v1." + ExtensionPlayerValueTable.DOUBLE_VALUE + " as double_value," +
"v1." + ExtensionPlayerValueTable.PERCENTAGE_VALUE + " as percentage_value," +
"v1." + ExtensionPlayerValueTable.LONG_VALUE + " as long_value," +
"v1." + ExtensionPlayerValueTable.STRING_VALUE + " as string_value," +
"p1." + ExtensionProviderTable.PROVIDER_NAME + " as provider_name," +
@ -83,16 +85,16 @@ public class ExtensionServerPlayerDataTableQuery implements Query<Map<UUID, Exte
INNER_JOIN + ExtensionPluginTable.TABLE_NAME + " e1 on e1." + ExtensionPluginTable.ID + "=p1." + ExtensionProviderTable.PLUGIN_ID +
LEFT_JOIN + ExtensionIconTable.TABLE_NAME + " i1 on i1." + ExtensionIconTable.ID + "=p1." + ExtensionProviderTable.ICON_ID +
WHERE + "e1." + ExtensionPluginTable.SERVER_UUID + "=?" +
AND + " v1." + ExtensionPlayerValueTable.BOOLEAN_VALUE + IS_NULL + // Don't select Boolean value rows
AND + " v1." + ExtensionPlayerValueTable.PERCENTAGE_VALUE + IS_NULL + // Don't select Percentage value rows
AND + " p1." + ExtensionProviderTable.IS_PLAYER_NAME + "=?";
AND + "p1." + ExtensionProviderTable.SHOW_IN_PLAYERS_TABLE + "=?" +
AND + "p1." + ExtensionProviderTable.IS_PLAYER_NAME + "=?";
return new QueryStatement<Map<UUID, ExtensionTabData>>(sql, 1000) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setInt(1, xMostRecentPlayers); // Limit to x most recently seen players
statement.setString(2, serverUUID.toString());
statement.setBoolean(3, false); // Don't select player_name String values
statement.setBoolean(3, true); // Select only values that should be shown
statement.setBoolean(4, false); // Don't select player_name String values
}
@Override
@ -118,12 +120,24 @@ public class ExtensionServerPlayerDataTableQuery implements Query<Map<UUID, Exte
}
private void extractAndPutDataTo(ExtensionTabData.Factory extensionTab, ExtensionDescriptive descriptive, ResultSet set) throws SQLException {
boolean booleanValue = set.getBoolean(ExtensionServerValueTable.BOOLEAN_VALUE);
if (!set.wasNull()) {
extensionTab.putBooleanData(new ExtensionBooleanData(descriptive, booleanValue));
return;
}
double doubleValue = set.getDouble(ExtensionPlayerValueTable.DOUBLE_VALUE);
if (!set.wasNull()) {
extensionTab.putDoubleData(new ExtensionDoubleData(descriptive, doubleValue));
return;
}
double percentageValue = set.getDouble(ExtensionServerValueTable.PERCENTAGE_VALUE);
if (!set.wasNull()) {
extensionTab.putPercentageData(new ExtensionDoubleData(descriptive, percentageValue));
return;
}
long numberValue = set.getLong(ExtensionPlayerValueTable.LONG_VALUE);
if (!set.wasNull()) {
FormatType formatType = FormatType.getByName(set.getString(ExtensionProviderTable.FORMAT_TYPE)).orElse(FormatType.NONE);

View File

@ -78,7 +78,8 @@ public class StoreBooleanProviderTransaction extends Transaction {
PROVIDED_CONDITION + "=?," +
TAB_ID + '=' + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + ',' +
ICON_ID + '=' + ExtensionIconTable.STATEMENT_SELECT_ICON_ID + ',' +
HIDDEN + "=?" +
HIDDEN + "=?," +
SHOW_IN_PLAYERS_TABLE + "=?" +
WHERE + PLUGIN_ID + '=' + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID +
AND + PROVIDER_NAME + "=?";
@ -107,8 +108,9 @@ public class StoreBooleanProviderTransaction extends Transaction {
ExtensionTabTable.set3TabValuesToStatement(statement, 6, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 9, providerInformation.getIcon());
statement.setBoolean(12, hidden);
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
statement.setString(15, providerInformation.getName());
statement.setBoolean(13, providerInformation.isShownInPlayersTable());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 14, providerInformation.getPluginName(), serverUUID);
statement.setString(16, providerInformation.getName());
}
};
}
@ -122,10 +124,11 @@ public class StoreBooleanProviderTransaction extends Transaction {
CONDITION + ',' +
PROVIDED_CONDITION + ',' +
HIDDEN + ',' +
SHOW_IN_PLAYERS_TABLE + ',' +
TAB_ID + ',' +
ICON_ID + ',' +
PLUGIN_ID +
") VALUES (?,?,?,?,?,?,?," +
") VALUES (?,?,?,?,?,?,?,?," +
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + ',' +
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + ',' +
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ')';
@ -153,9 +156,10 @@ public class StoreBooleanProviderTransaction extends Transaction {
statement.setNull(6, Types.VARCHAR);
}
statement.setBoolean(7, hidden);
ExtensionTabTable.set3TabValuesToStatement(statement, 8, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 11, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 14, providerInformation.getPluginName(), serverUUID);
statement.setBoolean(8, providerInformation.isShownInPlayersTable());
ExtensionTabTable.set3TabValuesToStatement(statement, 9, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 12, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 15, providerInformation.getPluginName(), serverUUID);
}
};
}

View File

@ -76,7 +76,8 @@ public class StoreDoubleProviderTransaction extends Transaction {
PRIORITY + "=?," +
CONDITION + "=?," +
TAB_ID + "=" + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
ICON_ID + "=" + ExtensionIconTable.STATEMENT_SELECT_ICON_ID +
ICON_ID + "=" + ExtensionIconTable.STATEMENT_SELECT_ICON_ID + ',' +
SHOW_IN_PLAYERS_TABLE + "=?" +
WHERE + PLUGIN_ID + "=" + ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID +
AND + PROVIDER_NAME + "=?";
@ -99,8 +100,9 @@ public class StoreDoubleProviderTransaction extends Transaction {
}
ExtensionTabTable.set3TabValuesToStatement(statement, 5, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 8, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 11, providerInformation.getPluginName(), serverUUID);
statement.setString(13, providerInformation.getName());
statement.setBoolean(11, providerInformation.isShownInPlayersTable());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 12, providerInformation.getPluginName(), serverUUID);
statement.setString(14, providerInformation.getName());
}
};
}
@ -112,10 +114,11 @@ public class StoreDoubleProviderTransaction extends Transaction {
DESCRIPTION + "," +
PRIORITY + "," +
CONDITION + "," +
SHOW_IN_PLAYERS_TABLE + ',' +
TAB_ID + "," +
ICON_ID + "," +
PLUGIN_ID +
") VALUES (?,?,?,?,?," +
") VALUES (?,?,?,?,?,?," +
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + "," +
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ")";
@ -137,9 +140,10 @@ public class StoreDoubleProviderTransaction extends Transaction {
} else {
statement.setNull(5, Types.VARCHAR);
}
ExtensionTabTable.set3TabValuesToStatement(statement, 6, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 9, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 12, providerInformation.getPluginName(), serverUUID);
statement.setBoolean(6, providerInformation.isShownInPlayersTable());
ExtensionTabTable.set3TabValuesToStatement(statement, 7, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 10, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
}
};
}

View File

@ -74,6 +74,7 @@ public class StoreNumberProviderTransaction extends Transaction {
DESCRIPTION + "=?," +
PRIORITY + "=?," +
CONDITION + "=?," +
SHOW_IN_PLAYERS_TABLE + "=?," +
FORMAT_TYPE + "=?," +
TAB_ID + "=" + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
ICON_ID + "=" + ExtensionIconTable.STATEMENT_SELECT_ICON_ID +
@ -97,11 +98,12 @@ public class StoreNumberProviderTransaction extends Transaction {
} else {
statement.setNull(4, Types.VARCHAR);
}
statement.setString(5, formatType.name());
ExtensionTabTable.set3TabValuesToStatement(statement, 6, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 9, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 12, providerInformation.getPluginName(), serverUUID);
statement.setString(14, providerInformation.getName());
statement.setBoolean(5, providerInformation.isShownInPlayersTable());
statement.setString(6, formatType.name());
ExtensionTabTable.set3TabValuesToStatement(statement, 7, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 10, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
statement.setString(15, providerInformation.getName());
}
};
}
@ -113,11 +115,12 @@ public class StoreNumberProviderTransaction extends Transaction {
DESCRIPTION + "," +
PRIORITY + "," +
CONDITION + "," +
SHOW_IN_PLAYERS_TABLE + ',' +
FORMAT_TYPE + "," +
TAB_ID + "," +
ICON_ID + "," +
PLUGIN_ID +
") VALUES (?,?,?,?,?,?," +
") VALUES (?,?,?,?,?,?,?," +
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + "," +
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ")";
@ -139,10 +142,11 @@ public class StoreNumberProviderTransaction extends Transaction {
} else {
statement.setNull(5, Types.VARCHAR);
}
statement.setString(6, formatType.name());
ExtensionTabTable.set3TabValuesToStatement(statement, 7, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 10, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
statement.setBoolean(6, providerInformation.isShownInPlayersTable());
statement.setString(7, formatType.name());
ExtensionTabTable.set3TabValuesToStatement(statement, 8, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 11, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 14, providerInformation.getPluginName(), serverUUID);
}
};
}

View File

@ -73,6 +73,7 @@ public class StoreStringProviderTransaction extends Transaction {
DESCRIPTION + "=?," +
PRIORITY + "=?," +
CONDITION + "=?," +
SHOW_IN_PLAYERS_TABLE + "=?," +
IS_PLAYER_NAME + "=?," +
TAB_ID + "=" + ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
ICON_ID + "=" + ExtensionIconTable.STATEMENT_SELECT_ICON_ID +
@ -96,11 +97,12 @@ public class StoreStringProviderTransaction extends Transaction {
} else {
statement.setNull(4, Types.VARCHAR);
}
statement.setBoolean(5, playerName);
ExtensionTabTable.set3TabValuesToStatement(statement, 6, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 9, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 12, providerInformation.getPluginName(), serverUUID);
statement.setString(14, providerInformation.getName());
statement.setBoolean(5, providerInformation.isShownInPlayersTable());
statement.setBoolean(6, playerName);
ExtensionTabTable.set3TabValuesToStatement(statement, 7, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 10, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
statement.setString(15, providerInformation.getName());
}
};
}
@ -112,11 +114,12 @@ public class StoreStringProviderTransaction extends Transaction {
DESCRIPTION + "," +
PRIORITY + "," +
CONDITION + "," +
SHOW_IN_PLAYERS_TABLE + "," +
IS_PLAYER_NAME + "," +
TAB_ID + "," +
ICON_ID + "," +
PLUGIN_ID +
") VALUES (?,?,?,?,?,?," +
") VALUES (?,?,?,?,?,?,?," +
ExtensionTabTable.STATEMENT_SELECT_TAB_ID + "," +
ExtensionIconTable.STATEMENT_SELECT_ICON_ID + "," +
ExtensionPluginTable.STATEMENT_SELECT_PLUGIN_ID + ")";
@ -138,10 +141,11 @@ public class StoreStringProviderTransaction extends Transaction {
} else {
statement.setNull(5, Types.VARCHAR);
}
statement.setBoolean(6, playerName);
ExtensionTabTable.set3TabValuesToStatement(statement, 7, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 10, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 13, providerInformation.getPluginName(), serverUUID);
statement.setBoolean(6, providerInformation.isShownInPlayersTable());
statement.setBoolean(7, playerName);
ExtensionTabTable.set3TabValuesToStatement(statement, 8, providerInformation.getTab().orElse("No Tab"), providerInformation.getPluginName(), serverUUID);
ExtensionIconTable.set3IconValuesToStatement(statement, 11, providerInformation.getIcon());
ExtensionPluginTable.set2PluginValuesToStatement(statement, 14, providerInformation.getPluginName(), serverUUID);
}
};
}

View File

@ -1201,9 +1201,9 @@ public abstract class CommonDBTest {
assertNotNull(playerData);
OptionalAssert.equals("5", playerData.getNumber("value").map(data -> data.getFormattedValue(Object::toString)));
assertFalse(playerData.getBoolean("boolVal").isPresent());
OptionalAssert.equals("No", playerData.getBoolean("boolVal").map(ExtensionBooleanData::getFormattedValue));
OptionalAssert.equals("0.5", playerData.getDouble("doubleVal").map(data -> data.getFormattedValue(Object::toString)));
assertFalse(playerData.getBoolean("percentageVal").isPresent());
OptionalAssert.equals("0.5", playerData.getPercentage("percentageVal").map(data -> data.getFormattedValue(Object::toString)));
OptionalAssert.equals("Something", playerData.getString("stringVal").map(ExtensionStringData::getFormattedValue));
}
@ -1501,27 +1501,27 @@ public abstract class CommonDBTest {
@PluginInfo(name = "PlayerExtension")
public class PlayerExtension implements DataExtension {
@NumberProvider(text = "a number")
@NumberProvider(text = "a number", showInPlayerTable = true)
public long value(UUID playerUUD) {
return 5L;
}
@BooleanProvider(text = "a boolean")
@BooleanProvider(text = "a boolean", showInPlayerTable = true)
public boolean boolVal(UUID playerUUID) {
return false;
}
@DoubleProvider(text = "a double")
@DoubleProvider(text = "a double", showInPlayerTable = true)
public double doubleVal(UUID playerUUID) {
return 0.5;
}
@PercentageProvider(text = "a percentage")
@PercentageProvider(text = "a percentage", showInPlayerTable = true)
public double percentageVal(UUID playerUUID) {
return 0.5;
}
@StringProvider(text = "a string")
@StringProvider(text = "a string", showInPlayerTable = true)
public String stringVal(UUID playerUUID) {
return "Something";
}