@@ -267,6 +267,15 @@ int main(int argc, char* argv[]) {
267
267
});
268
268
269
269
// Listeners
270
+ bot.on_automod_rule_create ([&config](const dpp::automod_rule_create_t &event) -> dpp::task<> {
271
+ co_await automod_rules::on_automod_rule_add (event, config);
272
+ });
273
+ bot.on_automod_rule_delete ([&config](const dpp::automod_rule_delete_t &event) {
274
+ automod_rules::on_automod_rule_remove (event, config);
275
+ });
276
+ bot.on_automod_rule_update ([&config](const dpp::automod_rule_update_t &event) {
277
+ automod_rules::on_automod_rule_edit (event, config);
278
+ });
270
279
bot.on_message_create ([&config](const dpp::message_create_t &event) {
271
280
messages::on_message (event, config);
272
281
});
@@ -282,15 +291,9 @@ int main(int argc, char* argv[]) {
282
291
bot.on_message_reaction_remove ([&config](const dpp::message_reaction_remove_t &event) -> dpp::task<> {
283
292
co_await messages::on_reaction_removed (event, config);
284
293
});
285
- bot.on_automod_rule_create ([&config](const dpp::automod_rule_create_t &event) -> dpp::task<> {
286
- co_await automod_rules::on_automod_rule_add (event, config);
287
- });
288
- bot.on_automod_rule_delete ([&config](const dpp::automod_rule_delete_t &event) -> dpp::task<> {
289
- co_await automod_rules::on_automod_rule_remove (event, config);
290
- });
291
294
292
295
// TODO: Autodetect bump timer on bot restart?
293
- bot.on_ready ([&config, &commands, &db, &db_text_commands, &db_embed_commands](const dpp::ready_t &event) {
296
+ bot.on_ready ([&config, &commands, &db, &db_text_commands, &db_embed_commands](const dpp::ready_t &event) -> dpp::task<> {
294
297
if (dpp::run_once<struct register_bot_commands >()) {
295
298
std::vector<dpp::slashcommand> global_commands;
296
299
std::vector<dpp::slashcommand> tsc_commands;
@@ -461,6 +464,14 @@ int main(int argc, char* argv[]) {
461
464
util::log (" INFO" , log_message);
462
465
util::handle_mute (event.owner , db, config, mute);
463
466
}
467
+
468
+ // Add all automod rules to cache
469
+ dpp::confirmation_callback_t rule_conf = co_await event.owner ->co_automod_rules_get (config[" guild_id" ]);
470
+ if (!rule_conf.is_error ()) {
471
+ for (const dpp::automod_rule& rule : std::get<dpp::automod_rule_map>(rule_conf.value ) | std::views::values) {
472
+ util::AUTOMOD_RULE_CACHE.push (rule);
473
+ }
474
+ }
464
475
});
465
476
466
477
bot.start (dpp::st_wait);
0 commit comments