Skip to content

Commit 28d031c

Browse files
committed
default value display and display null value as function
1 parent fe00f3e commit 28d031c

2 files changed

Lines changed: 21 additions & 8 deletions

File tree

  • query/display-number/src/main/java/me/hsgamer/topper/query/display/number
  • template/top-player-number/src/main/java/me/hsgamer/topper/template/topplayernumber/holder

query/display-number/src/main/java/me/hsgamer/topper/query/display/number/NumberDisplay.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@ public abstract class NumberDisplay<K, V extends Number> implements SimpleQueryD
2525
private static final String FORMAT_QUERY_SHORTEN = "shorten";
2626
private static final Map<String, Function<Number, String>> displayByQueryCache = new ConcurrentHashMap<>();
2727

28-
private final String displayNullValue;
29-
30-
protected NumberDisplay(String displayNullValue) {
31-
this.displayNullValue = displayNullValue;
32-
}
33-
3428
private static Map<String, String> getSettings(String query) {
3529
if (query.isEmpty()) {
3630
return Collections.emptyMap();
@@ -211,10 +205,12 @@ private static Function<Number, String> createDisplayFunction(String formatQuery
211205
}
212206
}
213207

208+
public abstract @NotNull String getDisplayNullValue();
209+
214210
@Override
215211
public @NotNull String getDisplayValue(@Nullable V value, @NotNull String formatQuery) {
216212
if (value == null) {
217-
return displayNullValue;
213+
return getDisplayNullValue();
218214
}
219215

220216
if (formatQuery.isEmpty()) {

template/top-player-number/src/main/java/me/hsgamer/topper/template/topplayernumber/holder/NumberTopHolder.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public NumberTopHolder(TopPlayerNumberTemplate template, String name, Settings s
3838

3939
List<Agent> agents = new ArrayList<>();
4040
List<DataEntryAgent<UUID, Double>> entryAgents = new ArrayList<>();
41-
this.valueDisplay = new NumberDisplay<UUID, Double>(settings.displayNullValue()) {
41+
this.valueDisplay = new NumberDisplay<UUID, Double>() {
4242
@Override
4343
public @NotNull String getDisplayName(@Nullable UUID uuid) {
4444
return Optional.ofNullable(uuid).map(template.getNameProviderManager()::getName).orElse(settings.displayNullName());
@@ -48,6 +48,19 @@ public NumberTopHolder(TopPlayerNumberTemplate template, String name, Settings s
4848
public @NotNull String getDisplayKey(@Nullable UUID uuid) {
4949
return uuid != null ? uuid.toString() : settings.displayNullUuid();
5050
}
51+
52+
@Override
53+
public @NotNull String getDisplayNullValue() {
54+
return settings.displayNullValue();
55+
}
56+
57+
@Override
58+
public @NotNull String getDisplayValue(@Nullable Double value, @NotNull String formatQuery) {
59+
if (formatQuery.isEmpty()) {
60+
formatQuery = settings.defaultValueDisplay();
61+
}
62+
return super.getDisplayValue(value, formatQuery);
63+
}
5164
};
5265

5366
this.storageAgent = new StorageAgent<>(template.getTopManager().buildStorage(name));
@@ -164,6 +177,10 @@ public interface Settings {
164177

165178
String displayNullValue();
166179

180+
default String defaultValueDisplay() {
181+
return "";
182+
}
183+
167184
boolean showErrors();
168185

169186
boolean resetOnError();

0 commit comments

Comments
 (0)