Chat plugin commands
!uptimeや!soなどのコマンドのためにコマンドテーブルを宣言します。 コマンドテーブルは、エイリアス、モデレーターゲート、ユーザーごとのクールダウン、解析された引数、および自動的な!helpリストをサポートします。 チャットメッセージのペイロード、メッセージ送信、フィルターについてはチャットの基本を参照してください。
コマンドテーブルを登録する
コマンドテーブルは以下を提供します:
!をデフォルトとする設定可能なコマンドプレフィックス- コマンドごとの
description、usage、およびaliases - ユーザーごとのクールダウン
- 送信者のスコープに基づくモデレーターのみのゲート
- 引数解析
- 自動的な
!helpリスト
- JavaScript
- Python
const { definePlugin } = require('@owncast/plugin-sdk');
module.exports = definePlugin({
commandPrefix: '!', // optional
commands: {
uptime: {
description: "How long we've been live",
run: ctx => ctx.reply("we've been live a while!"),
},
so: {
description: 'Shout out a viewer',
usage: '!so <name>',
aliases: ['shoutout'],
cooldownMs: 10_000,
run: ctx => ctx.reply(`go follow ${ctx.args[0] || 'someone cool'}`),
},
clear: {
description: 'Clear the chat',
modOnly: true,
run: ctx => ctx.replyPrivately('done'),
},
},
});
from owncast_plugin import plugin
plugin.commands({
"uptime": {
"description": "How long we've been live",
"run": lambda ctx: ctx.reply("we've been live a while!"),
},
"so": {
"description": "Shout out a viewer",
"usage": "!so <name>",
"aliases": ["shoutout"],
"cooldown_ms": 10_000,
"run": lambda ctx: ctx.reply(
f"go follow {ctx.args[0] if ctx.args else 'someone cool'}"
),
},
"clear": {
"description": "Clear the chat",
"mod_only": True,
"run": lambda ctx: ctx.reply_privately("done"),
},
}, prefix="!")
JavaScriptハンドラーはmsg、user、command、invokedAs、args、
argString、reply、およびreplyPrivatelyを受け取ります。 Pythonはinvoked_as、
arg_string、およびreply_privatelyを使用します。
重複するコマンド名が許可されており、すべての一致するプラグインが実行されます。
不明なコマンド、モデレーターが制限された呼び出し、およびクールダウン制限のある呼び出しは
サイレントです。 コマンドを宣言または受信するのに権限は必要ありません。 ハンドラー内のアクションは、chat.sendのような通常の権限を必要とします。
!helpは自動ですが予約されていません
Owncastは、有効なプラグインからのコマンド説明をリストしたシステムメッセージを投稿します。 モデレーター専用のコマンドは、非モデレーターには隠れたままです。 このビルトインの 応答はプラグインの権限を必要としません。
!helpおよびその!commandsエイリアスは、通常のチャットメッセージのままです。 プラグインもそれらを宣言または応答することができます。 ビルトインの応答は追加の
プラグイン応答をブロックしません。
通常のチャットハンドラーとフィルターの使用
コマンドテーブルはオプションです。 プラグインは、単一の固定コマンドのためにonChatMessageハンドラー内でmsg.bodyを検査できます。 手動で作成されたコマンドは、ビルトインのヘルプリストには表示されません。
コマンドメッセージは通常のチャットメッセージのままです。したがって、プラグインはコマンドテーブルと通常のチャットハンドラーの両方を使用できます。 チャットフィルターはコマンド マッチングの前に実行されます。 フィルターによってドロップされたメッセージは、宣言されたコマンドを実行しません。
例のプラグイン
- mod-commands (JavaScript、Python):エイリアス、クールダウン、およびモデレーター制限のあるカスタム
?プレフィックス。 - stream-tracker (JavaScript、Python):
!uptimeと!whoを持つコマンドテーブル、さらにストリームとチャットユーザーのアクティビティ追跡。 - stream-ops (JavaScript、Python):ブロードキャストとビデオのTelemetryを報告するコマンドテーブル。
- timer-bot (JavaScript、Python):リマインダーとカウントダウンのためのコマンドテーブル(
!remind、!every、!countdown)。 - ip-bot (JavaScript、Python):サーバーのパブリックIPで応答する単一の
!ipコマンド。 - relay (JavaScript、Python):
/announce \<text>をブロードキャスト発表として再送信します。
次に行く場所
- チャットメッセージペイロード、メッセージ送信、フィルターについてのチャットプラグイン。
- プラグインが購読できるチャットイベントのためのハンドラーリファレンス。
- すべての
owncast.*メソッドとそれが必要とする権限についてのAPIリファレンス。
Improve this page
See something missing or incorrect? Edit this page and improve the documentation for everyone.
