Skip to content

Commit 150d65d

Browse files
committed
fix: Add support for PluginIdentifiableCommands.
1 parent ed1fdb4 commit 150d65d

File tree

2 files changed

+50
-3
lines changed

2 files changed

+50
-3
lines changed

bukkit/commandmap/src/main/java/bukkit/BukkitMapCommandManager.java

+24-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package bukkit;
22

3+
import org.bukkit.plugin.Plugin;
4+
import org.jetbrains.annotations.NotNull;
35
import team.unnamed.commandflow.CommandManager;
46
import team.unnamed.commandflow.SimpleCommandManager;
57
import team.unnamed.commandflow.bukkit.BukkitAuthorizer;
@@ -18,11 +20,23 @@
1820
public class BukkitMapCommandManager extends BukkitCommandManager {
1921

2022
protected CommandMap bukkitCommandMap;
23+
@NotNull
2124
protected final String fallbackPrefix;
2225

26+
protected Plugin plugin;
27+
28+
protected boolean usePluginCommands = false;
29+
2330
protected final Map<String, BukkitCommandWrapper> wrapperMap;
2431

25-
public BukkitMapCommandManager(CommandManager delegate, String fallbackPrefix) {
32+
public BukkitMapCommandManager(CommandManager delegate, Plugin plugin) {
33+
this(delegate, plugin.getName());
34+
35+
this.plugin = plugin;
36+
usePluginCommands = true;
37+
}
38+
39+
public BukkitMapCommandManager(CommandManager delegate, @NotNull String fallbackPrefix) {
2640
super(delegate);
2741
this.fallbackPrefix = fallbackPrefix;
2842
wrapperMap = new HashMap<>();
@@ -35,9 +49,15 @@ public BukkitMapCommandManager(CommandManager delegate, String fallbackPrefix) {
3549
} catch (NoSuchFieldException | IllegalAccessException ex) {
3650
Bukkit.getLogger().log(Level.SEVERE, "Failed to get command map: ", ex);
3751
}
52+
}
3853

54+
public BukkitMapCommandManager(Plugin plugin) {
55+
this(plugin.getName());
56+
this.plugin = plugin;
57+
this.usePluginCommands = true;
3958
}
4059

60+
4161
public BukkitMapCommandManager(String fallbackPrefix) {
4262
this(new SimpleCommandManager(), fallbackPrefix);
4363

@@ -48,8 +68,9 @@ public BukkitMapCommandManager(String fallbackPrefix) {
4868

4969
@Override
5070
protected void _register(Command command) {
51-
BukkitCommandWrapper bukkitCommand = new BukkitCommandWrapper(command,
52-
this, getTranslator());
71+
BukkitCommandWrapper bukkitCommand = usePluginCommands ?
72+
new PluginBukkitCommandWrapper(command, this, getTranslator(), plugin) :
73+
new BukkitCommandWrapper(command, this, getTranslator());
5374

5475
for (String alias : command.getAliases()) {
5576
registerCommand(fallbackPrefix + ":" + alias, command);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package bukkit;
2+
3+
import org.bukkit.command.PluginIdentifiableCommand;
4+
import org.bukkit.plugin.Plugin;
5+
import team.unnamed.commandflow.bukkit.BukkitCommandManager;
6+
import team.unnamed.commandflow.command.Command;
7+
import team.unnamed.commandflow.translator.Translator;
8+
9+
public class PluginBukkitCommandWrapper extends BukkitCommandWrapper implements PluginIdentifiableCommand {
10+
11+
private final Plugin plugin;
12+
13+
public PluginBukkitCommandWrapper(Command command,
14+
BukkitCommandManager dispatcher,
15+
Translator translator,
16+
Plugin plugin) {
17+
super(command, dispatcher, translator);
18+
19+
this.plugin = plugin;
20+
}
21+
22+
@Override
23+
public Plugin getPlugin() {
24+
return plugin;
25+
}
26+
}

0 commit comments

Comments
 (0)