echbot/src/commands/slur.rs

29 lines
903 B
Rust
Raw Normal View History

2023-01-12 14:18:11 -05:00
use crate::serenity;
2023-01-21 19:49:39 -05:00
use crate::{Context, Error};
2023-01-11 16:31:15 -05:00
use rand::seq::IteratorRandom;
use std::{
fs::File,
io::{BufRead, BufReader},
};
/// Basically a ping command
2023-01-11 17:46:58 -05:00
#[poise::command(slash_command)]
2023-01-21 19:49:39 -05:00
pub(crate) async fn slur(ctx: Context<'_>) -> Result<(), Error> {
let file = File::open("quotes.txt").unwrap_or_else(|_e| panic!("Quote file missing.")); // Open the quotes file
2023-01-11 16:31:15 -05:00
let file = BufReader::new(file); // Read the quotes file
2023-01-21 19:49:39 -05:00
let quotes = file.lines().map(|res| res.expect("Failed to read line."));
let quote = quotes
.choose(&mut rand::thread_rng())
2023-01-11 16:31:15 -05:00
.expect("No lines in file."); // Pick a random quote
2023-01-21 19:49:39 -05:00
ctx.send(|f| {
f.embed(|f| {
f.title("DMBrandon Sez:")
.description(format!("\"{}\"", quote))
.color(serenity::Colour::GOLD)
})
})
.await?; // Send embed with team picks
2023-01-11 16:31:15 -05:00
Ok(())
}