← Назад к ресурсам

CommandAPI

An API to use the command UI introduced in Minecraft 1.13

Modrinth library utility

Описание

# A Bukkit/Spigot API to use the command UI introduced in Minecraft 1.13 _[Everything you'll ever need can be found on the GitHub page](https://github.com/CommandAPI/CommandAPI)_ ## What is the CommandAPI? The CommandAPI provides full support for the new command UI which was implemented in Minecraft's 1.13 update. ![Example of the CommandAPI in use](https://i.imgur.com/Ol2c7sn.gif) Wanna stay up to date? We've got a [Discord server!](https://discord.gg/G4SzSxZ) ## Brief overview of features - **Better commands** - Prevent players from running invalid commands, making it easier for developers - **Better arguments** - Automatic argument parsing with built-in validation - **Support for proxied command senders** - Run your command as other entities using /execute as ... run command - **Support for the /execute command** - Let your command to be executed by the built in /execute command - **Support for Minecraft's functions** - Allow your command to be executed from Minecraft's functions and tags - **No plugin.yml registration** - Commands don't need to be registered in the plugin.yml file anymore - **No other dependencies** - You don't need to import Brigadier in your projects to use the CommandAPI - **No tracking** - The CommandAPI doesn't collect any stats about its plugin; what you see is what you get! ## Argument type casting Instead of checking if an argument is an integer after they run the command like this: ```java onCommand(CommandSender sender, Command command, String label, String[] args) { try { int i = Integer.parseInt(args[0]); // Do something with this number catch (NumberFormatException e) { // Do something with the fact this isn't a number... } } ``` You can rest assured that the CommandAPI has inferred whatever type you want and can jump straight to this: ```java new CommandAPICommand("mycommand") .withArguments(new IntegerArgument("myint")) .executes((sender, args) -> { int i = (int) args.get("myint"); // Do something with this number }) .register(); ``` The CommandAPI offers over 40 different arguments to tailor to your needs! Automatic casting to Enchantments, EntityTypes, Locations, ItemStacks, PotionEffects and many more! ## CommandSender type checks Never again will you have to check if your sender is a player! The CommandAPI provides automatic command sender checks for all sorts of command senders: ```java new CommandAPICommand("mycommand") .withArguments(arguments) .executesPlayer((player, args) -> { player.sendMessage("Hi " + player.getDisplayName()); }) .register(); ``` ## Documentation The latest documentation can be found [here](https://docs.commandapi.dev/intro). Trust me, you've never, ever seen documentation this good before. ## Built-in plugin converter Bummed that your plugin's commands can't be used with the /execute command and don't know how to write code? The CommandAPI has you covered! With its built-in plugin command conversion system, you can make any plugin command compatible with Minecraft's /execute command and datapacks! ## Still not convinced? Here's what else it can do: - Parse integers with ranges automatically (force your command to only accept values within a range) - Handle integer and floating point locations, as well as relative locations using the ~ symbol - Parse raw JSON and convert it straight into a BaseComponent[] - Parse online players, with suggestions based on who's online - Create custom arguments that parse Strings into custom defined objects - Apply permissions to specific arguments - you need permissions to even see the suggested arguments as well as run it - Make other plugins that weren't written with the CommandAPI compatible with the /execute command - Handle results and successes of commands just like you can with command blocks - Set context-aware suggestions based on what the user has already entered into their command prompt Need I say more?