Skip to content

Commit 7ccca7e

Browse files
authored
Fix some targeting issues and add optional case sensitive param (#137)
1 parent 49e28e5 commit 7ccca7e

File tree

2 files changed

+6
-21
lines changed

2 files changed

+6
-21
lines changed

managed/src/SwiftlyS2.Core/Modules/Players/PlayerManagerService.cs

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using SwiftlyS2.Shared.Players;
44
using SwiftlyS2.Shared.SchemaDefinitions;
55
using SwiftlyS2.Shared.Services;
6+
using SwiftlyS2.Shared.SteamAPI;
67

78
namespace SwiftlyS2.Core.Players;
89

@@ -44,20 +45,7 @@ public IEnumerable<IPlayer> GetAllPlayers()
4445
.Select(GetPlayer);
4546
}
4647

47-
private static ulong SteamIDToSteamID64( string steamID )
48-
{
49-
string[] parts = steamID.Split(':');
50-
if (parts.Length != 3) return 0;
51-
52-
int X = int.Parse(parts[1]);
53-
int Y = int.Parse(parts[2]);
54-
55-
ulong steamID64 = (ulong)Y * 2 + (ulong)X + 76561197960265728UL;
56-
return steamID64;
57-
}
58-
59-
60-
public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target, TargetSearchMode searchMode )
48+
public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target, TargetSearchMode searchMode, StringComparison nameComparison = StringComparison.OrdinalIgnoreCase )
6149
{
6250
IEnumerable<IPlayer> allPlayers = [];
6351

@@ -147,15 +135,11 @@ public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target,
147135
allPlayers = allPlayers.Append(targetPlayer);
148136
}
149137
}
150-
else if (targetPlayer.Controller.PlayerName.Contains(target))
151-
{
152-
allPlayers = allPlayers.Append(targetPlayer);
153-
}
154-
else if (ulong.TryParse(target, out ulong steamId) && targetPlayer.SteamID == steamId)
138+
else if (targetPlayer.Controller.PlayerName.Contains(target, nameComparison))
155139
{
156140
allPlayers = allPlayers.Append(targetPlayer);
157141
}
158-
else if (SteamIDToSteamID64(target) == targetPlayer.SteamID)
142+
else if (new CSteamID(target) is var steamId && steamId.IsValid() && steamId.GetSteamID64() == targetPlayer.SteamID)
159143
{
160144
allPlayers = allPlayers.Append(targetPlayer);
161145
}

managed/src/SwiftlyS2.Shared/Modules/Players/IPlayerManager.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ public interface IPlayerManagerService
140140
/// <param name="player">The player initiating the search.</param>
141141
/// <param name="target">The target player name or identifier.</param>
142142
/// <param name="searchMode">The search mode to apply.</param>
143+
/// <param name="nameComparison">The string comparison mode for name matching. Defaults to <see cref="StringComparison.OrdinalIgnoreCase"/>.</param>
143144
/// <returns>A collection of players matching the search criteria.</returns>
144-
public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target, TargetSearchMode searchMode );
145+
public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target, TargetSearchMode searchMode, StringComparison nameComparison = StringComparison.OrdinalIgnoreCase );
145146
}

0 commit comments

Comments
 (0)