コード例 #1
0
        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 + "].");
        }
コード例 #2
0
ファイル: UnlockModule.cs プロジェクト: binn/haruna
        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 + "].");
        }
コード例 #3
0
        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);
        }