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

100 lines
3.6 KiB
Java

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