Chat plugin commands
Deklarieren Sie eine Befehltabelle für Befehle wie !uptime oder !so. Befehltabellen unterstützen Aliasse, Moderatorengates, Abkühlzeiten pro Benutzer, analysierte Argumente und automatische !help-Listings. Siehe Chat-Grundlagen für die Chatnachrichtenlast, das Senden von Nachrichten und Filter.
Registrieren Sie eine Befehltabelle
Eine Befehltabelle bietet:
- einen konfigurierbaren Befehlspräfix, wobei
!der Standard ist - pro-Befehl
beschreibung,verwendungundaliase - pro Benutzer Abkühlzeiten
- Moderator-nur Zugriff basierend auf den Berechtigungen des Senders
- Argumentanalyse
- eine automatische
!help-Auflistung
- 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-Handler erhalten msg, user, command, invokedAs, args,
argString, reply, und replyPrivately. Python verwendet invoked_as,
arg_string und reply_privately.
Doppelte Befehlsnamen sind erlaubt, sodass jedes passende Plugin ausgeführt wird.
Unbekannte Befehle, moderatoren-geschützte Aufrufe und Abkühlzeiten-beschränkte Aufrufe sind still. Das Deklarieren oder Empfangen eines Befehls erfordert keine Berechtigung. Aktionen innerhalb des Handlers erfordern weiterhin ihre üblichen Berechtigungen, wie chat.send.
!help ist automatisch, aber nicht reserviert
Owncast veröffentlicht eine Systemmeldung, die die Befehlsbeschreibungen von jedem aktivierten Plugin auflistet. Moderator-nur Befehle bleiben für Nicht-Moderatoren verborgen. Diese integrierte Antwort benötigt keine Plugin-Berechtigung.
!help und dessen !commands Alias bleiben gewöhnliche Chatnachrichten. Plugins können sie auch deklarieren oder darauf reagieren. Die integrierte Antwort blockiert keine zusätzlichen Plugin-Antworten.
Verwendung gewöhnlicher Chat-Handler und Filter
Eine Befehltabelle ist optional. Ein Plugin kann msg.body in einem onChatMessage-Handler für einen einzelnen festen Befehl inspizieren. Handgeschriebene Befehle erscheinen nicht in der integrierten Hilfsliste.
Befehlsnachrichten bleiben gewöhnliche Chat-Nachrichten, sodass ein Plugin sowohl eine Befehltabelle als auch einen gewöhnlichen Chat-Handler verwenden kann. Chat-Filter werden vor der Befehlsübereinstimmung ausgeführt. Eine von einem Filter fallengelassene Nachricht führt keinen deklarierten Befehl aus.
Beispielplugins
- mod-befehle (JavaScript, Python): ein benutzerdefinierter
?Präfix mit Aliassen, Abkühlzeiten und Moderatorenzugriff. - stream-tracker (JavaScript, Python): eine Befehltabelle mit
!uptimeund!who, plus Stream- und Chatbenutzer-Aktivitätsverfolgung. - stream-ops (JavaScript, Python): eine Befehltabelle, die Broadcast- und Video-Telemetrie berichtet.
- timer-bot (JavaScript, Python): eine Befehltabelle für Erinnerungen und Countdown (
!remind,!every,!countdown). - ip-bot (JavaScript, Python): ein einzelner
!ipBefehl, der mit der öffentlichen IP des Servers beantwortet wird. - relay (JavaScript, Python): sendet
/announce \<text>als Broadcast-Ankündigung erneut.
Wo es als nächstes hingeht
- Chat-Plugins für die Chatnachrichtenlast, das Senden von Nachrichten und Filter.
- Handler-Referenz für die Chatereignisse, auf die Ihr Plugin abonnieren kann.
- APIs-Referenz für jede
owncast.*Methode und die Berechtigung, die sie benötigt.
Improve this page
See something missing or incorrect? Edit the English version of this page or help improve translations.
