diff options
author | GeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com> | 2022-03-28 23:48:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-28 23:48:05 +0200 |
commit | b8a7feabea6456f7fa5e8403c8d9bd2630401045 (patch) | |
tree | d6fa62ef39eb4fcfac1c1711f49ad86b2b6c59d3 /NorthstarDedicatedTest/misccommands.cpp | |
parent | 379cbc8bc251307777a14b901e5617e834398485 (diff) | |
download | NorthstarLauncher-b8a7feabea6456f7fa5e8403c8d9bd2630401045.tar.gz NorthstarLauncher-b8a7feabea6456f7fa5e8403c8d9bd2630401045.zip |
More exploit fixes by KIttenPopo (#126)
* Quick fix for a bug I caused
* Typo
* Update kitten-fixes branch to my repo (#122)
* Added string hash macro
* Added convenient vtfunc macro
* Made lil ConCommand creation macro
* Fixed multiple NET_SetConVar exploits
* Quick fixerino
* Fix convar struct (and other things)
* Revive clang-format (but good, i think)
* Update .clang-format
* Reformatted code to meet .clang-format requirements
* Minor formatting fixes
* Fixed Northstar "crashing" when console is closed
* Update .clang-format
* Quick fix for a bug I caused
* Typo
* NSMem Update
* ExplotFixes: Only block excessive convar counts if server
* Update ExploitFixes.cpp
* Update ExploitFixes.cpp
* Updated bytepatch format
* reformatted all code for clang-format
* Updated my clang-format to v13.0.0
* 3 fixes in 1
- ANTITAMPER fixed
- NSMem simplification update
- Fixed bad byte string in serverauthentication.cpp
* Improved ExploitFixes logging and NET_SetConVar patch
* clang-format unironically sabotaged my code
* Made ns_exploitfixes_log on by default
* Fixed IsMemoryReadable (oops)
Co-authored-by: KittenPopo <Pokeberry123@gmail.com>
Diffstat (limited to 'NorthstarDedicatedTest/misccommands.cpp')
-rw-r--r-- | NorthstarDedicatedTest/misccommands.cpp | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/NorthstarDedicatedTest/misccommands.cpp b/NorthstarDedicatedTest/misccommands.cpp index dca87947..cdadff8d 100644 --- a/NorthstarDedicatedTest/misccommands.cpp +++ b/NorthstarDedicatedTest/misccommands.cpp @@ -10,7 +10,8 @@ void AddMiscConCommands() { MAKE_CONCMD( "force_newgame", "forces a map load through directly setting g_pHostState->m_iNextState to HS_NEW_GAME", FCVAR_NONE, - [](const CCommand& arg) { + [](const CCommand& arg) + { if (arg.ArgC() < 2) return; @@ -20,29 +21,34 @@ void AddMiscConCommands() MAKE_CONCMD( "ns_start_reauth_and_leave_to_lobby", "called by the server, used to reauth and return the player to lobby when leaving a game", - FCVAR_SERVER_CAN_EXECUTE, [](const CCommand& arg) { + FCVAR_SERVER_CAN_EXECUTE, + [](const CCommand& arg) + { // hack for special case where we're on a local server, so we erase our own newly created auth data on disconnect g_MasterServerManager->m_bNewgameAfterSelfAuth = true; g_MasterServerManager->AuthenticateWithOwnServer(g_LocalPlayerUserID, g_MasterServerManager->m_ownClientAuthToken); }); // this is a concommand because we make a deferred call to it from another thread - MAKE_CONCMD("ns_end_reauth_and_leave_to_lobby", "", FCVAR_NONE, [](const CCommand& arg) { - Cbuf_AddText( - Cbuf_GetCurrentPlayer(), fmt::format("serverfilter {}", g_ServerAuthenticationManager->m_authData.begin()->first).c_str(), - cmd_source_t::kCommandSrcCode); - Cbuf_Execute(); - - // weird way of checking, but check if client script vm is initialised, mainly just to allow players to cancel this - if (g_ClientSquirrelManager->sqvm) + MAKE_CONCMD( + "ns_end_reauth_and_leave_to_lobby", "", FCVAR_NONE, + [](const CCommand& arg) { - g_ServerAuthenticationManager->m_bNeedLocalAuthForNewgame = true; + Cbuf_AddText( + Cbuf_GetCurrentPlayer(), fmt::format("serverfilter {}", g_ServerAuthenticationManager->m_authData.begin()->first).c_str(), + cmd_source_t::kCommandSrcCode); + Cbuf_Execute(); - // this won't set playlist correctly on remote clients, don't think they can set playlist until they've left which sorta fucks - // things should maybe set this in HostState_NewGame? - SetCurrentPlaylist("tdm"); - strcpy(g_pHostState->m_levelName, "mp_lobby"); - g_pHostState->m_iNextState = HS_NEW_GAME; - } - }); + // weird way of checking, but check if client script vm is initialised, mainly just to allow players to cancel this + if (g_ClientSquirrelManager->sqvm) + { + g_ServerAuthenticationManager->m_bNeedLocalAuthForNewgame = true; + + // this won't set playlist correctly on remote clients, don't think they can set playlist until they've left which sorta + // fucks things should maybe set this in HostState_NewGame? + SetCurrentPlaylist("tdm"); + strcpy(g_pHostState->m_levelName, "mp_lobby"); + g_pHostState->m_iNextState = HS_NEW_GAME; + } + }); }
\ No newline at end of file |