Added real_roll command
+ Does god stay in heaven for fear of what he created
This commit is contained in:
7 files changed
+294
-5
No files matched your search
+38
-1
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user