Skip to content
FoxWorn3365 edited this page Jan 21, 2023 · 8 revisions

Options are part of Components.

use Discord\Parts\Interactions\Command\Option;

ATTACHMENT

BOOLEAN

CHANNEL

INTEGER

MENTIONABLE

NUMBER

ROLE

STRING

SUB_COMMAND

SUB_COMMAND_GROUP

USER


Add options to Slash Commands

In this case, the example proposed in the link above is used.

use Discord\Builders\CommandBuilder;

//...

$discord->application->commands->save($discord->application->commands->create(CommandBuilder::new()
  ->setName('greet') 
  ->setDescriptions('Greet an user')
  ->addOption((new Option($discord))
    ->setName('user')
    ->setDescription('User to greet')
    ->setType(Option::USER)
    ->setRequired(true)
  )
  ->toArray()
));

Then:

// Handle
$discord->listenCommand('greet', function (Interaction $interaction) {
  $args = json_decode(json_encode($interaction->data->options));
  $interaction->respondWithMessage(MessageBuilder::new()->setContent("Hello, <@{$args->user->value}>!"));
});
Clone this wiki locally