2.8 KiB
KeineAhnung Bot
Der KeineAhnung Bot ist ein simpler Discord Bot mit der D++ Discord Library!
Features
Der Bot ist komplett Modular und erlaubt das Erstellen von verschiedenen Konfigurationen fuer verschiedene Bot-Tokens. Libdpp erlaubt ausserdem Auto-Sharding und startet automatisch die richtige Anzahl an Shards.
Module
- Captcha: Gibt Leuten eine bestimmte Rolle, wenn sie ein Captcha beantworten
- Embedmaker: Erstellt Benutzerdefinierte Embeds
- Fun: Ein paar unnoetige Spasskommandos
- Globalchat: verbindet Textkanaele auf verschiedenen Servern miteinander
- Info: Zeigt Informationen ueber den Bot, den Server und Benutzer an
- Lastseen: Trackt Benutzeraktivitaet und zeigt an, wann ein Benutzer zuletzt aktiv war
- Levels: Vergibt Levels mit benutzerdefinierter Geschwindigkeit und vergibt Rollen
- Management: Erlaubt, den Bot von einem Zentralen Discord Server zu verwalten (Bans, Globalchat Moderatoin, etc.)
- Ticket: Erlaubt das erstellen und verwalten von Support-Tickets und speichert Logs
Konfiguration
Hier ist eine Beispielkonfiguration:
[
{
"id": "tuxi",
"management_guild_id": "1073679409623617556",
"token": "ODAyODYzNTU0MjY4NjI2OTY1<redacted>r7zrQOCRI",
"owner_id": "609486822715818000",
"private": false
},
{
"id": "exxo",
"token": "MTA0ODk3NjA3MDA4NDQxMTM5Mg<redacted>sCvig8wEA",
"owner_id": "<redacted>",
"private": true,
"modules": ["Captcha", "Levels", "Info", "Globalchat", "Lastseen", "Ticket", "Embedmaker"]
}
]
Und hier eine Erklaerung fuer die verschiedenen Optionen:
{
"id": "<Name der Instanz, beliebig>",
"token": "<Bot Token>",
"owner_id": "<ID des Besitzers, optional>",
"management_guild_id": "<ID des Management Servers, fuer das "Management" Modul>",
"private": <Ob der Bot privat ist, also nur von dem Benutzer auf Servern hinzugefuegt werden wird>,
"modules_mode": "<Ob die folgende Modulliste eine Blacklist oder eine Whitelist ist (whitelist/blacklist), optional (Standard: whitelist)>",
"modules": "<Liste an Modulen, siehe modules_mode>",
"command_alias_mode", "<Welche Varianten der Kommando-Bezeichnungen verwendet werden (all/first/last), optional (Standard: all)>"
}
Die Konfiguration muss als config.json
im CWD des Bots gespeichert werden.
Building
Der Bot wird mit CMake gebuiled und benoetigt einige Submodules:
git submodule update --init --depth 1 --recursive
mkdir build
cd build
cmake ..
make -j$(nproc)
Das Executable wird unter ./KeineAhnung
erstellt.
Hinweise
Das Executable benoetigt keine Argumente, aber wenn es Probleme mit den Slashcommands gibt (nach dem deaktivieren von Modulen), koennen sie mit --reregister-commands
zurueckgesetzt werden.