Пример #1
0
        public void PublishRichPresence([In] RichPresenceUpdate[] updates)
        {
            UpdateRequest updateRequest = new UpdateRequest();

            updateRequest.EntityId = this.m_battleNet.GameAccountId;
            FieldOperation fieldOperation = new FieldOperation();
            Field          field          = new Field();
            FieldKey       fieldKey       = new FieldKey();

            fieldKey.SetProgram(BnetProgramId.BNET.GetValue());
            fieldKey.SetGroup(2u);
            fieldKey.SetField(8u);
            foreach (RichPresenceUpdate richPresenceUpdate in updates)
            {
                fieldKey.SetIndex(richPresenceUpdate.presenceFieldIndex);
                RichPresence richPresence = new RichPresence();
                richPresence.SetIndex(richPresenceUpdate.index);
                richPresence.SetProgramId(richPresenceUpdate.programId);
                richPresence.SetStreamId(richPresenceUpdate.streamId);
                Variant variant = new Variant();
                variant.SetMessageValue(ProtobufUtil.ToByteArray(richPresence));
                field.SetKey(fieldKey);
                field.SetValue(variant);
                fieldOperation.SetField(field);
                updateRequest.SetEntityId(this.m_battleNet.GameAccountId);
                updateRequest.AddFieldOperation(fieldOperation);
            }
            this.PublishField(updateRequest);
        }
Пример #2
0
        public void PublishRichPresence([In] RichPresenceUpdate[] updates)
        {
            UpdateRequest updateRequest = new UpdateRequest()
            {
                EntityId = this.m_battleNet.GameAccountId
            };
            FieldOperation fieldOperation = new FieldOperation();
            Field          field          = new Field();
            FieldKey       fieldKey       = new FieldKey();

            fieldKey.SetProgram(BnetProgramId.BNET.GetValue());
            fieldKey.SetGroup(2);
            fieldKey.SetField(8);
            RichPresenceUpdate[] richPresenceUpdateArray = updates;
            for (int i = 0; i < (int)richPresenceUpdateArray.Length; i++)
            {
                RichPresenceUpdate richPresenceUpdate = richPresenceUpdateArray[i];
                fieldKey.SetIndex(richPresenceUpdate.presenceFieldIndex);
                RichPresence richPresence = new RichPresence();
                richPresence.SetIndex(richPresenceUpdate.index);
                richPresence.SetProgramId(richPresenceUpdate.programId);
                richPresence.SetStreamId(richPresenceUpdate.streamId);
                bnet.protocol.attribute.Variant variant = new bnet.protocol.attribute.Variant();
                variant.SetMessageValue(ProtobufUtil.ToByteArray(richPresence));
                field.SetKey(fieldKey);
                field.SetValue(variant);
                fieldOperation.SetField(field);
                updateRequest.SetEntityId(this.m_battleNet.GameAccountId);
                updateRequest.AddFieldOperation(fieldOperation);
            }
            this.PublishField(updateRequest);
        }