Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 4 additions & 20 deletions managed/src/SwiftlyS2.Core/Modules/Players/PlayerManagerService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using SwiftlyS2.Shared.Players;
using SwiftlyS2.Shared.SchemaDefinitions;
using SwiftlyS2.Shared.Services;
using SwiftlyS2.Shared.SteamAPI;

namespace SwiftlyS2.Core.Players;

Expand Down Expand Up @@ -44,20 +45,7 @@ public IEnumerable<IPlayer> GetAllPlayers()
.Select(GetPlayer);
}

private static ulong SteamIDToSteamID64( string steamID )
{
string[] parts = steamID.Split(':');
if (parts.Length != 3) return 0;

int X = int.Parse(parts[1]);
int Y = int.Parse(parts[2]);

ulong steamID64 = (ulong)Y * 2 + (ulong)X + 76561197960265728UL;
return steamID64;
}


public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target, TargetSearchMode searchMode )
public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target, TargetSearchMode searchMode, StringComparison nameComparison = StringComparison.OrdinalIgnoreCase )
{
IEnumerable<IPlayer> allPlayers = [];

Expand Down Expand Up @@ -147,15 +135,11 @@ public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target,
allPlayers = allPlayers.Append(targetPlayer);
}
}
else if (targetPlayer.Controller.PlayerName.Contains(target))
{
allPlayers = allPlayers.Append(targetPlayer);
}
else if (ulong.TryParse(target, out ulong steamId) && targetPlayer.SteamID == steamId)
else if (targetPlayer.Controller.PlayerName.Contains(target, nameComparison))
{
allPlayers = allPlayers.Append(targetPlayer);
}
else if (SteamIDToSteamID64(target) == targetPlayer.SteamID)
else if (new CSteamID(target) is var steamId && steamId.IsValid() && steamId.GetSteamID64() == targetPlayer.SteamID)
{
allPlayers = allPlayers.Append(targetPlayer);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ public interface IPlayerManagerService
/// <param name="player">The player initiating the search.</param>
/// <param name="target">The target player name or identifier.</param>
/// <param name="searchMode">The search mode to apply.</param>
/// <param name="nameComparison">The string comparison mode for name matching. Defaults to <see cref="StringComparison.OrdinalIgnoreCase"/>.</param>
/// <returns>A collection of players matching the search criteria.</returns>
public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target, TargetSearchMode searchMode );
public IEnumerable<IPlayer> FindTargettedPlayers( IPlayer player, string target, TargetSearchMode searchMode, StringComparison nameComparison = StringComparison.OrdinalIgnoreCase );
}
Loading