/* * Copyright (c) PikaMug and contributors * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package me.pikamug.quests.commands.questadmin.subcommands; import me.pikamug.quests.BukkitQuestsPlugin; import me.pikamug.quests.commands.BukkitQuestsSubCommand; import me.pikamug.quests.player.Quester; import me.pikamug.quests.util.BukkitLang; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.Collections; import java.util.List; import java.util.UUID; public class BukkitQuestadminTakepointsCommand extends BukkitQuestsSubCommand { private final BukkitQuestsPlugin plugin; public BukkitQuestadminTakepointsCommand(BukkitQuestsPlugin plugin) { this.plugin = plugin; } @Override public String getName() { return "takepoints"; } @Override public String getNameI18N() { return BukkitLang.get("COMMAND_QUESTADMIN_TAKEPOINTS"); } @Override public String getDescription() { return BukkitLang.get("COMMAND_QUESTADMIN_TAKEPOINTS_HELP"); } @Override public String getPermission() { return "quests.admin.takepoints"; } @Override public String getSyntax() { return "/questadmin takepoints"; } @Override public int getMaxArguments() { return 3; } @Override public void execute(CommandSender cs, String[] args) { if (args.length == 1) { // Shows command usage return; } if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.takepoints")) { OfflinePlayer target = getOfflinePlayer(args[1]); if (target == null) { try { target = Bukkit.getOfflinePlayer(UUID.fromString(args[1])); } catch (final IllegalArgumentException e) { cs.sendMessage(ChatColor.YELLOW + BukkitLang.get("playerNotFound")); return; } } final int points; try { points = Integer.parseInt(args[2]); } catch (final NumberFormatException e) { cs.sendMessage(ChatColor.YELLOW + BukkitLang.get("inputNum")); return; } final Quester quester = plugin.getQuester(target.getUniqueId()); final int newPoints = quester.getQuestPoints() - Math.abs(points); if (newPoints < 0) { cs.sendMessage(ChatColor.RED + BukkitLang.get("questEditorPositiveAmount")); } else { quester.setQuestPoints(quester.getQuestPoints() - Math.abs(points)); String msg1 = BukkitLang.get("takeQuestPoints").replace("", BukkitLang.get("questPoints")); msg1 = msg1.replace("", ChatColor.GREEN + target.getName() + ChatColor.GOLD); msg1 = msg1.replace("", ChatColor.DARK_PURPLE + "" + points + ChatColor.GOLD); cs.sendMessage(ChatColor.GOLD + msg1); if (target.isOnline()) { final Player p = (Player)target; String msg2 = BukkitLang.get(p, "questPointsTaken").replace("", BukkitLang.get("questPoints")); msg2 = msg2.replace("", ChatColor.GREEN + cs.getName() + ChatColor.GOLD); msg2 = msg2.replace("", ChatColor.DARK_PURPLE + "" + points + ChatColor.GOLD); p.sendMessage(ChatColor.GREEN + msg2); } quester.saveData(); } } else { cs.sendMessage(ChatColor.RED + BukkitLang.get("noPermission")); } } @Override public List tabComplete(CommandSender commandSender, String[] args) { if (args.length == 2) { return null; // Shows online players } return Collections.emptyList(); } }