* (if user is channel operator or has voice) */
if (str[strlen(str) - 1] != ':')
strlcat(str, ",", sizeof(str));
- if (strchr(Channel_UserModes(Chan, cl), 'v'))
- strlcat(str, "+", sizeof(str));
+ if (strchr(Channel_UserModes(Chan, cl), 'q'))
+ strlcat(str, "~", sizeof(str));
+ if (strchr(Channel_UserModes(Chan, cl), 'a'))
+ strlcat(str, "&", sizeof(str));
if (strchr(Channel_UserModes(Chan, cl), 'o'))
strlcat(str, "@", sizeof(str));
+ if (strchr(Channel_UserModes(Chan, cl), 'h'))
+ strlcat(str, "%", sizeof(str));
+ if (strchr(Channel_UserModes(Chan, cl), 'v'))
+ strlcat(str, "+", sizeof(str));
+
strlcat(str, Client_ID(cl), sizeof(str));
/* Send the data if the buffer is "full" */
}
#endif
+ if (!IRC_WriteStrClient(Client, "PING :%s",
+ Client_ID(Client_ThisServer())))
+ return DISCONNECTED;
+
return CONNECTED;
} /* IRC_Num_ENDOFMOTD */