Files
SudoPlugin/README.md
2026-06-03 19:37:28 +00:00

215 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔧 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 <Spielername> <Befehl> [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 <spieler> <befehl> [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> # Befehlsname ohne /
args: <typ> # 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 <Spieler> permission set sudoplugin.use true
/lp group <Gruppe> 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.