Zum Hauptinhalt springen

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, verwendung und aliase
  • pro Benutzer Abkühlzeiten
  • Moderator-nur Zugriff basierend auf den Berechtigungen des Senders
  • Argumentanalyse
  • eine automatische !help-Auflistung
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'),
},
},
});

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.

Die !help-Antwort im Chat, die die Befehle auflistet, die ein aktiviertem Plugin mit ihren Beschreibungen bietet, gruppiert nach Plugin

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 !uptime und !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 !ip Befehl, 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.

Contributors to this documentation