summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/main.c4
-rw-r--r--src/server/server.h2
-rw-r--r--src/server/user.c4
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);