Skip to content
Daniel Ennis edited this page Jan 13, 2018 · 18 revisions

Using ACF - Annotation Command Framework

Build Tool Setup

See Maven, Gradle, or you can find artifacts here:

Or manual: https://repo.aikar.co/nexus/content/groups/aikar/co/aikar/

Getting a Command Manager

This part is platform specific. Use the command manager that represents your platform.

Bukkit:

BukkitCommandManager manager = new BukkitCommandManager(yourBukkitPlugin);

Paper (Recommended over Bukkit):

  • Using the Paper Command Manager does NOT make your plugin require Paper. It simply lets it take advantage of Paper specific features if available, such as Asynchronous Tab Completions
  • Paper specific improvements will be added in the future as potential is found.
  • Server owners are STRONGLY encouraged to use Paper instead of Spigot or CraftBukkit, as it is a massive improvement to the server software. All research and development into improving the Bukkit software happens in the Paper developer community, which is far more active than Spigots.
PaperCommandManager manager = new PaperCommandManager(yourBukkitPlugin);

Bungee:

BungeeCommandManager manager = new BungeeCommandManager(yourBungeePlugin);

Sponge:

SpongeCommandManager manager = new SpongeCommandManager(yourSpongePlugin);

Registering a command

First you need to create a class that extends BaseCommand, then register that command with the manager

manager.registerCommand(new MyCommand());

If you need your plugin instance, pass it to your commands constructor like so (this is called dependency injection if you are not aware)

manager.registerCommand(new MyCommand(myPlugin));

See Wiki Home for links to the other guides, but here is some important ones: