mirror of
https://e.coding.net/circlecloud/Residence.git
synced 2025-11-24 21:46:16 +00:00
98 lines
3.9 KiB
Java
98 lines
3.9 KiB
Java
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.Residence;
|
|
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 {
|
|
Residence plugin;
|
|
|
|
public CommandRemove(Residence plugin) {
|
|
super("remove", "delete");
|
|
this.plugin = plugin;
|
|
}
|
|
|
|
@Override
|
|
public void execute(CommandSender sender, Command command, String label, String[] args) throws CommandException {
|
|
Player player = null;
|
|
boolean resadmin = (command != null);
|
|
ResidenceManager rmanager = Residence.getResidenceManager();
|
|
Map<String, String> deleteConfirm = plugin.deleteConfirm;
|
|
Language language = Residence.getLanguage();
|
|
if (sender instanceof Player) {
|
|
player = (Player) sender;
|
|
if (args.length == 1) {
|
|
String area = rmanager.getNameByLoc(player.getLocation());
|
|
if (area != null) {
|
|
ClaimedResidence res = rmanager.getByName(area);
|
|
if (res.getParent() != null) {
|
|
String[] split = area.split("\\.");
|
|
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 != 2)
|
|
return;
|
|
if (player != null) {
|
|
if (!deleteConfirm.containsKey(player.getName()) || !args[1].equalsIgnoreCase(deleteConfirm.get(player.getName()))) {
|
|
String words = null;
|
|
if (rmanager.getByName(args[1]) != null) {
|
|
ClaimedResidence res = rmanager.getByName(args[1]);
|
|
if (res.getParent() != null) {
|
|
String[] split = args[1].split("\\.");
|
|
words = split[split.length - 1];
|
|
}
|
|
}
|
|
if (words == null)
|
|
player.sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[1] + ChatColor.RED));
|
|
else
|
|
player.sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED));
|
|
deleteConfirm.put(player.getName(), args[1]);
|
|
} else
|
|
rmanager.removeResidence(player, args[1], resadmin);
|
|
} else if (!deleteConfirm.containsKey("Console") || !args[1].equalsIgnoreCase(deleteConfirm.get("Console"))) {
|
|
String words = null;
|
|
if (rmanager.getByName(args[1]) != null) {
|
|
ClaimedResidence res = rmanager.getByName(args[1]);
|
|
if (res.getParent() != null) {
|
|
String[] split = args[1].split("\\.");
|
|
words = split[split.length - 1];
|
|
}
|
|
}
|
|
if (words == null)
|
|
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteConfirm", ChatColor.YELLOW + args[1] + ChatColor.RED));
|
|
else
|
|
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + language.getPhrase("DeleteSubzoneConfirm", ChatColor.YELLOW + words + ChatColor.RED));
|
|
deleteConfirm.put("Console", args[1]);
|
|
} else
|
|
rmanager.removeResidence(args[1]);
|
|
}
|
|
|
|
}
|