Allow Reloading of Command Aliases

Reload the aliases stored in commands.yml
This commit is contained in:
willies952002 2016-11-28 10:16:39 -05:00
parent 2b323743b6
commit 55dc3ff664
5 changed files with 37 additions and 2 deletions

View file

@ -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

View file

@ -2098,4 +2098,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Spigot end
void reloadPermissions(); // Paper
boolean reloadCommandAliases(); // Paper
}

View file

@ -128,4 +128,14 @@ public interface CommandMap {
*/
@Nullable
public List<String> 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<String, Command> getKnownCommands();
// Paper end
}

View file

@ -294,4 +294,11 @@ public class SimpleCommandMap implements CommandMap {
}
}
}
// Paper start - Expose Known Commands
@NotNull
public Map<String, Command> getKnownCommands() {
return knownCommands;
}
// Paper end
}

View file

@ -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<String> 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
}
}