pikadick/commands/
invite.rs

1use crate::checks::ENABLED_CHECK;
2use serenity::{
3    builder::CreateBotAuthParameters,
4    client::Context,
5    framework::standard::{
6        macros::command,
7        Args,
8        CommandResult,
9    },
10    model::{
11        application::Scope,
12        channel::Message,
13        permissions::Permissions,
14    },
15};
16
17#[command]
18#[description("Get an invite link for this bot")]
19#[checks(Enabled)]
20#[bucket("default")]
21pub async fn invite(ctx: &Context, msg: &Message, _args: Args) -> CommandResult {
22    let permissions = Permissions::empty();
23    let link = CreateBotAuthParameters::new()
24        .permissions(permissions)
25        .auto_client_id(&ctx)
26        .await?
27        .scopes(&[Scope::Bot])
28        .build();
29
30    msg.channel_id.say(&ctx.http, &link).await?;
31
32    Ok(())
33}