core/PlayerManager.cpp
changeset 1907 34f148f94339
parent 1906 d0aad17b4950
child 1915 ab031366cfd1
     1.1 --- a/core/PlayerManager.cpp	Sat Mar 01 07:17:38 2008 +0000
     1.2 +++ b/core/PlayerManager.cpp	Sat Mar 01 07:59:53 2008 +0000
     1.3 @@ -931,6 +931,53 @@
     1.4  			}
     1.5  		}
     1.6  
     1.7 +		/* Do we need to look for a steam id? */
     1.8 +		if (strncmp(&info->pattern[1], "STEAM_", 6) == 0)
     1.9 +		{
    1.10 +			size_t p, len;
    1.11 +			char new_pattern[256];
    1.12 +
    1.13 +			strcpy(new_pattern, "STEAM_");
    1.14 +			len = strlen(&info->pattern[7]);
    1.15 +			for (p = 0; p < len; p++)
    1.16 +			{
    1.17 +				new_pattern[6 + p] = info->pattern[7 + p];
    1.18 +				if (new_pattern[6 + p] == '_')
    1.19 +				{
    1.20 +					new_pattern[6 + p] = ':';
    1.21 +				}
    1.22 +			}
    1.23 +			new_pattern[6 + p] = '\0';
    1.24 +
    1.25 +			for (int i = 1; i <= max_clients; i++)
    1.26 +			{
    1.27 +				if ((pTarget = GetPlayerByIndex(i)) == NULL)
    1.28 +				{
    1.29 +					continue;
    1.30 +				}
    1.31 +				if (!pTarget->IsConnected() || !pTarget->IsAuthorized())
    1.32 +				{
    1.33 +					continue;
    1.34 +				}
    1.35 +				if (strcmp(pTarget->GetAuthString(), new_pattern) == 0)
    1.36 +				{
    1.37 +					if ((info->reason = FilterCommandTarget(pAdmin, pTarget, info->flags))
    1.38 +						== COMMAND_TARGET_VALID)
    1.39 +					{
    1.40 +						info->targets[0] = i;
    1.41 +						info->num_targets = 1;
    1.42 +						strncopy(info->target_name, pTarget->GetName(), info->target_name_maxlength);
    1.43 +						info->target_name_style = COMMAND_TARGETNAME_RAW;
    1.44 +					}
    1.45 +					else
    1.46 +					{
    1.47 +						info->num_targets = 0;
    1.48 +					}
    1.49 +					return;
    1.50 +				}
    1.51 +			}
    1.52 +		}
    1.53 +
    1.54  		/* See if an exact name matches */
    1.55  		for (int i = 1; i <= max_clients; i++)
    1.56  		{