From a0c29e7dd67abb15c74c85f07741784877edfdcd Mon Sep 17 00:00:00 2001 From: Joe Ludwig Date: Mon, 2 Sep 2013 11:39:10 -0700 Subject: General: * Fixed a variety of server browser issues with mods based on this SDK * Fixed many warnings on various platforms * Added source code for fgdlib and raytrace * Updated many source files with the latest shared source from TF2. OSX: * Added support for Xcode 4.6 * Switched OSX builds to use Xcode instead of makefiles * Moved libs from src/lib/osx32 to src/lib/public/osx32 or src/lib/common/osx32 to match windows better. Linux: * Moved libs from src/lib/linux32 to src/lib/public/linux32 or src/lib/common/linux32 to match windows better. --- mp/src/game/server/testfunctions.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'mp/src/game/server/testfunctions.cpp') diff --git a/mp/src/game/server/testfunctions.cpp b/mp/src/game/server/testfunctions.cpp index c949a1da..c6f452b2 100644 --- a/mp/src/game/server/testfunctions.cpp +++ b/mp/src/game/server/testfunctions.cpp @@ -16,6 +16,14 @@ void Test_CreateEntity( const CCommand &args ) { + CBasePlayer *pPlayer = UTIL_GetCommandClient(); + + // Require a player entity or that the command was entered from the dedicated server console + if ( !pPlayer && UTIL_GetCommandClientIndex() > 0 ) + { + return; + } + if ( args.ArgC() < 2 ) { Error( "Test_CreateEntity: requires entity classname argument." ); @@ -23,6 +31,24 @@ void Test_CreateEntity( const CCommand &args ) const char *pClassName = args[ 1 ]; + // Don't allow regular users to create point_servercommand entities for the same reason as blocking ent_fire + if ( pPlayer && !Q_stricmp( pClassName, "point_servercommand" ) ) + { + if ( engine->IsDedicatedServer() ) + { + // We allow people with disabled autokick to do it, because they already have rcon. + if ( pPlayer->IsAutoKickDisabled() == false ) + return; + } + else if ( gpGlobals->maxClients > 1 ) + { + // On listen servers with more than 1 player, only allow the host to create point_servercommand. + CBasePlayer *pHostPlayer = UTIL_GetListenServerHost(); + if ( pPlayer != pHostPlayer ) + return; + } + } + if ( !CreateEntityByName( pClassName ) ) { Error( "Test_CreateEntity( %s ) failed.", pClassName ); -- cgit v1.2.3