メインコンテンツまでスキップ
バージョン: v2 Next 🚧

抽象 クラス: Command

定義: src/command/Command.ts:76

コマンド。必要なフローを1つ以上実装してください:

  • Command.chatInputRun — スラッシュコマンド(/ping)
  • Command.messageRun — プレフィックスコマンド(!ping、defaultPrefix が必要)
  • Command.mentionRun — メンションコマンド(@Bot こんにちは、既定は Bot 自身への メンションに反応。mentions オプションで任意のユーザー ID に変えられます)
  • 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

継承元​

Component.constructor

プロパティ​

aliases​

readonly aliases: readonly string[];

定義: src/command/Command.ts:84

プレフィックスコマンドの別名。


container​

readonly container: Container;

定義: src/component/Component.ts:30

フレームワーク共有サービスを持つコンテナ。

継承元​

Component.container


defaultMemberPermissions​

readonly defaultMemberPermissions: PermissionResolvable | null;

定義: src/command/Command.ts:96

Discord 側のデフォルト権限ゲート。


description​

readonly description: string;

定義: src/command/Command.ts:78

Discord に表示される説明(メッセージ専用コマンドでは空文字)。


descriptionLocalizations​

readonly descriptionLocalizations: Partial<Record<Locale, string | null>> | null;

定義: src/command/Command.ts:105

説明のローカライズ。


guildIds​

readonly guildIds: readonly string[] | null;

定義: src/command/Command.ts:99

このスラッシュコマンドの登録先ギルド(null = クライアント既定 / グローバル)。


location​

readonly location: string | null;

定義: src/component/Component.ts:39

自動探索されたファイルの絶対パス。明示登録の場合は null。

継承元​

Component.location


logger​

readonly logger: Logger;

定義: src/component/Component.ts:36

このコンポーネント用の子ロガー({ store, component } が付与済み)。

継承元​

Component.logger


mentions​

readonly mentions: readonly string[] | null;

定義: src/command/Command.ts:111

反応するメンションの対象("self" = Bot 自身、それ以外はユーザー ID)。 null ならメンションでは反応しません。


name​

readonly name: string;

定義: src/component/Component.ts:27

ストア内で一意なコンポーネント名。

継承元​

Component.name


nameLocalizations​

readonly nameLocalizations: Partial<Record<Locale, string | null>> | null;

定義: src/command/Command.ts:102

名前のローカライズ。


options​

readonly options: readonly APIApplicationCommandOption[];

定義: src/command/Command.ts:81

スラッシュコマンドのオプション(生の Discord API データ)。


preconditions​

readonly preconditions: readonly string[];

定義: src/command/Command.ts:87

このコマンドをガードする Precondition 名。


requiredClientPermissions​

readonly requiredClientPermissions: PermissionResolvable | null;

定義: src/command/Command.ts:93

Bot にチャンネルで要求される権限。


requiredUserPermissions​

readonly requiredUserPermissions: PermissionResolvable | null;

定義: src/command/Command.ts:90

呼び出しメンバーに要求される権限。


store​

readonly store: ComponentStore<Component>;

定義: src/component/Component.ts:33

このコンポーネントが属するストア。

継承元​

Component.store

アクセッサー​

client​

署名を取得する​

get client(): Client;

定義: src/component/Component.ts:42

フレームワーククライアント。

戻り値​

Client

継承元​

Component.client


services​

署名を取得する​

get services(): Services;

定義: src/component/Component.ts:50

ロード済みサービスへのアクセス(services/ から自動収束)。 import せずに this.services.<名前> で参照できます。

戻り値​

Services

継承元​

Component.services


supportsChatInput​

署名を取得する​

get supportsChatInput(): boolean;

定義: src/command/Command.ts:139

スラッシュコマンドとして公開されるかどうか。

戻り値​

boolean


supportsMention​

署名を取得する​

get supportsMention(): boolean;

定義: src/command/Command.ts:149

メンションで呼び出せるかどうか。

戻り値​

boolean


supportsMessage​

署名を取得する​

get supportsMessage(): boolean;

定義: src/command/Command.ts:144

メッセージプレフィックスで呼び出せるかどうか。

戻り値​

boolean

メソッド​

autocompleteRun()?​

optional autocompleteRun(interaction): unknown;

定義: src/command/Command.ts:136

このコマンドのオプションに対する autocomplete ハンドラ。

パラメータ​

interaction​

AutocompleteInteraction

戻り値​

unknown


chatInputRun()?​

optional chatInputRun(interaction): unknown;

定義: src/command/Command.ts:119

スラッシュコマンドの実装。

パラメータ​

interaction​

ChatInputCommandInteraction

戻り値​

unknown


mentionRun()?​

optional mentionRun(message, content): unknown;

定義: src/command/Command.ts:133

メンションコマンドの実装 — 対象(CommandOptions.mentions、既定は Bot 自身)へのメンションを含むメッセージに反応します。content には 本文から対象のメンションを取り除いて trim した文字列が渡ります。

本文を読むため MessageContent インテントが必要 です。リプライの ピン(返信時の通知)は本文に現れないので誤発火しません。Bot と Webhook の発言も無視されます。

パラメータ​

message​

Message

content​

string

戻り値​

unknown


messageRun()?​

optional messageRun(message, args): unknown;

定義: src/command/Command.ts:122

プレフィックス(メッセージ)コマンドの実装。

パラメータ​

message​

Message

args​

string[]

戻り値​

unknown


onLoad()?​

optional onLoad(): unknown;

定義: src/component/Component.ts:55

初期化後・ストア追加前に呼ばれます。

戻り値​

unknown

継承元​

Component.onLoad


onUnload()?​

optional onUnload(): unknown;

定義: src/component/Component.ts:58

ストアから取り除かれるときに呼ばれます(クライアント終了時を含む)。

戻り値​

unknown

継承元​

Component.onUnload


toApplicationCommand()​

toApplicationCommand(): RESTPostAPIChatInputApplicationCommandsJSONBody;

定義: src/command/Command.ts:159

このスラッシュコマンドの登録に使う Discord API ペイロードを構築します。 メタデータが扱わないフィールド(contexts、integration types など)を 追加したい場合は、オーバーライドして super.toApplicationCommand() の 結果を拡張してください。

戻り値​

RESTPostAPIChatInputApplicationCommandsJSONBody


define()​

static define(options?): (_target, context) => void;

定義: src/command/Command.ts:114

コマンドのメタデータを宣言します。

パラメータ​

options?​

CommandOptions = {}

戻り値​

(_target, context) => void