package net.knarcraft.factions.cmd; import net.knarcraft.factions.cmd.req.ReqHasFaction; import net.knarcraft.factions.entity.MPerm; import net.knarcraft.factions.entity.MPlayer; import net.knarcraft.factions.event.EventFactionsDescriptionChange; import com.massivecraft.massivecore.MassiveException; import com.massivecraft.massivecore.command.type.primitive.TypeString; import com.massivecraft.massivecore.mixin.MixinDisplayName; public class CmdFactionsDescription extends FactionsCommand { // -------------------------------------------- // // CONSTRUCT // -------------------------------------------- // public CmdFactionsDescription() { // Parameters this.addParameter(TypeString.get(), "desc", true).setDesc("the new faction desciption"); // Requirements this.addRequirements(ReqHasFaction.get()); } // -------------------------------------------- // // OVERRIDE // -------------------------------------------- // @Override public void perform() throws MassiveException { // Args String newDescription = this.readArg(); // MPerm if (!MPerm.getPermDesc().has(msender, msenderFaction, true)) { return; } // Event EventFactionsDescriptionChange event = new EventFactionsDescriptionChange(sender, msenderFaction, newDescription); event.run(); if (event.isCancelled()) { return; } newDescription = event.getNewDescription(); // Apply msenderFaction.setDescription(newDescription); // Inform for (MPlayer follower : msenderFaction.getMPlayers()) { follower.msg("<i>%s <i>set your faction description to:\n%s", MixinDisplayName.get().getDisplayName(sender, follower), msenderFaction.getDescriptionDesc()); } } }