Skip to content

maximilianfeix/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",

  "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"
}

Slash-Commands deployen

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

npm run deploy

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


🚀 Bot starten

npm start

oder direkt:

node index.js

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


💬 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)
│   ├── 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

🧩 Module / Events

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

Wird bei GuildMemberAdd ausgelöst:

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


🤝 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

Packages

 
 
 

Contributors