bonjour-sayer/src/main.rs
2022-08-16 23:13:58 +02:00

47 lines
1.3 KiB
Rust

use serenity::async_trait;
use serenity::model::{gateway::Ready, guild::Member};
use serenity::prelude::*;
use serenity::Client;
struct Handler;
#[async_trait]
impl EventHandler for Handler {
async fn guild_member_addition(&self, ctx: Context, new_member: Member) {
if let Ok(partial_guild) = new_member.guild_id.to_partial_guild(&ctx.http).await {
if let Some(system_channel) = partial_guild.system_channel_id {
match system_channel.say(ctx.http, "Bonjour").await {
Ok(ok) => {
println!("Greeted {:?}", ok);
}
Err(err) => {
eprintln!("Failed {:?}", err);
}
}
}
}
}
async fn ready(&self, ctx: Context, ready: Ready) {
ctx.invisible().await;
println!(
"{}#{} is connected.",
ready.user.name, ready.user.discriminator
);
}
}
#[tokio::main]
async fn main() {
let mut client = Client::builder(
"ODU5NTIzMDA4MTc4ODE1MDE2.G8hAh4.IzWYvNpu0dtvQJBkrG-WuQuS548oi9mTNCcgA8",
GatewayIntents::GUILD_MEMBERS,
)
.event_handler(Handler)
.await
.expect("Error creating client");
if let Err(why) = client.start().await {
eprintln!("Error with client: {:?}", why);
}
}