Traduction automatiqueCette page a été traduite automatiquement. L’original anglais fait foi.Lire cette page en anglais

Modèles de bots

Points de départ prêts à être adaptés pour les bots courants. Chacun est un petit script autonome que vous pouvez coller dans un fichier et exécuter avec le client JavaScript ou Python.

Accueillant

Publie un message de bienvenue chaque fois que quelqu'un rejoint un espace. Nécessite messages.write et 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();

Le portail émet aujourd'hui messageCreate, messageUpdate et messageDelete ; Les événements des membres arrivent via le même flux d'événements que les scopes de votre bot le permettent.

Gestionnaire de billets

Crée un canal privé par demande de support et envoie un ping à un rôle du personnel. Nécessite channels.manage (plus le rôle manage_channels) et 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();

Répondeur automatique

Réponds à un petit ensemble de questions fréquemment posées. Nécessite messages.read et 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()

Assistant de modération

Supprime les messages contenant un mot interdit et les enregistre. Nécessite messages.read, messages.write et le rôle 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.");
  }
});

Conseils