@Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { throw new NotEnoughArgumentsException(); } ess.getJails().setJail(args[0], user.getPlayer().getLocation()); user.sendMessage(_("§6Jail§c {0} §6has been set.", Util.sanitizeString(args[0]))); }
public static String formatString(final IUser user, final String permBase, final String input) { if (input == null) { return null; } String message; if (Permissions.hasPermission(user.getPlayer(), permBase + ".color")) { message = Util.replaceColor(input, REPLACE_COLOR_PATTERN); } else { message = Util.stripColor(input, VANILLA_COLOR_PATTERN); } if (Permissions.hasPermission(user.getPlayer(), permBase + ".magic")) { message = Util.replaceColor(message, REPLACE_MAGIC_PATTERN); } else { message = Util.stripColor(message, VANILLA_MAGIC_PATTERN); } if (Permissions.hasPermission(user.getPlayer(), permBase + ".format")) { message = Util.replaceColor(message, REPLACE_FORMAT_PATTERN); } else { message = Util.stripColor(message, VANILLA_FORMAT_PATTERN); } return message; }
public static String formatMessage(final IUser user, final String permBase, final String input) { if (input == null) { return null; } String message = formatString(user, permBase, input); if (!Permissions.hasPermission(user.getPlayer(), permBase + ".url")) { message = Util.blockURL(message); } return message; }
@Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { throw new NotEnoughArgumentsException(); } user.setDisplayNick(); final String message = _("helpOp", user.getDisplayName(), Util.stripFormat(getFinalArg(args, 0))); logger.log(Level.INFO, message); for (Player onlinePlayer : server.getOnlinePlayers()) { final IUser player = ess.getUser(onlinePlayer); if (!Permissions.HELPOP_RECEIVE.isAuthorized(player)) { continue; } player.sendMessage(message); } }
/** * Formats the amount of money like all other Essentials functions. Example: $100000 or $12345.67 * * @param amount The amount of money * @return Formatted money */ public static String format(double amount) { if (ess == null) { throw new RuntimeException(noCallBeforeLoad); } return Util.displayCurrency(amount, ess); }
//TODO: Implement charge costs: final Trade charge = new Trade("enchant-" + enchantmentName, ess); @Override protected void run(final IUser user, final String commandLabel, final String[] args) throws Exception { final ItemStack stack = user.getPlayer().getItemInHand(); if (stack == null) { throw new Exception(_("nothingInHand")); } if (args.length == 0) { final Set<String> enchantmentslist = new TreeSet<String>(); for (Map.Entry<String, Enchantment> entry : Enchantments.entrySet()) { final String enchantmentName = entry.getValue().getName().toLowerCase(Locale.ENGLISH); if (enchantmentslist.contains(enchantmentName) || Permissions.ENCHANT.isAuthorized(user, enchantmentName)) { enchantmentslist.add(entry.getKey()); //enchantmentslist.add(enchantmentName); } } throw new NotEnoughArgumentsException(_("enchantments", Util.joinList(enchantmentslist.toArray()))); } int level = -1; if (args.length > 1) { try { level = Integer.parseInt(args[1]); } catch (NumberFormatException ex) { level = -1; } } final boolean allowUnsafe = Permissions.ENCHANT_UNSAFE.isAuthorized(user); final Enchantment enchantment = getEnchantment(args[0], user); if (level < 0 || (!allowUnsafe && level > enchantment.getMaxLevel())) { level = enchantment.getMaxLevel(); } if (level == 0) { stack.removeEnchantment(enchantment); } else { if (allowUnsafe) { stack.addUnsafeEnchantment(enchantment, level); } else { stack.addEnchantment(enchantment, level); } } user.getPlayer().getInventory().setItemInHand(stack); user.getPlayer().updateInventory(); final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH); if (level == 0) { user.sendMessage(_("enchantmentRemoved", enchantmentName.replace('_', ' '))); } else { user.sendMessage(_("enchantmentApplied", enchantmentName.replace('_', ' '))); } }
@Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { throw new NotEnoughArgumentsException(); } if (args[0].equalsIgnoreCase("hand")) { final ItemStack item = user.getPlayer().getItemInHand(); if (item == null) { throw new Exception(_("repairInvalidType")); } if (!item.getEnchantments().isEmpty() && !Permissions.REPAIR_ENCHANTED.isAuthorized(user)) { throw new Exception(_("repairEnchanted")); } final String itemName = item.getType().toString().toLowerCase(Locale.ENGLISH); final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), ess); charge.isAffordableFor(user); repairItem(item); charge.charge(user); user.sendMessage(_("repair", itemName.replace('_', ' '))); } else if (args[0].equalsIgnoreCase("all")) { final Trade charge = new Trade("repair-all", ess); charge.isAffordableFor(user); final List<String> repaired = new ArrayList<String>(); repairItems(user.getPlayer().getInventory().getContents(), user, repaired); if (Permissions.REPAIR_ARMOR.isAuthorized(user)) { repairItems(user.getPlayer().getInventory().getArmorContents(), user, repaired); } if (repaired.isEmpty()) { throw new Exception(_("repairNone")); } else { user.sendMessage(_("repair", Util.joinList(repaired))); } charge.charge(user); } else { throw new NotEnoughArgumentsException(); } }
@Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { final Trade charge = new Trade(commandName, ess); charge.isAffordableFor(user); IUser player = user; String homeName = ""; String[] nameParts; if (args.length > 0) { nameParts = colon.split(args[0]); if (nameParts[0].length() == args[0].length() || !Permissions.HOME_OTHERS.isAuthorized(user)) { homeName = nameParts[0]; } else { player = ess.getUserMap().matchUser(nameParts[0], true); if (nameParts.length > 1) { homeName = nameParts[1]; } } } try { if ("bed".equalsIgnoreCase(homeName)) { final Location bed = player.getBedSpawnLocation(); if (bed != null && bed.getBlock().getType() == Material.BED_BLOCK) { user.getTeleport().teleport(bed, charge, TeleportCause.COMMAND); throw new NoChargeException(); } } goHome(user, player, homeName.toLowerCase(Locale.ENGLISH), charge); } catch (NotEnoughArgumentsException e) { Location bed = player.getBedSpawnLocation(); if (bed != null && bed.getBlock().getType() != Material.BED_BLOCK) { bed = null; } final Set<String> homes = player.getHomes(); if (homes.isEmpty() && player.equals(user)) { if (bed != null) { user.getTeleport().teleport(bed, charge, TeleportCause.COMMAND); throw new NoChargeException(); } user.getTeleport().respawn(charge, TeleportCause.COMMAND); } else if (homes.isEmpty()) { throw new Exception(player == user ? _("noHomeSet") : _("noHomeSetPlayer")); } else if (homes.size() == 1 && player.equals(user)) { goHome(user, player, homes.iterator().next(), charge); } else { if (bed != null) { homes.add("bed"); } user.sendMessage(_("homes", Util.joinList(homes))); } } throw new NoChargeException(); }
private void sellItem(IUser user, ItemStack is, String[] args, boolean isBulkSell) throws Exception { if (is == null || is.getType() == Material.AIR) { throw new Exception(_("itemSellAir")); } int id = is.getTypeId(); int amount = 0; if (args.length > 1) { amount = Integer.parseInt(args[1].replaceAll("[^0-9]", "")); if (args[1].startsWith("-")) { amount = -amount; } } double worth = ess.getWorth().getPrice(is); boolean stack = args.length > 1 && args[1].endsWith("s"); if (Double.isNaN(worth)) { throw new Exception(_("itemCannotBeSold")); } int max = 0; for (ItemStack s : user.getInventory().getContents()) { if (s == null) { continue; } if (s.getTypeId() != is.getTypeId()) { continue; } if (s.getDurability() != is.getDurability()) { continue; } if (!s.getEnchantments().equals(is.getEnchantments())) { continue; } max += s.getAmount(); } if (stack) { amount *= is.getType().getMaxStackSize(); } if (amount < 1) { amount += max; } if (amount > max || amount < 1) { if (!isBulkSell) { user.sendMessage(_("itemNotEnough1")); user.sendMessage(_("itemNotEnough2")); throw new Exception(_("itemNotEnough3")); } else { return; } } //TODO: Prices for Enchantments final ItemStack ris = is.clone(); ris.setAmount(amount); InventoryWorkaround.removeItem(user.getInventory(), true, true, ris); user.updateInventory(); Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth * amount, ess), user.getLocation(), ess); user.giveMoney(worth * amount); user.sendMessage(_("itemSold", Util.displayCurrency(worth * amount, ess), amount, is.getType().toString().toLowerCase(Locale.ENGLISH), Util.displayCurrency(worth, ess))); logger.log(Level.INFO, _("itemSoldConsole", user.getDisplayName(), is.getType().toString().toLowerCase(Locale.ENGLISH), Util.displayCurrency(worth * amount, ess), amount, Util.displayCurrency(worth, ess))); }