From 908b62217ad4637580940eca1ab193a405b888bc Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Sat, 17 Dec 2016 12:48:19 +0100 Subject: [PATCH] Changed some things... - Fixed updateplugin not cancelling on error - Moved javassist to here, so the absence of ButtonChat should no longer cause any errors - Added /updateplugin for simplicity and in case the chat plugin breaks --- pom.xml | 9 ++++ .../java/buttondevteam/core/MainPlugin.java | 4 +- .../core/UpdatePluginCommand.java | 50 +++++++++++++++++++ .../java/buttondevteam/lib/TBMCCoreAPI.java | 2 + src/main/resources/plugin.yml | 4 +- 5 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 src/main/java/buttondevteam/core/UpdatePluginCommand.java diff --git a/pom.xml b/pom.xml index c17c068..b855faa 100644 --- a/pom.xml +++ b/pom.xml @@ -110,18 +110,21 @@ org.spigotmc spigot-api 1.9.2-R0.1-SNAPSHOT + provided org.apache.commons commons-io 1.3.2 + provided com.github.TBMCPlugins.ButtonCore Towny master-SNAPSHOT + provided com.github.milkbowl @@ -129,6 +132,12 @@ master-SNAPSHOT provided + + + org.javassist + javassist + 3.20.0-GA + TBMCPlugins diff --git a/src/main/java/buttondevteam/core/MainPlugin.java b/src/main/java/buttondevteam/core/MainPlugin.java index 5525da6..4f12db3 100644 --- a/src/main/java/buttondevteam/core/MainPlugin.java +++ b/src/main/java/buttondevteam/core/MainPlugin.java @@ -10,6 +10,7 @@ import org.bukkit.plugin.java.JavaPlugin; import buttondevteam.lib.TBMCCoreAPI; import buttondevteam.lib.TBMCPlayer; +import buttondevteam.lib.chat.TBMCChatAPI; import net.milkbowl.vault.permission.Permission; public class MainPlugin extends JavaPlugin { @@ -26,8 +27,9 @@ public class MainPlugin extends JavaPlugin { pdfFile = getDescription(); logger = getLogger(); setupPermissions(); - logger.info(pdfFile.getName() + " has been Enabled (V." + pdfFile.getVersion() + ")."); + TBMCChatAPI.AddCommand(this, UpdatePluginCommand.class); TBMCCoreAPI.RegisterEventsForExceptions(new PlayerListener(), this); + logger.info(pdfFile.getName() + " has been Enabled (V." + pdfFile.getVersion() + ")."); } @Override diff --git a/src/main/java/buttondevteam/core/UpdatePluginCommand.java b/src/main/java/buttondevteam/core/UpdatePluginCommand.java new file mode 100644 index 0000000..dab077e --- /dev/null +++ b/src/main/java/buttondevteam/core/UpdatePluginCommand.java @@ -0,0 +1,50 @@ +package buttondevteam.core; + +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; + +import buttondevteam.lib.TBMCCoreAPI; +import buttondevteam.lib.chat.TBMCCommandBase; + +public class UpdatePluginCommand extends TBMCCommandBase { + @Override + public boolean OnCommand(CommandSender sender, String alias, String[] args) { + if (args.length == 0) { + sender.sendMessage("Downloading plugin names..."); + boolean first = true; + for (String plugin : TBMCCoreAPI.GetPluginNames()) { + if (first) { + sender.sendMessage("§6---- Plugin names ----"); + first = false; + } + sender.sendMessage("- " + plugin); + } + return true; + } else { + Bukkit.getScheduler().runTaskAsynchronously(MainPlugin.Instance, () -> { + TBMCCoreAPI.UpdatePlugin(args[0], sender, args.length == 1 ? "master" : args[1]); + }); + return true; + } + } + + @Override + public String[] GetHelpText(String alias) { + return new String[] { // + "§6---- Update plugin ----", // + "This command downloads the latest version of a TBMC plugin from GitHub", // + "To update a plugin: /" + alias + " ", // + "To list the plugin names: /" + alias // + }; + } + + @Override + public boolean GetPlayerOnly() { + return false; + } + + @Override + public boolean GetModOnly() { + return true; + } +} diff --git a/src/main/java/buttondevteam/lib/TBMCCoreAPI.java b/src/main/java/buttondevteam/lib/TBMCCoreAPI.java index 4b01c65..c3a1b05 100644 --- a/src/main/java/buttondevteam/lib/TBMCCoreAPI.java +++ b/src/main/java/buttondevteam/lib/TBMCCoreAPI.java @@ -71,6 +71,7 @@ public final class TBMCCoreAPI { } if (correctname == null) { error(sender, "Can't find plugin: " + name); + return; } info(sender, "Updating TBMC plugin: " + correctname + " from " + branch); URL url; @@ -85,6 +86,7 @@ public final class TBMCCoreAPI { result.delete(); error(sender, "The downloaded JAR for " + correctname + " from " + branch + " is too small (smnaller than 25 bytes). Am I downloading from the right place?"); + return; } else { finalresult.delete(); // Attempt to support Windows Files.move(result.toPath(), finalresult.toPath(), StandardCopyOption.REPLACE_EXISTING); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index ecee843..12beaa9 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,4 +2,6 @@ name: ButtonCore main: buttondevteam.core.MainPlugin version: 1.0 author: TBMCPlugins -database: true \ No newline at end of file +commands: + updateplugin: + description: Update a TBMC plugin