subgame + mods
2.8 KiB
IRC Mod API
This file documents the Minetest IRC mod API.
Basics
In order to allow your mod to interface with this mod, you must add irc
to your mod's depends.txt
file.
Reference
irc:say([name,] message) Sends to either the channel (if is nil or not specified), or to the given user (if is specified). Example: irc:say("Hello, Channel!") irc:say("john1234", "How are you?")
irc:register_bot_command(name, cmdDef) Registers a new bot command named . When an user sends a private message to the bot with the command name, the command's function is called. Here's the format of a command definition (): cmdDef = { params = " ...", -- A description of the command's parameters description = "My command", -- A description of what the command does. (one-liner) func = function(user, args) -- This function gets called when the command is invoked. -- is a user table for the user that ran the command. -- (See the LuaIRC documentation for details.) -- It contains fields such as 'nick' and 'ident' -- is a string of arguments to the command (may be "") -- This function should return boolean success and a message. end, }; Example: irc:register_bot_command("hello", { params = "", description = "Greet user", func = function(user, param) return true, "Hello!" end, });
irc.joined_players[name] This table holds the players who are currently on the channel (may be less than the players in the game). It is modified by the /part and /join chat commands. Example: if irc.joined_players["joe"] then -- Joe is talking on IRC end
irc:register_hook(name, func) Registers a function to be called when an event happens. is the name of the event, and is the function to be called. See HOOKS below for more information Example: irc:register_hook("OnSend", function(line) print("SEND: "..line) end)
This mod also supplies some utility functions:
string.expandvars(string, vars) Expands all occurrences of the pattern "$(varname)" with the value of 'varname' in the table. Variable names not found on the table are left verbatim in the string. Example: local tpl = "$(foo) $(bar) $(baz)" local s = tpl:expandvars({foo=1, bar="Hello"}) assert(s == "1 Hello $(baz)")
In addition, all the configuration options decribed in README.txt
are
available to other mods, though they should be considered read-only. Do
not modify these settings at runtime or you might crash the server!
Hooks
The irc:register_hook
function can register functions to be called
when some events happen. The events supported are the same as the LuaIRC
ones with a few added (mostly for internal use).
See src/LuaIRC/doc/irc.luadoc for more information.