Exemple #1
0
        public void SetUserDataHandler(ChatSession session, CSetUserDataReqMessage message)
        {
            var plr = session.Player;

            if (message.UserData.ChannelId > 0 && !plr.SentPlayerList && plr.Channel != null)
            {
                // We can't send the channel player list in Channel.Join because the client only accepts it here :/
                plr.SentPlayerList = true;
                var data = plr.Channel.Players.Values.Select(p => p.Map <Player, UserDataWithNickDto>()).ToArray();
                session.SendAsync(new SChannelPlayerListAckMessage(data));
            }

            // Save settings if any of them changed
            var settings = plr.Settings;
            var name     = nameof(UserDataDto.AllowCombiInvite);

            if (!settings.Contains(name) || settings.Get <CommunitySetting>(name) != message.UserData.AllowCombiInvite)
            {
                settings.AddOrUpdate(name, message.UserData.AllowCombiInvite);
            }

            name = nameof(UserDataDto.AllowFriendRequest);
            if (!settings.Contains(name) || settings.Get <CommunitySetting>(name) != message.UserData.AllowFriendRequest)
            {
                settings.AddOrUpdate(name, message.UserData.AllowFriendRequest);
            }

            name = nameof(UserDataDto.AllowRoomInvite);
            if (!settings.Contains(name) || settings.Get <CommunitySetting>(name) != message.UserData.AllowRoomInvite)
            {
                settings.AddOrUpdate(name, message.UserData.AllowRoomInvite);
            }

            name = nameof(UserDataDto.AllowInfoRequest);
            if (!settings.Contains(name) || settings.Get <CommunitySetting>(name) != message.UserData.AllowInfoRequest)
            {
                settings.AddOrUpdate(name, message.UserData.AllowInfoRequest);
            }
        }
Exemple #2
0
        public void SetUserDataHandler(ChatSession session, CSetUserDataReqMessage message)
        {
            var plr = session.Player;

            if (message.UserData.ChannelId > 0 && !plr.SentPlayerList && plr.Channel != null)
            {
                plr.SentPlayerList = true;
                var data = plr.Channel.Players.Values.Select(p => p.Map <Player, UserDataWithNickDto>()).ToArray();
                session.Send(new SChannelPlayerListAckMessage(data));
            }

            var settings = plr.Settings;
            var name     = nameof(UserDataDto.AllowCombiInvite);

            if (!settings.Contains(name) || settings.Get <CommunitySetting>(name) != message.UserData.AllowCombiInvite)
            {
                settings.AddOrUpdate(name, message.UserData.AllowCombiInvite);
            }

            name = nameof(UserDataDto.AllowFriendRequest);
            if (!settings.Contains(name) || settings.Get <CommunitySetting>(name) != message.UserData.AllowFriendRequest)
            {
                settings.AddOrUpdate(name, message.UserData.AllowFriendRequest);
            }

            name = nameof(UserDataDto.AllowRoomInvite);
            if (!settings.Contains(name) || settings.Get <CommunitySetting>(name) != message.UserData.AllowRoomInvite)
            {
                settings.AddOrUpdate(name, message.UserData.AllowRoomInvite);
            }

            name = nameof(UserDataDto.AllowInfoRequest);
            if (!settings.Contains(name) || settings.Get <CommunitySetting>(name) != message.UserData.AllowInfoRequest)
            {
                settings.AddOrUpdate(name, message.UserData.AllowInfoRequest);
            }
        }