From 85e486db6237870b585f07cfd4ea26af4a65bf85 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 1 Nov 2020 00:24:43 -0700 Subject: feat (desc) feat: - implement somewhat ok but not done version of lavalink - new macros - plugin system - random hi plugin --- src/modules/plugins/macros.rs | 104 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) (limited to 'src/modules/plugins/macros.rs') 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);)* + } +} -- cgit v1.2.3