1
0
Fork 0
mirror of https://gitlab.com/niansa/SomeBot.git synced 2025-03-06 20:48:26 +01:00
A modular all-purpose Discord bot in C++, using D++
Find a file
2023-03-02 18:18:41 +01:00
DPP@22ca0359bc Added luau and LuaBridge3 2023-03-02 14:10:47 +01:00
libjustgpt@fba3475a92 Updated libjustgpt 2022-10-18 00:49:56 +02:00
LuaBridge3 Added luau and LuaBridge3 2023-03-02 14:10:47 +01:00
luau@48172dd5b1 Added luau and LuaBridge3 2023-03-02 14:10:47 +01:00
modules Progress on bindings 2023-03-02 18:18:41 +01:00
sqlite_modern_cpp Initial commit 2022-10-18 00:35:00 +02:00
.gitignore Initial commit 2022-10-18 00:35:00 +02:00
.gitmodules Added luau and LuaBridge3 2023-03-02 14:10:47 +01:00
bot.hpp Added command_alias_mode setting 2022-11-01 15:11:17 +01:00
CMakeLists.txt Added luau and LuaBridge3 2023-03-02 14:10:47 +01:00
LICENSE Add LICENSE 2022-11-01 16:27:43 +00:00
main.cpp Enabled and fixed a lot of warnings and enabled LTO 2022-12-27 18:05:58 +01:00
README.md Add README.md 2023-02-11 17:12:56 +00:00
util.cpp Made ticket embed fully customizable 2022-11-01 13:58:46 +01:00
util.hpp Made ticket embed fully customizable 2022-11-01 13:58:46 +01:00

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",
        "privte": 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.