From a9c43d2b05b74b622f82b4c21f1b793b0be4c8f3 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Wed, 25 Feb 2026 17:49:15 +0000 Subject: [PATCH] README.md aktualisiert --- README.md | 307 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 306 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c3c4e9..36e9283 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,307 @@ -# SpigotWatch +# 🐍 SpigotWatch +
+ +![Version](https://img.shields.io/badge/Version-v2.1-blue?style=for-the-badge) +![Node](https://img.shields.io/badge/Node.js-≥18.0.0-green?style=for-the-badge&logo=node.js) +![discord.js](https://img.shields.io/badge/discord.js-v14-5865F2?style=for-the-badge&logo=discord) +![License](https://img.shields.io/badge/Lizenz-GPL--3.0-orange?style=for-the-badge) + +**Ein Discord-Bot zum automatischen Überwachen von SpigotMC Plugin-Updates.** +Erhalte sofortige Benachrichtigungen wenn deine Plugins ein Update bekommen – direkt in deinen Discord-Kanal. + +
+ +--- + +## ✨ Features + +- 🔔 **Automatische Update-Benachrichtigungen** – Überwacht SpigotMC Plugins und postet Updates in einen definierten Kanal +- 📋 **Alle eigenen Plugins auf einmal hinzufügen** – `addauthor` fügt alle Plugins eines Autors mit einem Befehl hinzu +- 🔍 **Plugin-Suche & Details** – Suche nach Plugins, vergleiche sie und prüfe Minecraft-Kompatibilität +- ⚙️ **Vollständig konfigurierbar** – Intervall, Sprache, Mention-Rolle und Update-Kanal pro Server einstellbar +- 🌐 **Mehrsprachig** – Deutsch und Englisch unterstützt (`vn!setlang en`) +- ⚡ **Slash Commands** – Alle Befehle als `/befehl` und `vn!befehl` verfügbar +- 📊 **Statistiken & Status** – Live-Übersicht über API-Status, Queue und Update-Historie +- 🔒 **Token-Schutz** – Sicheres `.env`-System, kein Token im Code +- 🚦 **Rate-Limit-Schutz** – Queue-System verhindert API-Blockierungen + +--- + +## 📋 Voraussetzungen + +- [Node.js](https://nodejs.org/) `>= 18.0.0` +- [npm](https://www.npmjs.com/) +- Ein [Discord Bot Account](https://discord.com/developers/applications) + +--- + +## 🚀 Installation + +### 1. Repository klonen + +```bash +git clone https://github.com/M-Viper/pluginbot.git +cd pluginbot +``` + +### 2. Abhängigkeiten installieren + +```bash +npm install +``` + +### 3. `.env` Datei erstellen + +Kopiere die Vorlage und fülle sie aus: + +```bash +cp .env.example .env +``` + +Öffne `.env` und trage deine Werte ein: + +```env +DISCORD_TOKEN=dein_bot_token_hier +OWNER_ID=deine_discord_user_id +``` + +> **Token holen:** [Discord Developer Portal](https://discord.com/developers/applications) → Deine App → Bot → Token kopieren +> **User-ID holen:** Discord → Einstellungen → Erweitert → Entwicklermodus aktivieren → Rechtsklick auf dich selbst → ID kopieren + +### 4. `config.json` anpassen + +```json +{ + "prefix": "vn!", + "botName": "Viper-Network", + "authorName": "DeinName", + "authorGithub": "https://deine-website.de", + "inviteClientID": "DEINE_BOT_CLIENT_ID" +} +``` + +> **Client-ID holen:** [Discord Developer Portal](https://discord.com/developers/applications) → Deine App → OAuth2 → Client ID + +### 5. Slash-Befehle registrieren + +```bash +node deploy.js +``` + +### 6. Bot starten + +```bash +npm start +``` + +--- + +## 🔄 Autostart mit PM2 (empfohlen) + +Damit der Bot bei einem Absturz automatisch neu startet: + +```bash +npm install -g pm2 +pm2 start index.js --name pluginbot +pm2 save +pm2 startup +``` + +Nützliche PM2-Befehle: + +```bash +pm2 status # Status anzeigen +pm2 logs pluginbot # Logs anzeigen +pm2 restart pluginbot +pm2 stop pluginbot +``` + +--- + +## 📁 Projektstruktur + +``` +pluginbot/ +│ +├── index.js # Einstiegspunkt +├── deploy.js # Slash-Befehle registrieren (einmalig) +├── config.json # Bot-Konfiguration +├── .env # Token & Owner-ID (nicht auf GitHub!) +├── .env.example # Vorlage für .env +├── .gitignore +│ +├── commands/ # Alle Bot-Befehle +│ ├── add.js +│ ├── addauthor.js +│ ├── changelog.js +│ ├── check.js +│ ├── compare.js +│ ├── help.js +│ ├── info.js +│ ├── invite.js +│ ├── list.js +│ ├── ping.js +│ ├── plugin.js +│ ├── remove.js +│ ├── search.js +│ ├── setchannel.js +│ ├── setinterval.js +│ ├── setlang.js +│ ├── setmention.js +│ ├── stats.js +│ ├── status.js +│ ├── top.js +│ └── update.js +│ +├── events/ # Discord-Events +│ ├── botping.js +│ ├── interactionCreate.js +│ ├── message.js +│ └── ready.js +│ +├── util/ # Hilfsfunktionen +│ ├── helpers.js # Spiget URL-Generatoren +│ ├── i18n.js # Übersetzungen DE/EN +│ ├── logger.js # Winston Logger +│ ├── ownerOnly.js # Owner-Check +│ ├── queue.js # Update-Check Queue +│ └── stats.js # Statistiken +│ +├── serverdata/ # Serverdaten (automatisch angelegt) +└── data/ # Bot-Statistiken (automatisch angelegt) +``` + +--- + +## 🎮 Befehle + +### ℹ️ Allgemein + +| Befehl | Beschreibung | +|--------|--------------| +| `vn!help [befehl]` | Alle Befehle oder Details zu einem bestimmten | +| `vn!info` | Bot-Informationen, Version, RAM, Laufzeit | +| `vn!stats` | Nutzer, Server, Kanäle, Befehle, Laufzeit | + +### 🔍 Plugins + +| Befehl | Beschreibung | +|--------|--------------| +| `vn!search [name]` | Top 5 Plugins suchen, sortiert nach Downloads | +| `vn!search [name] -r` | Suche sortiert nach Bewertung | +| `vn!search [name] -n 500` | Suchmenge anpassen | +| `vn!plugin [id]` | Details zu einem Plugin anzeigen | +| `vn!changelog [id] [anzahl]` | Letzten 1–10 Updates eines Plugins | +| `vn!check [id] [mc-version]` | Minecraft-Kompatibilität prüfen | +| `vn!compare [id1] [id2]` | Zwei Plugins nebeneinander vergleichen | +| `vn!top` | Top beobachtete Plugins nach Downloads | +| `vn!top -r` | Top beobachtete Plugins nach Bewertung | + +### 👁️ Update-Watcher *(nur Admins)* + +| Befehl | Beschreibung | +|--------|--------------| +| `vn!add [id] [#kanal]` | Plugin beobachten (mit ✅/❌ Bestätigung) | +| `vn!addauthor [autor_id] [#kanal]` | Alle Plugins eines Autors auf einmal hinzufügen | +| `vn!remove [id]` | Plugin nicht mehr beobachten | +| `vn!list` | Alle beobachteten Plugins dieses Servers | +| `vn!update [id]` | Manuellen Update-Check auslösen | +| `vn!setchannel [id] [#kanal]` | Update-Kanal für ein Plugin ändern | +| `vn!setmention [id] [@rolle]` | Rolle die bei Updates gepingt wird | + +### ⚙️ Konfiguration *(nur Admins)* + +| Befehl | Beschreibung | +|--------|--------------| +| `vn!setlang [de\|en]` | Sprache des Bots für diesen Server | +| `vn!setinterval [minuten]` | Update-Check-Intervall (1–60 Min) | + +### 🔒 Owner-Only + +| Befehl | Beschreibung | +|--------|--------------| +| `vn!status` | API-Status, Queue-Info und Statistiken | +| `vn!ping` | Bot-Latenz anzeigen | +| `vn!invite` | Einladungslink des Bots | + +> Alle Befehle sind auch als Slash-Commands verfügbar: `/add`, `/search`, `/status` usw. + +--- + +## ⚙️ Konfiguration + +### Update-Intervall pro Server + +Standardmäßig prüft der Bot alle **5 Minuten** auf Updates. Anpassbar per Server: + +``` +vn!setinterval 10 +``` + +### Mention-Rolle bei Updates + +Eine Rolle die bei jedem Update automatisch gepingt wird: + +``` +vn!setmention 72678 @Plugin-Updates +``` + +Mention entfernen: + +``` +vn!setmention 72678 +``` + +### Sprache + +``` +vn!setlang en # Englisch +vn!setlang de # Deutsch (Standard) +``` + +--- + +## 🔗 Ressourcen-ID finden + +Die **Ressourcen-ID** eines SpigotMC Plugins findest du in der URL: + +``` +https://www.spigotmc.org/resources/vault.34315/ + ^^^^^ + Ressourcen-ID = 34315 +``` + +--- + +## 📦 Abhängigkeiten + +| Paket | Version | Zweck | +|-------|---------|-------| +| [discord.js](https://discord.js.org/) | ^14.15.3 | Discord API | +| [spiget](https://www.npmjs.com/package/spiget) | 0.1.3 | SpigotMC API | +| [dotenv](https://www.npmjs.com/package/dotenv) | ^16.4.5 | Umgebungsvariablen | +| [winston](https://www.npmjs.com/package/winston) | ^3.13.0 | Logging | + +--- + +## 🛡️ Sicherheit + +- Der Bot-Token wird ausschließlich in der `.env` Datei gespeichert +- Die `.env` Datei ist in `.gitignore` eingetragen und wird **niemals** auf GitHub hochgeladen +- `serverdata/` und `data/` sind ebenfalls in `.gitignore` – keine Serverdaten auf GitHub +- Owner-only Befehle (`status`, `ping`, `setinterval`) können nur vom konfigurierten Owner genutzt werden + +--- + +## 📄 Lizenz + +Dieses Projekt steht unter der [GPL-3.0 Lizenz](LICENSE). + +--- + +
+ +Entwickelt von **[M_Viper](https://m-viper.de)** + +
\ No newline at end of file