aboutsummaryrefslogtreecommitdiff
path: root/src/modules/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/plugins')
-rw-r--r--src/modules/plugins/macros.rs104
-rw-r--r--src/modules/plugins/mod.rs3
-rw-r--r--src/modules/plugins/set_bot_game.rs10
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
+ };
+}