private ICommandListener getListener(CommandSender sender) { if (sender instanceof Player) { return ((CraftPlayer) sender).getHandle(); } if (sender instanceof BlockCommandSender) { return ((CraftBlockCommandSender) sender).getTileEntity(); } if (sender instanceof CommandMinecart) { return ((EntityMinecartCommandBlock) ((CraftMinecartCommand) sender).getHandle()).getCommandBlock(); } if (sender instanceof RemoteConsoleCommandSender) { return RemoteControlCommandListener.getInstance(); } if (sender instanceof ConsoleCommandSender) { return ((CraftServer) sender.getServer()).getServer(); } if (sender instanceof ProxiedCommandSender) { return ((ProxiedNativeCommandSender) sender).getHandle(); } throw new IllegalArgumentException("Cannot make " + sender + " a vanilla command listener"); }
public static Object toNMSIComandSender(CommandSender s) { try { if (s instanceof Entity) { return getEntityByUUID(((Entity) s).getUniqueId()); } else if (s instanceof ConsoleCommandSender) { return getServer(); } else if (s instanceof RemoteConsoleCommandSender) { return getRemoteControlCommandListener(); } else if (s instanceof ProxiedCommandSender) { return getProxiedCommandSender((ProxiedCommandSender) s); } else if (s instanceof BlockCommandSender) { return getCommandBlockLogic(((BlockCommandSender) s).getBlock()); } else if (s instanceof CommandMinecart) { return getCommandBlockLogic((CommandMinecart) s); } return null; } catch (Exception e) { throw new RuntimeException(e); } }
private ICommandListener getListener(CommandSender sender) { if (sender instanceof Player) { return ((CraftPlayer) sender).getHandle(); } if (sender instanceof BlockCommandSender) { return ((CraftBlockCommandSender) sender).getTileEntity(); } if (sender instanceof CommandMinecart) { return ((EntityMinecartCommandBlock) ((CraftMinecartCommand) sender).getHandle()).getCommandBlock(); } if (sender instanceof RemoteConsoleCommandSender) { return ((DedicatedServer)MinecraftServer.getServer()).remoteControlCommandListener; } if (sender instanceof ConsoleCommandSender) { return ((CraftServer) sender.getServer()).getServer(); } if (sender instanceof ProxiedCommandSender) { return ((ProxiedNativeCommandSender) sender).getHandle(); } throw new IllegalArgumentException("Cannot make " + sender + " a vanilla command listener"); }
public static Object getProxiedCommandSender(ProxiedCommandSender s) { try { return craftProxiedCommandSenderGetHandlerMethod.invoke(s); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { throw new RuntimeException(e); } }
public static World getWorldByCommandSender(CommandSender sender) { if (sender instanceof Entity) { return ((Entity) sender).getWorld(); } else if (sender instanceof BlockCommandSender) { return ((BlockCommandSender) sender).getBlock().getWorld(); } else if (sender instanceof ProxiedCommandSender) { return getWorldByCommandSender(((ProxiedCommandSender) sender).getCaller()); } else { return null; } }
@Override public boolean onCommand(CommandSender commandSender, Command command, String commandLabel, String[] args) { if (commandSender instanceof Player) { return MainCommand.onCommand(BukkitUtil.getPlayer((Player) commandSender), args); } if (commandSender instanceof ConsoleCommandSender || commandSender instanceof ProxiedCommandSender || commandSender instanceof RemoteConsoleCommandSender) { return MainCommand.onCommand(ConsolePlayer.getConsole(), args); } return false; }