Java 类org.bukkit.command.SimpleCommandMap 实例源码

项目:EscapeLag    文件:CommandInjector.java   
/**
 * 
 * @author jiongjionger,Vlvxingze
 */

public static void inject(Plugin plg) {
    if (plg != null) {
        try {
            SimpleCommandMap simpleCommandMap = Reflection.getField(SimplePluginManager.class, "commandMap", SimpleCommandMap.class).get(Bukkit.getPluginManager());
            for (Command command : simpleCommandMap.getCommands()) {
                if (command instanceof PluginCommand) {
                    PluginCommand pluginCommand = (PluginCommand) command;
                    if (plg.equals(pluginCommand.getPlugin())) {
                        FieldAccessor<CommandExecutor> commandField = Reflection.getField(PluginCommand.class, "executor", CommandExecutor.class);
                        FieldAccessor<TabCompleter> tabField = Reflection.getField(PluginCommand.class, "completer", TabCompleter.class);
                        CommandInjector commandInjector = new CommandInjector(plg, commandField.get(pluginCommand), tabField.get(pluginCommand));
                        commandField.set(pluginCommand, commandInjector);
                        tabField.set(pluginCommand, commandInjector);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
项目:EscapeLag    文件:CommandInjector.java   
public static void uninject(Plugin plg) {
    if (plg != null) {
        try {
            SimpleCommandMap simpleCommandMap = Reflection.getField(SimplePluginManager.class, "commandMap", SimpleCommandMap.class).get(Bukkit.getPluginManager());
            for (Command command : simpleCommandMap.getCommands()) {
                if (command instanceof PluginCommand) {
                    PluginCommand pluginCommand = (PluginCommand) command;
                    if (plg.equals(pluginCommand.getPlugin())) {
                        FieldAccessor<CommandExecutor> commandField = Reflection.getField(PluginCommand.class, "executor", CommandExecutor.class);
                        FieldAccessor<TabCompleter> tabField = Reflection.getField(PluginCommand.class, "completer", TabCompleter.class);
                        CommandExecutor executor = commandField.get(pluginCommand);
                        if (executor instanceof CommandInjector) {
                            commandField.set(pluginCommand, ((CommandInjector) executor).getCommandExecutor());
                        }
                        TabCompleter completer = tabField.get(pluginCommand);
                        if (completer instanceof CommandInjector) {
                            tabField.set(pluginCommand, ((CommandInjector) executor).getTabCompleter());
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
项目:NeverLag    文件:MonitorUtils.java   
public static Map<String, MonitorRecord> getCommandTimingsByPlugin(Plugin plg) {
    Map<String, MonitorRecord> record = new HashMap<>();
    if (plg == null) {
        return record;
    }
    try {
        SimpleCommandMap simpleCommandMap = Reflection.getField(SimplePluginManager.class, "commandMap", SimpleCommandMap.class).get(Bukkit.getPluginManager());
        for (Command command : simpleCommandMap.getCommands()) {
            if (command instanceof PluginCommand) {
                PluginCommand pluginCommand = (PluginCommand) command;
                if (plg.equals(pluginCommand.getPlugin())) {
                    FieldAccessor<CommandExecutor> commandField = Reflection.getField(PluginCommand.class, "executor", CommandExecutor.class);
                    CommandExecutor executor = commandField.get(pluginCommand);
                    if (executor instanceof CommandInjector) {
                        CommandInjector commandInjector = (CommandInjector) executor;
                        record = mergeRecordMap(record, commandInjector.getMonitorRecordMap());
                    }

                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return record;
}
项目:MCLibrary    文件:MockFactory.java   
public static Server createMockServer() {
    ConsoleCommandSender commandSender = (ConsoleCommandSender) createCommandSender();
    Server server = mock(Server.class);
    when(server.getLogger()).thenReturn(Logger.getGlobal());
    when(server.getPluginManager()).thenReturn(
            new SimplePluginManager(server, new SimpleCommandMap(server)));
    when(server.getItemFactory()).thenReturn(new MockItemFactory());
    doAnswer(invocation -> new MockInventory(InventoryType.CHEST, invocation.getArgument(1), invocation.getArgument(2)))
            .when(server).createInventory(any(), anyInt(), anyString());
    when(server.getBukkitVersion()).thenReturn("1.0");
    when(server.getConsoleSender()).thenReturn(commandSender);
    doAnswer(invocation -> createMockWorld())
            .when(server).getWorld(anyString());

    return server;
}
项目:EchoPet    文件:CommandManager.java   
public CommandMap getCommandMap() {
    if (!(Bukkit.getPluginManager() instanceof SimplePluginManager)) {
        this.plugin.getLogger().warning("Seems like your server is using a custom PluginManager? Well let's try injecting our custom commands anyways...");
    }

    CommandMap map = null;

    try {
        map = SERVER_COMMAND_MAP.get(Bukkit.getPluginManager());

        if (map == null) {
            if (fallback != null) {
                return fallback;
            } else {
                fallback = map = new SimpleCommandMap(EchoPet.getPlugin().getServer());
                Bukkit.getPluginManager().registerEvents(new FallbackCommandRegistrationListener(fallback), this.plugin);
            }
        }
    } catch (Exception pie) {
        this.plugin.getLogger().warning("Failed to dynamically register the commands! Let's give it a last shot...");
        // Hmmm.... Pie...
        fallback = map = new SimpleCommandMap(EchoPet.getPlugin().getServer());
        Bukkit.getPluginManager().registerEvents(new FallbackCommandRegistrationListener(fallback), this.plugin);
    }
    return map;
}
项目:Skript    文件:ScriptCommand.java   
public void register(final SimpleCommandMap commandMap, final Map<String, Command> knownCommands, final @Nullable Set<String> aliases) {
    synchronized (commandMap) {
        overriddenAliases.clear();
        overridden = knownCommands.put(label, bukkitCommand);
        if (aliases != null)
            aliases.remove(label);
        final Iterator<String> as = activeAliases.iterator();
        while (as.hasNext()) {
            final String lowerAlias = as.next().toLowerCase();
            if (knownCommands.containsKey(lowerAlias) && (aliases == null || !aliases.contains(lowerAlias))) {
                as.remove();
                continue;
            }
            overriddenAliases.put(lowerAlias, knownCommands.put(lowerAlias, bukkitCommand));
            if (aliases != null)
                aliases.add(lowerAlias);
        }
        bukkitCommand.setAliases(activeAliases);
        bukkitCommand.register(commandMap);
    }
}
项目:Skript    文件:ScriptCommand.java   
public void unregister(final SimpleCommandMap commandMap, final Map<String, Command> knownCommands, final @Nullable Set<String> aliases) {
    synchronized (commandMap) {
        knownCommands.remove(label);
        if (aliases != null)
            aliases.removeAll(activeAliases);
        for (final String alias : activeAliases)
            knownCommands.remove(alias);
        activeAliases = new ArrayList<String>(this.aliases);
        bukkitCommand.unregister(commandMap);
        bukkitCommand.setAliases(this.aliases);
        if (overridden != null) {
            knownCommands.put(label, overridden);
            overridden = null;
        }
        for (final Entry<String, Command> e : overriddenAliases.entrySet()) {
            if (e.getValue() == null)
                continue;
            knownCommands.put(e.getKey(), e.getValue());
            if (aliases != null)
                aliases.add(e.getKey());
        }
        overriddenAliases.clear();
    }
}
项目:SonarPet    文件:CommandManager.java   
public CommandMap getCommandMap() {
    if (!(Bukkit.getPluginManager() instanceof SimplePluginManager)) {
        this.plugin.getLogger().warning("Seems like your server is using a custom PluginManager? Well let's try injecting our custom commands anyways...");
    }

    CommandMap map = null;

    try {
        map = SERVER_COMMAND_MAP.get(Bukkit.getPluginManager());

        if (map == null) {
            if (fallback != null) {
                return fallback;
            } else {
                fallback = map = new SimpleCommandMap(EchoPet.getPlugin().getServer());
                Bukkit.getPluginManager().registerEvents(new FallbackCommandRegistrationListener(fallback), this.plugin);
            }
        }
    } catch (Exception pie) {
        this.plugin.getLogger().warning("Failed to dynamically register the commands! Let's give it a last shot...");
        // Hmmm.... Pie...
        fallback = map = new SimpleCommandMap(EchoPet.getPlugin().getServer());
        Bukkit.getPluginManager().registerEvents(new FallbackCommandRegistrationListener(fallback), this.plugin);
    }
    return map;
}
项目:EventoZero    文件:CommandManagerImpl.java   
private SimpleCommandMap getCommandMap()
{
    final PluginManager pluginManager = getOwner().getServer().getPluginManager();

    FieldAccessor<SimpleCommandMap> cmdMapField = FieldAccessor.access(
            pluginManager, "commandMap" );

    Optional<SimpleCommandMap> optCmdMap = cmdMapField.getValue();

    if ( optCmdMap.isPresent() )
        return optCmdMap.get();

    final String message = String.format( "Cound not get commandMap, CraftBukkit Version: %s, PluginManager: %s",
            MCReflectUtil.getCBVersion(),
            pluginManager );

    throw new IllegalStateException( message );
}
项目:libelula    文件:CommandManager.java   
public void unRegisterBukkitCommand(PluginCommand cmd) {
    try {
        Object result = getPrivateField(plugin.getServer().getPluginManager(), "commandMap");
        SimpleCommandMap commandMap = (SimpleCommandMap) result;
        Object map = getPrivateField(commandMap, "knownCommands");
        @SuppressWarnings("unchecked")
        HashMap<String, Command> knownCommands = (HashMap<String, Command>) map;
        knownCommands.remove(cmd.getName());
        for (String alias : cmd.getAliases()) {
            if (knownCommands.containsKey(alias) && knownCommands.get(alias).toString().contains(plugin.getName())) {
                knownCommands.remove(alias);
            }
        }
    } catch (SecurityException | NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) {
        plugin.getLogger().severe(e.toString());
    }
}
项目:libelula    文件:CommandManager.java   
public void unRegisterBukkitCommand(PluginCommand cmd) {
    try {
        Object result = getPrivateField(plugin.getServer().getPluginManager(), "commandMap");
        SimpleCommandMap commandMap = (SimpleCommandMap) result;
        Object map = getPrivateField(commandMap, "knownCommands");
        @SuppressWarnings("unchecked")
        HashMap<String, Command> knownCommands = (HashMap<String, Command>) map;
        knownCommands.remove(cmd.getName());
        for (String alias : cmd.getAliases()) {
            if (knownCommands.containsKey(alias) && knownCommands.get(alias).toString().contains(plugin.getName())) {
                knownCommands.remove(alias);
            }
        }
    } catch (SecurityException | NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) {
        plugin.getLogger().severe(e.toString());
    }
}
项目:xEssentials-deprecated-bukkit    文件:CommandManager.java   
/**
 * unregister a command, credits to zeeveener for his awesome code to unregister commands!
 * 
 * @author zeeveener, xize
 * @param cmd - the command to be unregistered
 */
public void unRegisterBukkitCommand(PluginCommand cmd) {
    try {
        Object result = getPrivateField(Bukkit.getServer().getPluginManager(), "commandMap");
        SimpleCommandMap commandMap = (SimpleCommandMap) result;
        Object map = getPrivateField(commandMap, "knownCommands");
        @SuppressWarnings("unchecked")
        HashMap<String, Command> knownCommands = (HashMap<String, Command>) map;
        knownCommands.remove("xessentials"+":"+cmd.getName());
        if(knownCommands.containsKey(cmd.getName()) && knownCommands.get(cmd.getName().toLowerCase()).toString().contains(pl.getName())) {
            knownCommands.remove(cmd.getName());
        }
        for (String alias : cmd.getAliases()){
            if(knownCommands.containsKey("xessentials:"+alias) && knownCommands.get("xessentials:"+alias).toString().contains(pl.getName())){
                knownCommands.remove("xessentials:"+alias);
            }
            if(knownCommands.containsKey(alias) && knownCommands.get(alias).toString().contains(pl.getName())){
                knownCommands.remove(alias);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:xEssentials-deprecated-bukkit    文件:CommandManager.java   
/**
 * returns true if the command is registered inside xEssentials otherwise false
 * 
 * @author xize
 * @param cmd - the command
 * @return boolean
 */
public boolean isRegistered(String cmd) {
    try {
        Object result = getPrivateField(Bukkit.getServer().getPluginManager(), "commandMap");
        SimpleCommandMap commandMap = (SimpleCommandMap) result;
        Object map = getPrivateField(commandMap, "knownCommands");
        @SuppressWarnings("unchecked")
        HashMap<String, Command> knownCommands = (HashMap<String, Command>) map;
        if(knownCommands.containsKey("xessentials"+":"+cmd) || (knownCommands.containsKey(cmd) && knownCommands.get(cmd).toString().contains(pl.getName()))) {
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}
项目:xEssentials-deprecated-bukkit    文件:CommandManager.java   
/**
 * re-registers the command in the plugin
 * 
 * @author zeeveener, xize
 * @param cmd - the command
 */
@SuppressWarnings("unchecked")
public void registerBukkitCommand(PluginCommand cmd) {
    try {
        Object result = getPrivateField(Bukkit.getServer().getPluginManager(), "commandMap");
        SimpleCommandMap commandMap = (SimpleCommandMap) result;
        Object map = getPrivateField(commandMap, "knownCommands");
        HashMap<String, Command> knownCommands = (HashMap<String, Command>) map;
        knownCommands.put("xessentials:"+cmd.getName(), cmd);
        knownCommands.put(cmd.getName(), cmd);
        List<String> aliases = (List<String>)pl.getDescription().getCommands().get(cmd.getName()).get("aliases");
        for(String alias : aliases){
            if(!knownCommands.containsKey("xessentials:"+alias)){
                knownCommands.put("xessentials:"+alias, cmd);
            }
            if(!knownCommands.containsKey(alias)){
                knownCommands.put(alias, cmd);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:AdminAid    文件:CommandUtilities.java   
public static void unregisterBukkitCommand(PluginCommand cmd) {
    try {
        Object result = getPrivateField(Bukkit.getServer().getPluginManager(), "commandMap");
        SimpleCommandMap commandMap = (SimpleCommandMap) result;
        Object map = getPrivateField(commandMap, "knownCommands");
        @SuppressWarnings("unchecked")
        HashMap<String, Command> knownCommands = (HashMap<String, Command>) map;
        knownCommands.remove(cmd.getName());
        for (String alias : cmd.getAliases()) {
            if(knownCommands.containsKey(alias) && knownCommands.get(alias).toString().contains(Bukkit.getName())) {
                knownCommands.remove(alias);
            }
        }
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}
项目:EscapeLag    文件:MonitorUtils.java   
public static Map<String, MonitorRecord> getCommandTimingsByPlugin(Plugin plg) {
    Map<String, MonitorRecord> record = new HashMap<>();
    if (plg == null) {
        return record;
    }
    try {
        SimpleCommandMap simpleCommandMap = Reflection
                .getField(SimplePluginManager.class, "commandMap", SimpleCommandMap.class)
                .get(Bukkit.getPluginManager());
        for (Command command : simpleCommandMap.getCommands()) {
            if (command instanceof PluginCommand) {
                PluginCommand pluginCommand = (PluginCommand) command;
                if (plg.equals(pluginCommand.getPlugin())) {
                    FieldAccessor<CommandExecutor> commandField = Reflection.getField(PluginCommand.class,
                            "executor", CommandExecutor.class);
                    CommandExecutor executor = commandField.get(pluginCommand);
                    if (executor instanceof CommandInjector) {
                        CommandInjector commandInjector = (CommandInjector) executor;
                        record = mergeRecordMap(record, commandInjector.getMonitorRecordMap());
                    }

                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return record;
}
项目:PetBlocks    文件:SimpleCommandExecutor.java   
/**
 * Registers the dynamic command.
 *
 * @param command command
 */
private void registerDynamicCommand(String command) {
    try {
        final Class<?> clazz = Class.forName("org.bukkit.craftbukkit.VERSION.CraftServer".replace("VERSION", getServerVersion()));
        final Object server = clazz.cast(Bukkit.getServer());
        final SimpleCommandMap map = (SimpleCommandMap) server.getClass().getDeclaredMethod("getCommandMap").invoke(server);
        map.register(command, this);
    } catch (final Exception ex) {
        Bukkit.getLogger().log(Level.WARNING, "Cannot register dynamic command.", ex);
    }
}
项目:SamaGamesCore    文件:CommandBlocker.java   
private static void removeCommand(String prefix, String... str) throws NoSuchFieldException, NoSuchMethodException, IllegalAccessException, InvocationTargetException
{
    SimpleCommandMap scm = getCommandMap();
    Map knownCommands = (Map) Reflection.getValue(scm, true, "knownCommands");

    for (String cmd : str)
    {
        if (cmd.equals("*"))
        {
            for (String knownCommand : new HashSet<String>(knownCommands.keySet()))
            {
                if (knownCommand.startsWith(prefix))
                {
                    knownCommands.remove(knownCommand);

                    if (knownCommands.containsKey(":") && knownCommands.containsKey(knownCommand.split(":")[1]))
                        knownCommands.remove(knownCommand.split(":")[1]);
                }
            }
        }
        else
        {
            if (knownCommands.containsKey(cmd))
                knownCommands.remove(cmd);

            if (knownCommands.containsKey(prefix + ":" + cmd))
                knownCommands.remove(prefix + ":" + cmd);
        }
    }
}
项目:SamaGamesCore    文件:CommandBlocker.java   
private static SimpleCommandMap getCommandMap() throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
{
    Class<?> craftServerClass = Reflection.getOBCClass("CraftServer");
    Method getCommandMapMethod = craftServerClass.getMethod("getCommandMap");

    return (SimpleCommandMap) getCommandMapMethod.invoke(craftServerClass.cast(Bukkit.getServer()));
}
项目:AstralEdit    文件:SimpleCommandExecutor.java   
/**
 * Registers the dynamic command
 *
 * @param command command
 */
private void registerDynamicCommand(String command) {
    try {
        final Class<?> clazz = Class.forName("org.bukkit.craftbukkit.VERSION.CraftServer".replace("VERSION", getServerVersion()));
        final Object server = clazz.cast(Bukkit.getServer());
        final SimpleCommandMap map = (SimpleCommandMap) server.getClass().getDeclaredMethod("getCommandMap").invoke(server);
        map.register(command, this);
    } catch (final Exception ex) {
        AstralEditPlugin.logger().log(Level.WARNING, "Cannot register dynamic command.", ex);
    }
}
项目:Bukkit-Utilities    文件:CommandManager.java   
private static CommandMap getCommandMap() {
  if (!(Bukkit.getPluginManager() instanceof SimplePluginManager)) throw new IllegalStateException("PluginManager instance is not SimplePluginManager");
  try {
    Field field = SimplePluginManager.class.getDeclaredField("commandMap");
    field.setAccessible(true);
    return (SimpleCommandMap) field.get(Bukkit.getPluginManager());
  } catch (IllegalAccessException | NoSuchFieldException excepted) {
    excepted.printStackTrace();
  }
  return null;
}
项目:Pokecraft    文件:MajorCommand.java   
public MajorCommand(String name) {
    super(name);
    this.cm = new CommandManager(this);
    try {
        SimpleCommandMap smp = (SimpleCommandMap) getOBC("CraftServer")
                .getMethod("getCommandMap").invoke(Bukkit.getServer());
        smp.register(name, this);
        scm = smp;
        register(smp);
    } catch (Exception e) {

    }
}
项目:Karus-Commons    文件:ProxiedCommandMap.java   
public ProxiedCommandMap(Server server) {
    try {
        Field field = server.getClass().getDeclaredField("commandMap");
        field.setAccessible(true);
        map = (SimpleCommandMap) field.get(server);

    } catch (ReflectiveOperationException | ClassCastException e) {
        throw new IllegalArgumentException("If you are reading this message, you're screwed.", e);
    }
}
项目:Thermos-Bukkit    文件:SimplePluginManager.java   
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
    server = instance;
    this.commandMap = commandMap;

    defaultPerms.put(true, new HashSet<Permission>());
    defaultPerms.put(false, new HashSet<Permission>());
}
项目:LagMonitor    文件:CommandInjector.java   
public static void inject(Plugin toInjectPlugin) {
        PluginManager pluginManager = Bukkit.getPluginManager();
        SimpleCommandMap commandMap = Reflection
                .getField(SimplePluginManager.class, "commandMap", SimpleCommandMap.class).get(pluginManager);
        for (Command command : commandMap.getCommands()) {
            if (command instanceof PluginCommand) {
                PluginIdentifiableCommand pluginCommand = (PluginIdentifiableCommand) command;
                Plugin plugin = pluginCommand.getPlugin();
                if (plugin.equals(toInjectPlugin)) {
                    FieldAccessor<CommandExecutor> executorField = Reflection
                            .getField(PluginCommand.class, "executor", CommandExecutor.class);
                    FieldAccessor<TabCompleter> completerField = Reflection
                            .getField(PluginCommand.class, "completer", TabCompleter.class);

                    CommandExecutor executor = executorField.get(pluginCommand);
                    TabCompleter completer = completerField.get(pluginCommand);

                    CommandInjector commandInjector = new CommandInjector(executor, completer);

                    executorField.set(pluginCommand, commandInjector);
                    completerField.set(pluginCommand, commandInjector);
                }
            }

            //idea: inject also vanilla commands?
//            if (command instanceof VanillaCommand) {
//
//            }
        }
    }
项目:LagMonitor    文件:CommandInjector.java   
public static void uninject(Plugin toUninject) {
    PluginManager pluginManager = Bukkit.getPluginManager();
    SimpleCommandMap commandMap = Reflection
            .getField(SimplePluginManager.class, "commandMap", SimpleCommandMap.class).get(pluginManager);
    for (Command command : commandMap.getCommands()) {
        if (command instanceof PluginCommand) {
            PluginIdentifiableCommand pluginCommand = (PluginIdentifiableCommand) command;
            Plugin plugin = pluginCommand.getPlugin();
            if (plugin.equals(toUninject)) {
                FieldAccessor<CommandExecutor> executorField = Reflection
                        .getField(PluginCommand.class, "executor", CommandExecutor.class);
                FieldAccessor<TabCompleter> completerField = Reflection
                        .getField(PluginCommand.class, "completer", TabCompleter.class);

                CommandExecutor executor = executorField.get(pluginCommand);
                if (executor instanceof CommandInjector) {
                    executorField.set(pluginCommand, ((CommandInjector) executor).originalExecutor);
                }

                TabCompleter completer = completerField.get(pluginCommand);
                if (completer instanceof CommandInjector) {
                    completerField.set(pluginCommand, ((CommandInjector) completer).originalCompleter);
                }
            }
        }
    }
}
项目:Pokkit    文件:PokkitPluginManager.java   
/**
 * Creates the Bukkit plugin manager.
 *
 * @param nukkit
 *            The Nukkit plugin manager.
 * @param commandRegistryHack
 *            A SimpleCommandMap instance that we are NOT going to use, and
 *            is here only because WorldEdit expects it to be present in
 *            this class...
 */
public PokkitPluginManager(cn.nukkit.plugin.PluginManager nukkit, SimpleCommandMap commandRegistryHack) {
    this.nukkit = Objects.requireNonNull(nukkit);
    this.commandMap = Objects.requireNonNull(commandRegistryHack, "commandRegistryHack");
    this.eventManager = new BukkitEventManager();

    // Register plugin loader, then retrieve it back
    if (!this.nukkit.registerInterface(PokkitPluginLoader.class)) {
        throw new RuntimeException("Loader not registered");
    }
    this.pluginLoader = PokkitPluginLoader.getInstanceBack();
}
项目:WhiteEggCore    文件:CommandFactory.java   
/**
 * コマンドの登録
 *
 * @param prefix   prefix
 * @param instance PluginCommand
 */
public static void registerCommand(String prefix, PluginCommand instance) {
    try {
        Method method = Bukkit.getServer().getClass().getMethod("getCommandMap");
        SimpleCommandMap map = SimpleCommandMap.class.cast(method.invoke(Bukkit.getServer()));
        map.register(prefix, instance);
    } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
        e.printStackTrace();
    }
}
项目:CauldronGit    文件:SimplePluginManager.java   
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
    server = instance;
    this.commandMap = commandMap;

    defaultPerms.put(true, new HashSet<Permission>());
    defaultPerms.put(false, new HashSet<Permission>());
}
项目:Peacecraft    文件:BukkitCommandManager.java   
@SuppressWarnings("unchecked")
private static Map<String, org.bukkit.command.Command> getCommands(CommandMap map) {
    try {
        Field f = SimpleCommandMap.class.getDeclaredField("knownCommands");
        f.setAccessible(true);
        return (Map<String, org.bukkit.command.Command>) f.get(map);
    } catch(Exception e) {
        ModuleManager.getLogger().log(Level.SEVERE, "Failed to get commands.", e);
        return null;
    }
}
项目:LagMonitor    文件:CommandInjector.java   
public static void inject(Plugin toInjectPlugin) {
        PluginManager pluginManager = Bukkit.getPluginManager();
        SimpleCommandMap commandMap = Reflection
                .getField(SimplePluginManager.class, "commandMap", SimpleCommandMap.class).get(pluginManager);
        for (Command command : commandMap.getCommands()) {
            if (command instanceof PluginCommand) {
                PluginIdentifiableCommand pluginCommand = (PluginIdentifiableCommand) command;
                Plugin plugin = pluginCommand.getPlugin();
                if (plugin.equals(toInjectPlugin)) {
                    FieldAccessor<CommandExecutor> executorField = Reflection
                            .getField(PluginCommand.class, "executor", CommandExecutor.class);
                    FieldAccessor<TabCompleter> completerField = Reflection
                            .getField(PluginCommand.class, "completer", TabCompleter.class);

                    CommandExecutor executor = executorField.get(pluginCommand);
                    TabCompleter completer = completerField.get(pluginCommand);

                    CommandInjector commandInjector = new CommandInjector(executor, completer);

                    executorField.set(pluginCommand, commandInjector);
                    completerField.set(pluginCommand, commandInjector);
                }
            }

            //idea: inject also vanilla commands?
//            if (command instanceof VanillaCommand) {
//
//            }
        }
    }
项目:LagMonitor    文件:CommandInjector.java   
public static void uninject(Plugin toUninject) {
    PluginManager pluginManager = Bukkit.getPluginManager();
    SimpleCommandMap commandMap = Reflection
            .getField(SimplePluginManager.class, "commandMap", SimpleCommandMap.class).get(pluginManager);
    for (Command command : commandMap.getCommands()) {
        if (command instanceof PluginCommand) {
            PluginIdentifiableCommand pluginCommand = (PluginIdentifiableCommand) command;
            Plugin plugin = pluginCommand.getPlugin();
            if (plugin.equals(toUninject)) {
                FieldAccessor<CommandExecutor> executorField = Reflection
                        .getField(PluginCommand.class, "executor", CommandExecutor.class);
                FieldAccessor<TabCompleter> completerField = Reflection
                        .getField(PluginCommand.class, "completer", TabCompleter.class);

                CommandExecutor executor = executorField.get(pluginCommand);
                if (executor instanceof CommandInjector) {
                    executorField.set(pluginCommand, ((CommandInjector) executor).originalExecutor);
                }

                TabCompleter completer = completerField.get(pluginCommand);
                if (completer instanceof CommandInjector) {
                    completerField.set(pluginCommand, ((CommandInjector) completer).originalCompleter);
                }
            }
        }
    }
}
项目:Cauldron    文件:SimplePluginManager.java   
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
    server = instance;
    this.commandMap = commandMap;

    defaultPerms.put(true, new HashSet<Permission>());
    defaultPerms.put(false, new HashSet<Permission>());
}
项目:Cauldron    文件:SimplePluginManager.java   
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
    server = instance;
    this.commandMap = commandMap;

    defaultPerms.put(true, new HashSet<Permission>());
    defaultPerms.put(false, new HashSet<Permission>());
}
项目:Cauldron    文件:SimplePluginManager.java   
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
    server = instance;
    this.commandMap = commandMap;

    defaultPerms.put(true, new HashSet<Permission>());
    defaultPerms.put(false, new HashSet<Permission>());
}
项目:Almura-API    文件:SimplePluginManager.java   
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
    server = instance;
    this.commandMap = commandMap;

    defaultPerms.put(true, new HashSet<Permission>());
    defaultPerms.put(false, new HashSet<Permission>());
}
项目:Spigot-API    文件:SimplePluginManager.java   
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
    server = instance;
    this.commandMap = commandMap;

    defaultPerms.put(true, new HashSet<Permission>());
    defaultPerms.put(false, new HashSet<Permission>());
}
项目:Bukkit-JavaDoc    文件:SimplePluginManager.java   
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
    server = instance;
    this.commandMap = commandMap;

    defaultPerms.put(true, new HashSet<Permission>());
    defaultPerms.put(false, new HashSet<Permission>());
}
项目:SuperSkyBros    文件:PropertiesManager.java   
public PropertiesManager() {
    try {
        commandMap = (SimpleCommandMap) Bukkit.getServer().getClass().getDeclaredMethod("getCommandMap").invoke(Bukkit.getServer());
        Object obj = Bukkit.getServer().getClass().getDeclaredMethod("getServer").invoke(Bukkit.getServer());
        propertyManager = obj.getClass().getDeclaredMethod("getPropertyManager").invoke(obj);
        currentVersion = propertyManager.getClass().getPackage().getName();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
项目:Uranium    文件:CraftServer.java   
public SimpleCommandMap getCommandMap() {
    return commandMap;
}