✨ Expose the Brigadier manager from Brigadier-enabled command managers
This commit is contained in:
parent
81e53ed454
commit
d0209dc762
5 changed files with 92 additions and 5 deletions
|
|
@ -57,10 +57,16 @@ class PaperBrigadierListener<C> implements Listener {
|
|||
new BukkitBrigadierMapper<>(this.paperCommandManager, this.brigadierManager);
|
||||
}
|
||||
|
||||
protected @NonNull CloudBrigadierManager<C, BukkitBrigadierCommandSource> brigadierManager() {
|
||||
return this.brigadierManager;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@SuppressWarnings("deprecation")
|
||||
public void onCommandRegister(final com.destroystokyo.paper.event.brigadier
|
||||
.@NonNull CommandRegisteredEvent<BukkitBrigadierCommandSource> event) {
|
||||
public void onCommandRegister(
|
||||
final com.destroystokyo.paper.event.brigadier.
|
||||
@NonNull CommandRegisteredEvent<BukkitBrigadierCommandSource> event
|
||||
) {
|
||||
if (!(event.getCommand() instanceof PluginIdentifiableCommand)) {
|
||||
return;
|
||||
} else if (!((PluginIdentifiableCommand) event.getCommand())
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
package cloud.commandframework.paper;
|
||||
|
||||
import cloud.commandframework.CommandTree;
|
||||
import cloud.commandframework.brigadier.CloudBrigadierManager;
|
||||
import cloud.commandframework.bukkit.BukkitCommandManager;
|
||||
import cloud.commandframework.bukkit.CloudBukkitCapabilities;
|
||||
import cloud.commandframework.execution.CommandExecutionCoordinator;
|
||||
|
|
@ -31,6 +32,7 @@ import org.bukkit.Bukkit;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
|
|
@ -41,6 +43,8 @@ import java.util.function.Function;
|
|||
*/
|
||||
public class PaperCommandManager<C> extends BukkitCommandManager<C> {
|
||||
|
||||
private PaperBrigadierListener<C> paperBrigadierListener = null;
|
||||
|
||||
/**
|
||||
* Construct a new Paper command manager
|
||||
*
|
||||
|
|
@ -96,9 +100,9 @@ public class PaperCommandManager<C> extends BukkitCommandManager<C> {
|
|||
super.registerBrigadier();
|
||||
} else {
|
||||
try {
|
||||
final PaperBrigadierListener<C> brigadierListener = new PaperBrigadierListener<>(this);
|
||||
this.paperBrigadierListener = new PaperBrigadierListener<>(this);
|
||||
Bukkit.getPluginManager().registerEvents(
|
||||
brigadierListener,
|
||||
this.paperBrigadierListener,
|
||||
this.getOwningPlugin()
|
||||
);
|
||||
this.setSplitAliases(true);
|
||||
|
|
@ -108,6 +112,17 @@ public class PaperCommandManager<C> extends BukkitCommandManager<C> {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public @Nullable CloudBrigadierManager<C, ?> brigadierManager() {
|
||||
if (this.paperBrigadierListener != null) {
|
||||
return this.paperBrigadierListener.brigadierManager();
|
||||
}
|
||||
return super.brigadierManager();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register asynchronous completions. This requires all argument parsers to be thread safe, and it
|
||||
* is up to the caller to guarantee that such is the case
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue