summaryrefslogtreecommitdiff
path: root/src/game/g_admin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/g_admin.c')
-rw-r--r--src/game/g_admin.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/game/g_admin.c b/src/game/g_admin.c
index b3f1ace2..36a873b2 100644
--- a/src/game/g_admin.c
+++ b/src/game/g_admin.c
@@ -1597,13 +1597,18 @@ qboolean G_admin_kick( gentity_t *ent, int skiparg )
ADMP( va( "^3!kick: ^7%s\n", err ) );
return qfalse;
}
- if( !admin_higher( ent, &g_entities[ pids[ 0 ] ] ) )
+ vic = &g_entities[ pids[ 0 ] ];
+ if( !admin_higher( ent, vic ) )
{
ADMP( "^3!kick: ^7sorry, but your intended victim has a higher admin"
" level than you\n" );
return qfalse;
}
- vic = &g_entities[ pids[ 0 ] ];
+ if( vic->client->pers.localClient )
+ {
+ ADMP( "^3!kick: ^7disconnecting the host would end the game\n" );
+ return qfalse;
+ }
if( g_adminTempBan.integer > 0 )
{
admin_create_ban( ent,
@@ -1785,9 +1790,6 @@ qboolean G_admin_ban( gentity_t *ent, int skiparg )
return qfalse;
}
- G_admin_duration( ( seconds ) ? seconds : -1,
- duration, sizeof( duration ) );
-
if( ent && !admin_higher_guid( ent->client->pers.guid,
g_admin_namelog[ logmatch ]->guid ) )
{
@@ -1796,6 +1798,14 @@ qboolean G_admin_ban( gentity_t *ent, int skiparg )
" level than you\n" );
return qfalse;
}
+ if( !strcmp( g_admin_namelog[ logmatch ]->ip, "localhost" ) )
+ {
+ ADMP( "^3!ban: ^7disconnecting the host would end the game\n" );
+ return qfalse;
+ }
+
+ G_admin_duration( ( seconds ) ? seconds : -1,
+ duration, sizeof( duration ) );
admin_create_ban( ent,
g_admin_namelog[ logmatch ]->name[ 0 ],