예제 #1
0
파일: Permissions.cs 프로젝트: tepup/LinBot
        public async Task RoleMdl(ModuleOrCrInfo module, PermissionAction action, [Remainder] IRole role)
        {
            if (role == role.Guild.EveryoneRole)
            {
                return;
            }

            await _service.AddPermissions(Context.Guild.Id, new Permissionv2
            {
                PrimaryTarget       = PrimaryPermissionType.Role,
                PrimaryTargetId     = role.Id,
                SecondaryTarget     = SecondaryPermissionType.Module,
                SecondaryTargetName = module.Name.ToLowerInvariant(),
                State = action.Value,
            });


            if (action.Value)
            {
                await ReplyConfirmLocalized("rx_enable",
                                            Format.Code(module.Name),
                                            GetText("of_module"),
                                            Format.Code(role.Name)).ConfigureAwait(false);
            }
            else
            {
                await ReplyConfirmLocalized("rx_disable",
                                            Format.Code(module.Name),
                                            GetText("of_module"),
                                            Format.Code(role.Name)).ConfigureAwait(false);
            }
        }
예제 #2
0
파일: Permissions.cs 프로젝트: tepup/LinBot
        public async Task ChnlMdl(ModuleOrCrInfo module, PermissionAction action, [Remainder] ITextChannel chnl)
        {
            await _service.AddPermissions(Context.Guild.Id, new Permissionv2
            {
                PrimaryTarget       = PrimaryPermissionType.Channel,
                PrimaryTargetId     = chnl.Id,
                SecondaryTarget     = SecondaryPermissionType.Module,
                SecondaryTargetName = module.Name.ToLowerInvariant(),
                State = action.Value,
            });

            if (action.Value)
            {
                await ReplyConfirmLocalized("cx_enable",
                                            Format.Code(module.Name),
                                            GetText("of_module"),
                                            Format.Code(chnl.Name)).ConfigureAwait(false);
            }
            else
            {
                await ReplyConfirmLocalized("cx_disable",
                                            Format.Code(module.Name),
                                            GetText("of_module"),
                                            Format.Code(chnl.Name)).ConfigureAwait(false);
            }
        }
예제 #3
0
파일: Permissions.cs 프로젝트: tepup/LinBot
        public async Task UsrMdl(ModuleOrCrInfo module, PermissionAction action, [Remainder] IGuildUser user)
        {
            await _service.AddPermissions(Context.Guild.Id, new Permissionv2
            {
                PrimaryTarget       = PrimaryPermissionType.User,
                PrimaryTargetId     = user.Id,
                SecondaryTarget     = SecondaryPermissionType.Module,
                SecondaryTargetName = module.Name.ToLowerInvariant(),
                State = action.Value,
            });

            if (action.Value)
            {
                await ReplyConfirmLocalized("ux_enable",
                                            Format.Code(module.Name),
                                            GetText("of_module"),
                                            Format.Code(user.ToString())).ConfigureAwait(false);
            }
            else
            {
                await ReplyConfirmLocalized("ux_disable",
                                            Format.Code(module.Name),
                                            GetText("of_module"),
                                            Format.Code(user.ToString())).ConfigureAwait(false);
            }
        }
예제 #4
0
            public async Task Gmod(ModuleOrCrInfo module)
            {
                var moduleName = module.Name.ToLowerInvariant();

                if (_service.BlockedModules.Add(moduleName))
                {
                    using (var uow = _db.UnitOfWork)
                    {
                        var bc = uow.BotConfig.GetOrCreate();
                        bc.BlockedModules.Add(new BlockedCmdOrMdl
                        {
                            Name = moduleName,
                        });
                        uow.Complete();
                    }
                    await ReplyConfirmLocalized("gmod_add", Format.Bold(module.Name)).ConfigureAwait(false);

                    return;
                }
                else if (_service.BlockedModules.TryRemove(moduleName))
                {
                    using (var uow = _db.UnitOfWork)
                    {
                        var bc = uow.BotConfig.GetOrCreate();
                        bc.BlockedModules.RemoveWhere(x => x.Name == moduleName);
                        uow.Complete();
                    }
                    await ReplyConfirmLocalized("gmod_remove", Format.Bold(module.Name)).ConfigureAwait(false);

                    return;
                }
            }
예제 #5
0
            public async Task GlobalModule(ModuleOrCrInfo module)
            {
                var moduleName = module.Name.ToLowerInvariant();

                var added = _service.ToggleModule(moduleName);

                if (added)
                {
                    await ReplyConfirmLocalizedAsync("gmod_add", Format.Bold(module.Name)).ConfigureAwait(false);

                    return;
                }

                await ReplyConfirmLocalizedAsync("gmod_remove", Format.Bold(module.Name)).ConfigureAwait(false);
            }
예제 #6
0
        public async Task SrvrMdl(ModuleOrCrInfo module, PermissionAction action)
        {
            await Service.AddPermissions(Context.Guild.Id, new Permission {
                PrimaryTarget       = PrimaryPermissionType.Server,
                PrimaryTargetId     = 0,
                SecondaryTarget     = SecondaryPermissionType.Module,
                SecondaryTargetName = module.Name.ToLowerInvariant(),
                State = action.Value,
            });

            if (action.Value)
            {
                await ReplyConfirmLocalized("sx_enable",
                                            Format.Code(module.Name),
                                            GetText("of_module")).ConfigureAwait(false);
            }
            else
            {
                await ReplyConfirmLocalized("sx_disable",
                                            Format.Code(module.Name),
                                            GetText("of_module")).ConfigureAwait(false);
            }
        }
            public async Task Gmod(ModuleOrCrInfo module)
            {
                var moduleName = module.Name.ToLowerInvariant();

                if (_service.BlockedModules.Add(moduleName))
                {
                    using (var uow = _db.GetDbContext())
                    {
                        var bc = uow.BotConfig.GetOrCreate(set => set.Include(x => x.BlockedModules));
                        bc.BlockedModules.Add(new BlockedCmdOrMdl
                        {
                            Name = moduleName,
                        });
                        uow.SaveChanges();
                    }
                    await ReplyConfirmLocalizedAsync("gmod_add", Format.Bold(module.Name)).ConfigureAwait(false);

                    return;
                }
                else if (_service.BlockedModules.TryRemove(moduleName))
                {
                    using (var uow = _db.GetDbContext())
                    {
                        var bc   = uow.BotConfig.GetOrCreate(set => set.Include(x => x.BlockedModules));
                        var mdls = bc.BlockedModules.Where(x => x.Name == moduleName);
                        if (mdls.Any())
                        {
                            uow._context.RemoveRange(mdls.ToArray());
                        }
                        uow.SaveChanges();
                    }
                    await ReplyConfirmLocalizedAsync("gmod_remove", Format.Bold(module.Name)).ConfigureAwait(false);

                    return;
                }
            }