moved message sending to their own functions

This commit is contained in:
2025-01-31 18:26:36 +01:00
parent be22c13814
commit 1e548f5174
3 changed files with 112 additions and 44 deletions
+71 -1
View File
@@ -1,9 +1,10 @@
mod cmds;
mod events;
use poise::CreateReply;
use std::env;
use poise::serenity_prelude as serenity;
use poise::serenity_prelude::{self as serenity, Color, CreateEmbed, Timestamp};
struct Data {
dev: bool
@@ -12,6 +13,28 @@ type Error = Box<dyn std::error::Error + Send + Sync>;
type Context<'a> = poise::Context<'a, Data, Error>;
struct EmbedOptions {
desc: String,
title: Option<String>,
col: Option<u32>,
url: Option<String>,
ts: Option<Timestamp>,
empheral: bool
}
impl Default for EmbedOptions {
fn default() -> Self {
return EmbedOptions {
desc: "default description".to_string(),
title: None,
col: None,
url: None,
ts: None,
empheral: false
};
}
}
#[tokio::main]
async fn main() {
let args: Vec<String> = env::args().collect();
@@ -54,3 +77,50 @@ async fn main() {
println!("Starting bot...");
bot.start().await.unwrap();
}
fn none_to_empty(string: Option<String>) -> String {
return string.unwrap_or_else(|| "".to_string());
}
async fn send_msg(
ctx: Context<'_>,
t: String,
empheral: bool
) -> Result<(), Error>
{
let r = CreateReply {
content: Some(t),
ephemeral: Some(empheral),
..Default::default()
};
ctx.send(r).await?;
return Ok(());
}
async fn send_embed(
ctx: Context<'_>,
options: EmbedOptions,
) -> Result<(), Error>
{
let embed = CreateEmbed::new()
.title (none_to_empty(options.title))
.description(options.desc)
.colour (Color::new(options.col.unwrap_or_else(|| 5793266)))
.url (none_to_empty(options.url))
.timestamp (options.ts.unwrap_or_else(|| Timestamp::now()));
let r = CreateReply {
embeds: vec![embed],
ephemeral: Some(options.empheral),
..Default::default()
};
ctx.send(r).await?;
return Ok(());
}