47 lines
1.3 KiB
Rust
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);
|
|
}
|
|
}
|