Skip to content

Commit 8e7109b

Browse files
committed
name provider in template
1 parent 3f462a4 commit 8e7109b

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public NumberTopHolder(TopPlayerNumberTemplate template, String name, Settings s
3333

3434
List<Agent> agents = new ArrayList<>();
3535
List<DataEntryAgent<UUID, Double>> entryAgents = new ArrayList<>();
36-
this.valueDisplay = new ValueDisplay(template, settings.displaySettings());
36+
this.valueDisplay = new ValueDisplay(template::getName, settings.displaySettings());
3737

3838
this.storageAgent = new StorageAgent<>(template.getTopManager().buildStorage(name));
3939
storageAgent.setMaxEntryPerCall(template.getSettings().taskSaveEntryPerTick());

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
package me.hsgamer.topper.template.topplayernumber.holder.display;
22

33
import me.hsgamer.topper.query.display.number.NumberDisplay;
4-
import me.hsgamer.topper.template.topplayernumber.TopPlayerNumberTemplate;
54
import me.hsgamer.topper.template.topplayernumber.holder.NumberTopHolder;
65
import org.jetbrains.annotations.NotNull;
76
import org.jetbrains.annotations.Nullable;
87

98
import java.util.Optional;
109
import java.util.UUID;
10+
import java.util.function.Function;
1111

1212
public class ValueDisplay extends NumberDisplay<UUID, Double> {
1313
public final String displayNullName;
1414
public final String displayNullUuid;
15-
private final TopPlayerNumberTemplate template;
15+
private final Function<UUID, String> nameFunction;
1616

17-
public ValueDisplay(TopPlayerNumberTemplate template, Settings settings) {
17+
public ValueDisplay(Function<UUID, String> nameFunction, Settings settings) {
1818
super(settings.defaultLine(), settings.displayNullValue());
19-
this.template = template;
19+
this.nameFunction = nameFunction;
2020
this.displayNullName = settings.displayNullName();
2121
this.displayNullUuid = settings.displayNullUuid();
2222
}
@@ -26,7 +26,7 @@ public ValueDisplay(TopPlayerNumberTemplate template, Settings settings) {
2626
}
2727

2828
public @NotNull String getDisplayName(@Nullable UUID uuid) {
29-
return Optional.ofNullable(uuid).map(template::getName).orElse(displayNullName);
29+
return Optional.ofNullable(uuid).map(nameFunction).orElse(displayNullName);
3030
}
3131

3232
public String getDisplayLine(int index /* 1-based */, NumberTopHolder holder) {

template/top-player-number/src/main/java/me/hsgamer/topper/template/topplayernumber/manager/EntryConsumeManager.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class EntryConsumeManager {
1414
private final TopPlayerNumberTemplate template;
1515
private final List<Consumer<Context>> consumerList = new ArrayList<>();
1616
private final Map<String, BiFunction<String, UUID, Optional<Double>>> providerMap = new HashMap<>();
17+
private final Map<String, BiFunction<String, UUID, Optional<String>>> nameProviderMap = new HashMap<>();
1718

1819
public EntryConsumeManager(TopPlayerNumberTemplate template) {
1920
this.template = template;
@@ -37,11 +38,25 @@ public Runnable addProvider(String group, BiFunction<String, UUID, Optional<Doub
3738
return () -> providerMap.remove(group);
3839
}
3940

41+
public Runnable addNameProvider(String group, BiFunction<String, UUID, Optional<String>> nameProvider) {
42+
nameProviderMap.put(group, nameProvider);
43+
return () -> nameProviderMap.remove(group);
44+
}
45+
4046
public Optional<Double> getValue(String group, String holder, UUID uuid) {
4147
BiFunction<String, UUID, Optional<Double>> function = providerMap.get(group);
4248
return function == null ? Optional.empty() : function.apply(holder, uuid);
4349
}
4450

51+
public Optional<String> getName(String group, String holder, UUID uuid) {
52+
BiFunction<String, UUID, Optional<String>> function = nameProviderMap.get(group);
53+
return function == null ? Optional.empty() : function.apply(holder, uuid);
54+
}
55+
56+
public String getNameOrDefault(String group, String holder, UUID uuid) {
57+
return getName(group, holder, uuid).orElseGet(() -> template.getName(uuid));
58+
}
59+
4560
public void consume(Context context) {
4661
consumerList.forEach(consumer -> consumer.accept(context));
4762
}

0 commit comments

Comments
 (0)