Reformatted the dice roll buttons
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
use std::env;
|
||||
use std::sync::{Arc, OnceLock};
|
||||
use serenity::all::{CreateEmbed, CreateInteractionResponse, CreateInteractionResponseMessage, EditInteractionResponse, Interaction, ResumedEvent, UserId};
|
||||
use serenity::all::{
|
||||
CreateEmbed, CreateInteractionResponse, CreateInteractionResponseMessage,
|
||||
EditInteractionResponse, Interaction, ResumedEvent, UserId,
|
||||
};
|
||||
use serenity::async_trait;
|
||||
use serenity::model::gateway::Ready;
|
||||
use serenity::model::channel::Message;
|
||||
@@ -175,7 +178,10 @@ impl EventHandler for BotHandler {
|
||||
let custom_id = &component.data.custom_id;
|
||||
if custom_id.starts_with("request_dice_roll") {
|
||||
// Acknowledge the interaction
|
||||
if let Err(err) = component.create_response(ctx.http.clone(), CreateInteractionResponse::Acknowledge).await {
|
||||
if let Err(err) = component
|
||||
.create_response(ctx.http.clone(), CreateInteractionResponse::Acknowledge)
|
||||
.await
|
||||
{
|
||||
log::error!("Could not create dice response: {}", err);
|
||||
};
|
||||
let parts = custom_id.split('|').collect::<Vec<&str>>();
|
||||
@@ -188,15 +194,36 @@ impl EventHandler for BotHandler {
|
||||
let user_id = UserId::from(parts[4].parse::<u64>().unwrap());
|
||||
let roller_id = component.user.id;
|
||||
let hidden: bool = parts[5].parse().unwrap();
|
||||
send_roll_message(&ctx, result, user_id, roller_id, &response).await;
|
||||
component.delete_response(ctx.http.clone()).await.ok();
|
||||
let message;
|
||||
if hidden {
|
||||
message = format!("Results sent to {}", user_id.mention());
|
||||
|
||||
// Prepare the message based on visibility
|
||||
let new_message = if hidden {
|
||||
// For hidden rolls, only reveal "results sent" to the requester
|
||||
format!("🎲 Results sent to {}\n-# {}", user_id.mention(), response)
|
||||
} else {
|
||||
message = format!("🎲 You rolled {} {}\n-# {}", a_or_an(&number_to_words(result)), result, response);
|
||||
// For public rolls, show the roll result
|
||||
format!(
|
||||
"🎲 You rolled {} {}\n-# {}",
|
||||
a_or_an(&number_to_words(result)),
|
||||
result,
|
||||
response
|
||||
)
|
||||
};
|
||||
|
||||
// Edit the message to update the text and remove buttons
|
||||
if let Err(err) = component
|
||||
.edit_response(
|
||||
ctx.http.clone(),
|
||||
EditInteractionResponse::new()
|
||||
.content(new_message)
|
||||
.components(Vec::new()),
|
||||
)
|
||||
.await
|
||||
{
|
||||
log::error!("Could not update dice roll message: {}", err);
|
||||
}
|
||||
user_dm(&ctx, &component.user.id, message).await;
|
||||
|
||||
// Send message to the requester
|
||||
send_roll_message(&ctx, result, user_id, roller_id, &response).await;
|
||||
} else {
|
||||
log::error!("Could not handle dice click: {}", custom_id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user