1
0
mirror of https://e.coding.net/circlecloud/Residence.git synced 2025-11-26 22:06:07 +00:00
Files
Residence/src/main/java/com/bekvon/bukkit/residence/commandsub/CommandArea.java
502647092 d62a7a1e57 complete all command...
Signed-off-by: 502647092 <jtb1@163.com>
2015-09-24 18:11:57 +08:00

94 lines
3.1 KiB
Java

package com.bekvon.bukkit.residence.commandsub;
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.CuboidArea;
import com.bekvon.bukkit.residence.protection.ResidenceManager;
import com.bekvon.bukkit.residence.selection.SelectionManager;
import com.bekvon.bukkit.residence.text.Language;
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandArea extends BaseCommand {
Residence plugin;
public CommandArea(final Residence plugin) {
super("area");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(3);
setPossibleArguments("<list|listall|add|remove|replace> <领地名称> [区域名称]");
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final boolean resadmin = (command != null);
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
final SelectionManager smanager = plugin.getSelectionManager();
final WorldEditPlugin wep = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
int page = 1;
try {
if (args.length > 0) {
page = Integer.parseInt(args[args.length - 1]);
}
} catch (final Exception ex) {
}
final String subcmd = args[0];
final ClaimedResidence res = rmanager.getByName(args[1]);
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
if (wep != null) {
if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) {
smanager.worldEdit(player);
}
}
if (args.length == 2) {
switch (subcmd) {
case "list":
res.printAreaList(player, page);
return;
case "listall":
res.printAdvancedAreaList(player, page);
return;
}
}
if (args.length == 3) {
switch (subcmd) {
case "add":
if (smanager.hasPlacedBoth(player.getName())) {
res.addArea(player, new CuboidArea(smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName())), args[2], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints"));
}
return;
case "remove":
res.removeArea(player, args[2], resadmin);
return;
case "replace":
if (smanager.hasPlacedBoth(player.getName())) {
res.replaceArea(player, new CuboidArea(smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName())), args[2], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints"));
}
return;
}
}
}
}