예제 #1
0
        internal void Update(APIChannel model)
        {
            if (!IsPrivate && model.Name != null)
            {
                Name = model.Name;
            }
            if (model.Type != null)
            {
                Type = model.Type;
            }
            if (model.Position != null)
            {
                Position = model.Position.Value;
            }
            if (model.Topic != null)
            {
                Topic = model.Topic;
            }
            if (model.Recipient != null)
            {
                Recipient.Update(model.Recipient);
                Name = $"@{Recipient}";
            }

            if (model.PermissionOverwrites != null)
            {
                _permissionOverwrites = model.PermissionOverwrites
                                        .Select(x => new PermissionOverwrite(PermissionTarget.FromString(x.Type), x.Id, x.Allow, x.Deny))
                                        .ToDictionary(x => x.TargetId);
                UpdatePermissions();
            }
        }
예제 #2
0
        internal void Update(ChannelInfo model)
        {
            Update(model as ChannelReference);

            if (model.Position != null)
            {
                Position = model.Position.Value;
            }
            if (model.Topic != null)
            {
                Topic = model.Topic;
            }

            if (model.PermissionOverwrites != null)
            {
                _permissionOverwrites = model.PermissionOverwrites
                                        .Select(x => new PermissionOverwrite(PermissionTarget.FromString(x.Type), x.Id, x.Allow, x.Deny))
                                        .ToArray();
                InvalidatePermissionsCache();
            }
        }