抽象 クラス: Command
コマンド。必要なフローを1つ以上実装してください:
- Command.chatInputRun — スラッシュコマンド(
/ping) - Command.messageRun — プレフィックスコマンド(
!ping、defaultPrefixが必要) - Command.autocompleteRun — スラッシュオプションの autocomplete
@Command.define({ description: "Pong! と返します。" })
export class PingCommand extends Command {
override async chatInputRun(interaction: ChatInputCommandInteraction) {
await interaction.reply("Pong!");
}
}
コマンド名はクラス名から Command サフィックスを除きケバブケース化した
形が既定です(UserInfoCommand → user-info)。
拡張
コンストラクター
コンストラクター
new Command(): Command;
戻り値
Command
継承元
プロパティ
aliases
readonly aliases: readonly string[];
プレフィックスコマンドの別名。
container
readonly container: Container;
定義: src/component/Component.ts:30
フレームワーク共有サービスを持つコンテナ。
継承元
defaultMemberPermissions
readonly defaultMemberPermissions: PermissionResolvable | null;
Discord 側のデフォルト権限ゲート。
description
readonly description: string;
Discord に表示される説明(メッセージ専用コマンドでは空文字)。
descriptionLocalizations
readonly descriptionLocalizations: Partial<Record<Locale, string | null>> | null;
説明のローカライズ。
guildIds
readonly guildIds: readonly string[] | null;
このスラッシュコマンドの登録先ギルド(null = クライアント既定 / グローバル)。
location
readonly location: string | null;
定義: src/component/Component.ts:39
自動探索されたファイルの絶対パス。明示登録の場合は null。
継承元
logger
readonly logger: Logger;
定義: src/component/Component.ts:36
このコンポーネント用の子ロガー({ store, component } が付与済み)。
継承元
name
readonly name: string;
定義: src/component/Component.ts:27
ストア内で一意なコンポーネント名。
継承元
nameLocalizations
readonly nameLocalizations: Partial<Record<Locale, string | null>> | null;
名前のローカライズ。
options
readonly options: readonly APIApplicationCommandOption[];
スラッシュコマンドのオプション(生の Discord API データ)。
preconditions
readonly preconditions: readonly string[];
このコマンドをガードする Precondition 名。
requiredClientPermissions
readonly requiredClientPermissions: PermissionResolvable | null;
Bot にチャンネルで要求される権限。
requiredUserPermissions
readonly requiredUserPermissions: PermissionResolvable | null;
呼び出しメンバーに要求される権限。
store
readonly store: ComponentStore<Component>;
定義: src/component/Component.ts:33
このコンポーネントが属するストア。
継承元
アクセッサー
client
署名を取得する
get client(): Client;
定義: src/component/Component.ts:42
フレームワーククライアント。
戻り値
継承元
services
署名を取得する
get services(): Services;
定義: src/component/Component.ts:50
ロード済みサービスへのアクセス(services/ から自動収束)。
import せずに this.services.<名前> で参照できます。
戻り値
継承元
supportsChatInput
署名を取得する
get supportsChatInput(): boolean;
定義: src/command/Command.ts:111
スラッシュコマンドとして公開されるかどうか。
戻り値
boolean
supportsMessage
署名を取得する
get supportsMessage(): boolean;
定義: src/command/Command.ts:116
メッセージプレフィックスで呼び出せるかどうか。
戻り値
boolean
メソッド
autocompleteRun()?
optional autocompleteRun(interaction): unknown;
定義: src/command/Command.ts:108
このコマンドのオプションに対する autocomplete ハンドラ。
パラメータ
interaction
AutocompleteInteraction
戻り値
unknown
chatInputRun()?
optional chatInputRun(interaction): unknown;
定義: src/command/Command.ts:102
スラッシュコマンドの実装。
パラメータ
interaction
ChatInputCommandInteraction
戻り値
unknown
messageRun()?
optional messageRun(message, args): unknown;
定義: src/command/Command.ts:105
プレフィックス(メッセージ)コマンドの実装。
パラメータ
message
Message
args
string[]
戻り値
unknown
onLoad()?
optional onLoad(): unknown;
定義: src/component/Component.ts:55
初期化後・ストア追加前に呼ばれます。
戻り値
unknown
継承元
onUnload()?
optional onUnload(): unknown;
定義: src/component/Component.ts:58
ストアから取り除かれるときに呼ばれます(クライアント終了時を含む)。
戻り値
unknown
継承元
toApplicationCommand()
toApplicationCommand(): RESTPostAPIChatInputApplicationCommandsJSONBody;
定義: src/command/Command.ts:126
このスラッシュコマンドの登録に使う Discord API ペイロードを構築します。
メタデータが扱わないフィールド(contexts、integration types など)を
追加したい場合は、オーバーライドして super.toApplicationCommand() の
結果を拡張してください。
戻り値
RESTPostAPIChatInputApplicationCommandsJSONBody
define()
static define(options?): (_target, context) => void;
コマンドのメタデータを宣言します。
パラメータ
options?
CommandOptions = {}
戻り値
(_target, context) => void