use zynko::{async_trait, Client, EventHandler, HandlerResult, Intents, Message, User};
struct Bot;
#[async_trait]
impl EventHandler for Bot {
async fn ready(&self, ctx: Client, user: User) -> HandlerResult {
println!(
"{} conectado em {} servidores",
user.display_name,
ctx.cache().guilds.len()
);
Ok(())
}
async fn message_create(&self, _ctx: Client, msg: Message) -> HandlerResult {
if msg.mine() {
return Ok(());
}
if msg.content == "!ping" {
msg.reply("pong").await?;
}
Ok(())
}
}
#[tokio::main]
async fn main() -> zynko::Result<()> {
let token = std::env::var("ZYNKO_TOKEN").expect("defina ZYNKO_TOKEN");
let mut builder = Client::builder(token)
.intents(Intents::GUILDS | Intents::MESSAGES)
.event_handler(Bot);
if let Ok(api) = std::env::var("ZYNKO_API") {
builder = builder.api(api);
}
builder.build()?.start().await
}