#include "ChanUser.h"
#include "IRCEvents.h"
#include "ClientSocket.h"
+#include "WHOHandler.h"
struct irc_cmd *irc_commands = NULL;
}
}
+static USERLIST_CALLBACK(got_channel_userlist) {
+ chan->flags |= CHANFLAG_RECEIVED_USERLIST;
+}
+
static IRC_CMD(raw_001) {
client->flags |= SOCKET_FLAG_READY;
putsock(client, "JOIN #pktest");
if(chan == NULL) {
chan = addChannel(argv[0]);
//request member list
- //TODO!
+ get_userlist(chan, got_channel_userlist);
} 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_354) {
+ recv_whohandler_354(client, argv, argc);
+ return 1;
+}
+
+static IRC_CMD(raw_315) {
+ recv_whohandler_315(client, argv, argc);
+ return 1;
+}
+
void parser_init() {
//all the raws we receive...
register_irc_function("001", raw_001);
+ register_irc_function("354", raw_354);
+ register_irc_function("315", raw_315);
register_irc_function("KICK", raw_kick);
register_irc_function("JOIN", raw_join);
register_irc_function("PART", raw_part);