Skip to content

Commit 65c1ab9

Browse files
committed
TopPlayerNumberTemplate: provide number storage from supplier
1 parent d7be0cd commit 65c1ab9

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.util.Map;
1616
import java.util.Optional;
1717
import java.util.UUID;
18+
import java.util.function.Function;
1819

1920
public abstract class TopPlayerNumberTemplate {
2021
private final Settings settings;
@@ -31,7 +32,7 @@ protected TopPlayerNumberTemplate(Settings settings) {
3132
this.queryForwardManager = new QueryForwardManager(this);
3233
}
3334

34-
public abstract DataStorage<UUID, Double> getStorage(String name);
35+
public abstract Function<String, DataStorage<UUID, Double>> getStorageSupplier();
3536

3637
public abstract Optional<ValueProvider<UUID, Double>> createValueProvider(Map<String, Object> settings);
3738

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
@@ -35,7 +35,7 @@ public NumberTopHolder(TopPlayerNumberTemplate template, String name, Settings s
3535
List<DataEntryAgent<UUID, Double>> entryAgents = new ArrayList<>();
3636
this.valueDisplay = new ValueDisplay(template::getName, settings.displaySettings());
3737

38-
this.storageAgent = new StorageAgent<>(template.getStorage(name));
38+
this.storageAgent = new StorageAgent<>(template.getTopManager().buildStorage(name));
3939
storageAgent.setMaxEntryPerCall(template.getSettings().taskSaveEntryPerTick());
4040
agents.add(storageAgent);
4141
agents.add(storageAgent.getLoadAgent(this));

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
package me.hsgamer.topper.template.topplayernumber.manager;
22

3+
import me.hsgamer.topper.storage.core.DataStorage;
34
import me.hsgamer.topper.template.topplayernumber.TopPlayerNumberTemplate;
45
import me.hsgamer.topper.template.topplayernumber.holder.NumberTopHolder;
56

67
import java.util.*;
8+
import java.util.function.Function;
79

810
public class TopManager {
911
private final Map<String, NumberTopHolder> holders = new HashMap<>();
1012
private final TopPlayerNumberTemplate template;
13+
private Function<String, DataStorage<UUID, Double>> storageSupplier;
1114

1215
public TopManager(TopPlayerNumberTemplate template) {
1316
this.template = template;
1417
}
1518

1619
public void enable() {
20+
storageSupplier = template.getStorageSupplier();
1721
template.getSettings().holders().forEach((key, value) -> {
1822
NumberTopHolder topHolder = new NumberTopHolder(template, key, value);
1923
topHolder.register();
@@ -37,4 +41,8 @@ public List<String> getHolderNames() {
3741
public void create(UUID uuid) {
3842
holders.values().forEach(holder -> holder.getOrCreateEntry(uuid));
3943
}
44+
45+
public DataStorage<UUID, Double> buildStorage(String name) {
46+
return storageSupplier.apply(name);
47+
}
4048
}

0 commit comments

Comments
 (0)