X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodules%2FNeonSpam.mod%2Fbot_NeonSpam.c;h=89aeb92be68236a07f30438667c517c56e4855ba;hb=306fdbcd56cfdb2fd97e37ef7cb4bc2d806669ca;hp=8438381f39b212dabdb17bc52f325d87348e08e4;hpb=8a990d2c87f8f8a6ca26dd2c6afef161dab2eb9e;p=NeonServV5.git diff --git a/src/modules/NeonSpam.mod/bot_NeonSpam.c b/src/modules/NeonSpam.mod/bot_NeonSpam.c index 8438381..89aeb92 100644 --- a/src/modules/NeonSpam.mod/bot_NeonSpam.c +++ b/src/modules/NeonSpam.mod/bot_NeonSpam.c @@ -1,4 +1,4 @@ -/* bot_NeonSpam.c - NeonServ v5.3 +/* bot_NeonSpam.c - NeonServ v5.4 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -234,6 +234,8 @@ int loadNeonSpamSettings(struct ChanNode *chan) { MYSQL_RES *res; MYSQL_ROW row, defaults = NULL; loadChannelSettings(chan); + if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) + return 0; printf_mysql_query("SELECT `channel_scanner`, `channel_spam_limit`, `channel_spam_except`, `channel_flood_limit`, `channel_flood_time`, `channel_flood_except`, `channel_join_limit`, `channel_join_time`, `channel_join_except`, `channel_caps_percent`, `channel_caps_except`, `channel_digit_percent`, `channel_digit_except` FROM `channels` WHERE `channel_id` = '%d'", chan->channel_id); res = mysql_use(); row = mysql_fetch_row(res); @@ -324,6 +326,12 @@ static void createSpamNode(struct ChanUser *chanuser) { chanuser->spamnode = spamnode; } +static int neonspam_event_freechan(struct ChanNode *chan) { + if(chan->spam_settings) + freeNeonSpamSettings(chan->spam_settings); + return 1; +} + void init_NeonSpam(int type) { set_bot_alias(BOTID, BOTALIAS); @@ -332,13 +340,14 @@ void init_NeonSpam(int type) { if(type == MODSTATE_REBIND) return; //register events - bind_bot_ready(neonspam_bot_ready); - bind_join(neonspam_event_join); - bind_chanmsg(neonspam_event_chanmsg); - bind_privctcp(general_event_privctcp); - bind_kick(neonspam_event_kick); + bind_bot_ready(neonspam_bot_ready, module_id); + bind_join(neonspam_event_join, module_id); + bind_chanmsg(neonspam_event_chanmsg, module_id); + bind_privctcp(general_event_privctcp, module_id); + bind_kick(neonspam_event_kick, module_id); + bind_freechan(neonspam_event_freechan, module_id); - set_trigger_callback(BOTID, neonspam_trigger_callback); + set_trigger_callback(BOTID, module_id, neonspam_trigger_callback); register_default_language_table(msgtab); }