summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc/manual.lyx22
-rw-r--r--src/game/g_admin.c46
-rw-r--r--src/game/g_admin.h2
3 files changed, 51 insertions, 19 deletions
diff --git a/misc/manual.lyx b/misc/manual.lyx
index f7d0e1e4..593b6d50 100644
--- a/misc/manual.lyx
+++ b/misc/manual.lyx
@@ -7892,7 +7892,7 @@ The following table shows the flags for RIGHTS:
\begin_inset Tabular
-<lyxtabular version="3" rows="12" columns="2">
+<lyxtabular version="3" rows="13" columns="2">
<features islongtable="true">
<column alignment="center" valignment="top" leftline="true" width="0">
<column alignment="left" valignment="top" leftline="true" rightline="true" width="0">
@@ -8108,7 +8108,25 @@ no ! commands can be used on a player with this flag
\layout Standard
-does not show up as an admin in the output of listplayers
+does not show up as an admin in the output of !listplayers
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+$
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+sees additional player info in the output of !listplayers
\end_inset
</cell>
</row>
diff --git a/src/game/g_admin.c b/src/game/g_admin.c
index cffefc54..3c3107db 100644
--- a/src/game/g_admin.c
+++ b/src/game/g_admin.c
@@ -578,11 +578,11 @@ static void admin_default_levels( void )
Q_strncpyz( g_admin_levels[ 3 ]->name, "^2Junior Admin",
sizeof( l->name ) );
- Q_strncpyz( g_admin_levels[ 3 ]->flags, "iahCpPkm", sizeof( l->flags ) );
+ Q_strncpyz( g_admin_levels[ 3 ]->flags, "iahCpPkm$", sizeof( l->flags ) );
Q_strncpyz( g_admin_levels[ 4 ]->name, "^3Senior Admin",
sizeof( l->name ) );
- Q_strncpyz( g_admin_levels[ 4 ]->flags, "iahCpPkmBbe", sizeof( l->flags ) );
+ Q_strncpyz( g_admin_levels[ 4 ]->flags, "iahCpPkmBbe$", sizeof( l->flags ) );
Q_strncpyz( g_admin_levels[ 5 ]->name, "^1Server Operator",
sizeof( l->name ) );
@@ -2341,21 +2341,33 @@ qboolean G_admin_listplayers( gentity_t *ent, int skiparg )
}
}
-
- ADMBP( va( "%2i %s%s^7 %-2i %s^7 (*%s) ^1%1s%1s^7 %s^7 %s%s^7%s\n",
- i,
- c,
- t,
- l,
- ( *lname ) ? lname2 : "",
- guid_stub,
- muted,
- denied,
- p->pers.netname,
- ( *n ) ? "(a.k.a. " : "",
- n,
- ( *n ) ? ")" : ""
- ) );
+
+ if( G_admin_permission(ent, ADMF_SEESFULLLISTPLAYERS ) )
+ {
+ ADMBP( va( "%2i %s%s^7 %-2i %s^7 (*%s) ^1%1s%1s^7 %s^7 %s%s^7%s\n",
+ i,
+ c,
+ t,
+ l,
+ ( *lname ) ? lname2 : "",
+ guid_stub,
+ muted,
+ denied,
+ p->pers.netname,
+ ( *n ) ? "(a.k.a. " : "",
+ n,
+ ( *n ) ? ")" : "" ) );
+ }
+ else
+ {
+ ADMBP( va( "%2i %s%s^7 ^1%1s%1s^7 %s^7\n",
+ i,
+ c,
+ t,
+ muted,
+ denied,
+ p->pers.netname ) );
+ }
}
ADMBP_end();
return qtrue;
diff --git a/src/game/g_admin.h b/src/game/g_admin.h
index c4bf3928..4e24681d 100644
--- a/src/game/g_admin.h
+++ b/src/game/g_admin.h
@@ -55,6 +55,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
* 0 - inactivity rules do not apply to them
* ! - admin commands cannot be used on them
* @ - does not show up as an admin in !listplayers
+ * $ - sees all information in !listplayers
*/
#define ADMF_IMMUNITY '1'
#define ADMF_NOCENSORFLOOD '2' /* TODO */
@@ -69,6 +70,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define ADMF_IMMUTABLE '!'
#define ADMF_INCOGNITO '@'
+#define ADMF_SEESFULLLISTPLAYERS '$'
#define MAX_ADMIN_LISTITEMS 20
#define MAX_ADMIN_SHOWBANS 10