emehta-contrib/README.md

272 lines
7.2 KiB
Markdown

### Community-supported Atheme Modules
This directory contains modules that are not included in the main modules
folders for one reason or another. Either their code is a bit ugly, their
functionality is frowned upon, they only work with a limited number of IRCd's
or similar cases.
### Building other modules not included in this distribution
Just drop the file in here, and it will be built/installed.
Alternatively just to build a single module, use the `$SRCS`
make variable to build and install modules.
```
$ make SRCS=fileyouwanttocompile.c
Successfully compiled fileyouwanttocompile.c as fileyouwanttocompile.so.
$ make SRCS=fileyouwanttocompile.c install
Successfully installed fileyouwanttocompile.so.
```
### Adding additional modules here
Any modules you want to add can be considered for inclusion here by sending us
a pull request on GitHub.
### Incomplete list of modules
#### cs_babbler.c
Repeats what others users in a channel say back to a specific
user. Useful for users that claim they have entire channels on
ignore. NOT COMPILED BY DEFAULT.
#### cs_badwords.c
Takes actions against users (KICK, BAN, KICKBAN or QUIET) for
using badwords in channel, specified on a per-channel basis
with the BADWORDS command. Be aware it will check every message
sent to channels that BLOCKBADWORDS is set on so it can be a bit
CPU-heavy.
#### cs_kickdots.c
Kicks users from a channel when kickdots metadata is set on
that channel and users send a line containing only "...".
Deprecated by cs_badwords (/cs badwords #channel add ... kick).
#### cs_ping.c
Responds to users that ping ChanServ with "Pong!".
#### cs_regmode.c
Sets the stupid, pointless DALNet-style +/-r mode when a channel
is registered or dropped. NOT RECOMMENDED TO USE.
#### cs_regnotice.c
Sends a user a notice with some information specified in a
regnotice {} block inside the chanserv {} block of your
atheme.conf when the user registers a channel.
#### cs_updown.c
Either gives or removes all your channel status modes at once.
#### cs_userinfo.c
Display a message when a user joins a channel. You must be able
to edit the channel access list to add or remove a userinfo entry.
#### gen_echoserver.c
A small sample echoserver using the connection_t framework (deprecated).
NOT RECOMMENDED TO USE.
#### gen_httpd.c
A small sample httpd for serving files. It is highly recommended to use
misc/httpd.c instead.
#### gen_listenerdemo.c
Demonstrates how to use listeners using the connection_t framework (deprecated).
NOT RECOMMENDED TO USE.
#### gen_vhostonreg.c
Assigns a $account.hidehostsuffix vhost to all users upon
account registration. $account will be replaced by the users'
accountname and hidehostsuffix is that config option from the
serverinfo {} block of your atheme.conf.
#### graphtastical.c
Graphs user->channel relationships. Not recommended to use if
there are privacy concerns.
#### gs_roulette.c
A nice GameServ game of Russian Roulette.
#### ircd_catserv.c
Little module showing a CatServ Services client, pretty much all modular
services since forever implement this as an example, so we do too.
#### ircd_announceserv.c
A services bot which allows users to request network
announcements that will then (when approved by a soper)
be sent to all users on the network. This is seperate
from InfoServ so that users can easily ignore users'
announcements but won't miss any important announcements
from network staff.
#### ircd_loveserv.c
A services bot for sending love-related items to other users.
NOT COMPILED BY DEFAULT.
#### ircd_crypto_trans.c
A encryption module for IRCServices weird password encryption scheme, useful
for transitioning to crypto/posix. NOT COMPILED BY DEFAULT.
#### mlocktweaker.c
Sets the mlock to all new channels to something specified in
the source code of the module. See line 16 of the module's
code for what to edit. NOT COMPILED BY DEFAULT.
#### ns_ajoin.c
Allows users to set a AJOIN/autojoin list of channels that Atheme
will automatically join them to upon identify. Only works on
ShadowIRCd, InspIRCd and UnrealIRCd. NOT COMPILED BY DEFAULT.
#### ns_cleannick.c
Detects and cleans 'lame' nicknames using case normalization.
#### ns_fenforce.c
Allows opers to force the ENFORCE flag on/off on other users' accounts.
#### ns_forbid.c
Allows opers to forbid the registration and use of a nickname.
#### ns_fregister.c
Allows opers to register an account on behalf of another user.
An oper must have the user:fregister priv to use this command.
#### ns_generatehash.c
Generates a password hash from the password given as part
of the command. Extremely useful if your passwords are
encrypted and you want to set SOPER passwords.
#### ns_generatepass.c
Generates a random password.
#### ns_guestnoreg.c
Disallows the registration of nicks beginning with a string
specified in the guestnicks {} block inside the nickserv {}
block of your atheme.conf.
#### ns_listlogins.c
Allows users to list the other clients currently logged in
to the same account as them.
#### ns_mxcheck.c
Checks if a email address provided by a user upon registration
is valid and fails registration if it is not.
#### ns_mxcheck_async.c
Same as ns_mxcheck.c, but asynchronous.
#### ns_regnotice.c
Sends a user a notice with some information specified in a
regnotice {} block inside the nickserv {} block of your
atheme.conf when the user registers an account.
#### ns_waitreg.c
Requires a user to have been connected for waitreg_time (in
the nickserv {} block of your atheme.conf) seconds before
they are allowed to register their nick.
#### on_db_save.c
Allows you to specify a command that is run every time the Atheme
database is saved.
#### os_akillnicklist.c
AKILLs users matched in a nicklist specified in your
atheme.conf. See the comment at the top of the module's
source code for details.
#### os_defcon.c
Allows you to use DEFCON-based security on your network.
*HIGHLY* NOT RECOMMENDED AND NOT COMPILED BY DEFAULT.
#### os_helpme.c
Sets usermode +h on all users listed with the general:helper
soper priv upon recieving soper status. Requires an IRCd that has
+h (helper) usermode support. NOT COMPILED BY DEFAULT.
#### os_joinmon.c
Allows adding nick patterns to a joinmon list and when a user
matching one of the patterns joins a channel, a message will
be sent to the logchan (with the info loglevel).
#### os_kill.c
Allows opers to KILL users via services.
#### os_klinechan.c
KLINEs all users who join a KLINECHAN.
#### os_pingspam.c
Spam a user with pings and various messages either on-demand or
spams all users a bit upon connect. Basically, the same functionality as
NeoStats' SecureServ.
#### os_procwatch.c
Watch a specified process and log a message when it finishes
running. Requires kqueue (FreeBSD). NOT COMPILED BY DEFAULT.
#### os_savechanmodes.c
Allows you to dump and restore channelmodes of all channels
on the network, including unregistered ones. Useful for ircd transitions.
#### os_tabletest.c
Tests the dynamic table generation APIs for command replies.
NOT RECOMMENDED TO USE.
#### os_testcmd.c
Run a test command.
#### os_testproc.c
Runs a test of child processes.
#### os_trace.c
Looks up users by certain criteria and allows you to perform
various actions on them.
#### wumpus.c
Allows users to play a game of Hunt the Wumpus!