package com.massivecraft.factions.cmd; import java.util.ArrayList; import com.massivecraft.factions.P; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; public class CmdHelp extends FCommand { public CmdHelp() { super(); this.aliases.add("help"); this.aliases.add("h"); this.aliases.add("?"); //this.requiredArgs.add(""); this.optionalArgs.put("page", "1"); this.permission = Permission.HELP.node; this.disableOnLock = false; senderMustBePlayer = false; senderMustBeMember = false; senderMustBeModerator = false; senderMustBeAdmin = false; } @Override public void perform() { if (helpPages == null) updateHelp(); int page = this.argAsInt(0, 1); sendMessage(p.txt.titleize("Factions Help ("+page+"/"+helpPages.size()+")")); page -= 1; if (page < 0 || page >= helpPages.size()) { msg("This page does not exist"); return; } sendMessage(helpPages.get(page)); } //----------------------------------------------// // Build the help pages //----------------------------------------------// public ArrayList> helpPages; public void updateHelp() { helpPages = new ArrayList>(); ArrayList pageLines; pageLines = new ArrayList(); pageLines.add( p.cmdBase.cmdHelp.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdList.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdShow.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdPower.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdJoin.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdLeave.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdChat.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdHome.getUseageTemplate(true) ); pageLines.add( p.txt.parse("Learn how to create a faction on the next page.") ); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add( p.cmdBase.cmdCreate.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdDescription.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdTag.getUseageTemplate(true) ); pageLines.add( p.txt.parse("You might want to close it and use invitations:" )); pageLines.add( p.cmdBase.cmdOpen.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdInvite.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdDeinvite.getUseageTemplate(true) ); pageLines.add( p.txt.parse("And don't forget to set your home:" )); pageLines.add( p.cmdBase.cmdSethome.getUseageTemplate(true) ); helpPages.add(pageLines); if (Econ.shouldBeUsed()) { pageLines = new ArrayList(); pageLines.add( "" ); pageLines.add( p.txt.parse("Your faction has a bank which is used to pay for certain" )); pageLines.add( p.txt.parse("things, so it will need to have money deposited into it." )); pageLines.add( p.txt.parse("To lear more use the money command." )); pageLines.add( "" ); pageLines.add( p.cmdBase.cmdMoney.getUseageTemplate(true) ); pageLines.add( "" ); pageLines.add( "" ); pageLines.add( "" ); helpPages.add(pageLines); } pageLines = new ArrayList(); pageLines.add( p.cmdBase.cmdClaim.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdAutoClaim.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdUnclaim.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdUnclaimall.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdKick.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdMod.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdAdmin.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdTitle.getUseageTemplate(true) ); pageLines.add( p.txt.parse("Player titles are just for fun. No rules connected to them." )); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add( p.cmdBase.cmdMap.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdBoom.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdOwner.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdOwnerList.getUseageTemplate(true) ); pageLines.add(p.txt.parse("Claimed land with ownership set is further protected so")); pageLines.add(p.txt.parse("that only the owner(s), faction admin, and possibly the")); pageLines.add(p.txt.parse("faction moderators have full access.")); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add( p.cmdBase.cmdDisband.getUseageTemplate(true) ); pageLines.add(""); pageLines.add( p.cmdBase.cmdRelationAlly.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdRelationNeutral.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdRelationEnemy.getUseageTemplate(true) ); pageLines.add(p.txt.parse("Set the relation you WISH to have with another faction.")); pageLines.add(p.txt.parse("Your default relation with other factions will be neutral.")); pageLines.add(p.txt.parse("If BOTH factions choose \"ally\" you will be allies.")); pageLines.add(p.txt.parse("If ONE faction chooses \"enemy\" you will be enemies.")); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add(p.txt.parse("You can never hurt members or allies.")); pageLines.add(p.txt.parse("You can not hurt neutrals in their own territory.")); pageLines.add(p.txt.parse("You can always hurt enemies and players without faction.")); pageLines.add(""); pageLines.add(p.txt.parse("Damage from enemies is reduced in your own territory.")); pageLines.add(p.txt.parse("When you die you lose power. It is restored over time.")); pageLines.add(p.txt.parse("The power of a faction is the sum of all member power.")); pageLines.add(p.txt.parse("The power of a faction determines how much land it can hold.")); pageLines.add(p.txt.parse("You can claim land from factions with too little power.")); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add(p.txt.parse("Only faction members can build and destroy in their own")); pageLines.add(p.txt.parse("territory. Usage of the following items is also restricted:")); pageLines.add(p.txt.parse("Door, Chest, Furnace, Dispenser, Diode.")); pageLines.add(""); pageLines.add(p.txt.parse("Make sure to put pressure plates in front of doors for your")); pageLines.add(p.txt.parse("guest visitors. Otherwise they can't get through. You can")); pageLines.add(p.txt.parse("also use this to create member only areas.")); pageLines.add(p.txt.parse("As dispensers are protected, you can create traps without")); pageLines.add(p.txt.parse("worrying about those arrows getting stolen.")); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add("Finally some commands for the server admins:"); pageLines.add( p.cmdBase.cmdBypass.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdSafeclaim.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdAutoSafeclaim.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdSafeunclaimall.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdWarclaim.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdAutoWarclaim.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdWarunclaimall.getUseageTemplate(true) ); pageLines.add(p.txt.parse("Note: " + p.cmdBase.cmdUnclaim.getUseageTemplate(false) + P.p.txt.parse("") + " works on safe/war zones as well.")); helpPages.add(pageLines); pageLines = new ArrayList(); pageLines.add(p.txt.parse("More commands for server admins:")); pageLines.add( p.cmdBase.cmdPeaceful.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdPermanent.getUseageTemplate(true) ); pageLines.add(p.txt.parse("Peaceful factions are protected from PvP and land capture.")); pageLines.add( p.cmdBase.cmdLock.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdReload.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdSaveAll.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdVersion.getUseageTemplate(true) ); pageLines.add( p.cmdBase.cmdConfig.getUseageTemplate(true) ); helpPages.add(pageLines); } }