char *content[4];
int userlistlen, i, j;
int db_enfops, db_enfvoice;
- int caccess, synced_user;
+ int caccess, synced_user, accessbufpos;
struct ChanUser *chanusers[chan->usercount];
struct ChanUser *chanuser;
+ struct ClientSocket *bot;
int chanuser_count;
char statebuf[5];
- char accessbuf[9];
+ char accessbuf[50];
char viscountbuf[5];
int uaccess;
uaccess = db_enfvoice;
} else {
//fail...
- sprintf(accessbuf, "\00307%d\003", uaccess);
+ accessbufpos = sprintf(accessbuf, "\00307%d\003", uaccess);
break;
}
neonserv_cmd_nicklist_synchronize_user(chan, chanuser->user, uaccess);
- sprintf(accessbuf, "\00309%d\003", uaccess);
+ accessbufpos = sprintf(accessbuf, "\00309%d\003", uaccess);
synced_user = 1;
} else {
synced_user = 1;
- sprintf(accessbuf, "\00307%d\003", uaccess);
+ accessbufpos = sprintf(accessbuf, "\00307%d\003", uaccess);
}
} else if((uaccess >= db_enfops && !(chanuser->flags & CHANUSERFLAG_OPPED)) || (uaccess >= db_enfvoice && !(chanuser->flags & CHANUSERFLAG_OPPED_OR_VOICED)))
- sprintf(accessbuf, "\00303%d\003", uaccess);
+ accessbufpos = sprintf(accessbuf, "\00303%d\003", uaccess);
else
- sprintf(accessbuf, "%d", uaccess);
+ accessbufpos = sprintf(accessbuf, "%d", uaccess);
break;
}
}
uaccess = db_enfvoice;
} else {
uaccess = 0;
- sprintf(accessbuf, "\003040\003");
+ accessbufpos = sprintf(accessbuf, "\003040\003");
}
if(uaccess && (chanuser->user->flags & USERFLAG_ISAUTHED)) {
neonserv_cmd_nicklist_synchronize_user(chan, chanuser->user, uaccess);
- sprintf(accessbuf, "\00309%d\003", uaccess);
+ accessbufpos = sprintf(accessbuf, "\00309%d\003", uaccess);
synced_user = 1;
} else if(uaccess) {
- sprintf(accessbuf, "\003040\003");
+ accessbufpos = sprintf(accessbuf, "\003040\003");
}
} else {
synced_user = 1;
- sprintf(accessbuf, "\003040\003");
+ accessbufpos = sprintf(accessbuf, "\003040\003");
}
} else if(!uaccess)
- sprintf(accessbuf, "0");
+ accessbufpos = sprintf(accessbuf, "0");
+ j = 0;
+ if(isBot(chanuser->user)) {
+ //check if bot is secret
+ for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
+ if(bot->user == chanuser->user)
+ break;
+ }
+ if(bot && !(bot->flags & SOCKET_FLAG_SECRET_BOT)) {
+ if(j)
+ accessbufpos += sprintf(accessbuf+accessbufpos, ", ");
+ else {
+ accessbufpos += sprintf(accessbuf+accessbufpos, " (");
+ j = 1;
+ }
+ accessbufpos += sprintf(accessbuf+accessbufpos, "%s", get_language_string(user, "NS_NICKLIST_ACCESS_BOT"));
+ }
+ }
+ if(chanuser->user->flags & USERFLAG_ISIRCOP) {
+ if(j)
+ accessbufpos += sprintf(accessbuf+accessbufpos, ", ");
+ else {
+ accessbufpos += sprintf(accessbuf+accessbufpos, " (");
+ j = 1;
+ }
+ accessbufpos += sprintf(accessbuf+accessbufpos, "%s", get_language_string(user, "NS_NICKLIST_ACCESS_OPER"));
+ }
+ if(j)
+ accessbufpos += sprintf(accessbuf+accessbufpos, ")");
content[2] = accessbuf;
if(flags & NEONSERV_CMD_NICKLIST_FLAG_VISCOUNT) {
sprintf(viscountbuf, "%d", chanuser->visCount);