channel services module (was: Eggdev: 1.9 status)

stdarg stdarg at
Mon Dec 13 09:01:03 CST 2004

Today I started on the protection module, which I've called the channel
services module, since things like auto-op are more service than protection I

It doesn't do much right now -- when someone joins, it sends the channel a
message. The main point is to illustrate how to use server module functions
from other modules. Right now the way to do it is:

#include <modules/server/egg_server_api.h>

(3rd party modules should use #include <eggdrop/egg_server_api.h> or something
similar.. we'll know more details when 'make' actually installs header files)

server = module_get_api("server", 1, 0);

(1 0 aren't used, they'll be a version number of some kind though)

server->printserv(SERVER_NORMAL, "privmsg %s ...", chan, ...);

This channel services module should grow to include all of the channel services
we're used to from eggdrop. This includes changing modes according to flags
(give +o, +v, etc), keeping static bans set, managing a dynamic ban list,
checking for all kinds of floods, and so on.

If you wonder whether something goes into the server module or this module,
ask, "is this something done for maintaining our irc session, or something done
to provide a service to the users?" For instance, the server module keeps an
exact mirror of modes for each person on the channel -- say stdarg has +v. The
channel services module keeps track of what modes each person wants or is
allowed to have -- for instance, +a means I want ops asap, +d means I'm not
allowed to have ops. These are concepts that the actual irc server doesn't care

There may be some things currently in the server module that should be moved to
this module. For instance, channel auto-joining and re-joining... it sounds
like something that should go into the service module.

The other thing that might be moved is the code to handle channel files and
channel settings. The server module should keep track of the actual list of
channels and the actual settings on those channels according to the server. The
channel services module can provide things like channel_set/get for scripts to
store channel settings, etc.

It's open for discussion, though. Any ideas?

--- Darko Ilic <darko at> wrote:

> Hello eggdev,
> 1.9 had stalled yet again. Is there any hope that someone (preferably 
> stdarg) can get server module and flagging system to a point where this 
> protection-module-to-be can pick up from? We also need to define what 
> belongs where (specially in server/protection module cases) so to 
> prevent further mixing of code. Lastly, botnet should be discussed 
> again, and in great detail this time. Anyone remebers the summary about it?
> Darko

Do you Yahoo!? 
Read only the mail you want - Yahoo! Mail SpamGuard. 

More information about the Eggdev mailing list