From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: willies952002 Date: Mon, 28 Nov 2016 10:16:39 -0500 Subject: [PATCH] Allow Reloading of Command Aliases Reload the aliases stored in commands.yml diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java index 0360e070d9fbb45c84e0b95d4f4d2253202191a8..41a645a040561d3dca83a3c1f2ca7cdfb4f7550b 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -2403,6 +2403,15 @@ public final class Bukkit { public static void reloadPermissions() { server.reloadPermissions(); } + + /** + * Reload the Command Aliases in commands.yml + * + * @return Whether the reload was successful + */ + public static boolean reloadCommandAliases() { + return server.reloadCommandAliases(); + } // Paper end @NotNull diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java index b36b9bd8aa71ea5b9ea20d2752e6e59d33c9f978..72a472f048107181bc84599836fc2fc64c89ea8a 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -2098,4 +2098,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi // Spigot end void reloadPermissions(); // Paper + + boolean reloadCommandAliases(); // Paper } diff --git a/src/main/java/org/bukkit/command/CommandMap.java b/src/main/java/org/bukkit/command/CommandMap.java index bd2c7a6964722412148fae39e1b4951fc0002b9b..864c263bbd4dd6dd7c37a74b39b1a40a884d0731 100644 --- a/src/main/java/org/bukkit/command/CommandMap.java +++ b/src/main/java/org/bukkit/command/CommandMap.java @@ -128,4 +128,14 @@ public interface CommandMap { */ @Nullable public List tabComplete(@NotNull CommandSender sender, @NotNull String cmdLine, @Nullable Location location) throws IllegalArgumentException; + + // Paper start - Expose Known Commands + /** + * Return a Map of known commands + * + * @return known commands + */ + @NotNull + public java.util.Map getKnownCommands(); + // Paper end } diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java index c7fa1d235cea78bda4656ed66b8d42b119cc50fb..27243a1214bc4d7dbb46f0b9b254c8e3f8128419 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -294,4 +294,11 @@ public class SimpleCommandMap implements CommandMap { } } } + + // Paper start - Expose Known Commands + @NotNull + public Map getKnownCommands() { + return knownCommands; + } + // Paper end } diff --git a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java index 5fa9d648bc780e874f658597f1a24715bccac5cb..3ec32b46264cfff857b50129b5e0fa5584943ec6 100644 --- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java +++ b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java @@ -13,7 +13,7 @@ public class ReloadCommand extends BukkitCommand { public ReloadCommand(@NotNull String name) { super(name); this.description = "Reloads the server configuration and plugins"; - this.usageMessage = "/reload [permissions]"; // Paper + this.usageMessage = "/reload [permissions|commands|confirm]"; // Paper this.setPermission("bukkit.command.reload"); this.setAliases(Arrays.asList("rl")); } @@ -29,6 +29,13 @@ public class ReloadCommand extends BukkitCommand { Bukkit.getServer().reloadPermissions(); Command.broadcastCommandMessage(sender, net.kyori.adventure.text.Component.text("Permissions successfully reloaded.", net.kyori.adventure.text.format.NamedTextColor.GREEN)); return true; + } else if ("commands".equalsIgnoreCase(args[0])) { + if (Bukkit.getServer().reloadCommandAliases()) { + Command.broadcastCommandMessage(sender, net.kyori.adventure.text.Component.text("Command aliases successfully reloaded.", net.kyori.adventure.text.format.NamedTextColor.GREEN)); + } else { + Command.broadcastCommandMessage(sender, net.kyori.adventure.text.Component.text("An error occurred while trying to reload command aliases.", net.kyori.adventure.text.format.NamedTextColor.RED)); + } + return true; } else if ("confirm".equalsIgnoreCase(args[0])) { confirmed = true; } else { @@ -53,6 +60,6 @@ public class ReloadCommand extends BukkitCommand { @NotNull @Override public List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - return java.util.Collections.singletonList("permissions"); // Paper + return com.google.common.collect.Lists.newArrayList("permissions", "commands"); // Paper } }