summaryrefslogtreecommitdiff
path: root/src/commands/general
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/general')
-rw-r--r--src/commands/general/ask.rs8
-rw-r--r--src/commands/general/bing.rs2
-rw-r--r--src/commands/general/config.rs6
-rw-r--r--src/commands/general/convert.rs18
-rw-r--r--src/commands/general/emoji.rs2
-rw-r--r--src/commands/general/pfp.rs2
-rw-r--r--src/commands/general/random.rs44
-rw-r--r--src/commands/general/version.rs4
8 files changed, 53 insertions, 33 deletions
diff --git a/src/commands/general/ask.rs b/src/commands/general/ask.rs
index 1300e97..8d83622 100644
--- a/src/commands/general/ask.rs
+++ b/src/commands/general/ask.rs
@@ -1,18 +1,18 @@
use crate::{client::Context, consts, utils};
-use eyre::{Context as _, Result};
+use anyhow::{Context as _, Result};
-/// Ask teawie a question!
+/// Ask a question!
#[poise::command(prefix_command, slash_command)]
#[allow(clippy::no_effect_underscore_binding)]
pub async fn ask(
ctx: Context<'_>,
#[rename = "question"]
- #[description = "The question you want to ask teawie"]
+ #[description = "The question you want to ask"]
_question: String,
) -> Result<()> {
let resp = utils::random_choice(consts::RESPONSES)
- .wrap_err("Couldn't choose from random responses!")?;
+ .context("Couldn't choose from random responses!")?;
ctx.say(resp).await?;
Ok(())
diff --git a/src/commands/general/bing.rs b/src/commands/general/bing.rs
index 28fdf0d..8390659 100644
--- a/src/commands/general/bing.rs
+++ b/src/commands/general/bing.rs
@@ -1,6 +1,6 @@
use crate::client::Context;
-use eyre::Result;
+use anyhow::Result;
/// Make sure the wie is alive
#[poise::command(prefix_command)]
diff --git a/src/commands/general/config.rs b/src/commands/general/config.rs
index 6adb78b..bdc102e 100644
--- a/src/commands/general/config.rs
+++ b/src/commands/general/config.rs
@@ -3,7 +3,7 @@ use crate::storage::settings::{Properties, Settings};
use std::str::FromStr;
-use eyre::{OptionExt as _, Result};
+use anyhow::{Context as _, Result};
use log::debug;
use poise::serenity_prelude::{CreateEmbed, GuildChannel, ReactionType};
use poise::{ChoiceParameter, CreateReply};
@@ -70,7 +70,7 @@ pub async fn set(
#[description = "Minimum number of reactions a message needs to make it to the ReactBoard (defaults to 5)"]
reactboard_requirement: Option<u64>,
#[description = "Toggle ReactBoard"] reactboard_enabled: Option<bool>,
- #[description = "Enables 'extra' commands like teawiespam and copypasta. Defaults to false."]
+ #[description = "Enables 'extra' commands like uwurandom. Defaults to false."]
optional_commands_enabled: Option<bool>,
) -> Result<()> {
if let Some(storage) = &ctx.data().storage {
@@ -152,7 +152,7 @@ pub async fn get(
) -> Result<()> {
let gid = &ctx
.guild_id()
- .ok_or_eyre("Failed to get GuildId from context!")?;
+ .context("Failed to get GuildId from context!")?;
if let Some(storage) = &ctx.data().storage {
let settings = storage.get_guild_settings(gid).await?;
diff --git a/src/commands/general/convert.rs b/src/commands/general/convert.rs
index b5e7018..a736ccf 100644
--- a/src/commands/general/convert.rs
+++ b/src/commands/general/convert.rs
@@ -1,7 +1,7 @@
use crate::client::Context;
+use anyhow::Result;
use bottomify::bottom;
-use eyre::Result;
use poise::serenity_prelude::constants::MESSAGE_CODE_LIMIT;
#[allow(clippy::unused_async)]
@@ -13,44 +13,44 @@ pub async fn convert(_: Context<'_>) -> Result<()> {
Ok(())
}
-/// Ask teawie to convert °F to °C
+/// Convert °F to °C
#[poise::command(slash_command)]
pub async fn to_celsius(
ctx: Context<'_>,
- #[description = "What teawie will convert"] degrees_fahrenheit: f32,
+ #[description = "What to convert"] degrees_fahrenheit: f32,
) -> Result<()> {
let temp = (degrees_fahrenheit - 32.0) * (5.0 / 9.0);
ctx.say(temp.to_string()).await?;
Ok(())
}
-/// Ask teawie to convert °C to °F
+/// Convert °C to °F
#[poise::command(slash_command)]
pub async fn to_fahrenheit(
ctx: Context<'_>,
- #[description = "What teawie will convert"] degrees_celsius: f32,
+ #[description = "What to convert"] degrees_celsius: f32,
) -> Result<()> {
let temp = (degrees_celsius * (9.0 / 5.0)) + 32.0;
ctx.say(temp.to_string()).await?;
Ok(())
}
-/// Teawie will translate to bottom 🥺
+/// Translate to bottom 🥺
#[poise::command(slash_command)]
pub async fn to_bottom(
ctx: Context<'_>,
- #[description = "What teawie will translate into bottom"] message: String,
+ #[description = "What to translate into bottom"] message: String,
) -> Result<()> {
let encoded = bottom::encode_string(&message);
ctx.say(encoded).await?;
Ok(())
}
-/// Teawie will translate from bottom 🥸
+/// Translate from bottom 🥸
#[poise::command(slash_command)]
pub async fn from_bottom(
ctx: Context<'_>,
- #[description = "What teawie will translate from bottom"] message: String,
+ #[description = "What to translate from bottom"] message: String,
) -> Result<()> {
let resp: String;
diff --git a/src/commands/general/emoji.rs b/src/commands/general/emoji.rs
index bbae0b5..d91b50c 100644
--- a/src/commands/general/emoji.rs
+++ b/src/commands/general/emoji.rs
@@ -1,6 +1,6 @@
use crate::{client::Context, consts::Colors};
-use eyre::Result;
+use anyhow::Result;
use poise::{
serenity_prelude::{CreateEmbed, Emoji},
CreateReply,
diff --git a/src/commands/general/pfp.rs b/src/commands/general/pfp.rs
index 34ae795..9040b9b 100644
--- a/src/commands/general/pfp.rs
+++ b/src/commands/general/pfp.rs
@@ -1,6 +1,6 @@
use crate::{client::Context, consts::Colors};
-use eyre::Result;
+use anyhow::Result;
use poise::{
serenity_prelude::{CreateEmbed, User},
CreateReply,
diff --git a/src/commands/general/random.rs b/src/commands/general/random.rs
index 094123b..053e4bb 100644
--- a/src/commands/general/random.rs
+++ b/src/commands/general/random.rs
@@ -1,22 +1,14 @@
-use crate::{client::Context, consts, http, utils};
+use crate::{client::Context, http, utils};
-use eyre::Result;
+use anyhow::Result;
+use rand::Rng;
-#[poise::command(slash_command, subcommands("lore", "teawie", "shiggy"))]
+#[poise::command(slash_command, subcommands("teawie", "shiggy", "uwu"))]
#[allow(clippy::unused_async)]
pub async fn random(_: Context<'_>) -> Result<()> {
Ok(())
}
-/// Get a random piece of teawie lore!
-#[poise::command(prefix_command, slash_command)]
-pub async fn lore(ctx: Context<'_>) -> Result<()> {
- let resp = utils::random_choice(consts::LORE)?;
- ctx.say(resp).await?;
-
- Ok(())
-}
-
/// Get a random teawie
#[poise::command(prefix_command, slash_command)]
pub async fn teawie(ctx: Context<'_>) -> Result<()> {
@@ -34,3 +26,31 @@ pub async fn shiggy(ctx: Context<'_>) -> Result<()> {
Ok(())
}
+
+/// Some uwu
+#[poise::command(prefix_command, slash_command)]
+pub async fn uwu(
+ ctx: Context<'_>,
+ #[description = "The amount of uwurandom to generate"]
+ #[min = 1]
+ #[max = 100]
+ length: Option<u16>,
+) -> Result<()> {
+ let length = length.unwrap_or(rand::thread_rng().gen_range(1..50));
+
+ let mut result = String::with_capacity(length as usize);
+ // ThreadRng is not Send(obviously), and rustc is slightly too paranoid about rng spilling to await point
+ // So calm it by constraining it to a block
+ {
+ let mut rng = rand::thread_rng();
+ let mut state_machine = uwurandom_rs::StateMachine::new(&mut rng);
+ for _ in 0..length {
+ let generated;
+ (state_machine, generated) = state_machine.generate(&mut rng);
+ result.push(generated);
+ }
+ }
+ ctx.say(result).await?;
+
+ Ok(())
+}
diff --git a/src/commands/general/version.rs b/src/commands/general/version.rs
index bdf6805..34513fc 100644
--- a/src/commands/general/version.rs
+++ b/src/commands/general/version.rs
@@ -2,7 +2,7 @@ use crate::{client::Context, consts::Colors};
use std::env::consts::{ARCH, OS};
-use eyre::Result;
+use anyhow::Result;
use poise::{serenity_prelude::CreateEmbed, CreateReply};
/// Get version info
@@ -12,7 +12,7 @@ pub async fn version(ctx: Context<'_>) -> Result<()> {
let revision_url = format!(
"[{}]({}/tree/{})",
sha,
- option_env!("CARGO_PKG_REPOSITORY").unwrap_or("https://github.com/getchoo/teawieBot"),
+ option_env!("CARGO_PKG_REPOSITORY").unwrap_or("https://github.com/getchoo/chill"),
sha,
);