Skip to content

44erxyz/aquaBot

Repository files navigation

🤖 aquaBot

Ein vielseitiger Discord-Bot für Community-Server – gebaut mit Node.js & discord.js v14

Node.js discord.js License Issues Stars


Automatisiere deinen Discord-Server: Welcome-System, Ticket-System, Log-System, Bewerbungen und vieles mehr – alles in einer Konfigurationsdatei.


📋 Inhaltsverzeichnis


✨ Features

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.

📦 Voraussetzungen

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)

⚙️ Installation

# 1. Repository klonen
git clone https://github.com/44erxyz/aquaBot.git

# 2. In den Projektordner wechseln
cd aquaBot

# 3. Abhängigkeiten installieren
npm install

🔧 Konfiguration

Ö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.

Slash-Commands deployen

Bevor der Bot Commands ausführen kann, müssen diese für deine Server registriert werden:

node deploy-commands.js

Dieser Befehl registriert alle Commands aus dem commands/-Ordner für jede in guildId eingetragene Server-ID.


🚀 Bot starten

node index.js

Der 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.


💬 Slash-Commands

🛠 Utility

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

🎫 Ticket

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

📨 Bewerbung

Command Beschreibung Berechtigung
/bewerbung Erstellt das Bewerbungs-Panel für Team-/Creator-Bewerbungen Alle

📁 Projektstruktur

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

🧩 Module / Events

🎉 Welcome-System & Autorole (events/autorole.js)

Wird bei GuildMemberAdd ausgelöst:

  • Vergibt automatisch die in autoRoleId konfigurierte 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 im TICKET_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.


🤝 Mitwirken

Contributions sind willkommen! So kannst du mitmachen:

  1. Fork das Repository
  2. Erstelle einen neuen Branch: git checkout -b feature/mein-feature
  3. Committe deine Änderungen: git commit -m "feat: Mein neues Feature"
  4. Push den Branch: git push origin feature/mein-feature
  5. Ö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!


📄 Lizenz

Dieses Projekt steht unter der MIT-Lizenz. Weitere Details findest du in der LICENSE-Datei.


Gemacht mit ❤️ von 44erxyz • Powered by discord.js

About

A Discord Bot with Node.js which you can easily install!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors