+void ModeParser::DisplayCurrentModes(userrec *user, userrec* targetuser, chanrec* targetchannel, const char* text)
+{
+ if (targetchannel)
+ {
+ /* Display channel's current mode string */
+ WriteServ(user->fd,"324 %s %s +%s",user->nick, targetchannel->name, chanmodes(targetchannel, targetchannel->HasUser(user)));
+ WriteServ(user->fd,"329 %s %s %d", user->nick, targetchannel->name, targetchannel->created);
+ return;
+ }
+ else if (targetuser)
+ {
+ /* Display user's current mode string */
+ WriteServ(user->fd,"221 %s :+%s",targetuser->nick,targetuser->FormatModes());
+ WriteServ(user->fd, "008 %s :+%s", targetuser->nick, targetuser->FormatNoticeMasks());
+ return;
+ }
+
+ /* No such nick/channel */
+ WriteServ(user->fd,"401 %s %s :No such nick/channel",user->nick, text);
+ return;
+}
+
+void ModeParser::Process(const char** parameters, int pcnt, userrec *user, bool servermode)