mirror of
https://github.com/aikar/commands.git
synced 2026-05-31 06:11:55 +00:00
Fix bug with manager not being set on RC
This commit is contained in:
@@ -32,13 +32,10 @@ import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.SetMultimap;
|
||||
import jdk.nashorn.internal.runtime.Timing;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
@@ -72,8 +69,13 @@ public abstract class BaseCommand extends Command {
|
||||
|
||||
public BaseCommand(String cmd) {
|
||||
super(cmd);
|
||||
}
|
||||
|
||||
public void onRegister(CommandManager manager) {
|
||||
this.manager = manager;
|
||||
final Class<? extends BaseCommand> self = this.getClass();
|
||||
CommandAlias rootCmdAlias = self.getAnnotation(CommandAlias.class);
|
||||
String cmd = this.getName();
|
||||
if (cmd == null) {
|
||||
if (rootCmdAlias == null) {
|
||||
cmd = "__" + self.getSimpleName();
|
||||
@@ -132,7 +134,7 @@ public abstract class BaseCommand extends Command {
|
||||
Collections.addAll(cmdList, CommandPatterns.PIPE.split(rootCmdAlias.value().toLowerCase()));
|
||||
cmdList.remove(cmd);
|
||||
for (String cmdAlias : cmdList) {
|
||||
register(cmdAlias, new ForwardingCommand(this));
|
||||
register(cmdAlias, new ForwardingCommand(this));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,9 +64,9 @@ public class BukkitCommandManager implements CommandManager {
|
||||
|
||||
@Override
|
||||
public boolean registerCommand(BaseCommand command) {
|
||||
command.manager = this;
|
||||
final String plugin = this.plugin.getName().toLowerCase();
|
||||
final CommandMap commandMap = Bukkit.getServer().getCommandMap();
|
||||
command.onRegister(this);
|
||||
boolean allSuccess = true;
|
||||
for (Map.Entry<String, Command> entry : command.registeredCommands.entrySet()) {
|
||||
if (!commandMap.register(entry.getKey().toLowerCase(), plugin, entry.getValue())) {
|
||||
|
||||
@@ -75,14 +75,18 @@ public class RegisteredCommand {
|
||||
this.parameters = method.getParameters();
|
||||
this.resolvers = new ContextResolver[this.parameters.length];
|
||||
final Syntax syntaxStr = method.getAnnotation(Syntax.class);
|
||||
final CommandManager manager = scope.manager;
|
||||
final CommandContexts commandContexts = manager.getCommandContexts();
|
||||
|
||||
int nonSenderAwareResolvers = 0;
|
||||
int optionalResolvers = 0;
|
||||
StringBuilder syntaxB = new StringBuilder(64);
|
||||
|
||||
for (int i = 0; i < parameters.length; i++) {
|
||||
final Parameter parameter = parameters[i];
|
||||
final Class<?> type = parameter.getType();
|
||||
final ContextResolver<?> resolver = scope.manager.getCommandContexts().getResolver(type);
|
||||
|
||||
final ContextResolver<?> resolver = commandContexts.getResolver(type);
|
||||
if (resolver != null) {
|
||||
resolvers[i] = resolver;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user