if (tmpstr) {
char *umodev[] = { NULL, NULL, NULL, NULL };
umodev[2] = tmpstr;
- set_user_mode(cptr, sptr, 1, umodev, ALLOWMODES_ANY);
+ set_user_mode(cptr, sptr, 3, umodev, ALLOWMODES_ANY);
}
-
}
else {
struct Client *acptr = user->server;
*/
if (HasHiddenHost(sptr))
hide_hostmask(sptr, FLAG_HIDDENHOST);
- if (IsInvisible(sptr))
- ++UserStats.inv_clients;
- if (IsOper(sptr))
- ++UserStats.opers;
tmpstr = umode_str(sptr);
/* Send full IP address to IPv6-grokking servers. */
assert(cli_local(sptr));
targets = cli_targets(sptr);
- /* If user is invited to channel, give him/her a free target */
- if (IsChannelName(name) && IsInvited(sptr, target))
- return 0;
-
/*
* Same target as last time?
*/
*/
if (!created) {
if (CurrentTime < cli_nexttarget(sptr)) {
+ /* If user is invited to channel, give him/her a free target */
+ if (IsChannelName(name) && IsInvited(sptr, target))
+ return 0;
+
if (cli_nexttarget(sptr) - CurrentTime < TARGET_DELAY + 8) {
/*
* No server flooding
do_host_hiding = 1;
break;
case 'r':
- if (what == MODE_ADD) {
+ if (*(p + 1) && (what == MODE_ADD)) {
account = *(++p);
SetAccount(sptr);
}