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

66 lines
1.7 KiB
Java
Raw Normal View History

2011-10-09 21:57:43 +02:00
package com.massivecraft.factions.cmd;
import com.massivecraft.factions.Faction;
import com.massivecraft.factions.struct.Permission;
import com.massivecraft.factions.struct.Role;
import com.massivecraft.factions.zcore.util.TL;
2014-04-04 20:55:21 +02:00
public class CmdDisband extends FCommand {
2014-04-04 20:55:21 +02:00
public CmdDisband() {
2014-07-01 22:10:18 +02:00
super();
this.aliases.add("disband");
2014-04-04 20:55:21 +02:00
//this.requiredArgs.add("");
this.optionalArgs.put("faction tag", "yours");
2014-07-01 22:10:18 +02:00
this.permission = Permission.DISBAND.node;
this.disableOnLock = true;
2014-04-04 20:55:21 +02:00
2014-07-01 22:10:18 +02:00
senderMustBePlayer = false;
senderMustBeMember = false;
senderMustBeModerator = false;
2018-03-26 23:43:15 +02:00
senderMustBeColeader = false;
2014-04-04 20:55:21 +02:00
senderMustBeAdmin = false;
}
@Override
public void perform() {
// The faction, default to your own.. but null if console sender.
2014-07-01 22:10:18 +02:00
Faction faction = this.argAsFaction(0, fme == null ? null : myFaction);
if (faction == null) {
return;
}
2014-04-04 20:55:21 +02:00
2017-12-19 11:18:13 +01:00
boolean isMyFaction = fme != null && faction == myFaction;
2014-04-04 20:55:21 +02:00
if (isMyFaction) {
2014-07-01 22:10:18 +02:00
if (!assertMinRole(Role.ADMIN)) {
return;
}
2014-07-01 21:52:40 +02:00
} else {
2014-04-04 20:55:21 +02:00
if (!Permission.DISBAND_ANY.has(sender, true)) {
return;
}
}
if (!faction.isNormal()) {
msg(TL.COMMAND_DISBAND_IMMUTABLE.toString());
2014-07-01 22:10:18 +02:00
return;
}
if (faction.isPermanent()) {
msg(TL.COMMAND_DISBAND_MARKEDPERMANENT.toString());
2014-07-01 22:10:18 +02:00
return;
2014-04-04 20:55:21 +02:00
}
//Success
faction.disband(me);
2014-04-04 20:55:21 +02:00
}
@Override
public TL getUsageTranslation() {
return TL.COMMAND_DISBAND_DESCRIPTION;
}
}