diff --git a/README.md b/README.md index a40b4a3..2838ac0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,215 @@ -# SudoPlugin +# 🔧 SudoPlugin +> Führe Befehle als andere Spieler aus — mit Cooldown, Logging, Sicherheitsfiltern und vollständig anpassbaren Nachrichten. + +**Minecraft:** Paper / Spigot 1.20+ +**Java:** 17+ +**Permission:** `sudoplugin.use` (Standard: nur OPs) + +--- + +## Inhalt + +- [Installation](#installation) +- [Benutzung](#benutzung) +- [config.yml](#configyml) +- [commands.yml](#commandsyml) +- [Permissions](#permissions) + +--- + +## Installation + +1. Die fertige `.jar` in den `plugins/`-Ordner deines Servers legen. +2. Server starten oder `/reload confirm` ausführen. +3. Beim ersten Start werden automatisch erstellt: + - `plugins/SudoPlugin/config.yml` + - `plugins/SudoPlugin/commands.yml` + +--- + +## Benutzung + +### Befehl + +``` +/sudo [Argumente...] +``` + +### Beispiele + +``` +/sudo Steve msg Alex Hallo! +/sudo Steve gamemode creative +/sudo Steve tp Alex +/sudo Steve fly +``` + +### Konfiguration neu laden + +``` +/sudo reload +``` + +Lädt sowohl `config.yml` als auch `commands.yml` neu — kein Server-Neustart nötig. + +### Tab-Completion + +| Argument | Vorschläge | +|----------|-----------| +| 1. Argument | Alle Online-Spieler | +| 2. Argument | Befehle aus `commands.yml` (gesperrte ausgeblendet) | +| 3. Argument | Kontextsensitiv: Spieler, Spielmodi, oder leer | + +--- + +## config.yml + +### Benachrichtigungen + +```yaml +notifications: + # Zielspieler informieren wenn ein Befehl als er ausgeführt wird + notify-target: false + notify-message: "&eEin Admin hat einen Befehl als du ausgeführt." + + # Bestätigung an den Ausführer anzeigen + notify-sender: true + + # Jeden sudo-Befehl in der Konsole loggen + log-to-console: true + + # Jeden sudo-Befehl in plugins/SudoPlugin/sudo.log schreiben + log-to-file: false +``` + +### Sicherheit + +```yaml +security: + # /sudo auf sich selbst erlauben + allow-self-sudo: false + + # /sudo auf andere OPs erlauben (nur für Nicht-OPs relevant) + allow-sudo-on-op: false + + # /sudo von der Konsole aus erlauben + allow-console: true + + # Befehle die niemals ausgeführt werden dürfen + # Diese werden auch in der Tab-Completion ausgeblendet + blocked-commands: [] + # Beispiel: + # blocked-commands: + # - op + # - deop + # - stop +``` + +### Cooldown + +```yaml +cooldown: + # Wartezeit in Sekunden zwischen zwei /sudo-Nutzungen (0 = deaktiviert) + seconds: 0 + + # true = Cooldown gilt pro Zielspieler (jeder Spieler hat eigenen Timer) + # false = Cooldown gilt global pro Ausführer + per-target: false + + # Spieler mit dieser Permission ignorieren den Cooldown + bypass-permission: sudoplugin.cooldown.bypass +``` + +### Nachrichten + +Alle Nachrichten unterstützen `&`-Farbcodes und Platzhalter. + +| Platzhalter | Beschreibung | +|-------------|-------------| +| `{player}` | Name des Zielspielers | +| `{cmd}` | Ausgeführter Befehl | +| `{seconds}` | Verbleibende Cooldown-Zeit | + +```yaml +messages: + prefix: "&8[&cSudo&8] &r" + no-permission: "&cDu hast keine Berechtigung." + player-not-found: "&cSpieler '{player}' ist nicht online." + usage: "&cVerwendung: /sudo [argumente...]" + success: "&aBefehl &f/{cmd} &awurde als &f{player} &aausgeführt." + self-sudo-denied: "&cDu kannst /sudo nicht auf dich selbst anwenden." + op-sudo-denied: "&cDu kannst /sudo nicht auf einen OP anwenden." + command-blocked: "&cDieser Befehl ist in der Konfiguration gesperrt." + cooldown-active: "&cBitte warte noch &f{seconds}s &cbevor du /sudo erneut nutzt." + reload-success: "&aKonfiguration erfolgreich neu geladen." +``` + +--- + +## commands.yml + +Hier werden alle Befehle definiert die in der Tab-Completion erscheinen sollen. +Gesperrte Befehle aus `security.blocked-commands` werden automatisch ausgeblendet. + +### Format + +```yaml +commands: + - name: # Befehlsname ohne / + args: # Typ für das 3. Argument (siehe unten) +``` + +### Argument-Typen (`args`) + +| Wert | Beschreibung | +|------|-------------| +| `player` | Schlägt Online-Spieler vor | +| `gamemode` | Schlägt survival / creative / adventure / spectator vor | +| `""` | Keine Completion für das 3. Argument | + +### Beispiel + +```yaml +commands: + - name: msg + args: player + - name: tp + args: player + - name: gamemode + args: gamemode + - name: fly + args: "" + - name: meineigenerbefehl + args: "" +``` + +--- + +## Permissions + +| Permission | Beschreibung | Standard | +|-----------|-------------|----------| +| `sudoplugin.use` | Erlaubt die Nutzung von `/sudo` und `/sudo reload` | OP | +| `sudoplugin.cooldown.bypass` | Umgeht den konfigurierten Cooldown | — | + +### Beispiel mit LuckPerms + +``` +/lp user permission set sudoplugin.use true +/lp group permission set sudoplugin.cooldown.bypass true +``` + +--- + +## ⚠️ Urheberrecht & Nutzungsbedingungen + +SudoPlugin ist urheberrechtlich geschützt. © M_Viper – Alle Rechte vorbehalten. + +- ❌ Die Weitergabe dieses Plugins an Dritte ist strengstens untersagt +- ❌ Das Verändern, Dekompilieren oder Bearbeiten des Codes ist nicht erlaubt +- ❌ Eine Veröffentlichung – auch in veränderter Form – ist verboten +- ❌ Der Verkauf oder die kommerzielle Nutzung ist nicht gestattet +- ✅ Die Nutzung ist ausschließlich für den privaten Serverbetrieb erlaubt + +Wer gegen diese Bedingungen verstößt, macht sich strafbar und kann rechtlich belangt werden. \ No newline at end of file