private async Task SetChannelPermissions(ChannelContext channel, Contexts contexts) { var everyonePermissions = new ChangedPermissions(allowPermissions: null, denyPermissions: ReadingAndSending); var mutedPermissions = new ChangedPermissions(ReadingAndSending, new List <Permission> { Permission.ReadMessageHistory }); var serverRoles = this._usersRolesService.GetRoles(contexts.Server).ToList(); var everyoneRole = serverRoles.First(x => x.Name == "@everyone"); var mutedRole = serverRoles.FirstOrDefault(x => x.Name == UsersRolesService.MUTED_ROLE_NAME); var rolesIdsWithAccess = this._configurationService.GetConfigurationItem <RolesWithAccessToComplaintsChannel>(contexts.Server.Id); var rolesWithAccess = rolesIdsWithAccess.Value == null ? contexts.Server.GetRoles().Where(x => x.Permissions.Contains(Permission.ManageGuild)).ToList() : rolesIdsWithAccess.Value.Select(roleId => serverRoles.FirstOrDefault(serverRole => roleId == serverRole.Id)).ToList(); rolesWithAccess.Add(mutedRole); await Task.Delay(1500); await this._channelsService.RemovePermissions(channel, contexts.Server, mutedRole); await this._channelsService.SetPermissions(channel, contexts.Server, mutedPermissions, mutedRole); this.SetAccessPermissions(channel, contexts.Server, rolesWithAccess); await this._channelsService.SetPermissions(channel, contexts.Server, everyonePermissions, everyoneRole); }
public static async Task SetPermissions(ChannelContext channel, ChangedPermissions permissions, UserRole muteRole) { await Task.Delay(1000); var channelSocket = (IGuildChannel) await GetChannel(channel.Id); var channelPermissions = new OverwritePermissions(permissions.AllowPermissions.GetRawValue(), permissions.DenyPermissions.GetRawValue()); var createdRole = Server.GetSocketRoles(channelSocket.GuildId).FirstOrDefault(x => x.Id == muteRole.Id); await channelSocket.AddPermissionOverwriteAsync(createdRole, channelPermissions); }
private async Task SetChannelsPermissions(DiscordServerContext server, UserRole mutedRole, ChangedPermissions changedPermissions) { await this._channelsService.SetPermissions(server.TextChannels, server, changedPermissions, mutedRole); }
internal static Task SetRolePermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole role) { return(_discordClient.RolesService.SetRolePermissions(channels, server, permissions, role)); }
public Task SetPermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole userRole) { return(Server.SetRolePermissions(channels, server, permissions, userRole)); }
public Task SetPermissions(ChannelContext channel, DiscordServerContext server, ChangedPermissions permissions, UserRole userRole) { return(Server.SetRolePermissions(channel, server, permissions, userRole)); }
private Task SetChannelsPermissions(DiscordServerContext server, UserRole mutedRole, ChangedPermissions changedPermissions) { return(this._channelsService.SetPermissions(server.GetTextChannels(), server, changedPermissions, mutedRole)); }
public async Task SetRolePermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole role) { await Task.Delay(1000); var socketRole = this.GetSocketRoles(server.Id).FirstOrDefault(x => x.Id == role.Id); if (socketRole == null) { Log.Error("Created role {roleName} was null", role.Name); return; } var channelPermissions = new OverwritePermissions(permissions.AllowPermissions.GetRawValue(), permissions.DenyPermissions.GetRawValue()); Parallel.ForEach(channels, c => this.SetRolePermissions(c, channelPermissions, socketRole).Wait()); }
public async Task SetRolePermissions(ChannelContext channel, DiscordServerContext server, ChangedPermissions permissions, UserRole role) { Log.Information("Setting role {roleName} for {channel}", role.Name, channel.Name); var channelPermissions = new OverwritePermissions(permissions.AllowPermissions.GetRawValue(), permissions.DenyPermissions.GetRawValue()); var socketRole = this.GetSocketRoles(server.Id).FirstOrDefault(x => x.Id == role.Id); if (socketRole == null) { Log.Error("Role {roleName} was null", role.Name); return; } await this.SetRolePermissions(channel, channelPermissions, socketRole); }
public Task SetRolePermissions(ChannelContext channel, DiscordServerContext server, ChangedPermissions permissions, UserRole role) { Log.Information("Setting role {roleName} for {channel}", role.Name, channel.Name); var channelPermissions = new OverwritePermissions(permissions.AllowPermissions?.GetRawValue() ?? 0, permissions.DenyPermissions?.GetRawValue() ?? 0); var socketRole = this.GetSocketRole(server, role); return(this.SetRolePermissions(channel, server, channelPermissions, socketRole)); }
public async Task SetRolePermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole role) { Log.Information("Setting role {roleName} for {server}", role.Name, server.Name); var socketRole = Server.GetSocketRoles(server.Id).FirstOrDefault(x => x.Id == role.Id); if (socketRole == null) { Log.Error("Created role {roleName} was null", role.Name); return; } var channelPermissions = new OverwritePermissions(permissions.AllowPermissions?.GetRawValue() ?? 0, permissions.DenyPermissions?.GetRawValue() ?? 0); foreach (var channel in channels) { Log.Information("Setting role {roleName} for {channel}", role.Name, channel.Name); await this.SetRolePermissions(channel, server, channelPermissions, socketRole); } Log.Information("Successfully set role {roleName} on all channels on {server}", role.Name, server.Name); }
private Task SetChannelsPermissions(DiscordServerContext server, UserRole mutedRole, ChangedPermissions changedPermissions) { _channelsService.SetPermissions(server.TextChannels, server, changedPermissions, mutedRole); return(Task.CompletedTask); }
internal static Task SetRolePermissions(ChannelContext channel, ChangedPermissions permissions, UserRole role) { return(_discordClient.RolesService.SetRolePermissions(channel, permissions, role)); }
public Task SetPermissions(ChannelContext channel, ChangedPermissions permissions, UserRole userRole) { return(Server.SetPermissions(channel, permissions, userRole)); }
public static async Task SetPermissions(IEnumerable <ChannelContext> channels, DiscordServerContext server, ChangedPermissions permissions, UserRole muteRole) { await Task.Delay(1000); var createdRole = Server.GetSocketRoles(server.Id).FirstOrDefault(x => x.Id == muteRole.Id); var channelPermissions = new OverwritePermissions(permissions.AllowPermissions.GetRawValue(), permissions.DenyPermissions.GetRawValue()); Parallel.ForEach(channels, async c => { var channelSocket = (IGuildChannel)await GetChannel(c.Id); await channelSocket.AddPermissionOverwriteAsync(createdRole, channelPermissions); }); }