304 lines
6.1 KiB
Markdown
304 lines
6.1 KiB
Markdown
# 🌍 WorldBorder (Spigot)
|
||
|
||

|
||

|
||

|
||
|
||
## 📌 Übersicht
|
||
|
||
**WorldBorder** ist ein leistungsoptimiertes Spigot-/Paper-Plugin zur Verwaltung von Weltgrenzen **pro Welt**.
|
||
Für jede Welt kann **genau eine Border** definiert werden, die nur von Spielern mit entsprechender Berechtigung überschritten werden darf.
|
||
|
||
Der Fokus liegt auf **maximaler Performance** – keine messbaren Leistungseinbußen, auch bei großen Welten und aktiven Servern.
|
||
|
||
---
|
||
|
||
## 🧩 Kompatibilität
|
||
|
||
- **Minecraft:** Spigot / Paper **1.21.x**
|
||
- **Java:** **Java 21 (erforderlich)**
|
||
|
||
---
|
||
|
||
## 🔧 Features
|
||
|
||
- Eine eigene Border **pro Welt**
|
||
- Unterstützte Border-Formen:
|
||
- **Rund / Elliptisch**
|
||
- **Quadratisch / Rechteckig**
|
||
- Unterschiedliche Border-Formen je Welt möglich
|
||
- Quadratisch: etwas bessere Performance
|
||
- Rund: optisch ansprechender (z. B. für Karten)
|
||
- Vollständige Konfiguration **per Ingame-Commands oder Konsole**
|
||
- Keine manuelle Bearbeitung der `config.yml` notwendig
|
||
- Unterstützung aller Permission-Plugins mit **Bukkit SuperPerms**
|
||
- **World-Fill**: Generiert alle fehlenden Chunks bis zur Border
|
||
- **World-Trim**: Entfernt Chunks außerhalb der Border
|
||
- Konfigurierbare Pufferzonen
|
||
- **Bypass-Modus** für ausgewählte Spieler
|
||
- Automatisches Speichern aller Änderungen
|
||
- Fahrzeuge werden beim Grenzübertritt gestoppt und zurückgesetzt
|
||
- Spieler werden bei Bedarf an eine **sichere Höhe** teleportiert
|
||
- Optionaler **Wrap-Around-Modus**
|
||
- **DynMap-Unterstützung** (optional)
|
||
|
||
---
|
||
|
||
## 🗺 DynMap-Integration
|
||
|
||
Wenn **DynMap** installiert ist, werden die Borders **automatisch auf der Karte angezeigt**
|
||
und bei Änderungen nahezu in Echtzeit aktualisiert.
|
||
|
||
---
|
||
|
||
## 📜 Commands & Permissions
|
||
|
||
> Die vollständige Liste der Commands und Permissions ist standardmäßig ausgeblendet,
|
||
> um das README übersichtlich zu halten.
|
||
|
||
<details>
|
||
<summary><strong>➡️ Klicken, um alle Commands & Permissions anzuzeigen</strong></summary>
|
||
|
||
<br>
|
||
|
||
### Syntax
|
||
|
||
`Hauptbefehl <erforderlicher Wert> [optionaler Wert]`
|
||
|
||
**Hinweis:**
|
||
`[worldname]` ist **in der Konsole erforderlich**, ingame optional (Standard: aktuelle Welt).
|
||
|
||
---
|
||
|
||
### Grundbefehl
|
||
|
||
`/wb` – Zeigt alle verfügbaren Commands (Hilfe)
|
||
|
||
**Permission:**
|
||
`worldborder.help`
|
||
|
||
---
|
||
|
||
### Border setzen
|
||
|
||
`/wb set <radiusX> [radiusZ]`
|
||
Setzt eine Border zentriert auf den Spieler (nur ingame).
|
||
|
||
`/wb [worldname] set <radiusX> [radiusZ] <x> <z>`
|
||
Setzt eine Border mit festem Mittelpunkt.
|
||
|
||
`/wb [worldname] set <radiusX> [radiusZ] spawn`
|
||
Verwendet den Welt-Spawn als Mittelpunkt.
|
||
|
||
`/wb set <radiusX> [radiusZ] player <playername>`
|
||
Zentriert die Border auf einen bestimmten Spieler.
|
||
|
||
`/wb [worldname] setcorners <x1> <z1> <x2> <z2>`
|
||
Setzt eine Border anhand von Eckkoordinaten.
|
||
|
||
**Permission:**
|
||
`worldborder.set`
|
||
|
||
---
|
||
|
||
### Radius ändern
|
||
|
||
`/wb [worldname] radius <radiusX> [radiusZ]`
|
||
Ändert den Radius einer bestehenden Border.
|
||
|
||
- `+` oder `-` möglich (z. B. `+100`)
|
||
- Ohne `radiusZ` wird `radiusX` für beide Achsen verwendet
|
||
|
||
**Permission:**
|
||
`worldborder.radius`
|
||
|
||
---
|
||
|
||
### Border entfernen
|
||
|
||
`/wb [worldname] clear`
|
||
`/wb clear all`
|
||
|
||
**Permission:**
|
||
`worldborder.clear`
|
||
|
||
---
|
||
|
||
### Border-Informationen
|
||
|
||
`/wb list` – Zeigt alle Borders aller Welten
|
||
|
||
**Permission:**
|
||
`worldborder.list`
|
||
|
||
---
|
||
|
||
### Border-Form
|
||
|
||
`/wb shape <elliptic|round|rectangular|square>`
|
||
Setzt die globale Standardform.
|
||
|
||
**Permission:**
|
||
`worldborder.shape`
|
||
|
||
`/wb wshape [worldname] <elliptic|round|rectangular|square|default>`
|
||
Überschreibt die Border-Form nur für diese Welt.
|
||
|
||
**Permission:**
|
||
`worldborder.wshape`
|
||
|
||
---
|
||
|
||
### Knockback
|
||
|
||
`/wb knockback <distance>`
|
||
Legt fest, wie weit Spieler zurückgesetzt werden.
|
||
|
||
**Permission:**
|
||
`worldborder.knockback`
|
||
|
||
---
|
||
|
||
### Welt generieren (Fill)
|
||
|
||
`/wb [worldname] fill [freq] [pad] [force]`
|
||
|
||
- `freq` – Checks pro Sekunde (Standard: 20)
|
||
- `pad` – Pufferzone (Standard: 208)
|
||
- `force` – Erzwingt Chunk-Generierung (`true` / `false`)
|
||
|
||
**Permission:**
|
||
`worldborder.fill`
|
||
|
||
---
|
||
|
||
### Welt beschneiden (Trim)
|
||
|
||
`/wb [worldname] trim [freq] [pad]`
|
||
|
||
- `freq` – Chunks pro Sekunde (Standard: 5000)
|
||
- `pad` – Pufferzone (Standard: 208)
|
||
|
||
**Permission:**
|
||
`worldborder.trim`
|
||
|
||
---
|
||
|
||
### Bypass-Modus
|
||
|
||
`/wb bypass [player] [on|off]`
|
||
Erlaubt Spielern, die Border zu ignorieren.
|
||
Der Status bleibt über Serverneustarts erhalten.
|
||
|
||
**Permission:**
|
||
`worldborder.bypass`
|
||
|
||
`/wb bypasslist` – Liste aller Spieler mit aktivem Bypass
|
||
|
||
**Permission:**
|
||
`worldborder.bypasslist`
|
||
|
||
---
|
||
|
||
### Autosave beim Fill
|
||
|
||
`/wb fillautosave <seconds>`
|
||
|
||
**Permission:**
|
||
`worldborder.fillautosave`
|
||
|
||
---
|
||
|
||
### Wrap-Around
|
||
|
||
`/wb wrap [worldname] <on|off>`
|
||
Teleportiert Spieler beim Grenzübertritt auf die gegenüberliegende Seite.
|
||
|
||
**Permission:**
|
||
`worldborder.wrap`
|
||
|
||
---
|
||
|
||
### Border-Nachricht
|
||
|
||
`/wb getmsg`
|
||
`/wb setmsg <message>`
|
||
|
||
**Permissions:**
|
||
`worldborder.getmsg`
|
||
`worldborder.setmsg`
|
||
|
||
---
|
||
|
||
### Timing & Effekte
|
||
|
||
`/wb delay <amount>` – Ticks zwischen Border-Checks
|
||
`/wb whoosh <on|off>` – Knockback-Sound
|
||
|
||
**Permissions:**
|
||
`worldborder.delay`
|
||
`worldborder.whoosh`
|
||
|
||
---
|
||
|
||
### Portale & Enderperlen
|
||
|
||
`/wb portal <on|off>`
|
||
`/wb denypearl <on|off>`
|
||
|
||
**Permissions:**
|
||
`worldborder.portal`
|
||
`worldborder.denypearl`
|
||
|
||
---
|
||
|
||
### DynMap
|
||
|
||
`/wb dynmap <on|off>`
|
||
`/wb dynmapmsg <text>`
|
||
|
||
**Permissions:**
|
||
`worldborder.dynmap`
|
||
`worldborder.dynmapmsg`
|
||
|
||
---
|
||
|
||
### Fahrzeuge
|
||
|
||
`/wb remount <amount>`
|
||
|
||
**Permission:**
|
||
`worldborder.remount`
|
||
|
||
---
|
||
|
||
### Wartung & Debug
|
||
|
||
`/wb reload`
|
||
`/wb debug <on|off>`
|
||
|
||
**Permissions:**
|
||
`worldborder.reload`
|
||
`worldborder.debug`
|
||
|
||
---
|
||
|
||
### Hinweise
|
||
|
||
- `/wb` ist ein Alias für `/wborder`
|
||
- `<radiusX>`, `<radiusZ>` und `<amount>` müssen **Ganzzahlen** sein
|
||
- `<x>`, `<z>` und `<distance>` dürfen **Dezimalzahlen** enthalten
|
||
- Radius = Abstand vom Mittelpunkt pro Achse
|
||
Beispiel: `600 x 300` → Gesamtfläche **1200 x 600**
|
||
|
||
---
|
||
|
||
### Beispiele
|
||
|
||
```text
|
||
/wb set 2000
|
||
/wb set 2000 1000
|
||
/wb netherworld set 250 -12.5 47.3
|
||
/wb shape round
|
||
/wb wshape square
|