Skip to content

Commit

Permalink
refactor AddonDownloader
Browse files Browse the repository at this point in the history
  • Loading branch information
HSGamer committed Aug 21, 2024
1 parent 44b2288 commit a0adde8
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 25 deletions.
7 changes: 2 additions & 5 deletions src/main/java/me/hsgamer/bettergui/BetterGUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,6 @@ protected List<Object> getComponents() {
return menu.getVariableManager().setVariables(StringReplacerApplier.normalizeQuery(variable), uuid);
}));

AddonManager addonManager = new AddonManager(this);
AddonDownloader addonDownloader = new AddonDownloader(this, addonManager);

List<Object> components = new ArrayList<>(Arrays.asList(
variableBundle,

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

addonManager,
new AddonManager(this),
new MenuManager(this),
new MenuCommandManager(this),
addonDownloader
new AddonDownloader(this)
));

if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
Expand Down
45 changes: 26 additions & 19 deletions src/main/java/me/hsgamer/bettergui/downloader/AddonDownloader.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,33 +8,40 @@
import me.hsgamer.hscore.downloader.json.JsonDownloadInfoLoader;
import me.hsgamer.hscore.downloader.webstream.WebInputStreamLoader;

public class AddonDownloader extends Downloader implements PostEnable {
public class AddonDownloader implements PostEnable {
private final BetterGUI plugin;
private final AddonManager addonManager;
private Downloader downloader;

public AddonDownloader(BetterGUI plugin, AddonManager addonManager) {
super(
new JsonDownloadInfoLoader("https://raw.githubusercontent.com/BetterGUI-MC/Addon-List/master/addons.json"),
new WebInputStreamLoader(),
addonManager.getExpansionsDir()
);
public AddonDownloader(BetterGUI plugin) {
this.plugin = plugin;
this.addonManager = addonManager;
}

@Override
public void onLoaded() {
for (DownloadInfo downloadInfo : getLoadedDownloadInfo().values()) {
addonManager.getExpansionClassLoader(downloadInfo.getName()).ifPresent(loader -> {
if (!loader.getDescription().getVersion().equals(downloadInfo.getVersion())) {
plugin.getLogger().warning(() -> "The addon '" + downloadInfo.getName() + "' has a new update. New Version: " + downloadInfo.getVersion());
public void postEnable() {
AddonManager addonManager = plugin.get(AddonManager.class);
this.downloader = new Downloader(
new JsonDownloadInfoLoader("https://raw.githubusercontent.com/BetterGUI-MC/Addon-List/master/addons.json"),
new WebInputStreamLoader(),
addonManager.getExpansionsDir()
) {
@Override
public void onLoaded() {
for (DownloadInfo downloadInfo : getLoadedDownloadInfo().values()) {
addonManager.getExpansionClassLoader(downloadInfo.getName()).ifPresent(loader -> {
if (!loader.getDescription().getVersion().equals(downloadInfo.getVersion())) {
plugin.getLogger().warning(() -> "The addon '" + downloadInfo.getName() + "' has a new update. New Version: " + downloadInfo.getVersion());
}
});
}
});
}
}
};
this.downloader.setup();
}

@Override
public void postEnable() {
setup();
public Downloader getDownloader() {
if (downloader == null) {
throw new IllegalStateException("The downloader is not initialized yet");
}
return downloader;
}
}
2 changes: 1 addition & 1 deletion src/main/java/me/hsgamer/bettergui/menu/AddonMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ protected ButtonMap createButtonMap() {
@Override
public @NotNull Map<@NotNull Integer, @NotNull DisplayButton> getButtons(@NotNull UUID uuid, InventorySize inventorySize) {
Map<Integer, DisplayButton> buttonMap = new HashMap<>();
Collection<DownloadInfo> downloadInfos = getInstance().get(AddonDownloader.class).getLoadedDownloadInfo().values();
Collection<DownloadInfo> downloadInfos = getInstance().get(AddonDownloader.class).getDownloader().getLoadedDownloadInfo().values();
int slot = 0;
for (DownloadInfo info : downloadInfos) {
AddonButton button = addonButtonMap.computeIfAbsent(info, downloadInfo -> {
Expand Down

0 comments on commit a0adde8

Please sign in to comment.