Merge pull request #331 from OakLoaf/latest

Made panel downloads from editor async
This commit is contained in:
RockyHawk 2024-11-09 12:17:27 +11:00 committed by GitHub
commit aced7b6243
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 14 deletions

View File

@ -89,7 +89,7 @@
</repository> </repository>
<repository> <repository>
<id>jeff-media-public</id> <id>jeff-media-public</id>
<url>https://hub.jeff-media.com/nexus/repository/jeff-media-public/</url> <url>https://repo.jeff-media.com/public/</url>
</repository> </repository>
<repository> <repository>
<id>ess-repo</id> <id>ess-repo</id>

View File

@ -3,19 +3,19 @@ package me.rockyhawk.commandpanels.editor;
import me.rockyhawk.commandpanels.CommandPanels; import me.rockyhawk.commandpanels.CommandPanels;
import me.rockyhawk.commandpanels.api.Panel; import me.rockyhawk.commandpanels.api.Panel;
import net.md_5.bungee.api.chat.*; import net.md_5.bungee.api.chat.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.scheduler.BukkitRunnable;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.concurrent.CompletableFuture;
public class CommandPanelsEditor implements CommandExecutor { public class CommandPanelsEditor implements CommandExecutor {
CommandPanels plugin; CommandPanels plugin;
@ -81,14 +81,11 @@ public class CommandPanelsEditor implements CommandExecutor {
} }
//download the requested panel using an import //download the requested panel using an import
if (args.length == 3) { if (args.length == 3) {
new BukkitRunnable() { downloadPanel(sender,args[1],args[0], args[2]).thenAccept((ignored) -> {
@Override plugin.reloadPanelFiles();
public void run() { plugin.hotbar.reloadHotbarSlots();
downloadPanel(sender,args[1],args[0], args[2]); });
plugin.reloadPanelFiles();
plugin.hotbar.reloadHotbarSlots();
}
}.run();
return true; return true;
} }
}else{ }else{
@ -99,12 +96,17 @@ public class CommandPanelsEditor implements CommandExecutor {
return true; return true;
} }
private void downloadPanel(CommandSender sender, String userID, String fileName, String token) { private CompletableFuture<Void> downloadPanel(CommandSender sender, String userID, String fileName, String token) {
CompletableFuture<Void> future = new CompletableFuture<>();
//get custom editor URL //get custom editor URL
String url = "https://firebasestorage.googleapis.com/v0/b/commandpanels-website.appspot.com/o/pastes%2F" + userID + "%2F" + fileName + "?alt=media&token=" + token; String url = "https://firebasestorage.googleapis.com/v0/b/commandpanels-website.appspot.com/o/pastes%2F" + userID + "%2F" + fileName + "?alt=media&token=" + token;
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
plugin.downloader.downloadPanel(sender, url, fileName);
future.complete(null);
});
plugin.downloader.downloadPanel(sender, url, fileName); return future;
} }
private String readFileAsString(String filePath) { private String readFileAsString(String filePath) {