diff --git a/Explorer/Assets/DCL/Multiplayer/Connectivity/ArchipelagoHttpOnlineUsersProvider.cs b/Explorer/Assets/DCL/Multiplayer/Connectivity/ArchipelagoHttpOnlineUsersProvider.cs index 12ed63ee71..e0b55704a3 100644 --- a/Explorer/Assets/DCL/Multiplayer/Connectivity/ArchipelagoHttpOnlineUsersProvider.cs +++ b/Explorer/Assets/DCL/Multiplayer/Connectivity/ArchipelagoHttpOnlineUsersProvider.cs @@ -14,6 +14,7 @@ public class ArchipelagoHttpOnlineUsersProvider : IOnlineUsersProvider private readonly IWebRequestController webRequestController; private readonly URLAddress baseUrl; + private readonly URLBuilder urlBuilder = new (); public ArchipelagoHttpOnlineUsersProvider( IWebRequestController webRequestController, @@ -26,5 +27,17 @@ public ArchipelagoHttpOnlineUsersProvider( public async UniTask> GetAsync(CancellationToken ct) => await webRequestController.GetAsync(baseUrl, ct, ReportCategory.MULTIPLAYER) .CreateFromNewtonsoftJsonAsync>(serializerSettings: SERIALIZER_SETTINGS); + + public async UniTask> GetAsync(IEnumerable userIds, CancellationToken ct) + { + urlBuilder.Clear(); + urlBuilder.AppendDomain(URLDomain.FromString(baseUrl)); + + foreach (string userId in userIds) + urlBuilder.AppendParameter(new URLParameter("id", userId)); + + return await webRequestController.GetAsync(baseUrl, ct, ReportCategory.MULTIPLAYER) + .CreateFromNewtonsoftJsonAsync>(serializerSettings: SERIALIZER_SETTINGS); + } } } diff --git a/Explorer/Assets/DCL/Multiplayer/Connectivity/IOnlineUsersProvider.cs b/Explorer/Assets/DCL/Multiplayer/Connectivity/IOnlineUsersProvider.cs index a0f76da78d..6fdc3818bf 100644 --- a/Explorer/Assets/DCL/Multiplayer/Connectivity/IOnlineUsersProvider.cs +++ b/Explorer/Assets/DCL/Multiplayer/Connectivity/IOnlineUsersProvider.cs @@ -7,5 +7,6 @@ namespace DCL.Multiplayer.Connectivity public interface IOnlineUsersProvider { UniTask> GetAsync(CancellationToken ct); + UniTask> GetAsync(IEnumerable userIds, CancellationToken ct); } } diff --git a/Explorer/Assets/DCL/PluginSystem/Global/FriendsPlugin.cs b/Explorer/Assets/DCL/PluginSystem/Global/FriendsPlugin.cs index 0ec6816268..592c5fec35 100644 --- a/Explorer/Assets/DCL/PluginSystem/Global/FriendsPlugin.cs +++ b/Explorer/Assets/DCL/PluginSystem/Global/FriendsPlugin.cs @@ -10,19 +10,18 @@ using DCL.Input; using DCL.Multiplayer.Connections.DecentralandUrls; using DCL.Profiles; -using DCL.RealmNavigation; using DCL.Profiles.Self; -using DCL.Web3.Identities; +using DCL.RealmNavigation; using DCL.UI.MainUI; using DCL.Utilities; +using DCL.Web3.Identities; using DCL.WebRequests; using MVC; using System; -using System.Net.WebSockets; using System.Threading; -using Utility; using UnityEngine; using UnityEngine.AddressableAssets; +using Utility; namespace DCL.PluginSystem.Global {