Boosters
in package
implements
Module
uses
InteractionTrait
Opening booster packs: `/booster <set> [type]`, from MTGJSON's booster configurations — the pack layouts, sheets and odds of the real product.
A pack lists its cards with rarity, foil and price, and the pack's value;
Open another opens the same kind of pack in place, Images shows the
cards, and a picker opens any card. The set view's Open a booster
button opens the set's default booster (pack:open:<set>:).
Tags
Table of Contents
Interfaces
- Module
- A self-contained bot feature, as in Tutelar: it declares its own application commands ({@see commands()}, which the client registers or updates), listens for them, and routes clicks on the components of the messages it sends, from {@see boot()}.
Methods
- boot() : void
- Registers commands and listeners. Called once, after the gateway and the application are ready.
- commands() : array<string|int, CommandBuilder>
- The application commands the module answers, as they should be registered. The client creates missing ones and updates changed ones.
- name() : string
- Stable short name, for logs.
- answer() : PromiseInterface
- Answers a component click with a new message, or by replacing the clicked message, logging what fails.
- choices() : array<string|int, array{name: string, value: string}>
- Autocomplete choices from `value => label` (or a list of values).
- command() : CommandBuilder
- A chat command usable in servers, the bot's DMs and group DMs, from a server install or a user install.
- failure() : MessageBuilder
- The message for a failure.
- hidden() : Option
- The `hidden` option every command takes: reply only to the caller.
- option() : Option
- A command option.
- reply() : PromiseInterface
- Defers the reply, then answers with what `$work` resolves to. A failure answers too: a bad search is the caller's to fix, anything else is logged.
- subcommand() : Option
- A sub-command with its options.
- typed() : array<string, mixed>
- The values typed so far into the command being autocompleted, from inside its sub-command.
- values() : array<string, mixed>
- Option values by name.
- images() : PromiseInterface<string|int, MessageBuilder>
- The images of an opened pack.
- open() : PromiseInterface
- `/booster`.
- pack() : PromiseInterface<string|int, MessageBuilder>
- Opens a pack.
Methods
boot()
Registers commands and listeners. Called once, after the gateway and the application are ready.
public
boot(MTG $mtg) : void
Parameters
- $mtg : MTG
Tags
commands()
The application commands the module answers, as they should be registered. The client creates missing ones and updates changed ones.
public
commands(MTG $mtg) : array<string|int, CommandBuilder>
Parameters
- $mtg : MTG
Tags
Return values
array<string|int, CommandBuilder>name()
Stable short name, for logs.
public
name() : string
Tags
Return values
stringanswer()
Answers a component click with a new message, or by replacing the clicked message, logging what fails.
protected
static answer(MTG $mtg, Interaction $interaction, callable $work[, bool $update = false ]) : PromiseInterface
Parameters
- $mtg : MTG
- $interaction : Interaction
- $work : callable
-
Returns a MessageBuilder or a promise of one.
- $update : bool = false
-
Replace the clicked message instead of answering with a new, hidden one.
Return values
PromiseInterfacechoices()
Autocomplete choices from `value => label` (or a list of values).
protected
static choices(array<string|int, mixed> $choices) : array<string|int, array{name: string, value: string}>
Parameters
- $choices : array<string|int, mixed>
Return values
array<string|int, array{name: string, value: string}>command()
A chat command usable in servers, the bot's DMs and group DMs, from a server install or a user install.
protected
static command(string $name, string $description) : CommandBuilder
Parameters
- $name : string
- $description : string
Return values
CommandBuilderfailure()
The message for a failure.
protected
static failure(MTG $mtg, Throwable $e) : MessageBuilder
Parameters
- $mtg : MTG
- $e : Throwable
Return values
MessageBuilderhidden()
The `hidden` option every command takes: reply only to the caller.
protected
static hidden(MTG $mtg) : Option
Parameters
- $mtg : MTG
Return values
Optionoption()
A command option.
protected
static option(MTG $mtg, int $type, string $name, string $description[, bool $required = false ][, bool $autocomplete = false ]) : Option
Parameters
- $mtg : MTG
- $type : int
-
An Option type constant.
- $name : string
- $description : string
- $required : bool = false
- $autocomplete : bool = false
Return values
Optionreply()
Defers the reply, then answers with what `$work` resolves to. A failure answers too: a bad search is the caller's to fix, anything else is logged.
protected
static reply(MTG $mtg, Interaction $interaction, bool $hidden, callable $work) : PromiseInterface
Parameters
- $mtg : MTG
- $interaction : Interaction
- $hidden : bool
-
Whether only the caller sees the answer.
- $work : callable
-
Returns a MessageBuilder or a promise of one.
Return values
PromiseInterfacesubcommand()
A sub-command with its options.
protected
static subcommand(MTG $mtg, string $name, string $description, Option ...$options) : Option
Parameters
- $mtg : MTG
- $name : string
- $description : string
- $options : Option
Return values
Optiontyped()
The values typed so far into the command being autocompleted, from inside its sub-command.
protected
static typed(Interaction $interaction) : array<string, mixed>
Parameters
- $interaction : Interaction
Return values
array<string, mixed>values()
Option values by name.
protected
static values(iterable<string|int, mixed> $options) : array<string, mixed>
Parameters
- $options : iterable<string|int, mixed>
-
The options a command handler is given.
Return values
array<string, mixed>images()
The images of an opened pack.
private
static images(MTG $mtg, string $pack) : PromiseInterface<string|int, MessageBuilder>
Parameters
- $mtg : MTG
- $pack : string
Return values
PromiseInterface<string|int, MessageBuilder>open()
`/booster`.
private
open(MTG $mtg, Interaction $interaction, array<string|int, mixed> $args) : PromiseInterface
Parameters
- $mtg : MTG
- $interaction : Interaction
- $args : array<string|int, mixed>
Return values
PromiseInterfacepack()
Opens a pack.
private
static pack(MTG $mtg, string $code, string $type) : PromiseInterface<string|int, MessageBuilder>
Parameters
- $mtg : MTG
- $code : string
- $type : string
-
''for the set's default booster.