From 6921dd1796f39595802a90b0e81cae9657d13df0 Mon Sep 17 00:00:00 2001 From: Nick Porillo Date: Tue, 12 May 2015 22:09:52 -0400 Subject: [PATCH] Fully configurable /f help defaults to legacy /f help implements hcf's configurable /f help system --- .../massivecraft/factions/cmd/CmdHelp.java | 41 ++++++--- src/main/resources/config.yml | 90 ++++++++++++++++++- 2 files changed, 119 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java b/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java index cc888100..89929136 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdHelp.java @@ -5,8 +5,10 @@ import com.massivecraft.factions.P; import com.massivecraft.factions.integration.Econ; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; +import org.bukkit.configuration.ConfigurationSection; import java.util.ArrayList; +import java.util.List; public class CmdHelp extends FCommand { @@ -31,21 +33,40 @@ public class CmdHelp extends FCommand { @Override public void perform() { - if (helpPages == null) { - updateHelp(); - } + if (P.p.getConfig().getBoolean("use-old-help", true)) { + if (helpPages == null) { + updateHelp(); + } - int page = this.argAsInt(0, 1); + int page = this.argAsInt(0, 1); + sendMessage(p.txt.titleize("Factions Help (" + page + "/" + helpPages.size() + ")")); - sendMessage(p.txt.titleize("Factions Help (" + page + "/" + helpPages.size() + ")")); + page -= 1; - page -= 1; - - if (page < 0 || page >= helpPages.size()) { - msg(TL.COMMAND_HELP_404.toString()); + if (page < 0 || page >= helpPages.size()) { + msg(TL.COMMAND_HELP_404.format(String.valueOf(page))); + return; + } + sendMessage(helpPages.get(page)); return; } - sendMessage(helpPages.get(page)); + ConfigurationSection help = P.p.getConfig().getConfigurationSection("help"); + if (help == null) { + help = P.p.getConfig().createSection("help"); // create new help section + List error = new ArrayList(); + error.add("&cUpdate help messages in config.yml!"); + error.add("&cSet use-old-help for legacy help messages"); + help.set("'1'", error); // add default error messages + } + String pageArg = this.argAsString(0, "1"); + List page = help.getStringList(pageArg); + if (page == null || page.isEmpty()) { + msg(TL.COMMAND_HELP_404.format(pageArg)); + return; + } + for (String helpLine : page) { + sendMessage(P.p.txt.parse(helpLine)); + } } //----------------------------------------------// diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 37b493e7..87de40dc 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -88,7 +88,7 @@ tooltips: - "&6Last Seen: &f{lastSeen}" - "&6Power: &f{power}" - "&6Rank: &f{group}" - - "&6Balance: &a${balance}" + - "&6Balance: &a${player-balance}" # Configuration section for Scoreboards # This will allow you to completely customize how your scoreboards look. @@ -244,4 +244,90 @@ list: # You can use any variables here factionless: 'Factionless {factionless} online' # You can use any variable here - entry: '{faction} {online} / {members} online, Land / Power / Maxpower: {chunks}/{power}/{maxPower}' \ No newline at end of file + entry: '{faction} {online} / {members} online, Land / Power / Maxpower: {chunks}/{power}/{maxPower}' + +############################################################ +# +------------------------------------------------------+ # +# | Configurable /f help | # +# +------------------------------------------------------+ # +############################################################ + +# set to true to use legacy factions help +use-old-help: true + +help: + # You can change the page name to whatever you like + # We use '1' to preserve default functionality of /f help 1 + '1': + - '&e&m----------------------------------------------' + - ' &c&lFactions Help ' + - '&e&m----------------------------------------------' + - '&3/f create &e>> &7Create your own faction' + - '&3/f who &e>> &7Show factions info' + - '&3/f tag &e>> &7Change faction tag' + - '&3/f join &e>> &7Join faction' + - '&3/f list &e>> &7List all factions' + - '&e&m--------------&r &2/f help 2 for more &e&m--------------' + '2': + - '&e&m------------------&r&c&l Page 2 &e&m--------------------' + - '&3/f home &e>> &7Teleport to faction home' + - '&3/f sethome &e>> &7Set your faction home' + - '&3/f leave &e>> &7Leave your faction' + - '&3/f invite &e>> &7Invite a player to your faction' + - '&3/f deinvite &e>> &7Revoke invitation to player' + - '&e&m--------------&r &2/f help 3 for more &e&m--------------' + '3': + - '&e&m------------------&r&c&l Page 3 &e&m--------------------' + - '&3/f claim &e>> &7Claim land' + - '&3/f unclaim &e>> &7Unclaim land' + - '&3/f kick &e>> &7Kick player from your faction' + - '&3/f mod &e>> &7Set player role in faction' + - '&3/f chat &e>> &7Switch to faction chat' + - '&e&m--------------&r &2/f help 4 for more &e&m--------------' + '4': + - '&e&m------------------&r&c&l Page 4 &e&m--------------------' + - '&3/f version &e>> &7Display version information' + - '&e&m--------------&r&2 End of /f help &e&m-----------------' + +############################################################ +# +------------------------------------------------------+ # +# | Big List of variables | # +# +------------------------------------------------------+ # +############################################################ +# Fancy variables. Can only be used in /f show +# - {allies-list} : Lists each faction ally with tooltips +# - {enemies-list} : Lists each faction enemy with tooltips +# - {online-list} : Lists all online members with tooltips +# - {offline-list} : Lists all offline members with tooltips +# Player variables. Can be used in tooltips.show, scoreboards, or /f show +# - {group} : Players group +# - {name} : Players name +# - {lastSeen} : Last time player was seen (if offline), or just 'Online' +# - {player-balance} : Players balance +# Faction variables. Can be used in tooltips.list, scoreboards, or /f show +# - {header} : Default factions header (ex. /f show) +# - {faction} : Factions tag (if none, uses lang.yml for factionless name) +# - {joining} : How to join this faction +# - {power} : Factions deaths until raidable value +# - {powerBoost} : DTR Symbol based on current DTR (max, regen, frozen, raidable) +# - {maxPower} : Factions max deaths until raidable value +# - {chunks} : # of claims faction has (in chunks) +# - {warps} : # of warps faction has +# - {description} : Factions description +# - {create-date} : Date faction was created +# - {leader} : Faction leader +# - {land-value} : Value of all claims +# - {land-refund} : Calculated refund value +# - {allies} : # of allies faction has +# - {enemies} : # of enemies faction has +# - {online} : # of faction members online +# - {offline} : # of faction members offline +# - {members} : # of faction members (includes offline) +# - {balance} : Faction bank balance +# - {world}, {x}, {y}, {z} : Faction home variables. You don't need to use them all. +# General variables. Can be used anywhere. +# - {total-online} : Total # of players on the server +# - {max-warps} : Max # of warps a faction can set +# - {max-allies} : Max # of allies a faction can have +# - {max-enemies} : Max # of enemies a faction can have +# - {factionless} : Count of all factionless players online \ No newline at end of file