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