-
-
Notifications
You must be signed in to change notification settings - Fork 238
Slash Command
Formerly known as slash commands, DiscordPHP v7+ supports all types of Discord Application Commands
Here is the example of /ping
command:
<?php
include __DIR__.'/vendor/autoload.php';
use Discord\Builders\MessageBuilder;
use Discord\Discord;
use Discord\Parts\Interactions\Command\Command; // Please note to use this correct namespace!
use Discord\Parts\Interactions\Interaction;
$discord = new Discord(['token'=> 'your bot token']);
$discord->on('ready', function (Discord $discord) {
// When bot is ready, attempt to create a global slash command "/ping"
$command = new Command($discord, ['name' => 'ping', 'description' => 'Pong!']);
$discord->application->commands->save($command);
});
// Handle the command
$discord->listenCommand('ping', function (Interaction $interaction) {
// Respond the /ping command with interaction message "pong!"
$interaction->respondWithMessage(MessageBuilder::new()->setContent('Pong!'));
});
Command is registered:
Handle reply:
For more information about Interaction
, see the documentation.
You may notice that your command does not show up in the guild even if it's already registered or showing in the Bot's Direct Message.
In order for your global application command to show up in a guild, you must authorize the Bot using applications.commands
scope, the URL can be generated from Discord Developers Portal
And then you can double check the command in Server Settings > Integrations
Just like global application commands, but you need to save it in the Guild commands repository instead.
$guildCommand = new Command($discord, ['name' => 'ping', 'description' => 'Pong!']);
$guild->commands->save($guildCommand);
If you are previously using DiscordPHP v6.x and DiscordPHP-Slash, slash commands are now integrated into the main library. You no longer need the DiscordPHP-Slash library anymore! Read how to upgrade here: https://github.com/discord-php/DiscordPHP/blob/master/V7_CONVERSION.md#slash-commands
Note: This wiki is currently Work In Progress. Consider reading the docs instead.
- Application Command (Slash based)
Command Client (Message based)
- Activity
- Application
- Guild
- Private Channel
- User
Components
-
ActionRow
- Buttons
- Option (commands)
- SelectMenu
- TextInput
Builders