Skip to content

Commit c5b652f

Browse files
author
babelshift
committed
Merge pull request #15 from Amethi/master
Added in support for getting player summaries for multiple users at once
2 parents f253d98 + 6df26b7 commit c5b652f

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

SteamWebAPI2/Interfaces/ISteamUser.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using Steam.Models.SteamCommunity;
2-
using SteamWebAPI2.Models.SteamCommunity;
32
using System.Collections.Generic;
43
using System.Threading.Tasks;
54

@@ -15,6 +14,8 @@ public interface ISteamUser
1514

1615
Task<PlayerSummaryModel> GetPlayerSummaryAsync(long steamId);
1716

17+
Task<List<PlayerSummaryModel>> GetPlayerSummariesAsync(List<long> steamIds);
18+
1819
Task<IReadOnlyCollection<long>> GetUserGroupsAsync(long steamId);
1920

2021
Task<ulong> ResolveVanityUrlAsync(string vanityUrl, int? urlType = default(int?));

SteamWebAPI2/Interfaces/SteamUser.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,20 @@ public async Task<PlayerSummaryModel> GetPlayerSummaryAsync(long steamId)
3838
}
3939
}
4040

41+
public async Task<List<PlayerSummaryModel>> GetPlayerSummariesAsync(List<long> steamIds)
42+
{
43+
// convert steam ids to a csv for the api
44+
var steamIdsCsv = string.Join(",", steamIds.Select(x => x.ToString()).ToArray());
45+
var parameters = new List<SteamWebRequestParameter>();
46+
parameters.AddIfHasValue(steamIdsCsv, "steamids");
47+
48+
var playerSummaries = await CallMethodAsync<PlayerSummaryResultContainer>("GetPlayerSummaries", 2, parameters);
49+
if (playerSummaries.Result.Players != null && playerSummaries.Result.Players.Count > 0)
50+
return playerSummaries.Result.Players.Select(player => AutoMapperConfiguration.Mapper.Map<PlayerSummary, PlayerSummaryModel>(player)).ToList();
51+
52+
return null;
53+
}
54+
4155
public async Task<IReadOnlyCollection<FriendModel>> GetFriendsListAsync(long steamId, string relationship = "")
4256
{
4357
List<SteamWebRequestParameter> parameters = new List<SteamWebRequestParameter>();

0 commit comments

Comments
 (0)