Saber-Factions/src/com/massivecraft/factions/commands/FCommandCreate.java

73 lines
1.7 KiB
Java
Raw Normal View History

2011-07-18 22:06:02 +02:00
package com.massivecraft.factions.commands;
2011-03-19 13:00:03 +01:00
import java.util.ArrayList;
2011-03-23 17:39:56 +01:00
import org.bukkit.command.CommandSender;
2011-07-18 22:06:02 +02:00
import com.massivecraft.factions.Conf;
import com.massivecraft.factions.FPlayer;
import com.massivecraft.factions.Faction;
import com.massivecraft.factions.Factions;
import com.massivecraft.factions.struct.Role;
2011-03-23 17:39:56 +01:00
2011-03-19 13:00:03 +01:00
public class FCommandCreate extends FBaseCommand {
2011-03-19 13:00:03 +01:00
public FCommandCreate() {
aliases.add("create");
2011-03-19 13:00:03 +01:00
requiredParameters.add("faction tag");
2011-03-23 17:39:56 +01:00
helpDescription = "Create a new faction";
2011-03-19 13:00:03 +01:00
}
2011-03-23 17:39:56 +01:00
@Override
public boolean hasPermission(CommandSender sender) {
return Factions.hasPermCreate(sender);
}
@Override
2011-03-19 13:00:03 +01:00
public void perform() {
if( isLocked() ) {
sendLockMessage();
return;
}
2011-03-19 13:00:03 +01:00
String tag = parameters.get(0);
if (me.hasFaction()) {
sendMessage("You must leave your current faction first.");
return;
}
if (Faction.isTagTaken(tag)) {
sendMessage("That tag is already in use.");
return;
}
ArrayList<String> tagValidationErrors = Faction.validateTag(tag);
if (tagValidationErrors.size() > 0) {
sendMessage(tagValidationErrors);
return;
}
// if economy is enabled, they're not on the bypass list, and this command has a cost set, make 'em pay
if (!payForCommand(Conf.econCostCreate)) {
return;
}
2011-03-19 13:00:03 +01:00
Faction faction = Faction.create();
faction.setTag(tag);
2011-03-22 17:20:21 +01:00
me.setRole(Role.ADMIN);
me.setFaction(faction);
2011-03-19 13:00:03 +01:00
for (FPlayer follower : FPlayer.getAllOnline()) {
follower.sendMessage(me.getNameAndRelevant(follower)+Conf.colorSystem+" created a new faction "+faction.getTag(follower));
}
sendMessage("You should now: " + new FCommandDescription().getUseageTemplate());
2011-03-19 13:00:03 +01:00
}
}