DiscordPHP Documentation

CommandBuilder extends Builder
in package
implements JsonSerializable uses CommandAttributes

Helper class used to build application commands.

Tags
link
https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-structure
since
7.0.0
author

Mark PeanutNL Versluis

Table of Contents

Interfaces

JsonSerializable

Properties

$contexts  : array<string|int, int>|null
Interaction context(s) where the command can be used, only for globally-scoped commands.
$default_member_permissions  : string|null
Set of permissions represented as a bit set.
$default_permission  : bool|null
The default permission of the command. If true the command is enabled when the app is added to the guild. SOON DEPRECATED.
$description  : string|null
Description of the command. should be empty if the type is not CHAT_INPUT.
$integration_types  : array<string|int, int>|null
Interaction context(s) where the command can be used, only for globally-scoped commands.
$name  : string
Name of the command.
$options  : array<string|int, Option>|null
The parameters for the command, max 25. Only for Slash command (CHAT_INPUT).
$type  : int
Type of the command. The type defaults to 1.

Methods

__get()  : mixed
Handles dynamic get calls onto the part.
__set()  : void
Handles dynamic set calls onto the part.
addContext()  : $this
Adds a context to the command. (Only for globally-scoped commands).
addIntegrationType()  : $this
Adds an integration type to the command. (Only for globally-scoped commands).
addOption()  : $this
Adds an option to the command.
clearOptions()  : $this
Clear all options from the command.
create()  : Command
Creates the command in the given repository.
fromPart()  : self
Creates a new instance of the builder from a given Part.
getOptions()  : array<string|int, Option>
Returns all the options in the command.
jsonSerialize()  : array<string|int, mixed>
new()  : static
Creates a new command builder.
removeContext()  : $this
Removes a context from the command. (Only for globally-scoped commands).
removeIntegrationType()  : $this
Removes an integration type from the command. (Only for globally-scoped commands).
removeOption()  : $this
Removes an option from the command.
setContext()  : $this
Sets the contexts of the command. (Only for globally-scoped commands).
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.
setGuildId()  : $this
Sets the guild ID of the command.
setHandler()  : $this
Sets the handler for 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.
checkForGetMutator()  : string|false
Checks if there is a get mutator present.
checkForSetMutator()  : string|false
Checks if there is a set mutator present.
getProperty()  : mixed
Gets a property on the parent part.
setProperty()  : void
Sets an property on the parent part.
studly()  : string
Converts a string to studlyCase.

Properties

$contexts

Interaction context(s) where the command can be used, only for globally-scoped commands.

protected array<string|int, int>|null $contexts = null

$default_member_permissions

Set of permissions represented as a bit set.

protected string|null $default_member_permissions = null

$default_permission

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

protected bool|null $default_permission = null

$description

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

protected string|null $description = null

$integration_types

Interaction context(s) where the command can be used, only for globally-scoped commands.

protected array<string|int, int>|null $integration_types = null

$options

The parameters for the command, max 25. Only for Slash command (CHAT_INPUT).

protected array<string|int, Option>|null $options = null

$type

Type of the command. The type defaults to 1.

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

Methods

__get()

Handles dynamic get calls onto the part.

public __get(string $key) : mixed
Parameters
$key : string

The attributes key.

Tags
throws
Exception
see
self::getAttribute()

This function forwards onto getAttribute.

Return values
mixed

The value of the attribute.

__set()

Handles dynamic set calls onto the part.

public __set(string $key, mixed $value) : void
Parameters
$key : string

The attributes key.

$value : mixed

The attributes value.

Tags
see
self::setAttribute()

This function forwards onto setAttribute.

addContext()

Adds a context to the command. (Only for globally-scoped commands).

public addContext(int $context) : $this
Parameters
$context : int

Context to add.

Tags
throws
DomainException

If the command is not globally-scoped.

since
10.18.0
Return values
$this

addIntegrationType()

Adds an integration type to the command. (Only for globally-scoped commands).

public addIntegrationType(int $integration_type) : $this
Parameters
$integration_type : int

The integration type to add. Must be one of GUILD_INSTALL (0) or USER_INSTALL (1).

Tags
throws
DomainException

If the command is not globally-scoped or if an invalid integration type is provided.

Return values
$this

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

fromPart()

Creates a new instance of the builder from a given Part.

public static fromPart(Part $part) : self
Parameters
$part : Part
Return values
self

getOptions()

Returns all the options in the command.

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

jsonSerialize()

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

new()

Creates a new command builder.

public static new() : static
Return values
static

removeContext()

Removes a context from the command. (Only for globally-scoped commands).

public removeContext(int $context) : $this
Parameters
$context : int

Context to remove.

Tags
throws
DomainException

If the command is not globally-scoped.

since
10.18.0
Return values
$this

removeIntegrationType()

Removes an integration type from the command. (Only for globally-scoped commands).

public removeIntegrationType(int $integration_type) : $this
Parameters
$integration_type : int

The integration type to remove.

Tags
throws
DomainException

If the command is not globally-scoped.

Return values
$this

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

setContext()

Sets the contexts of the command. (Only for globally-scoped commands).

public setContext(array<string|int, mixed>|null $contexts) : $this
Parameters
$contexts : array<string|int, mixed>|null

Interaction contexts where the command can be used.

Tags
throws
DomainException

If the command is not globally-scoped.

since
10.18.0
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

See CommandAttributes::setDefaultMemberPermissions().

Parameters
$permission : bool|null

Default permission of the command

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

setGuildId()

Sets the guild ID of the command.

public setGuildId(int $guildId) : $this
Parameters
$guildId : int

Guild ID of the command.

Return values
$this

setHandler()

Sets the handler for the command.

public setHandler(int $handler) : $this
Parameters
$handler : int

Handler to set.

Tags
throws
DomainException

Command type is not PRIMARY_ENTRY_POINT (4) or if the handler is not valid.

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>

Use jsonSerialize

Tags
throws
LengthException
throws
DomainException
Return values
array<string|int, mixed>

checkForGetMutator()

Checks if there is a get mutator present.

protected checkForGetMutator(string $key) : string|false
Parameters
$key : string

The property name to check.

Return values
string|false

Either a string if it is a method or false.

checkForSetMutator()

Checks if there is a set mutator present.

protected checkForSetMutator(string $key) : string|false
Parameters
$key : string

The property name to check.

Return values
string|false

Either a string if it is a method or false.

getProperty()

Gets a property on the parent part.

protected getProperty(string $key) : mixed
Parameters
$key : string

The name of the property.

Tags
throws
Exception
Return values
mixed

Either the property if it exists or void.

setProperty()

Sets an property on the parent part.

protected setProperty(string $key, mixed $value) : void
Parameters
$key : string

The name of the property.

$value : mixed

The value of the property.

studly()

Converts a string to studlyCase.

private static studly(string $string) : string

This is a port of updated Laravel's implementation, a non-regex with static cache. This method is private static as we may move it outside this class in future.

Parameters
$string : string

The string to convert.

Tags
since
10.0.0
Return values
string

        
On this page

Search results