refactor ig
This commit is contained in:
parent
ef32f9dbc4
commit
336ac4cad5
54 changed files with 528 additions and 444 deletions
|
|
@ -1,48 +0,0 @@
|
|||
package de.kentoj.kencommandapi;
|
||||
|
||||
import de.kentoj.kencommandapi.api.CommandHandler;
|
||||
import de.kentoj.kencommandapi.api.literal.Literal;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.SimpleCommandMap;
|
||||
import org.bukkit.permissions.Permissible;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CommandAPI {
|
||||
|
||||
private final CommandHandler<CommandSender> commandHandler;
|
||||
private final List<Literal<CommandSender>> registeredNodes = new ArrayList<>();
|
||||
private final SimpleCommandMap commandMap;
|
||||
|
||||
public CommandAPI(Plugin plugin) {
|
||||
this.commandHandler = new CommandHandler<>(CommandSender::sendMessage, Permissible::hasPermission);
|
||||
Bukkit.getPluginManager().registerEvents(new TabCompleteListener(this, commandHandler), plugin);
|
||||
|
||||
try {
|
||||
Field field = Bukkit.getPluginManager().getClass().getDeclaredField("commandMap");
|
||||
field.setAccessible(true);
|
||||
commandMap = (SimpleCommandMap) field.get(Bukkit.getPluginManager());
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
throw new IllegalStateException("failed getting command map", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable Literal<CommandSender> getRegistered(String name) {
|
||||
for (var node : registeredNodes) {
|
||||
for (String nodeName : node.getNames()) {
|
||||
if (nodeName.equals(name)) return node;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void register(Literal<CommandSender> rootNode) {
|
||||
registeredNodes.add(rootNode);
|
||||
commandMap.register(rootNode.getNames()[0], new BukkitKenCommand(commandHandler, rootNode));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue