package com.bekvon.bukkit.residence.commandsub; import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandException; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.bekvon.bukkit.residence.ResidenceMain; import com.bekvon.bukkit.residence.protection.ClaimedResidence; import com.bekvon.bukkit.residence.protection.ResidenceManager; import com.bekvon.bukkit.residence.text.Language; import cn.citycraft.PluginHelper.commands.BaseCommand; public class CommandRemove extends BaseCommand { ResidenceMain plugin; public CommandRemove(final ResidenceMain plugin) { super("remove", "delete"); this.plugin = plugin; } @Override public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { Player player = null; final boolean resadmin = (command != null); final ResidenceManager rmanager = plugin.getResidenceManager(); final Map deleteConfirm = plugin.getDeleteConfirm(); final Language language = plugin.getLanguage(); if (sender instanceof Player) { player = (Player) sender; final String area = rmanager.getNameByLoc(player.getLocation()); if (area != null) { final ClaimedResidence res = rmanager.getByName(area); if (res.getParent() != null) { final String[] split = area.split("\\."); final String words = split[split.length - 1]; if (!deleteConfirm.containsKey(player.getName()) || !area.equalsIgnoreCase(deleteConfirm.get(player.getName()))) { player.sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); deleteConfirm.put(player.getName(), area); } else { rmanager.removeResidence(player, area, resadmin); } return; } else { if (!deleteConfirm.containsKey(player.getName()) || !area.equalsIgnoreCase(deleteConfirm.get(player.getName()))) { player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + area + ChatColor.RED)); deleteConfirm.put(player.getName(), area); } else { rmanager.removeResidence(player, area, resadmin); } return; } } } if (args.length != 1) { return; } if (player != null) { if (!deleteConfirm.containsKey(player.getName()) || !args[0].equalsIgnoreCase(deleteConfirm.get(player.getName()))) { String words = null; if (rmanager.getByName(args[0]) != null) { final ClaimedResidence res = rmanager.getByName(args[0]); if (res.getParent() != null) { final String[] split = args[0].split("\\."); words = split[split.length - 1]; } } if (words == null) { player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[0] + ChatColor.RED)); } else { player.sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); } deleteConfirm.put(player.getName(), args[0]); } else { rmanager.removeResidence(player, args[0], resadmin); } } else if (!deleteConfirm.containsKey("Console") || !args[0].equalsIgnoreCase(deleteConfirm.get("Console"))) { String words = null; if (rmanager.getByName(args[0]) != null) { final ClaimedResidence res = rmanager.getByName(args[1]); if (res.getParent() != null) { final String[] split = args[0].split("\\."); words = split[split.length - 1]; } } if (words == null) { Bukkit.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[0] + ChatColor.RED)); } else { Bukkit.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED)); } deleteConfirm.put("Console", args[0]); } else { rmanager.removeResidence(args[0]); } } }