mirror of
https://e.coding.net/circlecloud/Residence.git
synced 2025-11-26 22:06:07 +00:00
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user