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