From a7e868a7a43ee88307f5d7d212a64a19478665fb Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Fri, 31 Jul 2015 18:50:06 +1000 Subject: [PATCH] Allow setName to change a Command name before registration. By: Aikar --- .../main/java/org/bukkit/command/Command.java | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/paper-api/src/main/java/org/bukkit/command/Command.java b/paper-api/src/main/java/org/bukkit/command/Command.java index e5fb0f8f60..a02c28d6f9 100644 --- a/paper-api/src/main/java/org/bukkit/command/Command.java +++ b/paper-api/src/main/java/org/bukkit/command/Command.java @@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableList; * Represents a Command, which executes various tasks upon user input */ public abstract class Command { - private final String name; + private String name; private String nextLabel; private String label; private List aliases; @@ -116,6 +116,25 @@ public abstract class Command { return name; } + /** + * Sets the name of this command. + *

+ * May only be used before registering the command. + * Will return true if the new name is set, and false + * if the command has already been registered. + * + * @param name New command name + * @return returns true if the name change happened instantly or false if + * the command was already registered + */ + public boolean setName(String name) { + if (!isRegistered()) { + this.name = name; + return true; + } + return false; + } + /** * Gets the permission required by users to be able to perform this * command @@ -186,9 +205,9 @@ public abstract class Command { } /** - * Returns the current label for this command + * Returns the label for this command * - * @return Label of this command or null if not registered + * @return Label of this command */ public String getLabel() { return label; @@ -197,12 +216,13 @@ public abstract class Command { /** * Sets the label of this command. *

- * If the command is currently registered the label change will only take - * effect after its been re-registered e.g. after a /reload + * May only be used before registering the command. + * Will return true if the new name is set, and false + * if the command has already been registered. * * @param name The command's name * @return returns true if the name change happened instantly or false if - * it was scheduled for re-registration + * the command was already registered */ public boolean setLabel(String name) { this.nextLabel = name;