async Task <bool> IPermissionConfig.WhitelistModuleGuild(IGuild guild, ModuleInfo module) { var gui = QueryGuild(guild); if (gui != null) { var n = QueryModule(module); if (n == null) { n = new ConfigModule { ModuleName = module.Name }; Modules.Add(n); await SaveChangesAsync().ConfigureAwait(false); } var hasThis = QueryGuildModules().Any(m => m.Module.Id == n.Id && m.Guild.Id == gui.Id); if (!hasThis) { var gm = new GuildModule <TGuild, TChannel, TUser> { Guild = gui, Module = n }; GuildModules.Add(gm); //gui.WhiteListedModules.Add(gm); await SaveChangesAsync().ConfigureAwait(false); } return(!hasThis); } return(false); }
public SamplePacket() { SampleService myService = new SampleService(); // <- модулям будет передаваться именно этот объект, не измененный Services.AddSingleton(myService); // если myService нужно как-то конфигурировать, то делай это в этом классе, GuildModules.Add(typeof(SampleModule)); // или монжно еще выше по архитектурке, т.е. сюда в конструкторе передавать чото :^) DMModules.Add(typeof(SampleModule)); Initialized += SubscribeOnDiscordEvents; // во время создания this обьекта Discord еще не существует, // он создается когда DiscordBot проделает все манипуляции и передаст его методом PacketBase.InitPacket // я еще не понял как можно по другому *thinkong* // так же и передается ConfigsProvider, пока Discord не будет рэди, комманд конфиги серверов, будут пустыми (точнее Counts = 0) }
public SettingsPacket() { var service = new SettingsService(); Services.AddSingleton(service); DMModules.Add(typeof(SettingsModule)); GuildModules.Add(typeof(SettingsModule)); Initialized += () => { service.CommandConfigsProvider = CommandConfigsProvider; service.CommandServicesProvider = CommandServicesProvider; }; }