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);
}
}
}
}
}
CommandInjector.java 文件源码
java
阅读 29
收藏 0
点赞 0
评论 0
项目:LagMonitor
作者:
评论列表
文章目录