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

抽象 クラス: Precondition

定義: src/precondition/Precondition.ts:56

コマンド実行前に走る再利用可能なガード。

サポートするコマンドフローごとに判定を実装します。コマンドが使用する フローは、そのコマンドに付いた すべての Precondition が実装している 必要があります — 未実装は黙って通過せず、明示的に失敗します。

@Precondition.define()
export class OwnerOnlyPrecondition extends Precondition {
override chatInputRun(interaction: ChatInputCommandInteraction) {
return interaction.user.id === OWNER_ID
? this.ok()
: this.deny("このコマンドはBotのオーナーのみ使用できます。");
}
}

Precondition 名はクラス名から Precondition サフィックスを除いた形が 既定です(OwnerOnlyPrecondition → OwnerOnly)。

拡張​

コンストラクター​

コンストラクター​

new Precondition(): Precondition;

戻り値​

Precondition

継承元​

Component.constructor

プロパティ​

container​

readonly container: Container;

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

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

継承元​

Component.container


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


name​

readonly name: string;

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

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

継承元​

Component.name


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

メソッド​

chatInputRun()?​

optional chatInputRun(interaction, command): Awaitable<PreconditionResult>;

定義: src/precondition/Precondition.ts:63

スラッシュコマンド呼び出しに対する判定。

パラメータ​

interaction​

ChatInputCommandInteraction

command​

Command

戻り値​

Awaitable<PreconditionResult>


deny()​

protected deny(reason, options?): PreconditionResult;

定義: src/precondition/Precondition.ts:80

ユーザー向けの理由付きの拒否。

パラメータ​

reason​

string

options?​
context?​

unknown

戻り値​

PreconditionResult


messageRun()?​

optional messageRun(message, command): Awaitable<PreconditionResult>;

定義: src/precondition/Precondition.ts:72

プレフィックス(メッセージ)コマンド呼び出しに対する判定。 メンションコマンドもメッセージ由来なので、このフローで判定されます。

パラメータ​

message​

Message

command​

Command

戻り値​

Awaitable<PreconditionResult>


ok()​

protected ok(): PreconditionResult;

定義: src/precondition/Precondition.ts:75

通過を表す結果。

戻り値​

PreconditionResult


onLoad()?​

optional onLoad(): unknown;

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

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

戻り値​

unknown

継承元​

Component.onLoad


onUnload()?​

optional onUnload(): unknown;

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

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

戻り値​

unknown

継承元​

Component.onUnload


define()​

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

定義: src/precondition/Precondition.ts:58

Precondition のメタデータを宣言します。省略可能です(名前は導出されます)。

パラメータ​

options?​

PreconditionOptions = {}

戻り値​

(_target, context) => void