From f82177cf2284c56fb86da3fa12d06f845a8bea57 Mon Sep 17 00:00:00 2001 From: Judgetread Date: Wed, 8 Jan 2020 02:05:37 +1000 Subject: [PATCH] Fixed NPE error when dependency plugin not found Fixed Chat error causing chat prefixes to stop working Updated to QuickShop Reremake 3.0.2 API Dropped filename versioning number. Added /GriefPreventionQuickShopBridge [version | help] command Added /GriefPreventionQuickShopBridge [reload] command --- pom.xml | 2 +- .../GriefPreventionQuickShopBridge.java | 17 ++++- .../listeners/MainCommandExecutor.java | 72 +++++++++++++++++++ src/main/resources/plugin.yml | 19 ++++- 4 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/github/judgetread/GriefPreventionQuickShopBridge/listeners/MainCommandExecutor.java diff --git a/pom.xml b/pom.xml index 87f69b6..644d9f0 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.github.judgetread GriefPreventionQuickShopBridge - 1.1.0 + 1.1.1 diff --git a/src/main/java/com/github/judgetread/GriefPreventionQuickShopBridge/GriefPreventionQuickShopBridge.java b/src/main/java/com/github/judgetread/GriefPreventionQuickShopBridge/GriefPreventionQuickShopBridge.java index 9aa306b..5b80291 100644 --- a/src/main/java/com/github/judgetread/GriefPreventionQuickShopBridge/GriefPreventionQuickShopBridge.java +++ b/src/main/java/com/github/judgetread/GriefPreventionQuickShopBridge/GriefPreventionQuickShopBridge.java @@ -1,13 +1,15 @@ package com.github.judgetread.GriefPreventionQuickShopBridge; +import com.github.judgetread.GriefPreventionQuickShopBridge.listeners.MainCommandExecutor; import com.github.judgetread.GriefPreventionQuickShopBridge.listeners.GriefPreventionListener; import com.github.judgetread.GriefPreventionQuickShopBridge.listeners.QuickShopListener; import lombok.AccessLevel; import lombok.Getter; -import lombok.NonNull; import lombok.experimental.FieldDefaults; import lombok.experimental.NonFinal; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.PluginCommand; import org.bukkit.event.HandlerList; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; @@ -66,7 +68,7 @@ public class GriefPreventionQuickShopBridge extends JavaPlugin { /** * Reload this plugin. */ - private void reload() { + public void reload() { Bukkit.getConsoleSender().sendMessage(" Reloading " + getName()); unregisterListeners(); unloadHooks(); @@ -85,6 +87,7 @@ public class GriefPreventionQuickShopBridge extends JavaPlugin { this.getPluginLoader().disablePlugin(this); } registerListeners(); + registerCommands(); } /** @@ -104,6 +107,16 @@ public class GriefPreventionQuickShopBridge extends JavaPlugin { HandlerList.unregisterAll(this); } + /** + * Register Commands + */ + private void registerCommands(){ + Bukkit.getConsoleSender().sendMessage(" Registering Commands..."); + PluginCommand gpqsbCommand = getCommand("GriefPreventionQuickShopBridge"); + gpqsbCommand.setExecutor(new MainCommandExecutor(this)); + gpqsbCommand.setUsage(ChatColor.translateAlternateColorCodes('&', gpqsbCommand.getUsage())); + } + /** * Reload config */ diff --git a/src/main/java/com/github/judgetread/GriefPreventionQuickShopBridge/listeners/MainCommandExecutor.java b/src/main/java/com/github/judgetread/GriefPreventionQuickShopBridge/listeners/MainCommandExecutor.java new file mode 100644 index 0000000..fe3d96d --- /dev/null +++ b/src/main/java/com/github/judgetread/GriefPreventionQuickShopBridge/listeners/MainCommandExecutor.java @@ -0,0 +1,72 @@ +package com.github.judgetread.GriefPreventionQuickShopBridge.listeners; + +import com.github.judgetread.GriefPreventionQuickShopBridge.GriefPreventionQuickShopBridge; +import lombok.AllArgsConstructor; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +/** + * @author Judgetread + */ +@AllArgsConstructor +public class MainCommandExecutor implements org.bukkit.command.CommandExecutor { + + /** Plugin instance */ + private GriefPreventionQuickShopBridge plugin; + + /** + * @param sender CommandSender + * @param command Command + * @param label String + * @param args String[] + * @return True if handled, false if not handled + */ + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + + // Return if there is no sub command + if (args.length <= 0) { + return false; + } + + switch (args[0].toUpperCase()) { + + /**Help/Version Sub command */ + case "VERSION": + case "HELP": + if (!sender.hasPermission("GriefPreventionQuickShopBridge.help")) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.getCommand("GriefPreventionQuickShopBridge").getPermissionMessage())); + return true; + } + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&e[===== &aGriefPreventionQuickShopBridge &e=====]")); + String authors = ""; + for (String str : plugin.getDescription().getAuthors()) { + String tmp = ""; + if (!authors.isEmpty()) { + tmp = ", "; + } + authors = authors + tmp + str; + } + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&e[&f*] &aAuthors: &b" + authors)); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&e[&f*] &aVersion: &b" + plugin.getDescription().getVersion().toString())); + return true; + + /** Reload Sub-command */ + case "RELOAD": + if (!sender.hasPermission("GriefPreventionQuickShopBridge.reload")) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.getCommand("GriefPreventionQuickShopBridge").getPermissionMessage())); + return true; + } + plugin.reload(); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&e[&f*] &aGriefPreventionQuickShopBridge Reload Complete")); + return true; + default: + return false; + } + + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 1ee1269..73e01e7 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,9 +1,24 @@ name: ${name} main: ${package}.${name} version: ${project.version} -authors: [Judgetread] +authors: [Judgetread, Ajoobe] description: QuickShop Reremake GriefPrevtion Bridge softdepend: [GriefPrevention, QuickShop] -api-version: 1.13 \ No newline at end of file +api-version: 1.13 + +commands: + GriefPreventionQuickShopBridge: + description: GriefPreventionQuickShopBridge command + usage: '&6/GriefPreventionQuickShopBridge ' + aliases: [gpqsb, gpb, qsb] + permission-message: '&4You not have have permission to use this command.' + default: op +permissions: + GriefPreventionQuickShopBridge.help: + description: GriefPreventionQuickShopBridge Help + default: op + GriefPreventionQuickShopBridge.reload: + description: GriefPreventionQuickShopBridge Reload + default: op \ No newline at end of file