Download (78 KB)

How do I install this?

Making chatcommands a pleasure to use. This mod adds a few features to chatcommands useful for devs (parsing, trees, forbidden privs, etc), and other features useful for players, such as suggestions, command trees, and a better help command.

Note : Overrides /help chatcommand and builtin functions (minetest.register_chatcommand), replaces chatcommand handler.

API #

A few API methods are listed below. Browse the code for more. Three parts are provided by cmdlib :

  • Trie data structure
  • Help command
  • Chatcommand utils (main part)

cmdlib.register(name, def) #

Name (name) : Chatcommand name, including whitespaces (such as mod command)

Definition (def) : Table with entries params, custom_syntax, implicit_call, description, privs, and func

  • Params: Argument syntax, string, format of <required_param> [optional_param], or {param} for zero or more occurrences. Needs required params first, then optional ones, and finally, an optional list
  • Custom syntax: Flag, if set to true, func will be called with string params (empty string if none given). Automatically true if params string is invalid.
  • Implicit call: Metacommands only. If set to true, chatcommand will be called instead of proposing subcommand. Automatically true if params are specified.
  • Description: Text describing the usage of the chatcommand
  • Privileges: Table with privs which are required or should be missing, like {priv1=true, priv2=false}
  • Function: Function being invoked with sendername and a table of parameters ({param1="..."}), {params} will be supplied as tables

trie.new() #

Creates (returns) a new trie (empty table).

trie.insert(trie, word, [value], [overwrite]) #

Inserts a word into a trie. value is optional (defaults to true). overwrite is optional as well and defaults to false. Returns previous value.

trie.remove(trie, word) #

Removes word from trie. Returns previous value.

trie.get(trie, word) #

Check if trie contains word and return corresponding value, or nil.

trie.search(trie, word) #

Search for word in trie. Return value if found, else (nil, closest word, value) or nil if no closest word exists.

Invocation #

Invoke a chatcommand by giving the params separated by whitespaces (like /cmd subcmd param1 param2).

Help #

Use /help [query] to open the extremely useful formspec shown above.

Reviews

Review

Do you recommend this mod?

  • No reviews, yet.

Used By