Skip to content

Commit 1a32651

Browse files
committed
add ReloadManager
1 parent 183ea2f commit 1a32651

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public abstract class TopPlayerNumberTemplate {
2121
private final EntryConsumeManager entryConsumeManager;
2222
private final QueryForwardManager queryForwardManager;
2323
private final NameProviderManager nameProviderManager;
24+
private final ReloadManager reloadManager;
2425

2526
protected TopPlayerNumberTemplate(Settings settings) {
2627
this.settings = settings;
@@ -29,6 +30,7 @@ protected TopPlayerNumberTemplate(Settings settings) {
2930
this.entryConsumeManager = new EntryConsumeManager(this);
3031
this.queryForwardManager = new QueryForwardManager(this);
3132
this.nameProviderManager = new NameProviderManager();
33+
this.reloadManager = new ReloadManager();
3234
}
3335

3436
public abstract Function<String, DataStorage<UUID, Double>> getStorageSupplier();
@@ -65,6 +67,14 @@ public void disable() {
6567
topManager.disable();
6668
}
6769

70+
public void reload() {
71+
reloadManager.call(ReloadManager.ReloadEntry::beforeReload);
72+
topManager.disable();
73+
reloadManager.call(ReloadManager.ReloadEntry::reload);
74+
topManager.enable();
75+
reloadManager.call(ReloadManager.ReloadEntry::afterReload);
76+
}
77+
6878
public Settings getSettings() {
6979
return settings;
7080
}
@@ -89,6 +99,10 @@ public NameProviderManager getNameProviderManager() {
8999
return nameProviderManager;
90100
}
91101

102+
public ReloadManager getReloadManager() {
103+
return reloadManager;
104+
}
105+
92106
public interface Settings {
93107
Map<String, NumberTopHolder.Settings> holders();
94108

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package me.hsgamer.topper.template.topplayernumber.manager;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.function.Consumer;
6+
7+
public class ReloadManager {
8+
private final List<ReloadEntry> reloadEntries = new ArrayList<>();
9+
10+
public void add(ReloadEntry entry) {
11+
reloadEntries.add(entry);
12+
}
13+
14+
public void clear() {
15+
reloadEntries.clear();
16+
}
17+
18+
public void call(Consumer<ReloadEntry> consumer) {
19+
for (ReloadEntry entry : reloadEntries) {
20+
consumer.accept(entry);
21+
}
22+
}
23+
24+
public interface ReloadEntry {
25+
default void beforeReload() {
26+
// EMPTY
27+
}
28+
29+
default void reload() {
30+
// EMPTY
31+
}
32+
33+
default void afterReload() {
34+
// EMPTY
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)