Factions/src/com/massivecraft/factions/cmd/CmdHelp.java
Olof Larsson a5c8e2de49 glerp
2011-10-09 21:57:43 +02:00

191 lines
7.3 KiB
Java

package com.massivecraft.factions.cmd;
import java.util.ArrayList;
import com.massivecraft.factions.Conf;
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()
{
int page = this.argAsInt(0, 1);
sendMessage(p.txt.titleize("Factions Help ("+page+"/"+helpPages.size()+")"));
page -= 1;
if (page < 0 || page >= helpPages.size())
{
sendMessageParsed("<b>This page does not exist");
return;
}
sendMessage(helpPages.get(page));
}
//----------------------------------------------//
// Build the help pages
//----------------------------------------------//
public static ArrayList<ArrayList<String>> helpPages;
public static void updateHelp()
{
helpPages = new ArrayList<ArrayList<String>>();
ArrayList<String> pageLines;
pageLines = new ArrayList<String>();
pageLines.add( new CmdHelp().getUseageTemplate() );
pageLines.add( new CmdList().getUseageTemplate() );
pageLines.add( new CmdShow().getUseageTemplate() );
pageLines.add( new CmdPower().getUseageTemplate() );
pageLines.add( new CmdJoin().getUseageTemplate() );
pageLines.add( new CmdLeave().getUseageTemplate() );
pageLines.add( new CmdChat().getUseageTemplate() );
pageLines.add( new CmdHome().getUseageTemplate() );
pageLines.add( "Learn how to create a faction on the next page." );
helpPages.add(pageLines);
pageLines = new ArrayList<String>();
pageLines.add( new CmdCreate().getUseageTemplate() );
pageLines.add( new CmdDescription().getUseageTemplate() );
pageLines.add( new CmdTag().getUseageTemplate() );
pageLines.add( "You might want to close it and use invitations:" );
pageLines.add( new CmdOpen().getUseageTemplate() );
pageLines.add( new CmdInvite().getUseageTemplate() );
pageLines.add( new CmdDeinvite().getUseageTemplate() );
pageLines.add( "And don't forget to set your home:" );
pageLines.add( new CmdSethome().getUseageTemplate() );
helpPages.add(pageLines);
if (Econ.enabled() && Conf.bankEnabled)
{
pageLines = new ArrayList<String>();
pageLines.add( "" );
pageLines.add( "Your faction has a bank which is used to pay for certain" );
pageLines.add( "things, so it will need to have money deposited into it." );
pageLines.add( "" );
pageLines.add( new CmdBalance().getUseageTemplate() );
pageLines.add( new CmdDeposit().getUseageTemplate() );
pageLines.add( new CmdWithdraw().getUseageTemplate() );
pageLines.add( new CmdPay().getUseageTemplate() );
pageLines.add( "" );
helpPages.add(pageLines);
}
pageLines = new ArrayList<String>();
pageLines.add( new CmdClaim().getUseageTemplate() );
pageLines.add( new CmdAutoClaim().getUseageTemplate() );
pageLines.add( new CmdUnclaim().getUseageTemplate() );
pageLines.add( new CmdUnclaimall().getUseageTemplate() );
pageLines.add( new CmdKick().getUseageTemplate() );
pageLines.add( new CmdMod().getUseageTemplate() );
pageLines.add( new CmdAdmin().getUseageTemplate() );
pageLines.add( new CmdTitle().getUseageTemplate() );
pageLines.add( "Player titles are just for fun. No rules connected to them." );
helpPages.add(pageLines);
pageLines = new ArrayList<String>();
pageLines.add( new CmdMap().getUseageTemplate() );
pageLines.add( new CmdBoom().getUseageTemplate() );
pageLines.add("");
pageLines.add( new CmdOwner().getUseageTemplate() );
pageLines.add( new CmdOwnerList().getUseageTemplate() );
pageLines.add("");
pageLines.add("Claimed land with ownership set is further protected so");
pageLines.add("that only the owner(s), faction admin, and possibly the");
pageLines.add("faction moderators have full access.");
helpPages.add(pageLines);
pageLines = new ArrayList<String>();
pageLines.add( new CmdDisband().getUseageTemplate() );
pageLines.add("");
pageLines.add( new CmdRelationAlly().getUseageTemplate() );
pageLines.add( new CmdRelationNeutral().getUseageTemplate() );
pageLines.add( new CmdRelationEnemy().getUseageTemplate() );
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("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<String>();
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<String>();
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, Dispenser, Diode.");
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<String>();
pageLines.add("Finally some commands for the server admins:");
pageLines.add( new CmdBypass().getUseageTemplate() );
pageLines.add( new CmdSafeclaim().getUseageTemplate() );
pageLines.add( new CmdAutoSafeclaim().getUseageTemplate() );
pageLines.add( new CmdSafeunclaimall().getUseageTemplate() );
pageLines.add( new CmdWarclaim().getUseageTemplate() );
pageLines.add( new CmdAutoWarclaim().getUseageTemplate() );
pageLines.add( new CmdWarunclaimall().getUseageTemplate() );
pageLines.add("Note: " + new CmdUnclaim().getUseageTemplate(false) + P.p.txt.parse("<i>") + " works on safe/war zones as well.");
helpPages.add(pageLines);
pageLines = new ArrayList<String>();
pageLines.add("More commands for server admins:");
pageLines.add( new CmdPeaceful().getUseageTemplate() );
pageLines.add( new CmdPermanent().getUseageTemplate() );
pageLines.add("Peaceful factions are protected from PvP and land capture.");
pageLines.add( new CmdLock().getUseageTemplate() );
pageLines.add( new CmdReload().getUseageTemplate() );
pageLines.add( new CmdSaveAll().getUseageTemplate() );
pageLines.add( new CmdVersion().getUseageTemplate() );
pageLines.add( new CmdConfig().getUseageTemplate() );
helpPages.add(pageLines);
}
static
{
updateHelp();
}
}