package com.massivecraft.factions.cmd; import java.util.Collections; import java.util.List; import java.util.Set; import com.massivecraft.factions.Perm; import com.massivecraft.factions.entity.Board; import com.massivecraft.factions.entity.BoardColl; import com.massivecraft.factions.entity.Faction; import com.massivecraft.massivecore.MassiveException; import com.massivecraft.massivecore.command.requirement.RequirementHasPerm; import com.massivecraft.massivecore.mixin.Mixin; import com.massivecraft.massivecore.ps.PS; import com.massivecraft.massivecore.util.MUtil; public class CmdFactionsSetAll extends CmdFactionsSetXAll { // -------------------------------------------- // // CONSTANTS // -------------------------------------------- // public static final List LIST_ALL = Collections.unmodifiableList(MUtil.list("a", "al", "all")); public static final List LIST_MAP = Collections.singletonList("map"); // -------------------------------------------- // // CONSTRUCT // -------------------------------------------- // public CmdFactionsSetAll(boolean claim) { // Super super(claim); // Aliases this.addAliases("all"); // Requirements String node = claim ? Perm.CLAIM_ALL.node : Perm.UNCLAIM_ALL.node; this.addRequirements(RequirementHasPerm.get(node)); } // -------------------------------------------- // // OVERRIDE // -------------------------------------------- // @Override public Set getChunks() throws MassiveException { // World String word = (this.isClaim() ? "claim" : "unclaim"); // Create Ret Set chunks = null; // Args Faction oldFaction = this.getOldFaction(); if (LIST_ALL.contains(this.argAt(0).toLowerCase())) { chunks = BoardColl.get().getChunks(oldFaction); this.setFormatOne("%s %s %d chunk using " + word + " all."); this.setFormatMany("%s %s %d chunks using " + word + " all."); } else { String worldId = null; if (LIST_MAP.contains(this.argAt(0).toLowerCase())) { if (me != null) { worldId = me.getWorld().getName(); } else { msg("You must specify which map from console."); return null; } } else { worldId = this.argAt(0); if (worldId == null) return null; } Board board = BoardColl.get().get(worldId); chunks = board.getChunks(oldFaction); String worldDisplayName = Mixin.getWorldDisplayName(worldId); this.setFormatOne("%s %s %d chunk using " + word + " " + worldDisplayName + "."); this.setFormatMany("%s %s %d chunks using " + word + " " + worldDisplayName + "."); } // Return Ret return chunks; } }