From 976f82c75c414fdcbf9f36ac18a89d6ea6a48e6c Mon Sep 17 00:00:00 2001 From: meag Date: Sat, 25 Jun 2016 14:50:13 +0100 Subject: [PATCH] SV_USER: Fix /join allowing spectator to join without logging in When sv_login set to 1, spectators do not need to login to connect, but can then execute /join to convert to a player, skipping the login process. --- src/sv_user.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/sv_user.c b/src/sv_user.c index 1767ceb9..a2278ce5 100644 --- a/src/sv_user.c +++ b/src/sv_user.c @@ -2404,6 +2404,7 @@ Set client to player mode without reconnecting */ static void Cmd_Join_f (void) { + extern cvar_t sv_login; int i; int clients; @@ -2423,6 +2424,12 @@ static void Cmd_Join_f (void) return; } + // Might have been 'not necessary' for spectator but needed for player + if (sv_client->logged <= 0 && (int)sv_login.value) { + SV_ClientPrintf (sv_client, PRINT_HIGH, "This server requires users to login. Please disconnect and reconnect as a player.\n"); + return; + } + if (realtime - sv_client->connection_started < 5) { SV_ClientPrintf (sv_client, PRINT_HIGH, "Wait %d seconds\n", 5 - (int)(realtime - sv_client->connection_started));