diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/main.c | 4 | ||||
-rw-r--r-- | src/server/server.h | 2 | ||||
-rw-r--r-- | src/server/user.c | 4 |
3 files changed, 10 insertions, 0 deletions
diff --git a/src/server/main.c b/src/server/main.c index 468cd39..22c2ee9 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -90,6 +90,8 @@ cvar_t *sv_auth_limit; cvar_t *sv_rcon_limit; cvar_t *sv_namechange_limit; +cvar_t *sv_allow_unconnected_cmds; + cvar_t *g_features; cvar_t *map_override_path; @@ -2137,6 +2139,8 @@ void SV_Init(void) sv_namechange_limit = Cvar_Get("sv_namechange_limit", "5/min", 0); sv_namechange_limit->changed = sv_namechange_limit_changed; + sv_allow_unconnected_cmds = Cvar_Get("sv_allow_unconnected_cmds", "0", 0); + Cvar_Get("sv_features", va("%d", SV_FEATURES), CVAR_ROM); g_features = Cvar_Get("g_features", "0", CVAR_ROM); diff --git a/src/server/server.h b/src/server/server.h index 0919e07..a1e8ced 100644 --- a/src/server/server.h +++ b/src/server/server.h @@ -524,6 +524,8 @@ extern cvar_t *sv_auth_limit; extern cvar_t *sv_rcon_limit; extern cvar_t *sv_uptime; +extern cvar_t *sv_allow_unconnected_cmds; + extern cvar_t *g_features; extern cvar_t *map_override_path; diff --git a/src/server/user.c b/src/server/user.c index 8292795..24f6fc4 100644 --- a/src/server/user.c +++ b/src/server/user.c @@ -986,6 +986,10 @@ static void SV_ExecuteUserCommand(const char *s) return; } + if (sv_client->state != cs_spawned && !sv_allow_unconnected_cmds->integer) { + return; + } + LIST_FOR_EACH(filtercmd_t, filter, &sv_filterlist, entry) { if (!Q_stricmp(filter->string, c)) { handle_filtercmd(filter); |