public async Task LockChannel(ITextChannel channel) { IRole defaultRole = channel.Guild.EveryoneRole; OverwritePermissions permissions = channel.GetPermissionOverwrite(defaultRole) ?? new OverwritePermissions(); permissions = permissions.Modify(sendMessages: PermValue.Deny, addReactions: PermValue.Deny); await channel.AddPermissionOverwriteAsync(defaultRole, permissions); await ReplyAsync("i-i nylocked #" + channel.Name + " f-for you s-s-s-senpai :0 a-are you p-proud??! >//////<"); _logger.LogInformation(Context.User.ToString() + " locked channel #" + channel.Name + " [" + channel.Id + "]."); }
public async Task LockChannel(ITextChannel channel) { IRole defaultRole = channel.Guild.EveryoneRole; OverwritePermissions permissions = channel.GetPermissionOverwrite(defaultRole) ?? new OverwritePermissions(); permissions = permissions.Modify(sendMessages: PermValue.Inherit, addReactions: PermValue.Inherit); await channel.AddPermissionOverwriteAsync(defaultRole, permissions); await ReplyAsync("uwu!! #" + channel.Name + " is nyow unlowcked!1! uguuuu yes im so c-c-ccreative"); _logger.LogInformation(Context.User.ToString() + " unlocked channel #" + channel.Name + " [" + channel.Id + "]."); }
private Task OpenChannel(SocketTextChannel s) { var _ = Task.Run(async() => { var role = s.Guild.Roles.FirstOrDefault(x => x.Name.Equals(rolename)); var messages = await s.GetMessagesAsync(maxNumberOfMessages).Flatten(); var oldestMessage = messages.Last().CreatedAt; var tenMinAgo = DateTimeOffset.Now.Subtract(new TimeSpan(0, Delay, 0)).LocalDateTime; if (oldestMessage > tenMinAgo && messages.Count() == maxNumberOfMessages) { ITextChannel overflowChannel = s.Guild.TextChannels.FirstOrDefault(x => GetName(x.Name).Equals(GetName(s.Name)) && ((OverwritePermissions)x.GetPermissionOverwrite(role)).ReadMessages == PermValue.Deny); OverwritePermissions perms = ((OverwritePermissions)overflowChannel.GetPermissionOverwrite(role)); perms = perms.Modify(null, null, null, PermValue.Allow, PermValue.Allow, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); await overflowChannel.AddPermissionOverwriteAsync(role, perms); await overflowChannel.SendMessageAsync("This overflow channel was opened due to strain on channel " + s.Name + ". Please continue your conversation here instead."); //TODO pull these out into localizations await s.SendMessageAsync("Due to strain on this channel, we have opened a new overflow channel: " + overflowChannel.Name + ". Please spread the conversations over the multiple channels"); } }); return(Task.CompletedTask); }