Esempio n. 1
0
        public void GameEntryHandler(Notification notification)
        {
            base.ApiLog.LogDebug("GAME_ENTRY");
            string address           = null;
            int    port              = 0;
            string version           = null;
            int    gameHandle        = 0;
            int    num               = 0;
            string auroraPassword    = null;
            bool   resumable         = false;
            string spectatorPassword = null;

            foreach (bnet.protocol.attribute.Attribute attribute in notification.AttributeList)
            {
                if (attribute.Name.Equals("connection_info") && attribute.Value.HasMessageValue)
                {
                    byte[]      messageValue = attribute.Value.MessageValue;
                    ConnectInfo connectInfo  = ConnectInfo.ParseFrom(messageValue);
                    address = connectInfo.Host;
                    port    = connectInfo.Port;
                    if (connectInfo.HasToken)
                    {
                        auroraPassword = Encoding.UTF8.GetString(connectInfo.Token);
                    }
                    foreach (bnet.protocol.attribute.Attribute attribute2 in connectInfo.AttributeList)
                    {
                        if (attribute2.Name.Equals("version") && attribute2.Value.HasStringValue)
                        {
                            version = attribute2.Value.StringValue;
                        }
                        else if (attribute2.Name.Equals("game") && attribute2.Value.HasIntValue)
                        {
                            gameHandle = (int)attribute2.Value.IntValue;
                        }
                        else if (attribute2.Name.Equals("id") && attribute2.Value.HasIntValue)
                        {
                            num = (int)attribute2.Value.IntValue;
                        }
                        else if (attribute2.Name.Equals("resumable") && attribute2.Value.HasBoolValue)
                        {
                            resumable = attribute2.Value.BoolValue;
                        }
                        else if (attribute2.Name.Equals("spectator_password") && attribute2.Value.HasStringValue)
                        {
                            spectatorPassword = attribute2.Value.StringValue;
                        }
                    }
                }
                else if (attribute.Name.Equals("game_handle") && attribute.Value.HasMessageValue)
                {
                    byte[]     messageValue2 = attribute.Value.MessageValue;
                    GameHandle gameHandle2   = GameHandle.ParseFrom(messageValue2);
                    this.m_battleNet.Channel.JoinChannel(gameHandle2.GameId, ChannelAPI.ChannelType.GAME_CHANNEL);
                }
                else if (attribute.Name.Equals("sender_id") && attribute.Value.HasMessageValue)
                {
                    base.ApiLog.LogDebug("sender_id");
                }
            }
            this.AddQueueEvent(QueueEvent.Type.QUEUE_GAME_STARTED, 0, 0, 0, new GameServerInfo
            {
                Address           = address,
                Port              = port,
                AuroraPassword    = auroraPassword,
                Version           = version,
                GameHandle        = gameHandle,
                ClientHandle      = (long)num,
                Resumable         = resumable,
                SpectatorPassword = spectatorPassword
            });
        }
    public void GameEntryHandler(bnet.protocol.notification.Notification notification)
    {
        base.ApiLog.LogDebug("GAME_ENTRY");
        string host        = null;
        int    port        = 0;
        string stringValue = null;
        int    intValue    = 0;
        int    num3        = 0;
        string str3        = null;
        bool   boolValue   = false;
        string str4        = null;

        foreach (bnet.protocol.attribute.Attribute attribute in notification.AttributeList)
        {
            if (attribute.Name.Equals("connection_info") && attribute.Value.HasMessageValue)
            {
                ConnectInfo info = ConnectInfo.ParseFrom(attribute.Value.MessageValue);
                host = info.Host;
                port = info.Port;
                if (info.HasToken)
                {
                    str3 = Encoding.UTF8.GetString(info.Token);
                }
                foreach (bnet.protocol.attribute.Attribute attribute2 in info.AttributeList)
                {
                    if (attribute2.Name.Equals("version") && attribute2.Value.HasStringValue)
                    {
                        stringValue = attribute2.Value.StringValue;
                    }
                    else if (attribute2.Name.Equals("game") && attribute2.Value.HasIntValue)
                    {
                        intValue = (int)attribute2.Value.IntValue;
                    }
                    else if (attribute2.Name.Equals("id") && attribute2.Value.HasIntValue)
                    {
                        num3 = (int)attribute2.Value.IntValue;
                    }
                    else if (attribute2.Name.Equals("resumable") && attribute2.Value.HasBoolValue)
                    {
                        boolValue = attribute2.Value.BoolValue;
                    }
                    else if (attribute2.Name.Equals("spectator_password") && attribute2.Value.HasStringValue)
                    {
                        str4 = attribute2.Value.StringValue;
                    }
                }
            }
            else if (attribute.Name.Equals("game_handle") && attribute.Value.HasMessageValue)
            {
                GameHandle handle = GameHandle.ParseFrom(attribute.Value.MessageValue);
                base.m_battleNet.Channel.JoinChannel(handle.GameId, ChannelAPI.ChannelType.GAME_CHANNEL);
            }
            else if (attribute.Name.Equals("sender_id") && attribute.Value.HasMessageValue)
            {
                base.ApiLog.LogDebug("sender_id");
            }
        }
        BattleNet.GameServerInfo gsInfo = new BattleNet.GameServerInfo {
            Address           = host,
            Port              = port,
            AuroraPassword    = str3,
            Version           = stringValue,
            GameHandle        = intValue,
            ClientHandle      = num3,
            Resumable         = boolValue,
            SpectatorPassword = str4
        };
        this.AddQueueEvent(BattleNet.QueueEvent.Type.QUEUE_GAME_STARTED, 0, 0, 0, gsInfo);
    }
Esempio n. 3
0
        public void GameEntryHandler(Notification notification)
        {
            base.ApiLog.LogDebug("GAME_ENTRY");
            string address           = null;
            int    port              = 0;
            string version           = null;
            int    gameHandle        = 0;
            int    num               = 0;
            string auroraPassword    = null;
            bool   resumable         = false;
            string spectatorPassword = null;

            using (List <Attribute> .Enumerator enumerator = notification.AttributeList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    Attribute current = enumerator.get_Current();
                    if (current.Name.Equals("connection_info") && current.Value.HasMessageValue)
                    {
                        byte[]      messageValue = current.Value.MessageValue;
                        ConnectInfo connectInfo  = ConnectInfo.ParseFrom(messageValue);
                        address = connectInfo.Host;
                        port    = connectInfo.Port;
                        if (connectInfo.HasToken)
                        {
                            auroraPassword = Encoding.get_UTF8().GetString(connectInfo.Token);
                        }
                        using (List <Attribute> .Enumerator enumerator2 = connectInfo.AttributeList.GetEnumerator())
                        {
                            while (enumerator2.MoveNext())
                            {
                                Attribute current2 = enumerator2.get_Current();
                                if (current2.Name.Equals("version") && current2.Value.HasStringValue)
                                {
                                    version = current2.Value.StringValue;
                                }
                                else if (current2.Name.Equals("game") && current2.Value.HasIntValue)
                                {
                                    gameHandle = (int)current2.Value.IntValue;
                                }
                                else if (current2.Name.Equals("id") && current2.Value.HasIntValue)
                                {
                                    num = (int)current2.Value.IntValue;
                                }
                                else if (current2.Name.Equals("resumable") && current2.Value.HasBoolValue)
                                {
                                    resumable = current2.Value.BoolValue;
                                }
                                else if (current2.Name.Equals("spectator_password") && current2.Value.HasStringValue)
                                {
                                    spectatorPassword = current2.Value.StringValue;
                                }
                            }
                        }
                    }
                    else if (current.Name.Equals("game_handle") && current.Value.HasMessageValue)
                    {
                        byte[]     messageValue2 = current.Value.MessageValue;
                        GameHandle gameHandle2   = GameHandle.ParseFrom(messageValue2);
                        this.m_battleNet.Channel.JoinChannel(gameHandle2.GameId, ChannelAPI.ChannelType.GAME_CHANNEL);
                    }
                    else if (current.Name.Equals("sender_id") && current.Value.HasMessageValue)
                    {
                        base.ApiLog.LogDebug("sender_id");
                    }
                }
            }
            this.AddQueueEvent(QueueEvent.Type.QUEUE_GAME_STARTED, 0, 0, 0, new GameServerInfo
            {
                Address           = address,
                Port              = port,
                AuroraPassword    = auroraPassword,
                Version           = version,
                GameHandle        = gameHandle,
                ClientHandle      = (long)num,
                Resumable         = resumable,
                SpectatorPassword = spectatorPassword
            });
        }