moved message sending to their own functions
This commit is contained in:
+71
-1
@@ -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(());
|
||||
}
|
||||
Reference in New Issue
Block a user