Added real_roll command

+ Does god stay in heaven for fear of what he created
This commit is contained in:
joeyahines committed 2024-05-27 20:31:12 -06:00
1 parent 2f7954632d
commit 04cb04bdd6
7 files changed
+294 -5

No files matched your search

+38 -1
View File
@@ -2,9 +2,11 @@ use crate::album_manager::{Album, AlbumQuery, ImageQuery, ImageSort};
use crate::error::Error;
use crate::models::insult_compliment::{RandomResponseTemplate, ResponseType};
use crate::models::random::{Random, RandomConfig};
use crate::rass::RaaSCmd;
use crate::{command, group, GlobalData, BAD_APPLE};
use reqwest::Client;
use serde::{Deserialize, Serialize};
use serenity::all::{CreateAttachment, CreateMessage};
use serenity::builder::EditMessage;
use serenity::client::Context;
use serenity::constants::MESSAGE_CODE_LIMIT;
@@ -15,7 +17,7 @@ use std::collections::HashMap;
use std::time::Duration;
#[group]
#[commands(dad_joke, roll, bad_apple, insult, add_random, list_random)]
#[commands(dad_joke, roll, real_roll, bad_apple, insult, add_random, list_random)]
pub struct Joke;
#[derive(Clone, Serialize, Deserialize)]
@@ -238,6 +240,41 @@ async fn roll(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
Ok(())
}
#[command]
#[aliases("real_roll")]
#[description("Roll a real die!")]
async fn real_roll(ctx: &Context, msg: &Message, _args: Args) -> CommandResult {
let mut data = ctx.data.write().await;
let global = data.get_mut::<GlobalData>().unwrap();
if let Some(raas_handler) = &mut global.bot_state.raas_handler {
raas_handler.send_msg_queue.send(RaaSCmd::Roll(3)).await?;
msg.reply(&ctx.http, "Sent request to Roll Bot...").await?;
if let Some(img) = raas_handler.recv_msg_queue.recv().await {
match img {
RaaSCmd::Roll(_) => {}
RaaSCmd::Img(img_data) => {
msg.channel_id
.send_message(
&ctx.http,
CreateMessage::new()
.content("Your roll my friend, hope its good I can't read!")
.add_file(CreateAttachment::bytes(img_data, "roll.jpg")),
)
.await?;
}
}
} else {
msg.reply(&ctx.http, "Roll Bot is gone... oh god!").await?;
}
} else {
msg.reply(&ctx.http, "Looks like I can't reach my real flesh")
.await?;
}
Ok(())
}
#[command]
#[bucket = "bad_apple"]
async fn bad_apple(ctx: &Context, msg: &Message, _args: Args) -> CommandResult {
+24
View File
@@ -17,6 +17,7 @@ use crate::discord::fren_coin::give_coin;
use crate::discord::joke::random;
use crate::models::lil_fren::lil_fren_task;
use crate::models::task::Task;
use crate::rass::{RaaS, RaaSCmd, RaaSHandler};
use crate::{help, hook, GlobalData};
use rand::prelude::IteratorRandom;
use rand::thread_rng;
@@ -48,6 +49,29 @@ impl EventHandler for Handler {
lil_fren_task(&ctx1).await;
}
});
let ctx2 = ctx.clone();
tokio::spawn(async move {
let (tx_client, rx_server) = tokio::sync::mpsc::channel::<RaaSCmd>(10);
let (tx_server, rx_client) = tokio::sync::mpsc::channel::<RaaSCmd>(10);
let handler = RaaSHandler {
recv_msg_queue: rx_client,
send_msg_queue: tx_client,
};
let mut raas = RaaS {
recv_msg_queue: rx_server,
send_msg_queue: tx_server,
};
{
let mut data = ctx2.data.write().await;
let global_data = data.get_mut::<GlobalData>().unwrap();
global_data.bot_state.raas_handler = Some(handler);
}
raas.worker("0.0.0.0:50000").await.unwrap();
});
tokio::spawn(async move {
Task::create_reoccurring_tasks(&ctx).await.unwrap();