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",
"startChannelId": "ID_DES_START_CHANNELS",
"welcomeChannelId": "ID_DES_WELCOME_CHANNELS",
"autoRoleId": "ID_DER_AUTOROLE",
"logChannelId": "ID_DES_LOG_CHANNELS",
"ticketCategoryId": "ID_DER_TICKET_KATEGORIE",
"ticketLogChannelId": "ID_DES_TICKET_LOG_CHANNELS",
"suggestionChannelId": "ID_DES_VORSCHLAGS_CHANNELS",
"boosterChannelId": "ID_DES_BOOSTER_CHANNELS"
}Bevor der Bot Commands ausführen kann, müssen diese für deine Server registriert werden:
npm run deployDieser Befehl registriert alle Commands aus dem commands/-Ordner für jede in guildId eingetragene Server-ID.
npm startoder direkt:
node index.jsDer Bot loggt sich ein, setzt seinen rotierenden Status und sendet ein Start-Embed in den konfigurierten startChannelId-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)
│ ├── admin/
│ │ ├── aboutus.js # /aboutus – Server-Info (Admin)
│ │ ├── alert.js # /alert – Ticket-Alert mit Auto-Close (ManageChannels)
│ │ ├── panel.js # /panel – sendet Dropdown-Ticket-Panel in einen Kanal (Admin)
│ │ └── regeln.js # /regeln – postet Server-Regeln (Admin)
│ ├── support/
│ │ ├── bewerbung.js # /bewerbung – Bewerbungs-Panel
│ │ ├── bug.js # /bug – Bug-Meldungs-Panel
│ │ └── ticket.js # /ticket – einfaches Support-Panel
│ └── utility/
│ ├── owner.js # /owner – Owner-Info
│ ├── ping.js # /ping – Latenz & Auslastung
│ └── server.js # /server – Minecraft-Server-Status
├── events/ # Discord-Event-Handler (ein Handler pro Event-Typ)
│ ├── ready.js # ClientReady: Status-Rotation, Start-Embed, SIGINT-Handler
│ ├── interactionCreate.js # Alle Interactions: Commands, Buttons, Modals, Select-Menüs
│ ├── guildMemberAdd.js # Autorole + Welcome-Nachricht + Join-Log
│ ├── guildMemberRemove.js # Leave-Log
│ ├── guildMemberUpdate.js # Rollen-/Nickname-Log + Booster-Benachrichtigung
│ └── messageCreate.js # Vorschlags-Auto-React
├── config.json # Konfigurationsdatei (Token, Channel-IDs, etc.)
├── deploy-commands.js # Script zum Deployen der Slash-Commands
├── index.js # Einstiegspunkt: lädt Events & Commands, startet den Bot
└── package.json # Projektabhängigkeiten & Scripts
🎉 Welcome-System & Autorole (events/guildMemberAdd.js)
Wird bei GuildMemberAdd ausgelöst:
- Vergibt automatisch die in
autoRoleIdkonfigurierte Rolle - Sendet eine anpassbare Welcome-Nachricht als Embed in den
welcomeChannelId-Channel - Protokolliert den Beitritt im
logChannelId-Channel
📋 Log-System (events/guildMemberAdd.js, events/guildMemberRemove.js, events/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 imticketLogChannelId-Channel gespeichert
💡 Vorschlags-System (events/messageCreate.js)
Reagiert auf jede Nachricht im suggestionChannelId-Channel automatisch mit 👍 und 👎.
🚀 Booster-Benachrichtigung (events/guildMemberUpdate.js)
Sendet ein Embed im boosterChannelId-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