moved debug outputs and added getModeString
[NeonServV5.git] / IRCEvents.c
index e71b5caad8c603d61730b06afa0375b1330f542d..215a8f74d3037c1edf64e5a0d0406c7b2c6e2a07 100644 (file)
@@ -3,6 +3,7 @@
 #include "UserNode.h"
 #include "ChanNode.h"
 #include "ChanUser.h"
+#include "ClientSocket.h"
 
 int event_join(struct ChanUser *chanuser) {
     return 1;
@@ -33,6 +34,19 @@ int event_mode(struct UserNode *user, struct ChanNode *chan, char *modes, char *
 }
 
 int event_chanmsg(struct UserNode *user, struct ChanNode *chan, char *message) {
+    struct ClientSocket *client = getBots(SOCKET_FLAG_READY, NULL);
+    if(!strcmp(message, "users")) {
+        struct ChanUser *chanuser;
+        putsock(client, "PRIVMSG %s :[BOT JOIN] Users on this Channel:", chan->name);
+        for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) {
+            putsock(client, "PRIVMSG %s :  %s!%s@%s [%s]  rights: %d", chan->name, chanuser->user->nick, chanuser->user->ident, chanuser->user->host, ((chanuser->user->flags & USERFLAG_ISAUTHED) ? chanuser->user->auth : "*"), chanuser->flags);
+        }
+    }
+    if(!strcmp(message, "modes")) {
+        char modeBuf[MAXLEN];
+        getModeString(chan, modeBuf);
+        putsock(client, "PRIVMSG %s :Modes: %s", chan->name, modeBuf);
+    }
     return 1;
 }