Skip to content

Commit a0adde8

Browse files
committed
refactor AddonDownloader
1 parent 44b2288 commit a0adde8

3 files changed

Lines changed: 29 additions & 25 deletions

File tree

src/main/java/me/hsgamer/bettergui/BetterGUI.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,6 @@ protected List<Object> getComponents() {
6565
return menu.getVariableManager().setVariables(StringReplacerApplier.normalizeQuery(variable), uuid);
6666
}));
6767

68-
AddonManager addonManager = new AddonManager(this);
69-
AddonDownloader addonDownloader = new AddonDownloader(this, addonManager);
70-
7168
List<Object> components = new ArrayList<>(Arrays.asList(
7269
variableBundle,
7370

@@ -87,10 +84,10 @@ protected List<Object> getComponents() {
8784
ConfigGenerator.newInstance(MessageConfig.class, new BukkitConfig(this, "messages.yml")),
8885
new TemplateConfig(this),
8986

90-
addonManager,
87+
new AddonManager(this),
9188
new MenuManager(this),
9289
new MenuCommandManager(this),
93-
addonDownloader
90+
new AddonDownloader(this)
9491
));
9592

9693
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {

src/main/java/me/hsgamer/bettergui/downloader/AddonDownloader.java

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,40 @@
88
import me.hsgamer.hscore.downloader.json.JsonDownloadInfoLoader;
99
import me.hsgamer.hscore.downloader.webstream.WebInputStreamLoader;
1010

11-
public class AddonDownloader extends Downloader implements PostEnable {
11+
public class AddonDownloader implements PostEnable {
1212
private final BetterGUI plugin;
13-
private final AddonManager addonManager;
13+
private Downloader downloader;
1414

15-
public AddonDownloader(BetterGUI plugin, AddonManager addonManager) {
16-
super(
17-
new JsonDownloadInfoLoader("https://raw.githubusercontent.com/BetterGUI-MC/Addon-List/master/addons.json"),
18-
new WebInputStreamLoader(),
19-
addonManager.getExpansionsDir()
20-
);
15+
public AddonDownloader(BetterGUI plugin) {
2116
this.plugin = plugin;
22-
this.addonManager = addonManager;
2317
}
2418

2519
@Override
26-
public void onLoaded() {
27-
for (DownloadInfo downloadInfo : getLoadedDownloadInfo().values()) {
28-
addonManager.getExpansionClassLoader(downloadInfo.getName()).ifPresent(loader -> {
29-
if (!loader.getDescription().getVersion().equals(downloadInfo.getVersion())) {
30-
plugin.getLogger().warning(() -> "The addon '" + downloadInfo.getName() + "' has a new update. New Version: " + downloadInfo.getVersion());
20+
public void postEnable() {
21+
AddonManager addonManager = plugin.get(AddonManager.class);
22+
this.downloader = new Downloader(
23+
new JsonDownloadInfoLoader("https://raw.githubusercontent.com/BetterGUI-MC/Addon-List/master/addons.json"),
24+
new WebInputStreamLoader(),
25+
addonManager.getExpansionsDir()
26+
) {
27+
@Override
28+
public void onLoaded() {
29+
for (DownloadInfo downloadInfo : getLoadedDownloadInfo().values()) {
30+
addonManager.getExpansionClassLoader(downloadInfo.getName()).ifPresent(loader -> {
31+
if (!loader.getDescription().getVersion().equals(downloadInfo.getVersion())) {
32+
plugin.getLogger().warning(() -> "The addon '" + downloadInfo.getName() + "' has a new update. New Version: " + downloadInfo.getVersion());
33+
}
34+
});
3135
}
32-
});
33-
}
36+
}
37+
};
38+
this.downloader.setup();
3439
}
3540

36-
@Override
37-
public void postEnable() {
38-
setup();
41+
public Downloader getDownloader() {
42+
if (downloader == null) {
43+
throw new IllegalStateException("The downloader is not initialized yet");
44+
}
45+
return downloader;
3946
}
4047
}

src/main/java/me/hsgamer/bettergui/menu/AddonMenu.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ protected ButtonMap createButtonMap() {
7070
@Override
7171
public @NotNull Map<@NotNull Integer, @NotNull DisplayButton> getButtons(@NotNull UUID uuid, InventorySize inventorySize) {
7272
Map<Integer, DisplayButton> buttonMap = new HashMap<>();
73-
Collection<DownloadInfo> downloadInfos = getInstance().get(AddonDownloader.class).getLoadedDownloadInfo().values();
73+
Collection<DownloadInfo> downloadInfos = getInstance().get(AddonDownloader.class).getDownloader().getLoadedDownloadInfo().values();
7474
int slot = 0;
7575
for (DownloadInfo info : downloadInfos) {
7676
AddonButton button = addonButtonMap.computeIfAbsent(info, downloadInfo -> {

0 commit comments

Comments
 (0)