Compare commits

..

2 Commits

Author SHA1 Message Date
2aa027159e
Update dependencies
Some checks failed
Rust / check (push) Failing after 13m56s
2026-01-26 22:58:36 +00:00
695922e3b6
Add deer game 2026-01-26 22:54:53 +00:00
6 changed files with 1313 additions and 930 deletions

2185
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@ name = "shibe-bot"
description = "A Discord bot written in Rust, using Poise." description = "A Discord bot written in Rust, using Poise."
license = "MIT" license = "MIT"
readme = "README.md" readme = "README.md"
version = "1.1.0" version = "1.2.0"
edition = "2021" edition = "2021"
build = "build.rs" build = "build.rs"
@ -23,12 +23,12 @@ serde = { version = "1.0.219", features = ["serde_derive"] }
serde_json = "1.0.140" serde_json = "1.0.140"
roux = "2.2.13" roux = "2.2.13"
structstruck = "0.5.0" structstruck = "0.5.0"
reqwest = { version = "0.12.15", features = ["json"] } reqwest = { version = "0.13.1", features = ["json"] }
octocrab = { version = "0.44.1", optional = true } octocrab = { version = "0.49.5", optional = true }
tempfile = { version = "3.20.0", optional = true } tempfile = { version = "3.20.0", optional = true }
self-replace = { version = "1.5.0", optional = true } self-replace = { version = "1.5.0", optional = true }
zip = { version = "4.2.0", optional = true } zip = { version = "7.2.0", optional = true }
nix = { version = "0.30.1", features = ["process"], optional = true } nix = { version = "0.31.1", features = ["process"], optional = true }
minreq = { version = "2.14.0", features = ["https"], optional = true } minreq = { version = "2.14.0", features = ["https"], optional = true }

View File

@ -1,4 +1,4 @@
# Shibe Bot 1.1.0 # Shibe Bot 1.2.0
[![Rust](https://github.com/shibedrill/shibe-bot/actions/workflows/rust.yml/badge.svg)](https://github.com/shibedrill/shibe-bot/actions/workflows/rust.yml) [![Rust](https://github.com/shibedrill/shibe-bot/actions/workflows/rust.yml/badge.svg)](https://github.com/shibedrill/shibe-bot/actions/workflows/rust.yml)
[![GitHub License](https://img.shields.io/github/license/shibedrill/shibe-bot)](LICENSE.txt) [![GitHub License](https://img.shields.io/github/license/shibedrill/shibe-bot)](LICENSE.txt)

View File

@ -1,5 +1,8 @@
#[cfg(feature = "self-update")] #[cfg(feature = "self-update")]
use {std::convert::Infallible, std::os::unix::process::CommandExt, octocrab, std::io::Write, self_replace, zip, minreq}; use {
minreq, octocrab, self_replace, std::convert::Infallible, std::io::Write,
std::os::unix::process::CommandExt, zip,
};
use crate::Context; use crate::Context;
use crate::Error; use crate::Error;

View File

@ -1,6 +1,7 @@
use std::time::Duration;
use crate::Context; use crate::Context;
use crate::Error; use crate::Error;
use poise::serenity_prelude as serenity; use poise::serenity_prelude as serenity;
use rand::seq::IndexedRandom; use rand::seq::IndexedRandom;
use rand::Rng; use rand::Rng;
@ -91,7 +92,7 @@ pub async fn curbstomp(
&format!("{} made {} eat pavement.", ctx.author(), target) &format!("{} made {} eat pavement.", ctx.author(), target)
}; };
ctx.say(response).await?; ctx.say(response).await?;
info!("Executed command `whack` successfully"); info!("Executed command `curbstomp` successfully");
Ok(()) Ok(())
} }
@ -180,3 +181,26 @@ pub async fn deer(ctx: Context<'_>) -> Result<(), Error> {
info!("Executed command `deer` successfully"); info!("Executed command `deer` successfully");
Ok(()) Ok(())
} }
/// Deer game: look at the deer
#[poise::command(slash_command, global_cooldown = 20)]
pub async fn game(ctx: Context<'_>) -> Result<(), Error> {
ctx.say("Deer game! React to the :deer: first to win.")
.await?;
std::thread::sleep(Duration::from_secs(3));
let reply = ctx.say(":deer:").await?;
let deer_msg = reply.message().await?;
let collector = deer_msg.await_reactions(ctx);
let collector = collector.timeout(Duration::from_secs(5));
if let Some(react) = collector.await {
let reacting_user = react.user(ctx.http()).await?;
ctx.say(format!("{} was first to react! yay!", reacting_user)).await?;
} else {
ctx.say("Nobody reacted. Game over </3").await?;
}
Ok(())
}

View File

@ -95,6 +95,7 @@ async fn main() {
bite(), bite(),
deer(), deer(),
curbstomp(), curbstomp(),
game(),
], ],
initialize_owners: true, initialize_owners: true,
event_handler: |ctx, event, framework, data| { event_handler: |ctx, event, framework, data| {