diff options
Diffstat (limited to 'src/modules/plugins')
| -rw-r--r-- | src/modules/plugins/macros.rs | 104 | ||||
| -rw-r--r-- | src/modules/plugins/mod.rs | 3 | ||||
| -rw-r--r-- | src/modules/plugins/set_bot_game.rs | 10 |
3 files changed, 115 insertions, 2 deletions
diff --git a/src/modules/plugins/macros.rs b/src/modules/plugins/macros.rs index f28cf7c..84c6226 100644 --- a/src/modules/plugins/macros.rs +++ b/src/modules/plugins/macros.rs @@ -1,4 +1,5 @@ #![macro_use] +#![allow(unused_macros)] #[macro_export] macro_rules! exec_on_message { @@ -9,3 +10,106 @@ macro_rules! exec_on_message { $($plugin::on_message($ctx, /* &pool, */ $message);)* }} } + +macro_rules! exec_on_message_update { + ([$ctx:expr, $event:expr], $($plugin:ident), *) => {{ + // use utils::config::get_pool; + // let pool = get_pool(&$ctx); + + $($plugin::on_message_update($ctx, /* &pool, */ $event);)* + }} +} + +macro_rules! exec_on_message_delete { + ([$ctx:expr, $channel_id:expr, $msg_id:expr], $($plugin:ident), *) => {{ + // use utils::config::get_pool; + // let pool = get_pool(&$ctx); + + $($plugin::on_message_delete($ctx, /* &pool, */ $channel_id, $msg_id);)* + }} +} + +macro_rules! exec_on_reaction_add { + ([$ctx:expr, $reaction:expr], $($plugin:ident), *) => {{ + // use utils::config::get_pool; + // let pool = get_pool(&$ctx); + + $($plugin::on_reaction_add($ctx, /* &pool, */ $reaction);)* + }} +} + +// macro_rules! exec_on_reaction_remove { +// ([$ctx:expr, $reaction:expr], $($plugin:ident), *) => {{ +// use utils::config::get_pool; +// let pool = get_pool(&$ctx); + +// $($plugin::on_reaction_remove($ctx, &pool, $reaction);)* +// }} +// } + +macro_rules! exec_on_ready { + ([$ctx:expr, $ready:expr], $($plugin:ident), *) => { + $($plugin::on_ready($ctx, $ready);)* + } +} + +macro_rules! exec_on_presence_update { + ([$ctx:expr, $presenceupdateevent:expr], $($plugin:ident), *) => { + $($plugin::on_presence_update($ctx, $presenceupdateevent);)* + } +} + +macro_rules! exec_on_guild_member_addition { + ([$ctx:expr, $GuildId:expr, $member:expr], $($plugin:ident), *) => {{ + // use utils::config::get_pool; + // let pool = get_pool(&$ctx); + + $($plugin::on_guild_member_addition($ctx, /* &pool, */ $GuildId, $member);)* + }} +} + + +macro_rules! exec_on_guild_member_removal { + ([$ctx:expr, $GuildId:expr, $user:expr, $member:expr], $($plugin:ident), *) => {{ + // use utils::config::get_pool; + // let pool = get_pool(&$ctx); + + $($plugin::on_guild_member_removal($ctx, /* &pool, */ $GuildId, $user, $member);)* + }} +} + +macro_rules! exec_on_guild_ban_addition { + ([$ctx:expr, $GuildId:expr, $user:expr], $($plugin:ident), *) => { + $($plugin::on_guild_ban_addition($ctx, $GuildId, $user);)* + } +} + +macro_rules! exec_on_guild_ban_removal { + ([$ctx:expr, $GuildId:expr, $user:expr], $($plugin:ident), *) => { + $($plugin::on_guild_ban_removal($ctx, $GuildId, $user);)* + } +} + +macro_rules! exec_on_guild_member_update { + ([$ctx:expr, $prev_member:expr, $curr_member:expr], $($plugin:ident), *) => { + $($plugin::on_guild_member_update($ctx, $prev_member, $curr_member);)* + } +} + +macro_rules! exec_on_guild_create { + ([$ctx:expr, $guild:expr, $if_joined:expr], $($plugin:ident), *) => { + $($plugin::on_guild_create($ctx, $guild, $if_joined);)* + } +} + +macro_rules! exec_on_guild_members_chunk { + ([$ctx:expr, $guild_id:expr, $members:expr], $($plugin:ident), *) => { + $($plugin::on_guild_members_chunk($ctx, $guild_id, $members);)* + } +} + +macro_rules! exec_on_guild_update { + ([$ctx:expr, $guild:expr, $partial_guild:expr], $($plugin:ident), *) => { + $($plugin::on_guild_update($ctx, $guild, $partial_guild);)* + } +} diff --git a/src/modules/plugins/mod.rs b/src/modules/plugins/mod.rs index 10e3e24..2d01861 100644 --- a/src/modules/plugins/mod.rs +++ b/src/modules/plugins/mod.rs @@ -1,3 +1,2 @@ -// #[macro_use] pub mod macros; - +pub mod macros; pub mod random_hi; diff --git a/src/modules/plugins/set_bot_game.rs b/src/modules/plugins/set_bot_game.rs new file mode 100644 index 0000000..44ab51a --- /dev/null +++ b/src/modules/plugins/set_bot_game.rs @@ -0,0 +1,10 @@ +use serenity::prelude::Context; +use serenity::model::gateway::{Ready, Game}; +use std::env; + +pub fn on_message(ctx: &Context, _: &Ready) { + match env::var("BOT_GAME") { + Ok(val) => ctx.set_game(Game::playing(&val)), + Err(_) => return + }; +} |