oblak/cloud-minecraft
2020-09-25 00:36:30 +02:00
..
cloud-brigadier Replace command permissions with a new smarter permission system that allows for compound permissions 2020-09-25 00:36:30 +02:00
cloud-bukkit Replace command permissions with a new smarter permission system that allows for compound permissions 2020-09-25 00:36:30 +02:00
cloud-bukkit-test Clean up descriptions 2020-09-23 20:55:17 +02:00
cloud-bungee Replace command permissions with a new smarter permission system that allows for compound permissions 2020-09-25 00:36:30 +02:00
cloud-cloudburst Replace command permissions with a new smarter permission system that allows for compound permissions 2020-09-25 00:36:30 +02:00
cloud-cloudburst-test Add a cloudburst test plugin 2020-09-23 13:01:50 +02:00
cloud-minecraft-extras Version bump. 2020-09-22 18:58:43 +02:00
cloud-paper Replace command permissions with a new smarter permission system that allows for compound permissions 2020-09-25 00:36:30 +02:00
cloud-velocity Version bump. 2020-09-22 18:58:43 +02:00
cloud-velocity-test Version bump. 2020-09-22 18:58:43 +02:00
README.md Add a cloudburst test plugin 2020-09-23 13:01:50 +02:00

cloud-minecraft

This directory hosts Minecraft specific implementations of cloud. Their features are summarized in the table below:

Module Platform Minecraft Version Brigadier Support?
cloud-bukkit Bukkit, Spigot, Paper 1.8+ Via commodore for MC 1.13+
cloud-paper Bukkit, Spigot, Paper 1.8+ Via Paper for MC 1.15+, Via commodore for MC 1.13+
cloud-bungee BungeeCord 1.8+ No
cloud-velocity Velocity 1.1.0 1.7+ Yes
cloud-cloudburst CloudBurst 1.0.0 Bedrock 1.16.20+ No

cloud-bukkit

Bukkit mappings for cloud. If commodore is present on the classpath and the server is running at least version 1.13+, Brigadier mappings will be available.

dependency

<dependency>
    <groupId>com.intellectualsites</groupId>
    <artifactId>cloud-bukkit</artifactId>
    <version>0.2.0-SNAPSHOT</version>
</dependency>

setup

Simply do:

final BukkitCommandManager<YourSender> bukkitCommandManager = new BukkitCommandManager<>(
  yourPlugin, yourExecutionCoordinator, forwardMapper, backwardsMapper);

The forwardMapper is a function that maps your chosen sender type to Bukkit's CommandSender, and the backwardsMapperdoes the opposite. In the case that you don't need a custom sender type, you can simply use CommandSenderas the generic type and pass Function.identity() as the forward and backward mappers.

commodore

To use commodore, include it as a dependency:

<dependency>
    <groupId>me.lucko</groupId>
    <artifactId>commodore</artifactId>
    <version>1.9</version>
</dependency>

Then initialize the commodore mappings using:

try {
  bukkitCommandManager.registerBrigadier();
} catch (final Exception e) {
  plugin.getLogger().warning("Failed to initialize Brigadier support: " + e.getMessage());
}

The mappings will then be created and registered automatically whenever a new command is registered.

Note: The mapper must be initialized before any commands are registered.

You can check whether or not the running server supports Brigadier, by using bukkitCommandManager.queryCapability(...).

cloud-paper

An example plugin using the cloud-paper API can be found here.

cloud-paperworks on all Bukkit derivatives and has graceful fallbacks for cases where Paper specific features are missing. It is initialized the same way as the Bukkit manager, except PaperCommandManageris used instead. When using Paper 1.15+ Brigadier mappings are available even without commodore present.

dependency

<dependency>
    <groupId>com.intellectualsites</groupId>
    <artifactId>cloud-paper</artifactId>
    <version>0.2.0-SNAPSHOT</version>
</dependency>

asynchronous completions

cloud-papersupports asynchronous completions when running on Paper. First check if the capability is present, by using paperCommandManager.queryCapability(CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION) and then initialize the asynchronous completion listener by using paperCommandManager.registerAsynchronousCompletions().

cloud-bungee

BungeeCord mappings for cloud.

dependency

<dependency>
    <groupId>com.intellectualsites</groupId>
    <artifactId>cloud-bungee</artifactId>
    <version>0.2.0-SNAPSHOT</version>
</dependency>

setup

Simply do:

final BungeeCommandManager<YourSender> bungeeCommandManager = new BungeeCommandManager<>(
  yourPlugin, yourExecutionCoordinator, forwardMapper, backwardsMapper);

The forwardMapper is a function that maps your chosen sender type to Bungee's CommandSender, and the backwardsMapperdoes the opposite. In the case that you don't need a custom sender type, you can simply use CommandSenderas the generic type and pass Function.identity() as the forward and backward mappers.

cloud-velocity

cloud mappings for Velocity 1.1.0-SNAPSHOT.

An example plugin using the cloud-velocity API can be found here.

dependency

<dependency>
    <groupId>com.intellectualsites</groupId>
    <artifactId>cloud-velocity</artifactId>
    <version>0.2.0-SNAPSHOT</version>
</dependency>

Simply do:

final VelocityCommandManager<YourSender> bukkitCommandManager = new VelocityCommandManager<>(
  proxyServer, yourExecutionCoordinator, forwardMapper, backwardsMapper);

The forwardMapper is a function that maps your chosen sender type to Velocity's CommandSource, and the backwardsMapperdoes the opposite. In the case that you don't need a custom sender type, you can simply use CommandSourceas the generic type and pass Function.identity() as the forward and backward mappers.