Saber-Factions/src/main/java/com/massivecraft/factions/cmd/CmdOwner.java

102 lines
2.9 KiB
Java
Raw Normal View History

2011-10-09 21:57:43 +02:00
package com.massivecraft.factions.cmd;
2011-07-31 03:17:00 +02:00
2014-04-04 20:55:21 +02:00
import com.massivecraft.factions.*;
2011-10-09 18:35:39 +02:00
import com.massivecraft.factions.struct.Permission;
2011-07-31 03:17:00 +02:00
import com.massivecraft.factions.struct.Role;
import com.massivecraft.factions.zcore.util.TL;
2011-07-31 03:17:00 +02:00
2014-04-04 20:55:21 +02:00
public class CmdOwner extends FCommand {
public CmdOwner() {
2014-07-01 22:10:18 +02:00
super();
this.aliases.add("owner");
2014-04-04 20:55:21 +02:00
//this.requiredArgs.add("");
this.optionalArgs.put("player name", "you");
2014-07-01 22:10:18 +02:00
this.permission = Permission.OWNER.node;
this.disableOnLock = true;
2014-04-04 20:55:21 +02:00
2014-07-01 22:10:18 +02:00
senderMustBePlayer = true;
senderMustBeMember = false;
senderMustBeModerator = false;
senderMustBeAdmin = false;
2014-04-04 20:55:21 +02:00
}
// TODO: Fix colors!
@Override
public void perform() {
boolean hasBypass = fme.isAdminBypassing();
if (!hasBypass && !assertHasFaction()) {
return;
}
if (!Conf.ownedAreasEnabled) {
fme.msg(TL.COMMAND_OWNER_DISABLED);
2014-07-01 22:10:18 +02:00
return;
2014-04-04 20:55:21 +02:00
}
if (!hasBypass && Conf.ownedAreasLimitPerFaction > 0 && myFaction.getCountOfClaimsWithOwners() >= Conf.ownedAreasLimitPerFaction) {
fme.msg(TL.COMMAND_OWNER_LIMIT, Conf.ownedAreasLimitPerFaction);
2014-04-04 20:55:21 +02:00
return;
}
if (!hasBypass && !assertMinRole(Conf.ownedAreasModeratorsCanSet ? Role.MODERATOR : Role.ADMIN)) {
return;
}
FLocation flocation = new FLocation(fme);
Faction factionHere = Board.getInstance().getFactionAt(flocation);
2014-07-01 22:10:18 +02:00
if (factionHere != myFaction) {
if (!factionHere.isNormal()) {
fme.msg(TL.COMMAND_OWNER_NOTCLAIMED);
2014-07-01 22:10:18 +02:00
return;
2014-04-04 20:55:21 +02:00
}
if (!hasBypass) {
fme.msg(TL.COMMAND_OWNER_WRONGFACTION);
2014-07-01 22:10:18 +02:00
return;
2014-04-04 20:55:21 +02:00
}
2014-04-04 20:55:21 +02:00
}
2014-07-01 22:10:18 +02:00
FPlayer target = this.argAsBestFPlayerMatch(0, fme);
if (target == null) {
return;
}
2014-04-04 20:55:21 +02:00
String playerName = target.getName();
if (target.getFaction() != myFaction) {
fme.msg(TL.COMMAND_OWNER_NOTMEMBER, playerName);
2014-07-01 22:10:18 +02:00
return;
2014-04-04 20:55:21 +02:00
}
// if no player name was passed, and this claim does already have owners set, clear them
if (args.isEmpty() && myFaction.doesLocationHaveOwnersSet(flocation)) {
2014-07-01 22:10:18 +02:00
myFaction.clearClaimOwnership(flocation);
fme.msg(TL.COMMAND_OWNER_CLEARED);
2014-04-04 20:55:21 +02:00
return;
}
2014-04-17 03:10:12 +02:00
if (myFaction.isPlayerInOwnerList(target, flocation)) {
myFaction.removePlayerAsOwner(target, flocation);
fme.msg(TL.COMMAND_OWNER_REMOVED, playerName);
2014-07-01 22:10:18 +02:00
return;
2014-04-04 20:55:21 +02:00
}
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
if (!payForCommand(Conf.econCostOwner, TL.COMMAND_OWNER_TOSET , TL.COMMAND_OWNER_FORSET)) {
2014-04-04 20:55:21 +02:00
return;
2014-07-01 21:49:42 +02:00
}
2014-04-04 20:55:21 +02:00
2014-04-17 03:10:12 +02:00
myFaction.setPlayerAsOwner(target, flocation);
2014-04-04 20:55:21 +02:00
fme.msg(TL.COMMAND_OWNER_ADDED, playerName);
2014-04-04 20:55:21 +02:00
}
2011-07-31 03:17:00 +02:00
}