From 6a348c8f6004f36a6b5f4162502b9a54b18ad466 Mon Sep 17 00:00:00 2001 From: def Date: Tue, 11 May 2021 17:03:57 +0200 Subject: [PATCH] Add sv_swap Because swap is broken and the current way of disabling is horrible. --- src/engine/shared/config_variables.h | 1 + src/game/server/ddracechat.cpp | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/engine/shared/config_variables.h b/src/engine/shared/config_variables.h index 16b9d1701..cf0996ffa 100644 --- a/src/engine/shared/config_variables.h +++ b/src/engine/shared/config_variables.h @@ -232,6 +232,7 @@ MACRO_CONFIG_INT(SvSaveGames, sv_savegames, 1, 0, 1, CFGFLAG_SERVER, "Enables sa MACRO_CONFIG_INT(SvSaveSwapGamesDelay, sv_saveswapgames_delay, 30, 0, 10000, CFGFLAG_SERVER, "Delay in seconds for loading a savegame or before swapping") MACRO_CONFIG_INT(SvSaveSwapGamesPenalty, sv_saveswapgames_penalty, 60, 0, 10000, CFGFLAG_SERVER, "Penalty in seconds for saving or swapping position") MACRO_CONFIG_INT(SvSwapTimeout, sv_swap_timeout, 30, 0, 10000, CFGFLAG_SERVER, "Timeout in seconds before option to swap expires") +MACRO_CONFIG_INT(SvSwap, sv_swap, 0, 0, 1, CFGFLAG_SERVER, "Enable /swap") MACRO_CONFIG_INT(SvUseSQL, sv_use_sql, 0, 0, 1, CFGFLAG_SERVER, "Enables MySQL backend instead of SQLite backend (sv_sqlite_file is still used as fallback write server when no MySQL server is reachable)") MACRO_CONFIG_INT(SvSqlQueriesDelay, sv_sql_queries_delay, 1, 0, 20, CFGFLAG_SERVER, "Delay in seconds between SQL queries of a single player") MACRO_CONFIG_STR(SvSqliteFile, sv_sqlite_file, 64, "ddnet-server.sqlite", CFGFLAG_SERVER, "File to store ranks in case sv_use_sql is turned off or used as backup sql server") diff --git a/src/game/server/ddracechat.cpp b/src/game/server/ddracechat.cpp index 58d23f75c..c1bf47254 100644 --- a/src/game/server/ddracechat.cpp +++ b/src/game/server/ddracechat.cpp @@ -689,6 +689,15 @@ void CGameContext::ConSwap(IConsole::IResult *pResult, void *pUserData) if(pSelf->ProcessSpamProtection(pResult->m_ClientID)) return; + if(!g_Config.m_SvSwap) + { + pSelf->Console()->Print( + IConsole::OUTPUT_LEVEL_STANDARD, + "print", + "Swap is disabled on this server."); + return; + } + CGameTeams &Teams = ((CGameControllerDDRace *)pSelf->m_pController)->m_Teams; int Team = Teams.m_Core.Team(pResult->m_ClientID);