adding a test embed thingy

This commit is contained in:
linlyboi
2022-08-10 14:51:38 +02:00
parent 3d54222185
commit 0c1e5caa81

View File

@@ -2,6 +2,7 @@ use std::env;
use serenity::async_trait; use serenity::async_trait;
use serenity::model::channel::Message; use serenity::model::channel::Message;
use serenity::model::channel::Embed;
use serenity::model::gateway::Ready; use serenity::model::gateway::Ready;
use serenity::prelude::*; use serenity::prelude::*;
@@ -9,23 +10,12 @@ struct Handler;
#[async_trait] #[async_trait]
impl EventHandler for Handler { impl EventHandler for Handler {
// Set a handler for the `message` event - so that whenever a new message
// is received - the closure (or function) passed will be called. //function executed when new message sent
//
// Event handlers are dispatched through a threadpool, and so multiple
// events can be dispatched simultaneously.
async fn message(&self, ctx: Context, msg: Message) { async fn message(&self, ctx: Context, msg: Message) {
let text = msg.content.to_string(); let text = msg.content.to_string();
let phrase = get_response(&text); let phrase = get_response(&text);
// This code was written by idiot (me)
// if msg.content == "hello" {
// phrase = "http://nohello.com".to_string();
// }
// else if msg.content == "help"
// {
// phrase = "https://dontasktoask.com/".to_string();
// }
if msg.content == "!help" if msg.content == "!help"
{ {
let dm = msg.author.dm(&ctx, |m| m.content("I hate you")).await; let dm = msg.author.dm(&ctx, |m| m.content("I hate you")).await;
@@ -33,30 +23,69 @@ impl EventHandler for Handler {
println!("Couldn't dm the noob: {:?}", why); println!("Couldn't dm the noob: {:?}", why);
} }
} }
// Sending a message can fail, due to a network error, an
// authentication error, or lack of permissions to post in the
// channel, so log to stdout when some error happens, with a
// description of it.
if &phrase != "not pog" if &phrase != "not pog"
{ {
//Sending a message can fail, have to handle exceptions
if let Err(why) = msg.channel_id.say(&ctx.http, &phrase).await { if let Err(why) = msg.channel_id.say(&ctx.http, &phrase).await {
println!("Error sending message: {:?}", why); println!("Error sending message: {:?}", why);
} }
} }
if &text.to_lowercase() == "pls embeb"
{
if let Err(why) = msg.channel_id.send_message(&ctx.http, |m| {
m.content("this is an embeb")
.tts(true)
.embed( |e| e.title("Really cool title").description("This will explode").field(
"Wow rust is really cool",
"Idk what I'm doing",
false,
)
)
}
).await {
println!("Error emebbing : {:?}",why);
} }
// Set a handler to be called on the `ready` event. This is called when a }
// shard is booted, and a READY payload is sent by Discord. This payload }
// contains data like the current user's guild Ids, current user data,
// private channels, and more. //Handles the upon login event
//
// In this case, just print what the current user's username is.
async fn ready(&self, _: Context, ready: Ready) { async fn ready(&self, _: Context, ready: Ready) {
println!("{} is connected!", ready.user.name); println!("{} is connected!", ready.user.name);
} }
} }
fn get_response(txt: &str) -> String {
//hard coded for now but will change later pls no bully
const CRING_WORDS: [&str;4] = ["arch btw","garuda","dragon ball legends", "roblox"];
for cring in CRING_WORDS {
if txt.to_lowercase().contains(&cring) {
return "you just posted cringe".to_string();
}
}
match txt.to_ascii_lowercase().as_str() {
"hello" | "hi" | "hey" => return "https://nohello.com".to_string(),
"help" | "can anyone help?" | "helppp" => return "https://dontasktoask.com".to_string(),
_ => return "not pog".to_string(),
}
}
//Embed function starts here (will likely break everything)
fn create_embed()
{
let embed = Embed::fake(|e| {
e.title("Really cool title").description("This will explode").field(
"Wow rust is really cool",
"Idk what I'm doing",
false,
)
});
}
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {
// Configure the client with your Discord bot token in the environment. // Configure the client with your Discord bot token in the environment.
@@ -80,17 +109,3 @@ async fn main() {
println!("Client error: {:?}", why); println!("Client error: {:?}", why);
} }
} }
fn get_response(txt: &str) -> String {
//hard coded for now but will change later pls no bully
const CRING_WORDS: [&str; 3] = ["arch btw","garuda","dragon ball legends", "roblox"];
for cring in CRING_WORDS {
if txt.to_lowercase().contains(&cring) {
return "you just posted cringe".to_string();
}
}
match txt.to_ascii_lowercase().as_str() {
"hello" | "hi" | "hey" => return "https://nohello.com".to_string(),
"help" | "can anyone help?" | "helppp" => return "https://dontasktoask.com".to_string(),
_ => return "not pog".to_string(),
}
}