chan->chanbot = user;
struct ChanUser *chanuser = addChanUser(chan, user); //it must be a bot
get_userlist(chan, got_channel_userlist, chanuser);
+ putsock(client, "MODE %s", chan->name);
} else if(!isUserOnChan(user, chan) && (chan->flags & CHANFLAG_RECEIVED_USERLIST)) {
struct ChanUser *chanuser = addChanUser(chan, user);
event_join(chanuser);
return 1;
}
+static IRC_CMD(raw_324) { //MODE LIST
+ //Watchcat #pktest +stnzN
+ if(from == NULL || argc < 3) return 0;
+ struct ChanNode *chan = getChanByName(argv[1]);
+ if(chan == NULL) return 0;
+ parseModes(chan, argv[2], argv+3, argc-3);
+ return 1;
+}
+
static IRC_CMD(raw_invite) {
if(from == NULL || argc < 2) return 0;
struct UserNode *user = getUserByMask(from);
//ChannelMode
struct ChanNode *chan = getChanByName(argv[0]);
if(!chan) return 0;
+ if(chan->chanbot != client->user) return 1;
event_mode(user, chan, argv[1], argv+2, argc-2);
parseModes(chan, argv[1], argv+2, argc-2);
} else {
void parser_init() {
//all the raws we receive...
register_irc_function("001", raw_001);
+ register_irc_function("324", raw_324);
register_irc_function("INVITE", raw_invite);
register_irc_function("NOTICE", raw_notice);
register_irc_function("TOPIC", raw_topic);