127 lines
3.9 KiB
C
127 lines
3.9 KiB
C
|
#include "lua.h"
|
||
|
#include "events.h"
|
||
|
|
||
|
void lua_init_handlers()
|
||
|
{
|
||
|
// see lib/events.h
|
||
|
lua_setvar("PRIVMSG_CHAN", PRIVMSG_CHAN);
|
||
|
lua_setvar("PRIVMSG_SELF", PRIVMSG_SELF);
|
||
|
lua_setvar("TICK", TICK);
|
||
|
lua_setvar("JOIN", JOIN);
|
||
|
lua_setvar("JOIN_MYSELF", JOIN_MYSELF);
|
||
|
lua_setvar("IRC_CONNECTED", IRC_CONNECTED);
|
||
|
lua_setvar("NICK_MYSELF", NICK_MYSELF);
|
||
|
lua_setvar("NICK_INUSE", NICK_INUSE);
|
||
|
lua_setvar("CTCP", CTCP);
|
||
|
lua_setvar("IRC_NAMREPLY", IRC_NAMREPLY);
|
||
|
lua_setvar("IRC_WHOREPLY", IRC_WHOREPLY);
|
||
|
lua_setvar("PART", PART);
|
||
|
lua_setvar("PART_MYSELF", PART_MYSELF);
|
||
|
lua_setvar("QUIT", QUIT);
|
||
|
|
||
|
add_handler(PRIVMSG_CHAN, chanprivmsg_handler);
|
||
|
add_handler(PRIVMSG_SELF, selfprivmsg_handler);
|
||
|
add_handler(TICK, tick_handler);
|
||
|
add_handler(JOIN, join_handler);
|
||
|
add_handler(JOIN_MYSELF, joinmyself_handler);
|
||
|
add_handler(IRC_CONNECTED, ircconnected_handler);
|
||
|
add_handler(NICK_MYSELF, nickmyself_handler);
|
||
|
add_handler(NICK_INUSE, nickinuse_handler);
|
||
|
add_handler(CTCP, ctcp_handler);
|
||
|
add_handler(IRC_NAMREPLY, ircnamreply_handler);
|
||
|
add_handler(IRC_WHOREPLY, ircwhoreply_handler);
|
||
|
add_handler(PART, part_handler);
|
||
|
add_handler(PART_MYSELF, partmyself_handler);
|
||
|
add_handler(QUIT, quit_handler);
|
||
|
}
|
||
|
|
||
|
void lua_unload_handlers()
|
||
|
{
|
||
|
del_handler(PRIVMSG_CHAN, chanprivmsg_handler);
|
||
|
del_handler(PRIVMSG_SELF, selfprivmsg_handler);
|
||
|
del_handler(TICK, tick_handler);
|
||
|
del_handler(JOIN, join_handler);
|
||
|
del_handler(JOIN_MYSELF, joinmyself_handler);
|
||
|
del_handler(IRC_CONNECTED, ircconnected_handler);
|
||
|
del_handler(NICK_MYSELF, nickmyself_handler);
|
||
|
del_handler(NICK_INUSE, nickinuse_handler);
|
||
|
del_handler(CTCP, ctcp_handler);
|
||
|
del_handler(IRC_NAMREPLY, ircnamreply_handler);
|
||
|
del_handler(IRC_WHOREPLY, ircwhoreply_handler);
|
||
|
del_handler(PART, part_handler);
|
||
|
del_handler(PART_MYSELF, partmyself_handler);
|
||
|
del_handler(QUIT, quit_handler);
|
||
|
}
|
||
|
|
||
|
|
||
|
MY_API void chanprivmsg_handler(struct irc_conn *bot, char *user, char *host, char *chan, const char *text)
|
||
|
{
|
||
|
lua_fire_handlers(PRIVMSG_CHAN, user, host, chan, text);
|
||
|
lua_eval(bot, user, host, chan, text);
|
||
|
}
|
||
|
|
||
|
MY_API void selfprivmsg_handler(struct irc_conn *bot, char *user, char *host, const char *text)
|
||
|
{
|
||
|
lua_fire_handlers(PRIVMSG_SELF, user, host, text);
|
||
|
}
|
||
|
|
||
|
MY_API void tick_handler(struct irc_conn *bot)
|
||
|
{
|
||
|
lua_fire_handlers(TICK);
|
||
|
}
|
||
|
|
||
|
MY_API void join_handler(struct irc_conn *bot, char *user, char *host, char *chan)
|
||
|
{
|
||
|
lua_fire_handlers(JOIN, user, host, chan);
|
||
|
}
|
||
|
|
||
|
MY_API void joinmyself_handler(struct irc_conn *bot, char *chan)
|
||
|
{
|
||
|
lua_fire_handlers(JOIN_MYSELF, chan);
|
||
|
}
|
||
|
|
||
|
MY_API void ircconnected_handler(struct irc_conn *bot)
|
||
|
{
|
||
|
lua_fire_handlers(IRC_CONNECTED);
|
||
|
}
|
||
|
|
||
|
MY_API void nickmyself_handler(struct irc_conn *bot, char *newnick)
|
||
|
{
|
||
|
lua_fire_handlers(NICK_MYSELF, newnick);
|
||
|
}
|
||
|
|
||
|
MY_API void nickinuse_handler(struct irc_conn *bot, char *newnick)
|
||
|
{
|
||
|
lua_fire_handlers(NICK_INUSE, newnick);
|
||
|
}
|
||
|
|
||
|
MY_API void ctcp_handler(struct irc_conn *bot, char *user, char *host, char *chan, const char *text)
|
||
|
{
|
||
|
lua_fire_handlers(CTCP, user, host, chan, text);
|
||
|
}
|
||
|
|
||
|
MY_API void ircnamreply_handler(struct irc_conn *bot, char *chan, char *nicks)
|
||
|
{
|
||
|
lua_fire_handlers(IRC_NAMREPLY, chan, nicks);
|
||
|
}
|
||
|
|
||
|
MY_API void ircwhoreply_handler(struct irc_conn *bot, char *chan, char *user, char *host, char *server, char *nick, char *flags, char *hops, char *realname)
|
||
|
{
|
||
|
lua_fire_handlers(IRC_WHOREPLY, chan, user, host, server, nick, flags, hops, realname);
|
||
|
}
|
||
|
|
||
|
MY_API void part_handler(struct irc_conn *bot, char *user, char *host, char *chan)
|
||
|
{
|
||
|
lua_fire_handlers(PART, user, host, chan);
|
||
|
}
|
||
|
|
||
|
MY_API void partmyself_handler(struct irc_conn *bot, char *chan)
|
||
|
{
|
||
|
lua_fire_handlers(PART_MYSELF, chan);
|
||
|
}
|
||
|
|
||
|
MY_API void quit_handler(struct irc_conn *bot, char *user, char *host, const char *text)
|
||
|
{
|
||
|
lua_fire_handlers(QUIT, user, host, text);
|
||
|
}
|