2012-12-01 04:06:15 +01:00
|
|
|
IRC Mod for Minetest
|
|
|
|
(C) 2012 Diego Martínez <kaeza@users.sf.net>
|
|
|
|
|
|
|
|
INTRODUCTION
|
|
|
|
------------
|
|
|
|
This mod is just a glue between luasocket, LuaIRC, and Minetest. It
|
|
|
|
provides a two-way communication between the in-game chat, and an
|
|
|
|
arbitrary IRC channel.
|
|
|
|
|
2013-01-09 15:24:16 +01:00
|
|
|
The forum topic is at http://minetest.net/forum/viewtopic.php?id=3905
|
|
|
|
|
2012-12-16 11:47:17 +01:00
|
|
|
|
2012-12-02 14:16:27 +01:00
|
|
|
COMPILING
|
|
|
|
---------
|
|
|
|
Make sure you have CMake (http://cmake.org/), and of course, a C compiler,
|
|
|
|
on your system before proceeding.
|
2012-12-16 11:47:17 +01:00
|
|
|
For Windows, try MinGW32 (http://mingw.org/).
|
|
|
|
For Unix-based systems, you should not have any problems with the C compiler
|
|
|
|
since there's one (almost) always available. Puppy Linux users of course
|
2013-04-30 00:07:44 +02:00
|
|
|
need a separate 'devx.sfs' (from the same place where you got the Puppy
|
|
|
|
ISO), since vanilla Puppy does not come with 'gcc'. See your Puppy docs for
|
2012-12-16 11:47:17 +01:00
|
|
|
more info about how to install additional SFS files.
|
|
|
|
|
2012-12-19 03:55:03 +01:00
|
|
|
Quick one line build for linux.
|
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
git clone https://github.com/kaeza/minetest-irc.git && cd minetest-irc && git submodule update --init && ./quick_install.sh <mod directory>
|
|
|
|
Please change <mod directory> to fit your install of minetest.
|
2012-12-19 03:55:03 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
To compile and pack the mod:
|
2012-12-02 14:16:27 +01:00
|
|
|
|
2012-12-16 11:47:17 +01:00
|
|
|
- Open a command prompt/terminal and CD to the minetest-irc directory.
|
2013-04-30 00:07:44 +02:00
|
|
|
- (optional) Create a directory named "Build", and CD into it:
|
2012-12-16 11:47:17 +01:00
|
|
|
mkdir Build
|
2012-12-02 14:16:27 +01:00
|
|
|
cd Build
|
|
|
|
- Run CMake to generate the build system (see your CMake docs for more
|
2013-04-30 00:07:44 +02:00
|
|
|
information about command line options, in particular the '-G' option).
|
|
|
|
cmake . (cmake .. if you made a seperate build directory)
|
2012-12-02 14:16:27 +01:00
|
|
|
- Use the build tool for the generated build system to compile the
|
|
|
|
native library. For example, if using Microsoft Visual Studio, open
|
|
|
|
the generated workspace and build from there. If using make, just run
|
|
|
|
"make" from within the Build directory.
|
2013-04-30 00:07:44 +02:00
|
|
|
- After building you will have a folder named 'irc' in your build folder.
|
|
|
|
Move that to your mod folder.
|
2012-12-16 11:47:17 +01:00
|
|
|
|
2012-12-02 14:16:27 +01:00
|
|
|
|
2012-12-01 04:06:15 +01:00
|
|
|
INSTALLING
|
|
|
|
----------
|
2013-04-30 00:07:44 +02:00
|
|
|
Just put the created 'irc' directory in any of the directories where
|
2012-12-15 18:00:40 +01:00
|
|
|
Minetest looks for mods. For more information, see:
|
2013-01-01 09:56:00 +01:00
|
|
|
http://wiki.minetest.com/wiki/Installing_mods
|
2012-12-01 04:06:15 +01:00
|
|
|
|
|
|
|
|
|
|
|
SETTINGS
|
|
|
|
--------
|
2013-04-30 00:07:44 +02:00
|
|
|
All settings are changed in 'minetest.conf'. If any of these settings
|
|
|
|
are either not set or false, the default value is used.
|
2012-12-01 04:06:15 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.server (string, default "irc.freenode.net")
|
2012-12-01 04:06:15 +01:00
|
|
|
This is the IRC server the mod connects to.
|
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.channel (string, default "##mt-irc-mod")
|
2012-12-01 04:06:15 +01:00
|
|
|
The IRC channel to join.
|
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.interval (number, default 2.0)
|
|
|
|
This prevents the server from flooding. It should be at
|
|
|
|
least 2.0 but can be higher. After four messages this much
|
|
|
|
time must pass between folowing messages.
|
2012-12-01 04:06:15 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.timeout (number, default 60.0)
|
2012-12-14 23:33:44 +01:00
|
|
|
Underlying socket timeout in seconds. This is the time before
|
|
|
|
the system drops an idle connection.
|
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.nick (string, default "minetest-"..<server-id>)
|
2012-12-14 23:33:44 +01:00
|
|
|
Nickname used as "proxy" for the in-game chat.
|
2013-04-30 00:07:44 +02:00
|
|
|
"<server-id>" is a random 32 bit number.
|
2012-12-14 23:33:44 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.password (string, default "")
|
2012-12-14 23:33:44 +01:00
|
|
|
Password to use when connecting to the server.
|
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.NSPass (string, default nil)
|
|
|
|
NickServ password. Don't use this if you use SASL authentication.
|
|
|
|
|
|
|
|
irc.SASLPass (string, default nil)
|
|
|
|
SASL password, same as nickserv password.
|
|
|
|
You should use this instead of NickServ authentication
|
|
|
|
if the server supports it.
|
|
|
|
|
|
|
|
irc.SASLUser (string, default irc.nick)
|
|
|
|
The SASL username. This should normaly be set to your main NickServ account name.
|
|
|
|
|
|
|
|
irc.format_out (string, default "<$(name)> $(message)")
|
2012-12-14 23:33:44 +01:00
|
|
|
This specifies how to send the messages from in-game to IRC.
|
|
|
|
The strings can contain "macros" (or variable substitutions), which
|
|
|
|
are specified as "$(macro_name)".
|
|
|
|
Currently, these macros are supported:
|
|
|
|
$(name) The name of the player sending the message.
|
|
|
|
$(message) The actual message text.
|
|
|
|
Any unrecognized macro will be left in the message verbatim.
|
|
|
|
For example, if a user named "mtuser" is saying "Hello!", then:
|
|
|
|
"<$(name)> $(message)"
|
|
|
|
...will yield...
|
|
|
|
"<mtuser> Hello!"
|
|
|
|
...and...
|
|
|
|
"$(name): $(message) $(xyz)"
|
|
|
|
...will yield...
|
|
|
|
"mtuser: Hello! $(xyz)"
|
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.format_in (string,
|
2012-12-14 23:33:44 +01:00
|
|
|
default "<$(name)@IRC> $(message)")
|
|
|
|
This specifies how the messages gotten from the IRC channel are
|
|
|
|
displayed in-game.
|
|
|
|
The strings can contain "macros" (or variable substitutions), which
|
|
|
|
are specified as "$(macro_name)".
|
|
|
|
Currently, these macros are supported:
|
|
|
|
$(name) The nickname of the user sending the message.
|
|
|
|
$(message) The actual message text.
|
|
|
|
$(server) The IRC server.
|
|
|
|
$(port) The IRC server port.
|
|
|
|
$(channel) The IRC channel.
|
|
|
|
In the default configuration, this will yield:
|
2013-04-30 00:07:44 +02:00
|
|
|
<IRCUser@IRC> Hello!
|
2012-12-14 23:33:44 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.debug (boolean, default false)
|
2012-12-16 16:56:02 +01:00
|
|
|
Whether to output debug information.
|
2012-12-01 04:06:15 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.disable_auto_connect (boolean, default false)
|
|
|
|
If false, the bot is connected by default. If true, a player with
|
|
|
|
the 'irc_admin' privilege has to use the /irc_connect command to
|
2012-12-31 16:53:01 +01:00
|
|
|
connect to the server.
|
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
irc.disable_auto_join (boolean, default false)
|
|
|
|
If false, players join the channel automatically upon entering the
|
|
|
|
game. If true, each user must manually use the /join command to
|
2012-12-31 16:53:01 +01:00
|
|
|
join the channel. In any case, the players may use the /part
|
|
|
|
command to opt-out of being in the channel.
|
2012-12-16 11:47:17 +01:00
|
|
|
|
2012-12-15 18:21:55 +01:00
|
|
|
USAGE
|
|
|
|
-----
|
|
|
|
Once the game is connected to the IRC channel, chatting using the 'T' or
|
|
|
|
F10 hotkeys will send the messages to the channel, and will be visible
|
|
|
|
by anyone. Also, when someone sends a message to the channel, that text
|
|
|
|
will be visible in-game.
|
|
|
|
|
2012-12-16 16:56:02 +01:00
|
|
|
This mod also adds a few chat commands:
|
2012-12-15 18:21:55 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
/irc_msg <nick> <message>
|
|
|
|
Sends a private message to a IRC user.
|
2012-12-15 18:21:55 +01:00
|
|
|
|
2012-12-16 16:56:02 +01:00
|
|
|
/join
|
|
|
|
Join the IRC channel.
|
|
|
|
|
|
|
|
/part
|
|
|
|
Part the IRC channel.
|
|
|
|
|
2013-01-06 12:43:20 +01:00
|
|
|
/irc_connect
|
|
|
|
Connect the bot manually to the IRC network.
|
|
|
|
|
|
|
|
/irc_disconnect
|
2013-04-30 00:07:44 +02:00
|
|
|
Disconnect the bot manually from the IRC network (this does not
|
2013-01-06 12:43:20 +01:00
|
|
|
shutdown the game).
|
|
|
|
|
|
|
|
/irc_reconnect
|
2013-04-30 00:07:44 +02:00
|
|
|
Equivilant to /irc_disconnect followed by /irc_connect.
|
2013-01-06 12:43:20 +01:00
|
|
|
|
2012-12-15 18:21:55 +01:00
|
|
|
You can also send private messages from IRC to in-game players, though
|
|
|
|
it's a bit tricky.
|
|
|
|
|
2013-01-06 12:43:20 +01:00
|
|
|
To do it, you must send a private message to the bot (set with
|
2013-04-30 00:07:44 +02:00
|
|
|
the 'irc.nick' option above), in the following format:
|
|
|
|
@playername message
|
|
|
|
For example, if there's a player named 'mtuser', you can send him/her
|
|
|
|
a private message from IRC with:
|
|
|
|
/msg server_nick @mtuser Hello!
|
2012-12-15 18:21:55 +01:00
|
|
|
|
|
|
|
To avoid possible misunderstandings (since all in-game players use the
|
|
|
|
same IRC user to converse with you), the "proxy" user will reject any
|
|
|
|
private messages that are not in that format, and will send back a
|
|
|
|
nice reminder as a private message.
|
|
|
|
|
2013-01-09 15:24:16 +01:00
|
|
|
The bot also supports some basic commands, which are invoked by sending
|
2013-04-30 00:07:44 +02:00
|
|
|
a private message to it. Use '!help' to get a list of commands, and
|
|
|
|
'!help <command>' to get help about a specific command.
|
2013-01-09 15:24:16 +01:00
|
|
|
|
2012-12-16 11:47:17 +01:00
|
|
|
|
|
|
|
THANKS
|
|
|
|
------
|
|
|
|
I'd like to thank the users who supported this mod both on the Minetest
|
|
|
|
Forums and on the #minetest channel. In no particular order:
|
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
0gb.us, ShadowNinja, Shaun/kizeren, RAPHAEL, DARGON, Calinou, Exio,
|
|
|
|
vortexlabs/mrtux, marveidemanis, marktraceur, jmf/john_minetest,
|
|
|
|
sdzen/Muadtralk, VanessaE, PilzAdam, sfan5, celeron55, KikaRz,
|
|
|
|
OldCoder, RealBadAngel, and all the people who commented in the
|
|
|
|
forum topic. Thanks to you all!
|
2013-01-09 15:24:16 +01:00
|
|
|
|
2012-12-16 11:47:17 +01:00
|
|
|
|
2012-12-01 04:06:15 +01:00
|
|
|
LICENSE
|
|
|
|
-------
|
|
|
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
|
|
Version 2, December 2004
|
|
|
|
|
|
|
|
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
|
|
|
|
|
|
|
Everyone is permitted to copy and distribute verbatim or modified
|
|
|
|
copies of this license document, and changing it is allowed as long
|
|
|
|
as the name is changed.
|
|
|
|
|
|
|
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
2013-04-30 00:07:44 +02:00
|
|
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
2012-12-01 04:06:15 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
0. You just DO WHAT THE FUCK YOU WANT TO.
|
2012-12-01 04:06:15 +01:00
|
|
|
|
2013-04-30 00:07:44 +02:00
|
|
|
The files 'http.lua', 'ltn12.lua', 'mime.lua', 'smtp.lua', 'socket.lua',
|
|
|
|
and 'url.lua' are part of the luasocket project
|
|
|
|
(http://luasocket.luaforge.org/). See 'src/luasocket/LICENSE.txt' for
|
2012-12-01 04:06:15 +01:00
|
|
|
licensing information.
|
|
|
|
|