Chatcommand Library

Description

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.

Releases

2022-12-1

Download

2022-12-01 13:28 UTC

2022-12-1 🔗

No release notes

2022-11-18

Download

2022-11-18 17:27 UTC

2022-11-18 🔗

No release notes

rolling-21

Download

2022-09-06 10:40 UTC

rolling-21 🔗

No release notes

rolling-20

Download

2022-07-26 19:26 UTC

rolling-20 🔗

No release notes

rolling-19

Download

2022-05-20 17:22 UTC

rolling-19 🔗

No release notes

All releases

Information

Provides

cmdlib

Dependencies

Required
modlib

Information

Type
Mod
Technical Name
cmdlib
Languages
English
License
GPL-3.0-only
Maintenance State
Unknown
Added
2019-08-12 12:47 UTC
Maintainers
LMD

Used By