public override void SubscribeToUserManager(Google.ProtocolBuffers.IRpcController controller, bnet.protocol.user_manager.SubscribeToUserManagerRequest request, System.Action <bnet.protocol.user_manager.SubscribeToUserManagerResponse> done) { Logger.Trace("Subscribe() {0}", this.Client); // temp hack: send him all online players on server where he should be normally get list of player he met in his last few games /raist. var builder = bnet.protocol.user_manager.SubscribeToUserManagerResponse.CreateBuilder(); uint i = 0; foreach (var client in PlayerManager.OnlinePlayers) { if (client == this.Client) { continue; // Don't add the requester to the list } if (client.Account.CurrentGameAccount.CurrentToon == null) { continue; } Logger.Debug("RecentPlayer => " + client.Account.CurrentGameAccount.CurrentToon); var recentPlayer = bnet.protocol.user_manager.RecentPlayer.CreateBuilder() .SetEntity(client.Account.BnetEntityId) .SetProgramId("D3") .AddAttributes(bnet.protocol.attribute.Attribute.CreateBuilder() .SetName("GameAccountEntityId") .SetValue(bnet.protocol.attribute.Variant.CreateBuilder() .SetMessageValue(client.Account.CurrentGameAccount.D3GameAccountId.ToByteString()) .Build()) .Build()) .SetId(i++) .Build(); builder.AddRecentPlayers(recentPlayer); } done(builder.Build()); }
public override void SubscribeToUserManager(Google.ProtocolBuffers.IRpcController controller, bnet.protocol.user_manager.SubscribeToUserManagerRequest request, System.Action <bnet.protocol.user_manager.SubscribeToUserManagerResponse> done) { Logger.Trace("Subscribe() {0}", this.Client); // temp hack: send him all online players on server where he should be normally get list of player he met in his last few games /raist. var builder = bnet.protocol.user_manager.SubscribeToUserManagerResponse.CreateBuilder(); foreach (var client in PlayerManager.OnlinePlayers) { if (client == this.Client) { continue; // Don't add the requester to the list } if (client.CurrentToon == null) { continue; } Logger.Debug("RecentPlayer => " + client.CurrentToon); var recentPlayer = bnet.protocol.user_manager.RecentPlayer.CreateBuilder().SetPlayer(client.CurrentToon.BnetEntityID); builder.AddRecentPlayers(recentPlayer); } done(builder.Build()); }