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