From f14ba9816bf32c7998a97a9cb55565a9e9a9bae5 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Tue, 4 Aug 2020 20:31:39 +0200 Subject: Initial commit --- src/commands/math.rs | 18 ++++++++++++++++++ src/commands/meta.rs | 13 +++++++++++++ src/commands/mod.rs | 3 +++ src/commands/owner.rs | 25 +++++++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 src/commands/math.rs create mode 100644 src/commands/meta.rs create mode 100644 src/commands/mod.rs create mode 100644 src/commands/owner.rs (limited to 'src/commands') diff --git a/src/commands/math.rs b/src/commands/math.rs new file mode 100644 index 0000000..ce7beed --- /dev/null +++ b/src/commands/math.rs @@ -0,0 +1,18 @@ +use serenity::prelude::*; +use serenity::model::prelude::*; +use serenity::framework::standard::{ + Args, CommandResult, + macros::command, +}; + +#[command] +pub fn multiply(ctx: &mut Context, msg: &Message, mut args: Args) -> CommandResult { + let one = args.single::().unwrap(); + let two = args.single::().unwrap(); + + let product = one * two; + + let _ = msg.channel_id.say(&ctx.http, product); + + Ok(()) +} diff --git a/src/commands/meta.rs b/src/commands/meta.rs new file mode 100644 index 0000000..d58af10 --- /dev/null +++ b/src/commands/meta.rs @@ -0,0 +1,13 @@ +use serenity::prelude::*; +use serenity::model::prelude::*; +use serenity::framework::standard::{ + CommandResult, + macros::command, +}; + +#[command] +fn ping(ctx: &mut Context, msg: &Message) -> CommandResult { + let _ = msg.channel_id.say(&ctx.http, "Pong!"); + + Ok(()) +} diff --git a/src/commands/mod.rs b/src/commands/mod.rs new file mode 100644 index 0000000..9c5dfaa --- /dev/null +++ b/src/commands/mod.rs @@ -0,0 +1,3 @@ +pub mod math; +pub mod meta; +pub mod owner; diff --git a/src/commands/owner.rs b/src/commands/owner.rs new file mode 100644 index 0000000..cebb759 --- /dev/null +++ b/src/commands/owner.rs @@ -0,0 +1,25 @@ +use crate::ShardManagerContainer; +use serenity::prelude::*; +use serenity::model::prelude::*; +use serenity::framework::standard::{ + CommandResult, + macros::command, +}; + +#[command] +#[owners_only] +fn quit(ctx: &mut Context, msg: &Message) -> CommandResult { + let data = ctx.data.read(); + + if let Some(manager) = data.get::() { + manager.lock().shutdown_all(); + } else { + let _ = msg.reply(&ctx, "There was a problem getting the shard manager"); + + return Ok(()); + } + + let _ = msg.reply(&ctx, "Shutting down!"); + + Ok(()) +} -- cgit v1.2.3-70-g09d2