/** * Get the right {@link ArgumentStack}. * * @param parameter the parameter * @param existing the existing scoped context * @return the context to use */ private static ArgumentStack getScopedContext(Parameter parameter, ArgumentStack existing) { if (parameter.getFlag() != null) { CommandContext context = existing.getContext(); if (parameter.isValueFlag()) { return new StringArgumentStack(context, context.getFlag(parameter.getFlag()), false); } else { String v = context.hasFlag(parameter.getFlag()) ? "true" : "false"; return new StringArgumentStack(context, v, true); } } return existing; }
public Optional<String> tryFlag(char ch) { return Optional.ofNullable(getFlag(ch)); }
public @Nullable String flagOrNull(char ch, Iterable<String> choices) throws SuggestException { suggestFlag(ch, choices); return getFlag(ch); }
@Command(aliases = {"banip", "ipban"}, usage = "<target> [reason...]", desc = "Ban an IP address", flags = "st:", min = 1, max = -1) @CommandPermissions({"commandbook.bans.ban.ip"}) public void banIP(CommandContext args, CommandSender sender) throws CommandException { String message = args.argsLength() >= 2 ? args.getJoinedStrings(1) : null; long endDate = args.hasFlag('t') ? InputUtil.TimeParser.matchFutureDate(args.getFlag('t')) : 0L; String addr = args.getString(0) .replace("\r", "") .replace("\n", "") .replace("\0", "") .replace("\b", ""); // Need to kick + log for (Player player : CommandBook.server().getOnlinePlayers()) { if (player.getAddress().getAddress().getHostAddress().equals(addr)) { player.kickPlayer(message == null ? "Banned!" : message); getBanDatabase().logKick(player, sender, message); } } getBanDatabase().ban(null, null, addr, sender, message, endDate); sender.sendMessage(ChatColor.YELLOW + addr + " banned."); if (!getBanDatabase().save()) { sender.sendMessage(ChatColor.RED + "Bans database failed to save. See console."); } }
/** * Gets the world from the given flag, or falling back to the the current player * if the sender is a player, otherwise reporting an error. * * @param args the arguments * @param sender the sender * @param flag the flag (such as 'w') * @return a world * @throws CommandException on error */ protected static World checkWorld(CommandContext args, Actor sender, char flag) throws CommandException { if (args.hasFlag(flag)) { return WorldGuard.getInstance().getPlatform().getMatcher().matchWorld(sender, args.getFlag(flag)); } else { if (sender instanceof LocalPlayer) { return ((LocalPlayer) sender).getWorld(); } else { throw new CommandException("Please specify " + "the world with -" + flag + " world_name."); } } }
Iterable<Player> targets; if (args.hasFlag('p')) { targets = InputUtil.PlayerParser.matchPlayers(sender, args.getFlag('p')); } else { targets = Lists.newArrayList(PlayerUtil.checkPlayer(sender));
public void list(CommandContext args, CommandSender sender) throws CommandException { World world = null; if (getManager().isPerWorld()) { if (args.hasFlag('w')) { world = InputUtil.LocationParser.matchWorld(sender, args.getFlag('w')); } else { world = PlayerUtil.checkPlayer(sender).getWorld(); } if (world == null) throw new CommandException("Error finding world to use!"); } getListResult().display(sender, getManager().getLocations(world), args.getInteger(0, 1)); }
public void profile(final CommandContext args, final Actor sender) throws CommandException, AuthorizationException { Predicate<ThreadInfo> threadFilter; String threadName = args.getFlag('t'); final boolean pastebin;
String group = args.getFlag('g'); RegionGroupFlag groupFlag = foundFlag.getRegionGroupFlag();
ownedBy = args.getFlag('p'); } else {
String playerName = args.getString(0); InetAddress banAddress = null; long endDate = args.hasFlag('t') ? InputUtil.TimeParser.matchFutureDate(args.getFlag('t')) : 0L; String message = args.argsLength() >= 2 ? args.getJoinedStrings(1) : null; boolean kicked = false;