1
0
mirror of https://e.coding.net/circlecloud/Residence.git synced 2025-11-26 22:06:07 +00:00

complete all command...

Signed-off-by: 502647092 <jtb1@163.com>
This commit is contained in:
502647092
2015-09-24 18:11:57 +08:00
parent 1cffbc7687
commit d62a7a1e57
37 changed files with 2156 additions and 0 deletions

View File

@@ -0,0 +1,164 @@
package com.bekvon.bukkit.residence.commandsub;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.ChatColor;
import org.bukkit.Location;
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.permissions.PermissionGroup;
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 cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandSelect extends BaseCommand {
Residence plugin;
public CommandSelect(final Residence plugin) {
super("select");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setPermission("residence.select");
}
@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 PermissionGroup group = plugin.getPermissionManager().getGroup(player);
final SelectionManager smanager = plugin.getSelectionManager();
if (!group.selectCommandAccess() && !resadmin) {
player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled"));
return;
}
if (!group.canCreateResidences() && group.getMaxSubzoneDepth() <= 0 && !resadmin) {
player.sendMessage(ChatColor.RED + language.getPhrase("SelectDiabled"));
return;
}
if (args.length == 1) {
if (args[0].equals("size") || args[0].equals("cost")) {
if (smanager.hasPlacedBoth(player.getName())) {
try {
smanager.showSelectionInfo(player);
return;
} catch (final Exception ex) {
Logger.getLogger(Residence.class.getName()).log(Level.SEVERE, null, ex);
return;
}
} else if (smanager.worldEdit(player)) {
try {
smanager.showSelectionInfo(player);
return;
} catch (final Exception ex) {
Logger.getLogger(Residence.class.getName()).log(Level.SEVERE, null, ex);
return;
}
}
} else if (args[0].equals("vert")) {
smanager.vert(player, resadmin);
return;
} else if (args[0].equals("sky")) {
smanager.sky(player, resadmin);
return;
} else if (args[0].equals("bedrock")) {
smanager.bedrock(player, resadmin);
return;
} else if (args[0].equals("coords")) {
final Location playerLoc1 = smanager.getPlayerLoc1(player.getName());
if (playerLoc1 != null) {
player.sendMessage(ChatColor.GREEN + language.getPhrase("Primary.Selection") + ":" + ChatColor.AQUA + " (" + playerLoc1.getBlockX() + ", " + playerLoc1.getBlockY() + ", "
+ playerLoc1.getBlockZ() + ")");
}
final Location playerLoc2 = smanager.getPlayerLoc2(player.getName());
if (playerLoc2 != null) {
player.sendMessage(ChatColor.GREEN + language.getPhrase("Secondary.Selection") + ":" + ChatColor.AQUA + " (" + playerLoc2.getBlockX() + ", " + playerLoc2.getBlockY() + ", "
+ playerLoc2.getBlockZ() + ")");
}
return;
} else if (args[0].equals("chunk")) {
smanager.selectChunk(player);
return;
} else if (args[0].equals("worldedit")) {
if (smanager.worldEdit(player)) {
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("SelectionSuccess"));
}
return;
}
} else if (args.length == 2) {
if (args[0].equals("expand")) {
int amount;
try {
amount = Integer.parseInt(args[1]);
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount"));
return;
}
smanager.modify(player, false, amount);
return;
} else if (args[0].equals("shift")) {
int amount;
try {
amount = Integer.parseInt(args[1]);
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount"));
return;
}
smanager.modify(player, true, amount);
return;
}
}
if (args.length > 0 && args[0].equals("residence")) {
String resName;
String areaName;
ClaimedResidence res = null;
if (args.length > 1) {
res = rmanager.getByName(args[1]);
} else {
res = rmanager.getByLoc(player.getLocation());
}
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
resName = res.getName();
CuboidArea area = null;
if (args.length > 2) {
area = res.getArea(args[2]);
areaName = args[2];
} else {
areaName = res.getAreaIDbyLoc(player.getLocation());
area = res.getArea(areaName);
}
if (area != null) {
smanager.placeLoc1(player, area.getHighLoc());
smanager.placeLoc2(player, area.getLowLoc());
player.sendMessage(ChatColor.GREEN + language.getPhrase("SelectionArea", ChatColor.GOLD + areaName + ChatColor.GREEN + "." + ChatColor.GOLD + resName + ChatColor.GREEN));
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("AreaNonExist"));
}
return;
} else {
try {
smanager.selectBySize(player, Integer.parseInt(args[0]), Integer.parseInt(args[1]), Integer.parseInt(args[2]));
return;
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("SelectionFail"));
return;
}
}
}
}