From b5c31fd589a15b5d42a155cbeeabc9d2280c80af Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 23 Nov 2023 21:01:29 +0100 Subject: [PATCH] add a way to run mc commands from discord --- mcdcbot/src/main.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/mcdcbot/src/main.rs b/mcdcbot/src/main.rs index 6eade4a..ccc4585 100755 --- a/mcdcbot/src/main.rs +++ b/mcdcbot/src/main.rs @@ -127,6 +127,27 @@ async fn stop(ctx: Context<'_>) -> Result<(), Error> { } Ok(()) } +#[poise::command(slash_command)] +async fn run_command( + ctx: Context<'_>, + #[description = "command (without '/')"] cmd: String, +) -> Result<(), Error> { + let current_lock = ctx.data().current.lock().await; + if let Some((_, thread)) = current_lock.as_ref() { + ctx.say(format!("Running '{cmd}'")).await?; + _ = thread + .lock() + .await + .as_ref() + .unwrap() + .clone_task_sender() + .send_task(MinecraftServerTask::RunCommand(cmd)); + } else { + ctx.say(format!("Use /start to start a server first")) + .await?; + } + Ok(()) +} async fn event_handler( ctx: &serenity::Context,