示例#1
0
        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());
        }
示例#2
0
        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());
        }