DiscordPHP Documentation

CommandBuilder
in package
implements JsonSerializable Uses CommandAttributes

Helper class used to build application commands.

Tags
since
7.0.0
author

Mark PeanutNL Versluis

Interfaces, Classes, Traits and Enums

JsonSerializable

Table of Contents

$default_permission  : bool
The default permission of the command. If true the command is enabled when the app is added to the guild.
$description  : string
Description of the command. should be emtpy if the type is not CHAT_INPUT.
$name  : string
Name of the command.
$type  : int
Type of the command. The type defaults to 1.
addOption()  : $this
Adds an option to the command.
clearOptions()  : $this
Clear all options from the command.
getOptions()  : array<string|int, Option>|null
Returns all the options in the command.
jsonSerialize()  : array<string|int, mixed>
{@inheritDoc}
new()  : static
Creates a new command builder.
removeOption()  : $this
Removes an option from the command.
setDefaultMemberPermissions()  : $this
Sets the default member permissions of the command.
setDefaultPermission()  : $this
Sets the default permission of the command.
setDescription()  : $this
Sets the description of the command.
setDescriptionLocalization()  : $this
Sets the description of the command in another language.
setDmPermission()  : $this
Sets the DM permission of the command.
setName()  : $this
Sets the name of the command.
setNameLocalization()  : $this
Sets the name of the command in another language.
setNsfw()  : $this
Sets the age restriction of the command.
setType()  : $this
Sets the type of the command.
toArray()  : array<string|int, mixed>
Returns an array with all the options.

Properties

$default_permission

The default permission of the command. If true the command is enabled when the app is added to the guild.

protected bool $default_permission = true

$description

Description of the command. should be emtpy if the type is not CHAT_INPUT.

protected string $description

$type

Type of the command. The type defaults to 1.

protected int $type = \Discord\Parts\Interactions\Command\Command::CHAT_INPUT

Methods

addOption()

Adds an option to the command.

public addOption(Option $option) : $this
Parameters
$option : Option

The option.

Tags
throws
DomainException

Command type is not CHAT_INPUT (1).

throws
OverflowException

Command exceeds maximum 25 options.

Return values
$this

clearOptions()

Clear all options from the command.

public clearOptions() : $this
Return values
$this

getOptions()

Returns all the options in the command.

public getOptions() : array<string|int, Option>|null
Return values
array<string|int, Option>|null

jsonSerialize()

{@inheritDoc}

public jsonSerialize() : array<string|int, mixed>
Return values
array<string|int, mixed>

new()

Creates a new command builder.

public static new() : static
Return values
static

removeOption()

Removes an option from the command.

public removeOption(Option $option) : $this
Parameters
$option : Option

Option to remove.

Tags
throws
DomainException

Command type is not CHAT_INPUT (1).

Return values
$this

setDefaultMemberPermissions()

Sets the default member permissions of the command.

public setDefaultMemberPermissions(string|int $permissions) : $this
Parameters
$permissions : string|int

Default member permission bits of the command.

Return values
$this

setDefaultPermission()

Sets the default permission of the command.

public setDefaultPermission(bool|null $permission) : $this
Parameters
$permission : bool|null

Default permission of the command

Tags
deprecated
7.1.0

See CommandAttributes::setDefaultMemberPermissions().

Return values
$this

setDescription()

Sets the description of the command.

public setDescription(string $description) : $this
Parameters
$description : string

Description of the command

Tags
throws
LengthException

$description is not 1-100 characters long.

Return values
$this

setDescriptionLocalization()

Sets the description of the command in another language.

public setDescriptionLocalization(string $locale, string|null $description) : $this
Parameters
$locale : string

Discord locale code.

$description : string|null

Localized description of the command.

Tags
throws
LengthException

$description is not 1-100 characters long.

Return values
$this

setDmPermission()

Sets the DM permission of the command.

public setDmPermission(bool $permission) : $this
Parameters
$permission : bool

DM permission of the command.

Return values
$this

setName()

Sets the name of the command.

public setName(string $name) : $this
Parameters
$name : string

Name of the command. Slash command names are lowercase.

Tags
throws
LengthException

$name is not 1-32 characters long.

throws
DomainException

$name contains invalid characters.

Return values
$this

setNameLocalization()

Sets the name of the command in another language.

public setNameLocalization(string $locale, string|null $name) : $this
Parameters
$locale : string

Discord locale code.

$name : string|null

Localized name of the command. Slash command names are lowercase.

Tags
throws
LengthException

$name is not 1-32 characters long.

throws
DomainException

$name contains invalid characters.

Return values
$this

setNsfw()

Sets the age restriction of the command.

public setNsfw(bool $restricted) : $this
Parameters
$restricted : bool

Age restriction of the command.

Return values
$this

setType()

Sets the type of the command.

public setType(int $type) : $this
Parameters
$type : int

Type of the command.

Tags
throws
InvalidArgumentException

$type is not 1-3.

Return values
$this

toArray()

Returns an array with all the options.

public toArray() : array<string|int, mixed>
Tags
throws
LengthException
throws
DomainException
Return values
array<string|int, mixed>

Search results