Automatische ÜbersetzungDiese Seite wurde automatisch übersetzt. Das englische Original ist maßgeblich.Lesen Sie diese Seite auf Englisch

Bot-Vorlagen

Bereite Anpassungsmöglichkeiten für gängige Bots bereit. Jeder ist ein kleines, selbstständiges Skript, das Sie in eine Datei einfügen und mit dem JavaScript- oder Python-Client ausführen können.

Willkommener

Postet eine Willkommensnachricht, jedes Mal wenn jemand einem Raum beitritt. Braucht messages.write und members.read.

import { Client } from "@disband/bot";

const client = new Client({ token: process.env.DISBAND_BOT_TOKEN });
const WELCOME_CHANNEL = process.env.WELCOME_CHANNEL_ID;

client.on("memberJoin", async (member) => {
  await client.channels.send(WELCOME_CHANNEL, `Welcome to the space, ${member.display_name ?? member.username}!`);
});

await client.connect();

Der Gateway sendet heute messageCreate, messageUpdate und messageDelete aus; Mitgliederveranstaltungen werden über den gleichen Ereignisstrom empfangen, wie es die Reichweite Ihres Bots zulässt.

Ticketmanager

Erstellt einen privaten Kanal pro Supportanfrage und pingt eine Mitarbeiterrolle. Er benötigt channels.manage (plus die Rolle manage_channels) und messages.write.

import { Client } from "@disband/bot";

const client = new Client({ token: process.env.DISBAND_BOT_TOKEN });
const SUPPORT_CATEGORY = process.env.SUPPORT_CATEGORY_ID;
const STAFF_ROLE = process.env.STAFF_ROLE_ID;

client.on("messageCreate", async (message) => {
  if (message.author?.is_bot) return;
  if (!message.content.startsWith("!ticket")) return;

  const subject = message.content.slice("!ticket".length).trim() || "support";
  const channel = await client.channels.create({
    name: `ticket-${subject}`.slice(0, 32),
    parent_id: SUPPORT_CATEGORY,
  });
  await client.channels.send(channel.id, `<@&${STAFF_ROLE}> new ticket: ${subject}`);
  await message.reply(`Created ${channel.name}.`);
});

await client.connect();

Automatischer Antwortgeber

Beantwortet eine kleine Anzahl von häufig gestellten Fragen. Erfordert messages.read und messages.write.

from disband_bot import Client

client = Client(token=DISBAND_BOT_TOKEN)
FAQS = {
    "hours": "We're open Monday to Friday, 9 to 5.",
    "invite": "Ask an admin for an invite link.",
}

@client.on("messageCreate")
def handle(message):
    if message.author_is_bot:
        return
    key = message.content.strip().lower().lstrip("!")
    if key in FAQS:
        message.reply(FAQS[key])

client.run()

Moderationshilfe

Löscht Nachrichten, die ein gesperrtes Wort enthalten, und protokolliert sie. Erfordert messages.read, messages.write und die Rolle manage_messages.

const BANNED = ["spamword"];

client.on("messageCreate", async (message) => {
  if (message.author?.is_bot) return;
  if (BANNED.some((w) => message.content.toLowerCase().includes(w))) {
    await client.messages.delete(message.channel_id, message.id);
    await client.channels.send(message.channel_id, "A message was removed by the bot.");
  }
});

Tipps