#include "bots.h"
#include "timeq.h"
#include "ConfigParser.h"
+#include "statistics.h"
struct irc_cmd *irc_commands = NULL;
//static struct UserNode *registering_users = NULL;
event_registered(user, from);
user->flags &= ~USERFLAG_WAS_REGISTERING;
+ if(user->last_who > REWHO_TIMEOUT)
+ user->last_who -= REWHO_TIMEOUT;
+
+ event_join(chanuser);
} else if(!(chan->flags & CHANFLAG_RECEIVED_USERLIST)) {
if(client->user != user) { //bots are allowed to add themselves
DESYNCHRONIZE(cache_sync);
decrease_viscount_butone(chan, chanuser);
chan->botcount--;
}
+ if(chanuser->flags & CHANUSERFLAG_PARTING)
+ chanuser->old_visCount--;
chanuser->visCount--;
if(chanuser->visCount == 0) {
delChanUser(chanuser, 0); //not free, yet!
event_part(chanuser, 0, (argc > 1 ? argv[1] : NULL));
freeChanUser(chanuser);
+ } else if(!(chanuser->flags & CHANUSERFLAG_PARTING)) {
+ chanuser->flags |= CHANUSERFLAG_PARTING;
+ chanuser->old_visCount = chanuser->visCount;
+ } else if(chanuser->old_visCount == 0) {
+ int visCount = chanuser->visCount;
+ delChanUser(chanuser, 0); //not free, yet!
+ event_part(chanuser, 0, (argc > 1 ? argv[1] : NULL));
+ freeChanUser(chanuser);
+ chanuser = addChanUser(chan, user);
+ chanuser->visCount = visCount;
+ event_join(chanuser);
}
//check if channel is still present
if(argv[0][0] == '#') { //Channel message
struct ChanNode *chan = getChanByName(argv[0]);
if(chan && client == get_first_prefered_bot_in_channel(chan)) {
- if(statistics_enabled)
- statistics_privmsg++;
+ statistics_privmsg++;
if(argv[1][0] == '\001') {
char *cmd = &argv[1][1];
char *text = strstr(cmd, " ");