package org.mcteam.factions.commands; import java.util.ArrayList; import org.bukkit.command.CommandSender; import org.mcteam.factions.util.TextUtil; public class FCommandHelp extends FBaseCommand { public FCommandHelp() { aliases.add("help"); aliases.add("h"); aliases.add("?"); optionalParameters.add("page"); helpDescription = "Display a help page"; } @Override public boolean hasPermission(CommandSender sender) { return true; } public void perform() { int page = 1; if (parameters.size() > 0) { try { page = Integer.parseInt(parameters.get(0)); } catch (NumberFormatException e) { // wasn't an integer } } sendMessage(TextUtil.titleize("Factions Help ("+page+"/"+helpPages.size()+")")); page -= 1; if (page < 0 || page >= helpPages.size()) { sendMessage("This page does not exist"); return; } sendMessage(helpPages.get(page)); } //----------------------------------------------// // Build the help pages //----------------------------------------------// public static ArrayList> helpPages; static { helpPages = new ArrayList>(); ArrayList pageLines; pageLines = new ArrayList(); pageLines.add( new FCommandHelp().getUseageTemplate() ); pageLines.add( new FCommandList().getUseageTemplate() ); pageLines.add( new FCommandShow().getUseageTemplate() ); pageLines.add( new FCommandMap().getUseageTemplate() ); pageLines.add( new FCommandJoin().getUseageTemplate() ); pageLines.add( new FCommandLeave().getUseageTemplate() ); pageLines.add( new FCommandChat().getUseageTemplate() ); pageLines.add( new FCommandHome().getUseageTemplate() ); pageLines.add( "Learn how to create a faction on the next page." ); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add( "Create a faction using these two commands:" ); pageLines.add( new FCommandCreate().getUseageTemplate() ); pageLines.add( new FCommandDescription().getUseageTemplate() ); pageLines.add( "You might want to close it and use invitations:" ); pageLines.add( new FCommandOpen().getUseageTemplate() ); pageLines.add( new FCommandInvite().getUseageTemplate() ); pageLines.add( new FCommandDeinvite().getUseageTemplate() ); pageLines.add( "And don't forget to set your home:" ); pageLines.add( new FCommandSethome().getUseageTemplate() ); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add( new FCommandClaim().getUseageTemplate() ); pageLines.add( new FCommandUnclaim().getUseageTemplate() ); pageLines.add( new FCommandUnclaimall().getUseageTemplate() ); pageLines.add( new FCommandTag().getUseageTemplate() ); pageLines.add( new FCommandKick().getUseageTemplate() ); pageLines.add( new FCommandMod().getUseageTemplate() ); pageLines.add( new FCommandAdmin().getUseageTemplate() ); pageLines.add( new FCommandTitle().getUseageTemplate() ); pageLines.add( "Player titles are just for fun. No rules connected to them." ); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add( new FCommandRelationAlly().getUseageTemplate() ); pageLines.add( new FCommandRelationNeutral().getUseageTemplate() ); pageLines.add( new FCommandRelationEnemy().getUseageTemplate() ); pageLines.add(""); pageLines.add("Set the relation you WISH to have with another faction."); pageLines.add("Your default relation with other factions will be neutral."); pageLines.add(""); pageLines.add("If BOTH factions choose \"ally\" you will be allies."); pageLines.add("If ONE faction chooses \"enemy\" you will be enemies."); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add("You can never hurt members or allies."); pageLines.add("You can not hurt neutrals in their own territory."); pageLines.add("You can always hurt enemies and players without faction."); pageLines.add(""); pageLines.add("Damage from enemies is reduced in your own territory."); pageLines.add("When you die you lose power. It is restored over time."); pageLines.add("The power of a faction is the sum of all member power."); pageLines.add("The power of a faction determines how much land it can hold."); pageLines.add("You can claim land from factions with too little power."); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add("Only faction members can build and destroy in their own"); pageLines.add("territory. Usage of the following items is also restricted:"); pageLines.add("Door, Chest, Furnace and Dispenser."); pageLines.add(""); pageLines.add("Make sure to put pressure plates in front of doors for your"); pageLines.add("guest visitors. Otherwise they can't get through. You can"); pageLines.add("also use this to create member only areas."); pageLines.add("As dispensers are protected, you can create traps without"); pageLines.add("worrying about those arrows getting stolen."); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add("Finally some commands for the server admins:"); pageLines.add( new FCommandVersion().getUseageTemplate() ); pageLines.add( new FCommandSafeclaim().getUseageTemplate() ); pageLines.add( new FCommandSafeunclaimall().getUseageTemplate() ); pageLines.add( new FCommandWarclaim().getUseageTemplate() ); pageLines.add( new FCommandWarunclaimall().getUseageTemplate() ); pageLines.add( new FCommandWorldNoClaim().getUseageTemplate() ); pageLines.add( new FCommandWorldNoPowerLoss().getUseageTemplate() ); pageLines.add( new FCommandBypass().getUseageTemplate() ); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add("More commands for server admins:"); pageLines.add( new FCommandLock().getUseageTemplate() ); pageLines.add( new FCommandReload().getUseageTemplate() ); pageLines.add( new FCommandSaveAll().getUseageTemplate() ); helpPages.add(pageLines); } }