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 {