diff --git a/src/game/g_admin.c b/src/game/g_admin.c index 9264e48..407a515 100644 --- a/src/game/g_admin.c +++ b/src/game/g_admin.c @@ -104,6 +104,12 @@ g_admin_cmd_t g_admin_cmds[ ] = "[^3name|slot#^7] [^3#^7]" }, + {"demo", G_admin_demo, "W", + "turn admin chat warnings off so they do not appear in demos. " + "this is a toggle use !demo again to turn warnings back on", + "" + }, + {"denybuild", G_admin_denybuild, "d", "take away a player's ability to build", "[^3name|slot#^7]" @@ -6397,6 +6403,15 @@ qboolean G_admin_suspendban( gentity_t *ent, int skiparg ) return qtrue; } +qboolean G_admin_demo( gentity_t *ent, int skiparg ) +{ + ent->client->pers.ignoreAdminWarnings = !( ent->client->pers.ignoreAdminWarnings ); + + ADMP( va( "^3!demo: ^7your admin chat warnings are now %s\n", + ( ent->client->pers.ignoreAdminWarnings ) ? "^1disabled" : "^2enabled" ) ); + + return qtrue; +} qboolean G_admin_mix( gentity_t *ent, int skiparg ) { diff --git a/src/game/g_admin.h b/src/game/g_admin.h index 2965b9e..d81deea 100644 --- a/src/game/g_admin.h +++ b/src/game/g_admin.h @@ -216,6 +216,7 @@ qboolean G_admin_L0( gentity_t *ent, int skiparg ); qboolean G_admin_listmaps( gentity_t *ent, int skiparg ); qboolean G_admin_immunity( gentity_t *ent, int skiparg ); qboolean G_admin_suspendban( gentity_t *ent, int skiparg ); +qboolean G_admin_demo( gentity_t *ent, int skiparg ); qboolean G_admin_adminlog( gentity_t *ent, int skiparg ); void G_admin_adminlog_cleanup( void ); void G_admin_adminlog_log( gentity_t *ent, char *command, char *args, int skiparg, qboolean success ); diff --git a/src/game/g_local.h b/src/game/g_local.h index df4eb26..b861d27 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -391,6 +391,7 @@ typedef struct statsCounters_t statscounters; qboolean cusgrav; int cusgravlvl; + qboolean ignoreAdminWarnings; qboolean firstConnect; } clientPersistant_t; diff --git a/src/game/g_main.c b/src/game/g_main.c index 9caa0a5..97faa65 100644 --- a/src/game/g_main.c +++ b/src/game/g_main.c @@ -1786,7 +1786,8 @@ void QDECL G_AdminsPrintf( const char *fmt, ... ) for( j = 0; j < level.maxclients; j++ ) { tempent = &g_entities[ j ]; - if( G_admin_permission( tempent, ADMF_ADMINCHAT) ) + if( G_admin_permission( tempent, ADMF_ADMINCHAT) && + !tempent->client->pers.ignoreAdminWarnings ) { trap_SendServerCommand(tempent-g_entities,va( "print \"^6[Admins]^7 %s\"", string) ); }