1
0
mirror of https://e.coding.net/circlecloud/Residence.git synced 2025-11-24 21:46:16 +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,93 @@
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;
}
}
}
}

View File

@@ -0,0 +1,54 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandBank extends BaseCommand {
Residence plugin;
public CommandBank(final Residence plugin) {
super("bank");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
setPossibleArguments("[deposit(存入)|withdraw(取出)] 金额");
}
@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 ClaimedResidence res = rmanager.getByName(plugin.getPlayerListener().getCurrentResidenceName(player.getName()));
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence"));
return;
}
int amount = 0;
try {
amount = Integer.parseInt(args[1]);
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount"));
return;
}
final String subcmd = args[0];
switch (subcmd) {
case "deposit":
res.getBank().deposit(player, amount, resadmin);
case "withdraw":
res.getBank().withdraw(player, amount, resadmin);
}
}
}

View File

@@ -0,0 +1,54 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandCheck extends BaseCommand {
Residence plugin;
public CommandCheck(final Residence plugin) {
super("check");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
setPossibleArguments("<领地名称> <权限> [玩家]");
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
String pname = player.getName();
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
if (args.length == 2 || args.length == 3) {
if (args.length == 3) {
pname = args[2];
}
final ClaimedResidence res = rmanager.getByName(args[0]);
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
if (!res.getPermissions().hasApplicableFlag(pname, args[1])) {
player.sendMessage(language.getPhrase("FlagCheckFalse",
ChatColor.YELLOW + args[0] + ChatColor.RED + "." + ChatColor.YELLOW + pname + ChatColor.RED + "." + ChatColor.YELLOW + args[0] + ChatColor.RED));
} else {
player.sendMessage(
language.getPhrase("FlagCheckTrue", ChatColor.GREEN + args[0] + ChatColor.YELLOW + "." + ChatColor.GREEN + pname + ChatColor.YELLOW + "." + ChatColor.YELLOW + args[0]
+ ChatColor.RED + "." + (res.getPermissions().playerHas(pname, res.getPermissions().getWorld(), args[1], false) ? ChatColor.GREEN + "TRUE" : ChatColor.RED + "FALSE")));
}
}
}
}

View File

@@ -0,0 +1,47 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandClearFlags extends BaseCommand {
Residence plugin;
public CommandClearFlags(final Residence plugin) {
super("clearflags");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(1);
setPossibleArguments("<领地名称>");
}
@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();
if (!resadmin) {
player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
return;
}
final ClaimedResidence area = rmanager.getByName(args[1]);
if (area != null) {
area.getPermissions().clearFlags();
player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagsCleared"));
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
}
}

View File

@@ -0,0 +1,53 @@
package com.bekvon.bukkit.residence.commandsub;
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.protection.ResidenceManager;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandCompass extends BaseCommand {
Residence plugin;
public CommandCompass(final Residence plugin) {
super("compass", "cp");
this.plugin = plugin;
setDescription("切换指南针方向");
setOnlyPlayerExecutable(true);
setPossibleArguments("[领地名称]");
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
if (args.length != 1) {
player.setCompassTarget(player.getWorld().getSpawnLocation());
player.sendMessage(ChatColor.GREEN + language.getPhrase("CompassTargetReset"));
return;
}
final String resname = args[0];
if (rmanager.getByName(resname) != null) {
if (rmanager.getByName(resname).getWorld().equalsIgnoreCase(player.getWorld().getName())) {
final Location low = rmanager.getByName(resname).getArea("main").getLowLoc();
final Location high = rmanager.getByName(resname).getArea("main").getHighLoc();
final Location mid = new Location(low.getWorld(), (low.getBlockX() + high.getBlockX()) / 2, (low.getBlockY() + high.getBlockY()) / 2, (low.getBlockZ() + high.getBlockZ()) / 2);
player.setCompassTarget(mid);
player.sendMessage(ChatColor.GREEN + language.getPhrase("CompassTargetSet", ChatColor.YELLOW + resname + ChatColor.GREEN));
}
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
}
}

View File

@@ -0,0 +1,48 @@
package com.bekvon.bukkit.residence.commandsub;
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.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 CommandCreate extends BaseCommand {
Residence plugin;
public CommandCreate(final Residence plugin) {
super("create", "new");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(1);
setPossibleArguments("<领地名称>");
}
@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) plugin.getServer().getPluginManager().getPlugin("WorldEdit");
if (wep != null) {
if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) {
smanager.worldEdit(player);
}
}
if (smanager.hasPlacedBoth(player.getName())) {
rmanager.addResidence(player, args[0], smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName()), resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints"));
}
}
}

View File

@@ -0,0 +1,37 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandCurrent extends BaseCommand {
Residence plugin;
public CommandCurrent(final Residence plugin) {
super("current");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
final String res = rmanager.getNameByLoc(player.getLocation());
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence"));
} else {
player.sendMessage(ChatColor.GREEN + language.getPhrase("InResidence", ChatColor.YELLOW + res + ChatColor.GREEN));
}
}
}

View File

@@ -0,0 +1,34 @@
package com.bekvon.bukkit.residence.commandsub;
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 cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandDefault extends BaseCommand {
Residence plugin;
public CommandDefault(final Residence plugin) {
super("default");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(1);
setPossibleArguments("<领地名称>");
}
@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 ClaimedResidence res = rmanager.getByName(args[0]);
res.getPermissions().applyDefaultFlags(player, resadmin);
}
}

View File

@@ -0,0 +1,33 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandGive extends BaseCommand {
Residence plugin;
public CommandGive(final Residence plugin) {
super("give");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
setPossibleArguments("<目标玩家> <赠送的领地>");
}
@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();
rmanager.giveResidence(player, args[1], args[0], resadmin);
}
}

View File

@@ -0,0 +1,53 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandGset extends BaseCommand {
Residence plugin;
public CommandGset(final Residence plugin) {
super("gset");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(3);
setPossibleArguments("<领地名称(不写则为所在领地)> <组名称> <权限> <权限状态>");
}
@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();
if (args.length == 3) {
final ClaimedResidence area = rmanager.getByLoc(player.getLocation());
if (area != null) {
area.getPermissions().setGroupFlag(player, args[0], args[1], args[2], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidArea"));
}
return;
} else if (args.length == 4) {
final ClaimedResidence area = rmanager.getByName(args[0]);
if (area != null) {
area.getPermissions().setGroupFlag(player, args[1], args[2], args[3], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
return;
}
}
}

View File

@@ -0,0 +1,45 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandInfo extends BaseCommand {
Residence plugin;
public CommandInfo(final Residence plugin) {
super("info");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
if (args.length == 0) {
final String area = rmanager.getNameByLoc(player.getLocation());
if (area != null) {
rmanager.printAreaInfo(area, player);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
} else {
if (args.length == 1) {
rmanager.printAreaInfo(args[0], player);
}
}
}
}

View File

@@ -0,0 +1,58 @@
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.permissions.PermissionGroup;
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 CommandKick extends BaseCommand {
Residence plugin;
public CommandKick(final Residence plugin) {
super("kick");
this.plugin = plugin;
setMinimumArguments(1);
setOnlyPlayerExecutable(true);
setPossibleArguments("<目标玩家>");
setDescription("把玩家T出当前领地!");
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
final PermissionGroup group = plugin.getPermissionManager().getGroup(player);
final Player targetplayer = Bukkit.getPlayer(args[0]);
if (targetplayer == null) {
return;
}
if (!group.hasKickAccess()) {
player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
return;
}
final ClaimedResidence res = rmanager.getByLoc(targetplayer.getLocation());
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
if (res.getOwner().equals(player.getName())) {
if (res.getPlayersInResidence().contains(targetplayer)) {
targetplayer.teleport(res.getOutsideFreeLoc(player.getLocation()));
targetplayer.sendMessage(ChatColor.RED + language.getPhrase("Kicked") + "!");
}
}
}
}

View File

@@ -0,0 +1,99 @@
package com.bekvon.bukkit.residence.commandsub;
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.LeaseManager;
import com.bekvon.bukkit.residence.protection.ResidenceManager;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandLease extends BaseCommand {
Residence plugin;
public CommandLease(final Residence plugin) {
super("?");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
setPossibleArguments("[renew/cost] [领地名]");
}
@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 LeaseManager leasemanager = plugin.getLeaseManager();
if (args.length == 1 || args.length == 2) {
if (args[0].equals("renew")) {
if (args.length == 2) {
leasemanager.renewArea(args[1], player);
} else {
leasemanager.renewArea(rmanager.getNameByLoc(player.getLocation()), player);
}
return;
} else if (args[0].equals("cost")) {
if (args.length == 2) {
final ClaimedResidence res = plugin.getResidenceManager().getByName(args[1]);
if (res == null || leasemanager.leaseExpires(args[1])) {
final int cost = leasemanager.getRenewCost(res);
player.sendMessage(ChatColor.YELLOW + language.getPhrase("LeaseRenewalCost", ChatColor.RED + args[1] + ChatColor.YELLOW + "." + ChatColor.RED + cost + ChatColor.YELLOW));
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire"));
}
return;
} else {
final String area = rmanager.getNameByLoc(player.getLocation());
final ClaimedResidence res = rmanager.getByName(area);
if (area == null || res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidArea"));
return;
}
if (leasemanager.leaseExpires(area)) {
final int cost = leasemanager.getRenewCost(res);
player.sendMessage(ChatColor.YELLOW + language.getPhrase("LeaseRenewalCost", ChatColor.RED + area + ChatColor.YELLOW + "." + ChatColor.RED + cost + ChatColor.YELLOW));
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire"));
}
return;
}
}
} else if (args.length == 3) {
if (args[0].equals("set")) {
if (!resadmin) {
player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
return;
}
if (args[2].equals("infinite")) {
if (leasemanager.leaseExpires(args[1])) {
leasemanager.removeExpireTime(args[1]);
player.sendMessage(ChatColor.GREEN + language.getPhrase("LeaseInfinite"));
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("LeaseNotExpire"));
}
return;
} else {
int days;
try {
days = Integer.parseInt(args[2]);
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidDays"));
return;
}
leasemanager.setExpireTime(player, args[1], days);
return;
}
}
}
}
}

View File

@@ -0,0 +1,28 @@
package com.bekvon.bukkit.residence.commandsub;
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.PermissionManager;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandLimits extends BaseCommand {
Residence plugin;
public CommandLimits(final Residence plugin) {
super("limits");
this.plugin = plugin;
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final PermissionManager gmanager = plugin.getPermissionManager();
gmanager.getGroup(player).printLimits(player);
}
}

View File

@@ -0,0 +1,50 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandList extends BaseCommand {
Residence plugin;
public CommandList(final Residence plugin) {
super("list");
this.plugin = plugin;
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final ResidenceManager rmanager = plugin.getResidenceManager();
int page = 1;
try {
if (args.length > 0) {
page = Integer.parseInt(args[args.length - 1]);
}
} catch (final Exception ex) {
}
switch (args.length) {
case 0:
rmanager.listResidences(player);
return;
case 1:
try {
Integer.parseInt(args[1]);
rmanager.listResidences(player, page);
} catch (final Exception ex) {
rmanager.listResidences(player, args[1]);
}
return;
case 2:
rmanager.listResidences(player, args[1], page);
return;
}
}
}

View File

@@ -0,0 +1,35 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandListAll extends BaseCommand {
Residence plugin;
public CommandListAll(final Residence plugin) {
super("listall");
this.plugin = plugin;
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final ResidenceManager rmanager = plugin.getResidenceManager();
int page = 1;
try {
if (args.length > 0) {
page = Integer.parseInt(args[args.length - 1]);
}
} catch (final Exception ex) {
}
rmanager.listAllResidences(player, page);
}
}

View File

@@ -0,0 +1,46 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandListAllHidden extends BaseCommand {
Residence plugin;
public CommandListAllHidden(final Residence plugin) {
super("listallhidden");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@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();
int page = 1;
try {
if (args.length > 0) {
page = Integer.parseInt(args[args.length - 1]);
}
} catch (final Exception ex) {
}
if (!resadmin) {
player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
return;
}
rmanager.listAllResidences(player, page, true);
}
}

View File

@@ -0,0 +1,54 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandListHidden extends BaseCommand {
Residence plugin;
public CommandListHidden(final Residence plugin) {
super("listhidden");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@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();
int page = 1;
try {
if (args.length > 0) {
page = Integer.parseInt(args[args.length - 1]);
}
} catch (final Exception ex) {
}
if (!resadmin) {
player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
return;
}
switch (args.length) {
case 0:
rmanager.listResidences(player, 1, true);
return;
case 2:
rmanager.listResidences(player, args[1], page, true);
return;
}
}
}

View File

@@ -0,0 +1,81 @@
package com.bekvon.bukkit.residence.commandsub;
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.FlagPermissions;
import com.bekvon.bukkit.residence.protection.PermissionListManager;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandLists extends BaseCommand {
Residence plugin;
public CommandLists(final Residence plugin) {
super("lists");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(1);
setPossibleArguments("用法: /res lists ? 查看帮助");
}
@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 Language language = plugin.getLanguage();
final PermissionListManager pmanager = plugin.getPermissionListManager();
final String listname = args[1];
switch (args[0]) {
case "list":
pmanager.printLists(player);
return;
case "add":
if (args.length != 2) {
pmanager.makeList(player, listname);
}
return;
case "remove":
if (args.length != 2) {
pmanager.removeList(player, listname);
}
return;
case "apply":
if (args.length == 3) {
pmanager.applyListToResidence(player, listname, args[2], resadmin);
}
return;
case "set":
if (args.length == 4) {
pmanager.getList(player.getName(), listname).setFlag(args[3], FlagPermissions.stringToFlagState(args[4]));
player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet"));
}
return;
case "pset":
if (args.length != 5) {
pmanager.getList(player.getName(), listname).setGroupFlag(args[3], args[4], FlagPermissions.stringToFlagState(args[5]));
player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet"));
}
return;
case "gset":
if (args.length != 5) {
pmanager.getList(player.getName(), listname).setPlayerFlag(args[3], args[4], FlagPermissions.stringToFlagState(args[5]));
player.sendMessage(ChatColor.GREEN + language.getPhrase("FlagSet"));
}
return;
case "view":
if (args.length != 2) {
pmanager.printList(player, listname);
}
return;
}
}
}

View File

@@ -0,0 +1,74 @@
package com.bekvon.bukkit.residence.commandsub;
import org.bukkit.ChatColor;
import org.bukkit.Material;
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 CommandLset extends BaseCommand {
Residence plugin;
public CommandLset(final Residence plugin) {
super("lset");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
setPossibleArguments("<领地名称> [blacklist(bl)/ignorelist(il)||info] [material]");
}
@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 ClaimedResidence res = rmanager.getByName(args[0]);
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
Material mat = null;
if (args.length == 3) {
try {
mat = Material.valueOf(args[3].toUpperCase());
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial"));
return;
}
}
final String subcmd = args[1];
switch (subcmd) {
case "info":
player.sendMessage(ChatColor.RED + "Blacklist:");
res.getItemBlacklist().printList(player);
player.sendMessage(ChatColor.GREEN + "Ignorelist:");
res.getItemIgnoreList().printList(player);
return;
case "bl":
case "blacklist":
res.getItemBlacklist().playerListChange(player, mat, resadmin);
return;
case "il":
case "ignorelist":
res.getItemIgnoreList().playerListChange(player, mat, resadmin);
return;
}
}
}

View File

@@ -0,0 +1,223 @@
package com.bekvon.bukkit.residence.commandsub;
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.ConfigManager;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.economy.TransactionManager;
import com.bekvon.bukkit.residence.economy.rent.RentManager;
import com.bekvon.bukkit.residence.permissions.PermissionManager;
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 CommandMarket extends BaseCommand {
ConfigManager cmanager;
PermissionManager gmanager;
Language language;
Residence plugin;
RentManager rentmanager;
ResidenceManager rmanager;
SelectionManager smanager;
TransactionManager tmanager;
public CommandMarket(final Residence plugin) {
super("market");
this.plugin = plugin;
rmanager = plugin.getResidenceManager();
language = plugin.getLanguage();
smanager = plugin.getSelectionManager();
gmanager = plugin.getPermissionManager();
rentmanager = plugin.getRentManager();
cmanager = plugin.getConfigManager();
tmanager = plugin.getTransactionManager();
setOnlyPlayerExecutable(true);
}
@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);
int page = 1;
try {
if (args.length > 0) {
page = Integer.parseInt(args[args.length - 1]);
}
} catch (final Exception ex) {
}
final String cmd = args[0].toLowerCase();
if (cmd.equals("list")) {
commandResMarketList(args, resadmin, player, page);
return;
}
if (cmd.equals("autorenew")) {
commandResMarketAutorenew(args, resadmin, player, page);
return;
}
if (cmd.equals("rentable")) {
commandResMarketRentable(args, resadmin, player, page);
return;
}
if (cmd.equals("rent")) {
commandResMarketRent(args, resadmin, player, page);
return;
}
if (cmd.equals("release")) {
if (args.length != 3) {
return;
}
if (rentmanager.isRented(args[2])) {
rentmanager.removeFromForRent(player, args[2], resadmin);
} else {
rentmanager.unrent(player, args[2], resadmin);
}
return;
}
if (cmd.equals("info")) {
if (args.length == 2) {
final String areaname = rmanager.getNameByLoc(player.getLocation());
tmanager.viewSaleInfo(areaname, player);
if (cmanager.enabledRentSystem() && rentmanager.isForRent(areaname)) {
rentmanager.printRentInfo(player, areaname);
}
} else if (args.length == 3) {
tmanager.viewSaleInfo(args[2], player);
if (cmanager.enabledRentSystem() && rentmanager.isForRent(args[2])) {
rentmanager.printRentInfo(player, args[2]);
}
} else {
return;
}
return;
}
if (cmd.equals("buy")) {
if (args.length != 3) {
return;
}
tmanager.buyPlot(args[2], player, resadmin);
return;
}
if (cmd.equals("unsell")) {
if (args.length != 3) {
return;
}
tmanager.removeFromSale(player, args[2], resadmin);
return;
}
if (cmd.equals("sell")) {
if (args.length != 4) {
return;
}
int amount;
try {
amount = Integer.parseInt(args[3]);
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidAmount"));
return;
}
tmanager.putForSale(args[2], player, amount, resadmin);
return;
}
}
private boolean commandResMarketAutorenew(final String[] args, final boolean resadmin, final Player player, final int page) {
if (!cmanager.enableEconomy()) {
player.sendMessage(ChatColor.RED + language.getPhrase("MarketDisabled"));
return true;
}
if (args.length != 4) {
return true;
}
boolean value;
if (args[3].equalsIgnoreCase("true") || args[3].equalsIgnoreCase("t")) {
value = true;
} else if (args[3].equalsIgnoreCase("false") || args[3].equalsIgnoreCase("f")) {
value = false;
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean"));
return true;
}
if (rentmanager.isRented(args[2]) && rentmanager.getRentingPlayer(args[2]).equalsIgnoreCase(player.getName())) {
rentmanager.setRentedRepeatable(player, args[2], value, resadmin);
} else if (rentmanager.isForRent(args[2])) {
rentmanager.setRentRepeatable(player, args[2], value, resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("RentReleaseInvalid", ChatColor.YELLOW + args[2] + ChatColor.RED));
}
return true;
}
private boolean commandResMarketList(final String[] args, final boolean resadmin, final Player player, final int page) {
if (!cmanager.enableEconomy()) {
player.sendMessage(ChatColor.RED + language.getPhrase("MarketDisabled"));
return true;
}
player.sendMessage(ChatColor.BLUE + "---" + language.getPhrase("MarketList") + "---");
tmanager.printForSaleResidences(player);
if (cmanager.enabledRentSystem()) {
rentmanager.printRentableResidences(player);
}
return true;
}
private boolean commandResMarketRent(final String[] args, final boolean resadmin, final Player player, final int page) {
if (args.length < 3 || args.length > 4) {
return false;
}
boolean repeat = false;
if (args.length == 4) {
if (args[3].equalsIgnoreCase("t") || args[3].equalsIgnoreCase("true")) {
repeat = true;
} else if (!args[3].equalsIgnoreCase("f") && !args[3].equalsIgnoreCase("false")) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean"));
return true;
}
}
rentmanager.rent(player, args[2], repeat, resadmin);
return true;
}
private boolean commandResMarketRentable(final String[] args, final boolean resadmin, final Player player, final int page) {
if (args.length < 5 || args.length > 6) {
return false;
}
if (!cmanager.enabledRentSystem()) {
player.sendMessage(ChatColor.RED + language.getPhrase("RentDisabled"));
return true;
}
int days;
int cost;
try {
cost = Integer.parseInt(args[3]);
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidCost"));
return true;
}
try {
days = Integer.parseInt(args[4]);
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidDays"));
return true;
}
boolean repeat = false;
if (args.length == 6) {
if (args[5].equalsIgnoreCase("t") || args[5].equalsIgnoreCase("true")) {
repeat = true;
} else if (!args[5].equalsIgnoreCase("f") && !args[5].equalsIgnoreCase("false")) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidBoolean"));
return true;
}
}
rentmanager.setForRent(player, args[2], cost, days, repeat, resadmin);
return true;
}
}

View File

@@ -0,0 +1,40 @@
package com.bekvon.bukkit.residence.commandsub;
import org.bukkit.ChatColor;
import org.bukkit.Material;
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.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandMaterial extends BaseCommand {
Residence plugin;
public CommandMaterial(final Residence plugin) {
super("material");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(1);
}
@SuppressWarnings("deprecation")
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final Language language = plugin.getLanguage();
try {
player.sendMessage(ChatColor.GREEN
+ language.getPhrase("MaterialGet", ChatColor.GOLD + args[0] + ChatColor.GREEN + "." + ChatColor.RED + Material.getMaterial(Integer.parseInt(args[0])).name() + ChatColor.GREEN));
} catch (final Exception ex) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidMaterial"));
}
}
}

View File

@@ -0,0 +1,50 @@
package com.bekvon.bukkit.residence.commandsub;
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;
import cn.citycraft.PluginHelper.utils.StringUtil;
public class CommandMessage extends BaseCommand {
Residence plugin;
public CommandMessage(final Residence plugin) {
super("message");
this.plugin = plugin;
setMinimumArguments(1);
setOnlyPlayerExecutable(true);
setPossibleArguments("[enter|leave] [消息(移除则留空)]");
}
@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 ClaimedResidence res = rmanager.getByLoc(player.getLocation());
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
String message = null;
if (args.length != 1) {
message = StringUtil.consolidateStrings(args, 1);
}
boolean enter = false;
if (args[0].equalsIgnoreCase("enter")) {
enter = true;
}
res.setEnterLeaveMessage(player, message, enter, resadmin);
}
}

View File

@@ -0,0 +1,31 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandMirror extends BaseCommand {
Residence plugin;
public CommandMirror(final Residence plugin) {
super("mirror");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
}
@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();
rmanager.mirrorPerms(player, args[1], args[0], resadmin);
}
}

View File

@@ -0,0 +1,69 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandPset extends BaseCommand {
Residence plugin;
public CommandPset(final Residence plugin) {
super("pset");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
setPossibleArguments("<residence> [player] [flag|removeall] [true/false/remove]");
}
@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();
if (args.length == 2 && args[1].equalsIgnoreCase("removeall")) {
final ClaimedResidence area = rmanager.getByLoc(player.getLocation());
if (area != null) {
area.getPermissions().removeAllPlayerFlags(player, args[1], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
return;
} else if (args.length == 3 && args[2].equalsIgnoreCase("removeall")) {
final ClaimedResidence area = rmanager.getByName(args[0]);
if (area != null) {
area.getPermissions().removeAllPlayerFlags(player, args[2], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
return;
} else if (args.length == 3) {
final ClaimedResidence area = rmanager.getByLoc(player.getLocation());
if (area != null) {
area.getPermissions().setPlayerFlag(player, args[0], args[1], args[2], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
return;
} else if (args.length == 4) {
final ClaimedResidence area = rmanager.getByName(args[0]);
if (area != null) {
area.getPermissions().setPlayerFlag(player, args[1], args[2], args[3], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
return;
}
}
}

View File

@@ -0,0 +1,41 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandRemoveAll extends BaseCommand {
Residence plugin;
public CommandRemoveAll(final Residence plugin) {
super("removeall");
this.plugin = plugin;
setMinimumArguments(1);
setOnlyPlayerExecutable(true);
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final String pname = player.getName();
final boolean resadmin = (command != null);
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
if (resadmin || args[0].endsWith(pname)) {
rmanager.removeAllByOwner(player, args[0]);
player.sendMessage(ChatColor.GREEN + language.getPhrase("RemovePlayersResidences", ChatColor.YELLOW + args[1] + ChatColor.GREEN));
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
}
return;
}
}

View File

@@ -0,0 +1,32 @@
package com.bekvon.bukkit.residence.commandsub;
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.ResidenceManager;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandRename extends BaseCommand {
Residence plugin;
public CommandRename(final Residence plugin) {
super("rename");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
}
@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();
rmanager.renameResidence(player, args[0], args[1], resadmin);
}
}

View File

@@ -0,0 +1,41 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandRenameArea extends BaseCommand {
Residence plugin;
public CommandRenameArea(final Residence plugin) {
super("renamearea");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(3);
}
@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 ClaimedResidence res = rmanager.getByName(args[0]);
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
res.renameArea(player, args[1], args[2], resadmin);
}
}

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;
}
}
}
}

View File

@@ -0,0 +1,47 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandServer extends BaseCommand {
Residence plugin;
public CommandServer(final Residence plugin) {
super("server");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(1);
}
@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();
if (!resadmin) {
player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
return;
}
final ClaimedResidence res = rmanager.getByName(args[0]);
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
res.getPermissions().setOwner("Server Land", false);
player.sendMessage(ChatColor.GREEN + language.getPhrase("ResidenceOwnerChange", ChatColor.YELLOW + args[1] + ChatColor.GREEN + "." + ChatColor.YELLOW + "Server Land" + ChatColor.GREEN));
}
}

View File

@@ -0,0 +1,51 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandSet extends BaseCommand {
Residence plugin;
public CommandSet(final Residence plugin) {
super("set");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(2);
setPossibleArguments("<residence> [flag] [true/false/remove]");
}
@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();
if (args.length == 2) {
final String res = rmanager.getNameByLoc(player.getLocation());
if (res != null) {
rmanager.getByName(res).getPermissions().setFlag(player, args[0], args[1], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
} else if (args.length == 3) {
final ClaimedResidence res = rmanager.getByName(args[0]);
if (res != null) {
res.getPermissions().setFlag(player, args[1], args[2], resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
}
}
}

View File

@@ -0,0 +1,54 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandSubList extends BaseCommand {
Residence plugin;
public CommandSubList(final Residence plugin) {
super("sublist");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
int page = 1;
try {
if (args.length > 0) {
page = Integer.parseInt(args[args.length - 1]);
}
} catch (final Exception ex) {
}
if (args.length == 1 || args.length == 2) {
ClaimedResidence res;
if (args.length == 0) {
res = rmanager.getByLoc(player.getLocation());
} else {
res = rmanager.getByName(args[0]);
}
if (res != null) {
res.printSubzoneList(player, page);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
return;
}
return;
}
}

View File

@@ -0,0 +1,69 @@
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.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 CommandSubZone extends BaseCommand {
Residence plugin;
public CommandSubZone(final Residence plugin) {
super("subzone", "sz");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(1);
setPossibleArguments("<领地名> [附属领地名]");
}
@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();
if (args.length != 2 && args.length != 3) {
return;
}
String zname;
String parent;
if (args.length == 1) {
parent = rmanager.getNameByLoc(player.getLocation());
zname = args[0];
} else {
parent = args[0];
zname = args[1];
}
final WorldEditPlugin wep = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
if (wep != null) {
if (wep.getConfig().getInt("wand-item") == plugin.getConfigManager().getSelectionTooldID()) {
smanager.worldEdit(player);
}
}
if (smanager.hasPlacedBoth(player.getName())) {
final ClaimedResidence res = rmanager.getByName(parent);
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
res.addSubzone(player, smanager.getPlayerLoc1(player.getName()), smanager.getPlayerLoc2(player.getName()), zname, resadmin);
return;
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("SelectPoints"));
return;
}
}
}

View File

@@ -0,0 +1,37 @@
package com.bekvon.bukkit.residence.commandsub;
import org.bukkit.ChatColor;
import org.bukkit.Material;
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.ConfigManager;
import com.bekvon.bukkit.residence.Residence;
import com.bekvon.bukkit.residence.text.Language;
import cn.citycraft.PluginHelper.commands.BaseCommand;
public class CommandTool extends BaseCommand {
Residence plugin;
public CommandTool(final Residence plugin) {
super("tool");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@SuppressWarnings("deprecation")
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final Language language = plugin.getLanguage();
final ConfigManager cmanager = plugin.getConfigManager();
player.sendMessage(ChatColor.YELLOW + language.getPhrase("SelectionTool") + ":" + ChatColor.GREEN + Material.getMaterial(cmanager.getSelectionTooldID()));
player.sendMessage(ChatColor.YELLOW + language.getPhrase("InfoTool") + ": " + ChatColor.GREEN + Material.getMaterial(cmanager.getInfoToolID()));
}
}

View File

@@ -0,0 +1,42 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandTp extends BaseCommand {
Residence plugin;
public CommandTp(final Residence plugin) {
super("tp");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
setMinimumArguments(1);
}
@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 ClaimedResidence res = rmanager.getByName(args[0]);
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
return;
}
res.tpToResidence(player, player, resadmin);
}
}

View File

@@ -0,0 +1,41 @@
package com.bekvon.bukkit.residence.commandsub;
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 CommandTpSet extends BaseCommand {
Residence plugin;
public CommandTpSet(final Residence plugin) {
super("tpset");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@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 ClaimedResidence res = rmanager.getByLoc(player.getLocation());
if (res != null) {
res.setTpLoc(player, resadmin);
} else {
player.sendMessage(ChatColor.RED + language.getPhrase("InvalidResidence"));
}
}
}

View File

@@ -0,0 +1,48 @@
package com.bekvon.bukkit.residence.commandsub;
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.permissions.PermissionGroup;
import com.bekvon.bukkit.residence.permissions.PermissionManager;
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 CommandUnStuck extends BaseCommand {
Residence plugin;
public CommandUnStuck(final Residence plugin) {
super("unstuck");
this.plugin = plugin;
setOnlyPlayerExecutable(true);
}
@Override
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
final Player player = (Player) sender;
final ResidenceManager rmanager = plugin.getResidenceManager();
final Language language = plugin.getLanguage();
final PermissionManager gmanager = plugin.getPermissionManager();
final PermissionGroup group = gmanager.getGroup(player);
if (!group.hasUnstuckAccess()) {
player.sendMessage(ChatColor.RED + language.getPhrase("NoPermission"));
return;
}
final ClaimedResidence res = rmanager.getByLoc(player.getLocation());
if (res == null) {
player.sendMessage(ChatColor.RED + language.getPhrase("NotInResidence"));
} else {
player.sendMessage(ChatColor.YELLOW + language.getPhrase("Moved") + "...");
player.teleport(res.getOutsideFreeLoc(player.getLocation()));
}
}
}