Exemplo n.º 1
0
                internal StateChangeDetails(byte[] data)
                {
                    using (MemoryStream ms = new MemoryStream(data))
                        using (BinaryReader br = new BinaryReader(ms))
                        {
                            ChatterActedOn = br.ReadUInt64();
                            StateChange    = ( EChatMemberStateChange )br.ReadInt32();
                            ChatterActedBy = br.ReadUInt64();

                            if (StateChange == EChatMemberStateChange.Entered)
                            {
                                MemberInfo = new ChatMemberInfo();
                                MemberInfo.ReadFromStream(ms);
                            }
                        }
                }
Exemplo n.º 2
0
            internal ChatEnterCallback(MsgClientChatEnter msg, byte[] payload)
            {
                ChatID   = msg.SteamIdChat;
                FriendID = msg.SteamIdFriend;

                ChatRoomType = msg.ChatRoomType;

                OwnerID = msg.SteamIdOwner;
                ClanID  = msg.SteamIdClan;

                ChatFlags = msg.ChatFlags;

                EnterResponse = msg.EnterResponse;

                NumChatMembers = msg.NumMembers;

                using (var ms = new MemoryStream(payload))
                {
                    // steamclient always attempts to read the chat room name, regardless of the enter response
                    ChatRoomName = ms.ReadNullTermString(Encoding.UTF8);

                    if (EnterResponse != EChatRoomEnterResponse.Success)
                    {
                        // the rest of the payload depends on a successful chat enter
                        return;
                    }

                    var memberList = new List <ChatMemberInfo>();

                    for (int x = 0; x < NumChatMembers; ++x)
                    {
                        var memberInfo = new ChatMemberInfo();
                        memberInfo.ReadFromStream(ms);

                        memberList.Add(memberInfo);
                    }

                    ChatMembers = new ReadOnlyCollection <ChatMemberInfo>(memberList);
                }
            }
Exemplo n.º 3
0
                internal StateChangeDetails( byte[] data )
                {
                    using ( MemoryStream ms = new MemoryStream( data ) )
                    using ( BinaryReader br = new BinaryReader( ms ) )
                    {
                        ChatterActedOn = br.ReadUInt64();
                        StateChange = ( EChatMemberStateChange )br.ReadInt32();
                        ChatterActedBy = br.ReadUInt64();

                        if ( StateChange == EChatMemberStateChange.Entered )
                        {
                            MemberInfo = new ChatMemberInfo();
                            MemberInfo.ReadFromStream( ms );
                        }
                    }
                }
Exemplo n.º 4
0
            internal ChatEnterCallback( MsgClientChatEnter msg, byte[] payload )
            {
                ChatID = msg.SteamIdChat;
                FriendID = msg.SteamIdFriend;

                ChatRoomType = msg.ChatRoomType;

                OwnerID = msg.SteamIdOwner;
                ClanID = msg.SteamIdClan;

                ChatFlags = msg.ChatFlags;

                EnterResponse = msg.EnterResponse;

                NumChatMembers = msg.NumMembers;

                using ( var ms = new MemoryStream( payload ) )
                {
                    // steamclient always attempts to read the chat room name, regardless of the enter response
                    ChatRoomName = ms.ReadNullTermString( Encoding.UTF8 );

                    if ( EnterResponse != EChatRoomEnterResponse.Success )
                    {
                        // the rest of the payload depends on a successful chat enter
                        return;
                    }

                    var memberList = new List<ChatMemberInfo>();

                    for ( int x = 0 ; x < NumChatMembers ; ++x )
                    {
                        var memberInfo = new ChatMemberInfo();
                        memberInfo.ReadFromStream( ms );

                        memberList.Add( memberInfo );
                    }

                    ChatMembers = new ReadOnlyCollection<ChatMemberInfo>( memberList );
                }
            }