Ein vielseitiger Discord-Bot für Community-Server – gebaut mit Node.js & discord.js v14
Automatisiere deinen Discord-Server: Welcome-System, Ticket-System, Log-System, Bewerbungen und vieles mehr – alles in einer Konfigurationsdatei.
- ✨ Features
- 📦 Voraussetzungen
- ⚙️ Installation
- 🔧 Konfiguration
- 🚀 Bot starten
- 💬 Slash-Commands
- 📁 Projektstruktur
- 🧩 Module / Events
- 🤝 Mitwirken
- 📄 Lizenz
| Modul | Beschreibung |
|---|---|
| 🎉 Welcome-System | Begrüßt neue Mitglieder mit einem anpassbaren Embed im Welcome-Channel |
| 🎭 Autorole | Vergibt automatisch eine Rolle beim Beitreten |
| 📋 Log-System | Protokolliert Joins, Leaves, Rollenänderungen und Nickname-Änderungen |
| 🎫 Ticket-System | Vollständiges Ticket-System mit Kategorien, Modal-Eingabe, Schließen & Transkript |
| 📨 Bewerbungs-System | Erstellt ein Bewerbungs-Panel für Team- und Creator-Bewerbungen |
| 💡 Vorschlags-System | Reagiert automatisch mit 👍/👎 auf Nachrichten im Vorschlags-Channel |
| 🚀 Booster-Benachrichtigung | Sendet eine Dankes-Nachricht wenn jemand den Server boosted |
| 🔄 Rotierender Status | Wechselt automatisch alle 10 Sekunden die Bot-Statusanzeige |
| 📡 Start/Shutdown-Embeds | Sendet ein Embed beim Starten und Herunterfahren des Bots |
| ⚡ Slash-Commands | Modernes Command-System mit /ping, /server, /regeln, /ticket u. v. m. |
Bevor du beginnst, stelle sicher, dass folgendes installiert ist:
- Node.js
>= 16.11.0 - Git
- Ein Discord Bot Token (erstelle deinen Bot unter discord.com/developers)
- Dein Bot muss auf deinem Server eingeladen sein (mit den nötigen Permissions)
# 1. Repository klonen
git clone https://github.com/44erxyz/aquaBot.git
# 2. In den Projektordner wechseln
cd aquaBot
# 3. Abhängigkeiten installieren
npm installÖffne config.json im Stammverzeichnis und trage alle benötigten Werte ein:
{
"token": "DEIN_BOT_TOKEN",
"clientId": "BOT_CLIENT_ID",
"guildId": ["SERVER_ID_1", "SERVER_ID_2"],
"ownerId": "OWNER_USER_ID",
"serverName": "Dein Servername",
"welcomeChannelId": "ID_DES_WELCOME_CHANNELS",
"autoRoleId": "ID_DER_AUTOROLE",
"LogChannelId": "ID_DES_LOG_CHANNELS",
"TICKET_CATEGORY_ID": "ID_DER_TICKET_KATEGORIE",
"TICKET_LOG_CHANNEL_ID": "ID_DES_TICKET_LOG_CHANNELS",
"Suggestion_ID": "ID_DES_VORSCHLAGS_CHANNELS",
"boosterChannel_ID": "ID_DES_BOOSTER_CHANNELS"
}Hinweis: Schau außerdem in die einzelnen
.js-Dateien (z. B.index.js) und passe dort hardcodierte Werte wie Channel-IDs und Statusnachrichten an deine Community an.
Bevor der Bot Commands ausführen kann, müssen diese für deine Server registriert werden:
node deploy-commands.jsDieser Befehl registriert alle Commands aus dem commands/-Ordner für jede in guildId eingetragene Server-ID.
node index.jsDer Bot loggt sich ein, setzt seinen rotierenden Status und sendet ein Start-Embed in den konfigurierten Log-Channel.
Zum sauberen Beenden nutze CTRL + C – der Bot sendet dann automatisch ein Shutdown-Embed.
| Command | Beschreibung | Berechtigung |
|---|---|---|
/ping |
Zeigt Bot-Latenz, API-Latenz und eine Auslastungs-Bossbar | Alle |
/server <ip> |
Zeigt den Status eines Minecraft-Servers an (via mcsrvstat API) | Alle |
/owner |
Zeigt Informationen über den Server-Owner | Alle |
/aboutus |
Zeigt allgemeine Server-Informationen (IP, Links, Support) | Administrator |
/regeln |
Postet die Server-Regeln im Channel | Administrator |
| Command | Beschreibung | Berechtigung |
|---|---|---|
/ticket |
Erstellt ein einfaches Support-Panel mit Button | Alle |
/panel <channel> |
Sendet das vollständige Ticket-Panel mit Kategorien-Dropdown in einen Ziel-Channel | Administrator |
/alert |
Warnt den Ticket-Ersteller und schließt das Ticket automatisch nach 1 Stunde ohne Antwort | Channels verwalten |
| Command | Beschreibung | Berechtigung |
|---|---|---|
/bewerbung |
Erstellt das Bewerbungs-Panel für Team-/Creator-Bewerbungen | Alle |
aquaBot/
├── commands/ # Alle Slash-Commands (nach Kategorie sortiert)
│ ├── bewerbung/
│ │ └── bewerbung.js # Bewerbungs-Panel Command
│ ├── panel/
│ │ ├── alert.js # Ticket-Alert mit Auto-Close
│ │ └── ticket.js # /panel Command: sendet Dropdown-Menü-Panel in einen Kanal (Admin)
│ ├── ticket/
│ │ └── ticket.js # /ticket Command: einfaches Support-Panel mit Button
│ └── utility/
│ ├── aboutus.js # Server-Info Command
│ ├── owner.js # Owner-Info Command
│ ├── ping.js # Ping/Latenz Command
│ ├── regeln.js # Regeln Command
│ └── server.js # Minecraft-Server-Status Command
├── events/ # Discord-Event-Handler
│ ├── Interaction.js # Ticket-Transkript Snippet
│ ├── autorole.js # Autorole + Welcome-Nachricht
│ ├── boosterEvent.js # Booster-Benachrichtigung
│ ├── guildMemberRemove.js # Leave-Log
│ ├── guildMemberUpdate.js # Rollen-/Nickname-Änderungs-Log
│ ├── interactionCreate.js # Ticket-System (Erstellen, Schließen, Transkript)
│ ├── log.js # Join-Log mit Welcome-Embed
│ └── suggestauto.js # Vorschlags-Auto-React
├── config.json # Konfigurationsdatei (Token, IDs, etc.)
├── deploy-commands.js # Script zum Deployen der Slash-Commands
├── index.js # Einstiegspunkt / Bot-Initialisierung
└── package.json # Projektabhängigkeiten
🎉 Welcome-System & Autorole (events/autorole.js)
Wird bei GuildMemberAdd ausgelöst:
- Vergibt automatisch die in
autoRoleIdkonfigurierte Rolle - Sendet eine anpassbare Welcome-Nachricht als Embed in den
welcomeChannelId-Channel
📋 Log-System (events/log.js, guildMemberRemove.js, guildMemberUpdate.js)
Protokolliert folgende Ereignisse im LogChannelId-Channel:
- Join: Begrüßt neues Mitglied mit Embed (Avatar, Beitrittstag)
- Leave: Meldet, dass ein Mitglied den Server verlassen hat
- Update: Loggt Rollenhinzufügungen/-entfernungen und Nickname-Änderungen
🎫 Ticket-System (events/interactionCreate.js)
Vollständiges Ticket-System mit:
- Dropdown-Menü zur Kategorienauswahl
- Modal zur Begründungseingabe
- Erstellt privaten Text-Channel mit Permissions
- Buttons: Ticket schließen & Transkript erstellen
- Sendet bei Erstellung und Schließung eine DM an den Ticket-Ersteller
- Transkript wird als
.txt-Datei imTICKET_LOG_CHANNEL_ID-Channel gespeichert
💡 Vorschlags-System (events/suggestauto.js)
Reagiert auf jede Nachricht im Suggestion_ID-Channel automatisch mit 👍 und 👎.
🚀 Booster-Benachrichtigung (events/boosterEvent.js)
Sendet ein Embed im boosterChannel_ID-Channel, sobald ein Mitglied den Server boosted.
Contributions sind willkommen! So kannst du mitmachen:
- Fork das Repository
- Erstelle einen neuen Branch:
git checkout -b feature/mein-feature - Committe deine Änderungen:
git commit -m "feat: Mein neues Feature" - Push den Branch:
git push origin feature/mein-feature - Öffne einen Pull Request
Bei Fragen, Bugs oder Feedback erreichst du mich direkt auf Discord: 44erxyz
💡 Wenn du einen Bug entdeckst oder etwas nicht funktioniert, schreib mir bitte – ich versuche den Bot regelmäßig zu erweitern und zu verbessern!
Dieses Projekt steht unter der MIT-Lizenz. Weitere Details findest du in der LICENSE-Datei.
Gemacht mit ❤️ von 44erxyz • Powered by discord.js