diff --git a/paper-api/src/main/java/org/bukkit/Bukkit.java b/paper-api/src/main/java/org/bukkit/Bukkit.java
index 122e66d21bf9..f5d69b1586ab 100644
--- a/paper-api/src/main/java/org/bukkit/Bukkit.java
+++ b/paper-api/src/main/java/org/bukkit/Bukkit.java
@@ -1079,7 +1079,10 @@ public static Logger getLogger() {
*
* @param name the name of the command to retrieve
* @return a plugin command if found, null otherwise
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
@Nullable
public static PluginCommand getPluginCommand(@NotNull String name) {
return server.getPluginCommand(name);
@@ -1348,7 +1351,10 @@ public static boolean removeRecipe(@NotNull NamespacedKey key, boolean resendRec
* Gets a list of command aliases defined in the server properties.
*
* @return a map of aliases to command names
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
@NotNull
public static Map getCommandAliases() {
return server.getCommandAliases();
@@ -2658,7 +2664,10 @@ public static UnsafeValues getUnsafe() {
* Gets the active {@link org.bukkit.command.CommandMap}
*
* @return the active command map
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
@NotNull
public static org.bukkit.command.CommandMap getCommandMap() {
return server.getCommandMap();
@@ -2675,7 +2684,10 @@ public static void reloadPermissions() {
* Reload the Command Aliases in commands.yml
*
* @return Whether the reload was successful
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
public static boolean reloadCommandAliases() {
return server.reloadCommandAliases();
}
diff --git a/paper-api/src/main/java/org/bukkit/Server.java b/paper-api/src/main/java/org/bukkit/Server.java
index a8e67888e63a..2de70df79541 100644
--- a/paper-api/src/main/java/org/bukkit/Server.java
+++ b/paper-api/src/main/java/org/bukkit/Server.java
@@ -995,7 +995,10 @@ default ItemStack createExplorerMap(@NotNull World world, @NotNull Location loca
*
* @param name the name of the command to retrieve
* @return a plugin command if found, null otherwise
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
@Nullable
public PluginCommand getPluginCommand(@NotNull String name);
@@ -1239,7 +1242,10 @@ default boolean removeRecipe(@NotNull NamespacedKey key) {
* Gets a list of command aliases defined in the server properties.
*
* @return a map of aliases to command names
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
@NotNull
public Map getCommandAliases();
@@ -2207,7 +2213,10 @@ default int getAmbientSpawnLimit() {
* Gets the active {@link org.bukkit.command.CommandMap}
*
* @return the active command map
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
@NotNull
org.bukkit.command.CommandMap getCommandMap();
@@ -2486,6 +2495,11 @@ public void restart() {
void reloadPermissions(); // Paper
+ /**
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
+ */
+ @Deprecated(since = "26.3")
boolean reloadCommandAliases(); // Paper
// Paper start - allow preventing player name suggestions by default
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 3171a20c8fcf..234976f273d3 100644
--- a/paper-api/src/main/java/org/bukkit/command/Command.java
+++ b/paper-api/src/main/java/org/bukkit/command/Command.java
@@ -20,7 +20,11 @@
/**
* Represents a Command, which executes various tasks upon user input
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+@Deprecated(since = "26.3")
public abstract class Command {
private String name;
private String nextLabel;
diff --git a/paper-api/src/main/java/org/bukkit/command/CommandExecutor.java b/paper-api/src/main/java/org/bukkit/command/CommandExecutor.java
index 8d7139467f71..7cac04ec62fe 100644
--- a/paper-api/src/main/java/org/bukkit/command/CommandExecutor.java
+++ b/paper-api/src/main/java/org/bukkit/command/CommandExecutor.java
@@ -4,7 +4,11 @@
/**
* Represents a class which contains a single method for executing commands
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+@Deprecated(since = "26.3")
public interface CommandExecutor {
/**
@@ -18,6 +22,9 @@ public interface CommandExecutor {
* @param label Alias of the command which was used
* @param args Passed command arguments
* @return true if a valid command, otherwise false
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String @NotNull [] args);
}
diff --git a/paper-api/src/main/java/org/bukkit/command/CommandMap.java b/paper-api/src/main/java/org/bukkit/command/CommandMap.java
index 864c263bbd4d..e1beabc126f2 100644
--- a/paper-api/src/main/java/org/bukkit/command/CommandMap.java
+++ b/paper-api/src/main/java/org/bukkit/command/CommandMap.java
@@ -5,6 +5,11 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+/**
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
+ */
+@Deprecated(since = "26.3")
public interface CommandMap {
/**
diff --git a/paper-api/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/paper-api/src/main/java/org/bukkit/command/FormattedCommandAlias.java
index 59fada9b1eb7..278694138952 100644
--- a/paper-api/src/main/java/org/bukkit/command/FormattedCommandAlias.java
+++ b/paper-api/src/main/java/org/bukkit/command/FormattedCommandAlias.java
@@ -9,6 +9,11 @@
import org.bukkit.Bukkit;
import org.jetbrains.annotations.NotNull;
+/**
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
+ */
+@Deprecated(since = "26.3")
public class FormattedCommandAlias extends Command {
private final String[] formatStrings;
diff --git a/paper-api/src/main/java/org/bukkit/command/MultipleCommandAlias.java b/paper-api/src/main/java/org/bukkit/command/MultipleCommandAlias.java
index 9a47b364d09d..0e50fb186827 100644
--- a/paper-api/src/main/java/org/bukkit/command/MultipleCommandAlias.java
+++ b/paper-api/src/main/java/org/bukkit/command/MultipleCommandAlias.java
@@ -4,7 +4,11 @@
/**
* Represents a command that delegates to one or more other commands
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+@Deprecated(since = "26.3")
public class MultipleCommandAlias extends Command {
private Command[] commands;
diff --git a/paper-api/src/main/java/org/bukkit/command/PluginCommand.java b/paper-api/src/main/java/org/bukkit/command/PluginCommand.java
index 551c5af6a7bf..b897b36afbc5 100644
--- a/paper-api/src/main/java/org/bukkit/command/PluginCommand.java
+++ b/paper-api/src/main/java/org/bukkit/command/PluginCommand.java
@@ -8,7 +8,11 @@
/**
* Represents a {@link Command} belonging to a plugin
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+@Deprecated(since = "26.3")
public final class PluginCommand extends Command implements PluginIdentifiableCommand {
private final Plugin owningPlugin;
private CommandExecutor executor;
diff --git a/paper-api/src/main/java/org/bukkit/command/PluginCommandYamlParser.java b/paper-api/src/main/java/org/bukkit/command/PluginCommandYamlParser.java
index ef870b864c1e..cb70183e06d3 100644
--- a/paper-api/src/main/java/org/bukkit/command/PluginCommandYamlParser.java
+++ b/paper-api/src/main/java/org/bukkit/command/PluginCommandYamlParser.java
@@ -8,6 +8,11 @@
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
+/**
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
+ */
+@Deprecated(since = "26.3")
public class PluginCommandYamlParser {
@NotNull
diff --git a/paper-api/src/main/java/org/bukkit/command/PluginIdentifiableCommand.java b/paper-api/src/main/java/org/bukkit/command/PluginIdentifiableCommand.java
index d51e0fd604a7..c7816b6d014d 100644
--- a/paper-api/src/main/java/org/bukkit/command/PluginIdentifiableCommand.java
+++ b/paper-api/src/main/java/org/bukkit/command/PluginIdentifiableCommand.java
@@ -8,7 +8,11 @@
* sub-indexes based on the {@link Plugin} they are a part of. Custom command
* implementations will need to implement this interface to have a sub-index
* automatically generated on the plugin's behalf.
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+@Deprecated(since = "26.3")
public interface PluginIdentifiableCommand {
/**
diff --git a/paper-api/src/main/java/org/bukkit/command/SimpleCommandMap.java b/paper-api/src/main/java/org/bukkit/command/SimpleCommandMap.java
index ad1330d87223..ff6cf2e1dd8e 100644
--- a/paper-api/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/paper-api/src/main/java/org/bukkit/command/SimpleCommandMap.java
@@ -19,6 +19,11 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+/**
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
+ */
+@Deprecated(since = "26.3")
public class SimpleCommandMap implements CommandMap {
protected final Map knownCommands;
private final Server server;
diff --git a/paper-api/src/main/java/org/bukkit/command/TabCompleter.java b/paper-api/src/main/java/org/bukkit/command/TabCompleter.java
index 2bcdaca5f206..183d8d049618 100644
--- a/paper-api/src/main/java/org/bukkit/command/TabCompleter.java
+++ b/paper-api/src/main/java/org/bukkit/command/TabCompleter.java
@@ -6,7 +6,11 @@
/**
* Represents a class which can suggest tab completions for commands.
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+@Deprecated(since = "26.3")
public interface TabCompleter {
/**
@@ -21,7 +25,10 @@ public interface TabCompleter {
* partial argument to be completed
* @return A List of possible completions for the final argument, or null
* to default to the command executor
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
@Nullable
public List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String @NotNull [] args);
}
diff --git a/paper-api/src/main/java/org/bukkit/command/TabExecutor.java b/paper-api/src/main/java/org/bukkit/command/TabExecutor.java
index 6b8e3fb2a080..4b4e3caf5045 100644
--- a/paper-api/src/main/java/org/bukkit/command/TabExecutor.java
+++ b/paper-api/src/main/java/org/bukkit/command/TabExecutor.java
@@ -3,6 +3,10 @@
/**
* This class is provided as a convenience to implement both TabCompleter and
* CommandExecutor.
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+@Deprecated(since = "26.3")
public interface TabExecutor extends TabCompleter, CommandExecutor {
}
diff --git a/paper-api/src/main/java/org/bukkit/command/defaults/BukkitCommand.java b/paper-api/src/main/java/org/bukkit/command/defaults/BukkitCommand.java
index cb032d038f52..5c80ad722687 100644
--- a/paper-api/src/main/java/org/bukkit/command/defaults/BukkitCommand.java
+++ b/paper-api/src/main/java/org/bukkit/command/defaults/BukkitCommand.java
@@ -4,6 +4,11 @@
import org.bukkit.command.Command;
import org.jetbrains.annotations.NotNull;
+/**
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
+ */
+@Deprecated(since = "26.3")
public abstract class BukkitCommand extends Command {
protected BukkitCommand(@NotNull String name) {
super(name);
diff --git a/paper-api/src/main/java/org/bukkit/plugin/java/JavaPlugin.java b/paper-api/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
index 0f3d3b757fbb..71830b7b67e3 100644
--- a/paper-api/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
+++ b/paper-api/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
@@ -309,16 +309,24 @@ public final void init(Server server, PluginDescriptionFile description, File da
/**
* {@inheritDoc}
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
@Override
+ @Deprecated(since = "26.3")
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
return false;
}
/**
* {@inheritDoc}
+ *
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
@Override
+ @Deprecated(since = "26.3")
public @Nullable List onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
return null;
}
@@ -332,7 +340,10 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
* @return the plugin command if found, otherwise null
* @throws UnsupportedOperationException if this plugin is a paper plugin and the method is called in {@link #onEnable()}
* @see #registerCommand(String, String, Collection, BasicCommand)
+ * @deprecated plugin developers should prefer to use the
+ * Brigadier command API
*/
+ @Deprecated(since = "26.3")
public @Nullable PluginCommand getCommand(String name) {
if (this.isBeingEnabled && !(pluginMeta instanceof PluginDescriptionFile)) {
throw new UnsupportedOperationException("""
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 716c3b17dc07..68bfc36cffb3 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1424,6 +1424,7 @@ public Logger getLogger() {
}
@Override
+ @Deprecated
public PluginCommand getPluginCommand(String name) {
Command command = this.commandMap.getCommand(name);
@@ -1664,6 +1665,7 @@ public boolean removeRecipe(NamespacedKey recipeKey, boolean resendRecipes) {
}
@Override
+ @Deprecated
public Map getCommandAliases() {
ConfigurationSection section = this.commandsConfiguration.getConfigurationSection("aliases");
Map result = new LinkedHashMap<>();
@@ -2290,6 +2292,7 @@ public HelpMap getHelpMap() {
}
@Override
+ @Deprecated
public SimpleCommandMap getCommandMap() {
return this.commandMap;
}
@@ -2858,6 +2861,7 @@ public void reloadPermissions() {
}
@Override
+ @Deprecated
public boolean reloadCommandAliases() {
Set removals = getCommandAliases().keySet().stream()
.map(key -> key.toLowerCase(java.util.Locale.ENGLISH))