X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2Fcmd_neonserv_peek.c;h=51de508c12d535381a2d271bc359bd3f1e378bed;hp=b3af164199e32958e373a1b0e190f1e5b9dbd86c;hb=b013fcf166b6b84f7b946412dacfe84ba5cfe6b6;hpb=2d9db1adb1946aba00b203f40eff7d5db8163f01 diff --git a/src/cmd_neonserv_peek.c b/src/cmd_neonserv_peek.c index b3af164..51de508 100644 --- a/src/cmd_neonserv_peek.c +++ b/src/cmd_neonserv_peek.c @@ -1,5 +1,5 @@ -/* cmd_neonserv_peek.c - NeonServ v5.1 - * Copyright (C) 2011 Philipp Kreil (pk910) +/* cmd_neonserv_peek.c - NeonServ v5.3 + * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -37,7 +37,7 @@ CMD_BIND(neonserv_cmd_peek) { cache->client = client; cache->textclient = getTextBot(); cache->user = user; - get_userlist_with_invisible(chan, neonserv_cmd_peek_userlist_lookup, cache); + get_userlist_if_invisible(chan, neonserv_cmd_peek_userlist_lookup, cache); } static USERLIST_CALLBACK(neonserv_cmd_peek_userlist_lookup) { @@ -53,18 +53,24 @@ static void neonserv_cmd_peek_async1(struct ClientSocket *client, struct ClientS getModeString(chan->modes, tmpStr); reply(textclient, user, "NS_PEEK_MODES", tmpStr); struct ChanUser *chanuser; - int op_count = 0, voice_count = 0, normal_count = 0, invi_count = 0; + int with_halfops = get_int_field("General.have_halfop"); + int op_count = 0, halfop_count = 0, voice_count = 0, normal_count = 0, invi_count = 0; for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) { if(chanuser->flags & CHANUSERFLAG_OPPED) op_count++; + else if(with_halfops && (chanuser->flags & CHANUSERFLAG_HALFOPPED)) + halfop_count++; else if(chanuser->flags & CHANUSERFLAG_VOICED) voice_count++; - else if(chanuser->flags & CHANUSERFLAG_VOICED) + else if(chanuser->flags & CHANUSERFLAG_INVISIBLE) invi_count++; else normal_count++; } - reply(textclient, user, "NS_PEEK_USERS", op_count+voice_count+invi_count+normal_count, op_count, voice_count, normal_count, invi_count); + if(with_halfops) + reply(textclient, user, "NS_PEEK_USERS_HALFOP", op_count+halfop_count+voice_count+invi_count+normal_count, op_count, halfop_count, voice_count, normal_count, invi_count); + else + reply(textclient, user, "NS_PEEK_USERS", op_count+voice_count+invi_count+normal_count, op_count, voice_count, normal_count, invi_count); int tmpStrPos = 0; int headerlen = 10 + strlen(user->nick); for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) {