コード例 #1
0
 public static void Serialize(Stream stream, InvitationParams instance)
 {
     if (instance.HasInvitationMessage)
     {
         stream.WriteByte(10);
         ProtocolParser.WriteBytes(stream, Encoding.UTF8.GetBytes(instance.InvitationMessage));
     }
     if (instance.HasExpirationTime)
     {
         stream.WriteByte(16);
         ProtocolParser.WriteUInt64(stream, instance.ExpirationTime);
     }
     if (instance.HasChannelParams)
     {
         stream.WriteByte(202);
         stream.WriteByte(6);
         ProtocolParser.WriteUInt32(stream, instance.ChannelParams.GetSerializedSize());
         ChannelInvitationParams.Serialize(stream, instance.ChannelParams);
     }
     if (instance.HasFriendParams)
     {
         stream.WriteByte(186);
         stream.WriteByte(6);
         ProtocolParser.WriteUInt32(stream, instance.FriendParams.GetSerializedSize());
         FriendInvitationParams.Serialize(stream, instance.FriendParams);
     }
 }
コード例 #2
0
 public void SendFriendInvite(string sender, string target, bool byEmail)
 {
     if (this.m_state == FriendsAPIState.INITIALIZED)
     {
         SendInvitationRequest request = new SendInvitationRequest();
         EntityId val = new EntityId();
         val.SetLow(0L);
         val.SetHigh(0L);
         request.SetTargetId(val);
         InvitationParams       @params = new InvitationParams();
         FriendInvitationParams params2 = new FriendInvitationParams();
         if (byEmail)
         {
             params2.SetTargetEmail(target);
             params2.AddRole(2);
         }
         else
         {
             params2.SetTargetBattleTag(target);
             params2.AddRole(1);
         }
         @params.SetFriendParams(params2);
         request.SetParams(@params);
         SendInvitationRequest message = request;
         if (!message.IsInitialized)
         {
             base.ApiLog.LogWarning("Battle.net Friends API C#: Failed to SendFriendInvite.");
         }
         else
         {
             base.m_rpcConnection.QueueRequest(this.m_friendsService.Id, 2, message, new RPCContextDelegate(this.SendInvitationCallback), 0);
         }
     }
 }
コード例 #3
0
        public void SendFriendInvite(string sender, string target, bool byEmail)
        {
            if (this.m_state != FriendsAPI.FriendsAPIState.INITIALIZED)
            {
                return;
            }
            SendInvitationRequest sendInvitationRequest = new SendInvitationRequest();

            bnet.protocol.EntityId entityId = new bnet.protocol.EntityId();
            entityId.SetLow((ulong)0);
            entityId.SetHigh((ulong)0);
            sendInvitationRequest.SetTargetId(entityId);
            InvitationParams       invitationParam       = new InvitationParams();
            FriendInvitationParams friendInvitationParam = new FriendInvitationParams();

            if (!byEmail)
            {
                friendInvitationParam.SetTargetBattleTag(target);
                friendInvitationParam.AddRole(1);
            }
            else
            {
                friendInvitationParam.SetTargetEmail(target);
                friendInvitationParam.AddRole(2);
            }
            invitationParam.SetFriendParams(friendInvitationParam);
            sendInvitationRequest.SetParams(invitationParam);
            SendInvitationRequest sendInvitationRequest1 = sendInvitationRequest;

            if (!sendInvitationRequest1.IsInitialized)
            {
                base.ApiLog.LogWarning("Battle.net Friends API C#: Failed to SendFriendInvite.");
                return;
            }
            this.m_rpcConnection.QueueRequest(this.m_friendsService.Id, 2, sendInvitationRequest1, new RPCContextDelegate(this.SendInvitationCallback), 0);
        }
コード例 #4
0
 public void SetFriendParams(FriendInvitationParams val)
 {
     this.FriendParams = val;
 }
コード例 #5
0
        public static InvitationParams Deserialize(Stream stream, InvitationParams instance, long limit)
        {
            instance.ExpirationTime = 0UL;
            while (limit < 0L || stream.Position < limit)
            {
                int num = stream.ReadByte();
                if (num == -1)
                {
                    if (limit >= 0L)
                    {
                        throw new EndOfStreamException();
                    }
                    return(instance);
                }
                else if (num != 10)
                {
                    if (num != 16)
                    {
                        Key  key   = ProtocolParser.ReadKey((byte)num, stream);
                        uint field = key.Field;
                        switch (field)
                        {
                        case 103u:
                            if (key.WireType == Wire.LengthDelimited)
                            {
                                if (instance.FriendParams == null)
                                {
                                    instance.FriendParams = FriendInvitationParams.DeserializeLengthDelimited(stream);
                                }
                                else
                                {
                                    FriendInvitationParams.DeserializeLengthDelimited(stream, instance.FriendParams);
                                }
                            }
                            break;

                        default:
                            if (field == 0u)
                            {
                                throw new ProtocolBufferException("Invalid field id: 0, something went wrong in the stream");
                            }
                            ProtocolParser.SkipKey(stream, key);
                            break;

                        case 105u:
                            if (key.WireType == Wire.LengthDelimited)
                            {
                                if (instance.ChannelParams == null)
                                {
                                    instance.ChannelParams = ChannelInvitationParams.DeserializeLengthDelimited(stream);
                                }
                                else
                                {
                                    ChannelInvitationParams.DeserializeLengthDelimited(stream, instance.ChannelParams);
                                }
                            }
                            break;
                        }
                    }
                    else
                    {
                        instance.ExpirationTime = ProtocolParser.ReadUInt64(stream);
                    }
                }
                else
                {
                    instance.InvitationMessage = ProtocolParser.ReadString(stream);
                }
            }
            if (stream.Position == limit)
            {
                return(instance);
            }
            throw new ProtocolBufferException("Read past max limit");
        }