2011-10-09 21:57:43 +02:00
|
|
|
package com.massivecraft.factions.cmd;
|
2011-05-08 17:44:00 +02:00
|
|
|
|
2018-07-20 18:42:47 +02:00
|
|
|
import com.massivecraft.factions.Faction;
|
2011-10-09 14:53:38 +02:00
|
|
|
import com.massivecraft.factions.struct.Permission;
|
2011-09-13 05:23:44 +02:00
|
|
|
import com.massivecraft.factions.struct.Role;
|
2014-12-08 00:12:52 +01:00
|
|
|
import com.massivecraft.factions.zcore.util.TL;
|
2014-04-04 20:55:21 +02:00
|
|
|
|
|
|
|
|
|
|
|
public class CmdDisband extends FCommand {
|
2014-08-05 17:17:27 +02:00
|
|
|
|
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()) {
|
2014-12-08 00:12:52 +01:00
|
|
|
msg(TL.COMMAND_DISBAND_IMMUTABLE.toString());
|
2014-07-01 22:10:18 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (faction.isPermanent()) {
|
2014-12-08 00:12:52 +01:00
|
|
|
msg(TL.COMMAND_DISBAND_MARKEDPERMANENT.toString());
|
2014-07-01 22:10:18 +02:00
|
|
|
return;
|
2014-04-04 20:55:21 +02:00
|
|
|
}
|
|
|
|
|
2018-07-20 18:42:47 +02:00
|
|
|
//Success
|
|
|
|
faction.disband(me);
|
2014-04-04 20:55:21 +02:00
|
|
|
}
|
2015-01-22 00:58:33 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public TL getUsageTranslation() {
|
|
|
|
return TL.COMMAND_DISBAND_DESCRIPTION;
|
|
|
|
}
|
2011-05-08 17:44:00 +02:00
|
|
|
}
|