mirror of
https://github.com/minetest-mods/irc.git
synced 2025-06-30 15:10:30 +02:00
Rename "mt_irc" namespace to "irc"
The underlying IRC library is now available as irc.lib.
This commit is contained in:
89
API.md
Normal file
89
API.md
Normal file
@ -0,0 +1,89 @@
|
||||
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 <message> to either the channel (if <name> is nil or not specified),
|
||||
or to the given user (if <name> 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 <name>.
|
||||
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>):
|
||||
cmdDef = {
|
||||
params = "<param1> ...", -- A description of the command's parameters
|
||||
description = "My command", -- A description of what the command does. (one-liner)
|
||||
func = function(user, param)
|
||||
-- This function gets called when the command is invoked.
|
||||
-- <user> 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'
|
||||
-- <param> is a string of parameters to the command (may be "")
|
||||
end,
|
||||
};
|
||||
Example:
|
||||
irc:register_bot_command("hello", {
|
||||
params = "",
|
||||
description = "Greet user",
|
||||
func = function(user, param)
|
||||
irc:say(user.nick, "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. <name> is the name
|
||||
of the event, and <func> 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 <vars> 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.
|
||||
|
Reference in New Issue
Block a user