aboutsummaryrefslogtreecommitdiff
path: root/src/modules/plugins
diff options
context:
space:
mode:
authorFuwn <[email protected]>2020-10-30 12:58:50 -0700
committerFuwn <[email protected]>2020-10-30 12:58:50 -0700
commit3ca642734629b108ece241ea9644f5ed1ee339cb (patch)
tree515fc5c33c62eb4ab970f3d3e5bb7f40ff417df1 /src/modules/plugins
parentchore: change cc env vars file type, (md -> txt) (diff)
downloaddep-core-next-3ca642734629b108ece241ea9644f5ed1ee339cb.tar.xz
dep-core-next-3ca642734629b108ece241ea9644f5ed1ee339cb.zip
feat (desc)
feat: - add `Procfile` and `app.json` to "prep" for heroku (probably not going to go to heroku though). - implement a plugin system and enable `random_hi` plugin. - move webserver to seperate location
Diffstat (limited to 'src/modules/plugins')
-rw-r--r--src/modules/plugins/macros.rs11
-rw-r--r--src/modules/plugins/mod.rs3
-rw-r--r--src/modules/plugins/random_hi.rs18
3 files changed, 32 insertions, 0 deletions
diff --git a/src/modules/plugins/macros.rs b/src/modules/plugins/macros.rs
new file mode 100644
index 0000000..f28cf7c
--- /dev/null
+++ b/src/modules/plugins/macros.rs
@@ -0,0 +1,11 @@
+#![macro_use]
+
+#[macro_export]
+macro_rules! exec_on_message {
+ ([$ctx:expr, $message:expr], $($plugin:ident), *) => {{
+ // use utils::config::get_pool;
+ // let pool = get_pool(&$ctx);
+
+ $($plugin::on_message($ctx, /* &pool, */ $message);)*
+ }}
+}
diff --git a/src/modules/plugins/mod.rs b/src/modules/plugins/mod.rs
new file mode 100644
index 0000000..10e3e24
--- /dev/null
+++ b/src/modules/plugins/mod.rs
@@ -0,0 +1,3 @@
+// #[macro_use] pub mod macros;
+
+pub mod random_hi;
diff --git a/src/modules/plugins/random_hi.rs b/src/modules/plugins/random_hi.rs
new file mode 100644
index 0000000..ff2b7e5
--- /dev/null
+++ b/src/modules/plugins/random_hi.rs
@@ -0,0 +1,18 @@
+use serenity::model::channel::Message;
+use serenity::prelude::Context;
+use rand::{thread_rng, Rng};
+
+pub fn on_message(_ctx: &Context, message: &Message) {
+ let greatings = vec!["hi", "hey", "hello", "hei", "yo"];
+ let message_content: &str = &message.content.to_lowercase();
+ if !greatings.contains(&message_content) || message.author.bot {
+ return ();
+ }
+
+ let mut rng = thread_rng();
+ let n: u32 = rng.gen_range(0, 16);
+
+ if n == 1 {
+ let _ = message.channel_id.say("Hi!");
+ }
+}