README.md aktualisiert
This commit is contained in:
783
README.md
783
README.md
@@ -1,2 +1,783 @@
|
||||
# Lasertec
|
||||
# ⚡ Lasertec
|
||||
### Realistisches LaserTag-Minigame Plugin für Minecraft
|
||||
|
||||
**Version:** 3.0.0 | **Minecraft:** Spigot / Paper 1.20.1 | **Sprache:** Deutsch
|
||||
|
||||
---
|
||||
|
||||
## 📋 Inhaltsverzeichnis
|
||||
|
||||
1. [Über das Plugin](#über-das-plugin)
|
||||
2. [Installation](#installation)
|
||||
3. [Erste Schritte – Arena einrichten](#erste-schritte--arena-einrichten)
|
||||
4. [Join-Schilder einrichten](#join-schilder-einrichten)
|
||||
5. [Spielmechanik erklärt](#spielmechanik-erklärt)
|
||||
6. [Waffen](#waffen)
|
||||
7. [Punkte-System](#punkte-system)
|
||||
8. [Anti-Camp System](#anti-camp-system)
|
||||
9. [Mod-Schutz (Minimap)](#mod-schutz-minimap)
|
||||
10. [Scoreboard](#scoreboard)
|
||||
11. [Spieler-Befehle](#spieler-befehle)
|
||||
12. [Admin-Befehle](#admin-befehle)
|
||||
13. [Berechtigungen](#berechtigungen)
|
||||
14. [Vollständige config.yml](#vollständige-configyml)
|
||||
15. [Nachrichten anpassen](#nachrichten-anpassen)
|
||||
16. [Gespeicherte Dateien](#gespeicherte-dateien)
|
||||
17. [Häufige Fragen & Probleme](#häufige-fragen--probleme)
|
||||
|
||||
---
|
||||
|
||||
## Über das Plugin
|
||||
|
||||
Lasertec ist ein **realistisches LaserTag-Minigame** das den echten LaserTag-Sport nachbildet:
|
||||
|
||||
- Spieler kämpfen in **4 Teams** (Rot, Blau, Grün, Gelb) gegeneinander
|
||||
- Wer getroffen wird, ist **gesperrt** und muss zur eigenen Basis zurücklaufen
|
||||
- An der **Basis regeneriert** man sich und kann dann wieder schießen
|
||||
- Gegnerische **Basen können beschossen** werden um Extra-Punkte zu erhalten
|
||||
- Das Team mit den meisten Punkten nach Ablauf der Zeit gewinnt
|
||||
|
||||
Das Plugin unterstützt **mehrere Arenen gleichzeitig** — jede Arena läuft als vollständig unabhängige Instanz.
|
||||
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
1. Lade die Datei `Lasertec-3.0.0.jar` herunter
|
||||
2. Kopiere sie in den Ordner `plugins/` deines Servers
|
||||
3. Starte den Server (oder gib `/reload confirm` ein)
|
||||
4. Das Plugin erstellt automatisch den Ordner `plugins/Lasertec/` mit allen Konfigurationsdateien
|
||||
5. Richte nun deine erste Arena ein (siehe nächster Abschnitt)
|
||||
|
||||
> **Voraussetzung:** Spigot oder Paper 1.20.1. Keine weiteren Plugins notwendig.
|
||||
|
||||
---
|
||||
|
||||
## Erste Schritte – Arena einrichten
|
||||
|
||||
Eine Arena braucht für **jedes der vier Teams** mindestens einen Spawn-Punkt und einen Basis-Block. Folge dieser Reihenfolge:
|
||||
|
||||
### Schritt 1 — Arena erstellen
|
||||
|
||||
```
|
||||
/ltadmin create MeineArena
|
||||
```
|
||||
|
||||
Ersetze `MeineArena` mit dem gewünschten Namen (keine Leerzeichen). Das Plugin bestätigt die Erstellung und zeigt dir die nächsten Schritte an.
|
||||
|
||||
---
|
||||
|
||||
### Schritt 2 — Spawn-Punkte setzen
|
||||
|
||||
Stelle dich an die gewünschte Startposition und tippe den Befehl. Du kannst pro Team **mehrere Spawn-Punkte** setzen — beim Respawn wird zufällig einer gewählt.
|
||||
|
||||
```
|
||||
/ltadmin setspawn MeineArena red
|
||||
/ltadmin setspawn MeineArena blue
|
||||
/ltadmin setspawn MeineArena green
|
||||
/ltadmin setspawn MeineArena yellow
|
||||
```
|
||||
|
||||
Wiederhole jeden Befehl so oft du willst um weitere Spawn-Punkte hinzuzufügen.
|
||||
|
||||
---
|
||||
|
||||
### Schritt 3 — Basen setzen
|
||||
|
||||
Die Basis ist der Regenerationspunkt des Teams **und gleichzeitig** der Block den Gegner anschießen können. Stelle dich direkt **auf den Block** der die Basis werden soll und tippe:
|
||||
|
||||
```
|
||||
/ltadmin setbase MeineArena red
|
||||
/ltadmin setbase MeineArena blue
|
||||
/ltadmin setbase MeineArena green
|
||||
/ltadmin setbase MeineArena yellow
|
||||
```
|
||||
|
||||
> **Wichtig:** Plane einen freien Block an jeder Basis ein. Beim Spielstart wird dort automatisch ein farbiges Glas-Block platziert (z.B. rotes Glas für Team Rot). Am Spielende wird er wieder entfernt.
|
||||
>
|
||||
> Empfehlung: Stelle die Basis mitten in oder direkt vor dem Teambereich, so dass Spieler kurze Wege beim Heilen haben.
|
||||
|
||||
---
|
||||
|
||||
### Schritt 4 — Lobby setzen
|
||||
|
||||
```
|
||||
/ltadmin setlobby
|
||||
```
|
||||
|
||||
Hierher werden alle Spieler nach dem Spiel zurückgeführt. Stelle dich an den gewünschten Lobby-Spawn-Punkt.
|
||||
|
||||
---
|
||||
|
||||
### Schritt 5 — Arena aktivieren
|
||||
|
||||
```
|
||||
/ltadmin enable MeineArena
|
||||
```
|
||||
|
||||
Das Plugin prüft ob alle Spawns und Basen gesetzt sind. Wenn etwas fehlt, siehst du eine genaue Fehlermeldung. Ist alles korrekt, ist die Arena sofort spielbereit.
|
||||
|
||||
---
|
||||
|
||||
### Schritt 6 — Status prüfen
|
||||
|
||||
```
|
||||
/ltadmin info MeineArena
|
||||
```
|
||||
|
||||
Zeigt dir eine Übersicht aller gesetzten Spawns, Basen, den aktuellen Status und die Spieleranzahl.
|
||||
|
||||
---
|
||||
|
||||
### Weitere Arenen
|
||||
|
||||
Um eine zweite (oder dritte, vierte, ...) Arena hinzuzufügen, wiederhole einfach alle Schritte mit einem anderen Namen. Alle Arenen laufen gleichzeitig und völlig unabhängig voneinander.
|
||||
|
||||
```
|
||||
/ltadmin create Arena2
|
||||
/ltadmin setspawn Arena2 red
|
||||
... usw.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Join-Schilder einrichten
|
||||
|
||||
Spieler können Spielen beitreten indem sie ein Schild anklicken. Das Schild aktualisiert sich live mit dem aktuellen Status und der Spieleranzahl.
|
||||
|
||||
### Schild erstellen
|
||||
|
||||
1. Platziere ein normales Holzschild oder Wandschild
|
||||
2. Schreibe auf **Zeile 1** exakt: `[Lasertec]`
|
||||
3. Schreibe auf **Zeile 2** den Arenannamen (z.B. `MeineArena`)
|
||||
4. Zeile 3 und 4 kannst du leer lassen — das Plugin füllt sie automatisch
|
||||
|
||||
Nach dem Platzieren verwandelt das Plugin das Schild automatisch in:
|
||||
|
||||
```
|
||||
┌────────────────────┐
|
||||
│ [LASERTEC] │
|
||||
│ MeineArena │
|
||||
│ Wartend │
|
||||
│ 0/16 │
|
||||
└────────────────────┘
|
||||
```
|
||||
|
||||
### Schild-Status
|
||||
|
||||
| Anzeige | Bedeutung |
|
||||
|---------|-----------|
|
||||
| 🟢 Wartend | Spiel wartet auf Spieler, beitreten möglich |
|
||||
| 🟡 Startet... | Countdown läuft, beitreten noch möglich |
|
||||
| 🔴 Läuft | Spiel läuft, kein Beitritt mehr möglich |
|
||||
| ⚫ Voll | Maximale Spieleranzahl erreicht |
|
||||
|
||||
### Schild entfernen
|
||||
|
||||
Einfach den Block abbauen (nur Admins können Lasertec-Schilder entfernen).
|
||||
|
||||
### Mehrere Schilder
|
||||
|
||||
Du kannst beliebig viele Schilder für jede Arena erstellen — zum Beispiel an verschiedenen Orten auf deinem Server. Alle Schilder werden in `signs.yml` gespeichert und funktionieren nach einem Server-Neustart weiter.
|
||||
|
||||
---
|
||||
|
||||
## Spielmechanik erklärt
|
||||
|
||||
### Ablauf eines Spiels
|
||||
|
||||
```
|
||||
Spieler klicken Schild oder tippen /lt join
|
||||
↓
|
||||
Spieler werden ihren Teams zugewiesen (automatisch ausbalanciert)
|
||||
Jeder erhält seine Team-Rüstung (farbiges Leder) und alle 4 Waffen
|
||||
↓
|
||||
Sobald genug Spieler da sind → Countdown (Standard: 10 Sekunden)
|
||||
↓
|
||||
Spiel startet → Basen-Blöcke erscheinen an den gesetzten Positionen
|
||||
↓
|
||||
Spieler schießen mit Rechtsklick auf Gegner und Gegner-Basen
|
||||
↓
|
||||
Nach der Spielzeit (Standard: 5 Minuten) → Ergebnis-Anzeige
|
||||
↓
|
||||
8 Sekunden Ergebnis → automatischer Reset → nächste Runde
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Die Treffer-Mechanik (Kern des Spiels)
|
||||
|
||||
Das ist das Herzstück von Lasertec — genau wie beim echten LaserTag:
|
||||
|
||||
**Wenn ein Spieler getroffen wird:**
|
||||
- Er kann sofort **nicht mehr schießen**
|
||||
- Sein Status wechselt zu „☠ GETROFFEN"
|
||||
- Die Action-Bar zeigt: `☠ GETROFFEN – Zur [Team]-Basis! (XXm)`
|
||||
- Er muss zu seiner **eigenen Basis** laufen
|
||||
|
||||
**An der Basis:**
|
||||
- Der Spieler muss sich **innerhalb von 4 Blöcken** um den Basis-Block befinden
|
||||
- Die Heilung startet automatisch und dauert 2 Sekunden
|
||||
- Ein Fortschrittsbalken in der Action-Bar zeigt den Heilungsfortschritt
|
||||
- **Läuft der Spieler weg bevor die Heilung abgeschlossen ist, wird sie abgebrochen!**
|
||||
|
||||
**Nach der Heilung:**
|
||||
- Der Spieler ist wieder aktiv und kann schießen
|
||||
- Kurze Unverwundbarkeit (3 Sekunden) schützt vor sofortigem Wiederabschuss
|
||||
|
||||
---
|
||||
|
||||
### Basen angreifen
|
||||
|
||||
Jede Basis ist durch einen **farbigen Glas-Block** markiert. Gegner können diesen Block mit ihrer Waffe anschießen:
|
||||
|
||||
- Jeder Treffer bringt **60 Punkte** (einstellbar)
|
||||
- Alle Mitglieder des angegriffenen Teams erhalten eine **Warnung**
|
||||
- Der Block verändert sich optisch mit zunehmendem Schaden:
|
||||
- Volle HP: Farbiges **Glas** (z.B. Rotes Glas)
|
||||
- Halbe HP: **Wolle** in Teamfarbe
|
||||
- Zerstört: **Obsidian**
|
||||
- Nach 5 Treffern (einstellbar) ist die Basis **zerstört** → 200 Bonus-Punkte
|
||||
|
||||
---
|
||||
|
||||
### Teams
|
||||
|
||||
Das Plugin verteilt Spieler automatisch gleichmäßig auf die vier Teams:
|
||||
|
||||
| Team | Rüstungsfarbe | Basis-Block |
|
||||
|------|--------------|-------------|
|
||||
| 🔴 Rot | Rotes Leder | Rotes Glas |
|
||||
| 🔵 Blau | Blaues Leder | Blaues Glas |
|
||||
| 🟢 Grün | Grünes Leder | Grünes Glas |
|
||||
| 🟡 Gelb | Gelbes Leder | Gelbes Glas |
|
||||
|
||||
---
|
||||
|
||||
## Waffen
|
||||
|
||||
Jeder Spieler erhält beim Spielstart **alle vier Waffen** gleichzeitig in der Hotbar. Wechseln per Mausrad, schießen per **Rechtsklick**.
|
||||
|
||||
### Laser-Pistole (Slot 1)
|
||||
- **Schaden:** 25 pro Treffer (4 Treffer für einen Kill)
|
||||
- **Reichweite:** 30 Blöcke
|
||||
- **Cooldown:** 0,3 Sekunden
|
||||
- **Laserstrahl:** Weißer Partikel-Strahl
|
||||
- **Ideal für:** Allgemeine Kämpfe, mittlere Distanz
|
||||
|
||||
### Laser-Sniper (Slot 2)
|
||||
- **Schaden:** 80 pro Treffer (2 Treffer für einen Kill)
|
||||
- **Reichweite:** 60 Blöcke
|
||||
- **Cooldown:** 2,0 Sekunden
|
||||
- **Laserstrahl:** Violetter Partikel-Strahl
|
||||
- **Ideal für:** Lange Distanzen, Basis-Angriffe aus der Ferne
|
||||
|
||||
### Laser-Shotgun (Slot 3)
|
||||
- **Schaden:** 20 pro Pellet × 5 Pellets gleichzeitig
|
||||
- **Reichweite:** 12 Blöcke
|
||||
- **Cooldown:** 0,9 Sekunden
|
||||
- **Laserstrahl:** 5 orangene Partikel-Strahlen mit Streuung
|
||||
- **Ideal für:** Enge Gänge, kurze Distanz
|
||||
|
||||
### Rapid-Fire (Slot 4)
|
||||
- **Schaden:** 12 pro Treffer (ca. 9 Treffer für einen Kill)
|
||||
- **Reichweite:** 22 Blöcke
|
||||
- **Cooldown:** 0,12 Sekunden
|
||||
- **Laserstrahl:** Grüner Partikel-Strahl
|
||||
- **Ideal für:** Dauerbeschuss, den Gegner unter Druck setzen
|
||||
|
||||
> Alle Waffen-Werte (Schaden, Reichweite, Cooldown) können in der `config.yml` angepasst werden.
|
||||
|
||||
---
|
||||
|
||||
## Punkte-System
|
||||
|
||||
### Punkte verdienen
|
||||
|
||||
| Aktion | Punkte |
|
||||
|--------|--------|
|
||||
| Gegner treffen (Kill) | +100 |
|
||||
| Gegner-Basis anschießen | +60 |
|
||||
| Gegner-Basis zerstören (Bonus) | +200 |
|
||||
| 3er Kill-Serie Bonus | +50 |
|
||||
| 5er Kill-Serie Bonus | +100 |
|
||||
| 10er Kill-Serie Bonus | +250 |
|
||||
|
||||
### Punkte verlieren
|
||||
|
||||
| Aktion | Punkte |
|
||||
|--------|--------|
|
||||
| Campen (Anti-Camp Strafe) | −10 pro Sekunde |
|
||||
|
||||
### Kill-Serien
|
||||
|
||||
Wenn du mehrere Gegner hintereinander triffst ohne selbst getroffen zu werden, wird eine Kill-Serie gestartet:
|
||||
|
||||
- **3 in Folge:** `§6TRIPLE KILL!` — Ankündigung an alle + 50 Bonus-Punkte
|
||||
- **5 in Folge:** `§bPENTA KILL!` — Ankündigung an alle + 100 Bonus-Punkte
|
||||
- **10 in Folge:** `§5§lGODLIKE!` — Ankündigung an alle + 250 Bonus-Punkte
|
||||
|
||||
Die Serie wird zurückgesetzt wenn man selbst getroffen wird.
|
||||
|
||||
### Spielende
|
||||
|
||||
Das Team mit den meisten **Gesamt-Punkten** (Kills + Basis-Angriffe) gewinnt. Bei Gleichstand wird „Unentschieden" angezeigt. Nach dem Spiel werden die Statistiken dauerhaft in `stats.yml` gespeichert.
|
||||
|
||||
---
|
||||
|
||||
## Anti-Camp System
|
||||
|
||||
Campen ist verboten. Das Plugin erkennt automatisch Spieler die sich zu lange nicht bewegen und bestraft sie.
|
||||
|
||||
### Wie es funktioniert
|
||||
|
||||
1. Das Plugin prüft jede Sekunde ob ein Spieler sich bewegt hat
|
||||
2. Hat er sich weniger als **5 Blöcke** (einstellbar) bewegt, gilt das als „still stehen"
|
||||
3. Nach **5 Sekunden** (einstellbar) Stillstand erscheint eine Warnung
|
||||
4. Nach **15 Sekunden** (einstellbar) beginnt der Punkte-Abzug: **−10 Punkte pro Sekunde**
|
||||
|
||||
### Ausnahmen (kein Anti-Camp)
|
||||
|
||||
- Spieler die **getroffen wurden** und warten müssen → ausgenommen
|
||||
- Spieler die sich **an ihrer Basis heilen** (innerhalb von 8 Blöcken) → ausgenommen
|
||||
|
||||
### Einstellbare Modi
|
||||
|
||||
In der `config.yml` unter `anti-camp.action` kannst du das Verhalten wählen:
|
||||
|
||||
| Modus | Beschreibung |
|
||||
|-------|-------------|
|
||||
| `WARN_ONLY` | Nur Warnung, kein Punkte-Abzug |
|
||||
| `WARN_THEN_PUNISH` | Warnung, dann Punkte-Abzug (Standard) |
|
||||
| `PUNISH_ONLY` | Direkt Punkte-Abzug ohne vorherige Warnung |
|
||||
|
||||
### Action-Bar Anzeige
|
||||
|
||||
Wenn sich ein Spieler lange nicht bewegt, erscheint in der Action-Bar ein roter Fortschrittsbalken:
|
||||
```
|
||||
Kills: 3 Punkte: 300 Team: Rot Zeit: 3:45 | Camp: ████░░
|
||||
```
|
||||
Der Balken füllt sich bis zur Strafe.
|
||||
|
||||
---
|
||||
|
||||
## Mod-Schutz (Minimap)
|
||||
|
||||
Das Plugin enthält Maßnahmen gegen Minimap-Mods wie **Xaero's Minimap**, **VoxelMap** und ähnliche.
|
||||
|
||||
### Was das Plugin tut
|
||||
|
||||
**Fog-of-War:**
|
||||
Spieler die weiter als **48 Blöcke** (einstellbar) entfernt sind, werden für andere Spieler unsichtbar gemacht. Da Minimap-Mods nur sehen können was der Spieler selbst sieht, erscheinen diese Gegner **nicht auf der Karte**. Das eigene Team bleibt immer sichtbar.
|
||||
|
||||
**Nametags verstecken:**
|
||||
Die Spielernamen über den Köpfen der Gegner werden ausgeblendet. Mods die Spielernamen auf der Minimap anzeigen können diese damit nicht mehr lesen.
|
||||
|
||||
**Tab-Liste anpassen:**
|
||||
Die echten Spielernamen in der Tab-Liste werden durch Team-Tags ersetzt (z.B. `[R] SpielerName`). Das verhindert dass Mods Positionen über die Tab-Liste auslesen.
|
||||
|
||||
### Was das Plugin nicht verhindern kann
|
||||
|
||||
Ohne externe Bibliotheken (ProtocolLib) ist es technisch nicht möglich:
|
||||
- Chunk-basierte Karten vollständig zu blockieren
|
||||
- F3-Koordinaten zu verstecken (das ist clientseitig)
|
||||
- Die Minimap komplett zu deaktivieren
|
||||
|
||||
Für maximalen Schutz empfehlen wir zusätzlich ein **Anticheat-Plugin** sowie Serverregeln die Minimap-Mods ausdrücklich verbieten.
|
||||
|
||||
### Einstellungen
|
||||
|
||||
Alle Mod-Schutz-Optionen können in der `config.yml` unter `mod-protection` ein- und ausgeschaltet werden. Den aktuellen Status siehst du mit:
|
||||
|
||||
```
|
||||
/ltadmin modinfo
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Scoreboard
|
||||
|
||||
Das Scoreboard wird während des Spiels rechts im Bildschirm angezeigt und aktualisiert sich jede Sekunde.
|
||||
|
||||
```
|
||||
╔═════════════════════╗
|
||||
║ ⚡ LASERTEC ║
|
||||
║ ─────────────────── ║
|
||||
║ ⏰ Zeit: 3:47 ║
|
||||
║ ─────────────────── ║
|
||||
║ Team-Punkte: ║
|
||||
║ ● Rot | 520pts |█████║
|
||||
║ ● Blau | 380pts |████░║
|
||||
║ ● Grün | 240pts |███░░║
|
||||
║ ● Gelb | 100pts |█░░░░║
|
||||
║ ─────────────────── ║
|
||||
║ Status: ✔ Aktiv ║
|
||||
║ Kills: 4 | Tode: 1 ║
|
||||
║ Punkte: 460 ║
|
||||
║ 🔥 Serie: ×4 ║
|
||||
║ ─────────────────── ║
|
||||
║ www.lasertec.de ║
|
||||
╚═════════════════════╝
|
||||
```
|
||||
|
||||
**Erklärung der Einträge:**
|
||||
|
||||
- **Zeit** — Verbleibende Spielzeit
|
||||
- **Team-Punkte** — Alle vier Teams sortiert nach Punkten mit Basis-HP-Balken
|
||||
- **Status** — `✔ Aktiv` wenn spielbereit, `☠ Getroffen` oder `⚕ Heilend` wenn gesperrt
|
||||
- **Kills / Tode** — Eigene Statistik in dieser Runde
|
||||
- **Punkte** — Eigene Gesamtpunkte in dieser Runde
|
||||
- **Serie** — Aktuelle Kill-Serie (erscheint nur ab 3 in Folge)
|
||||
|
||||
---
|
||||
|
||||
## Spieler-Befehle
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
|--------|-------------|
|
||||
| `/lt join` | Tritt dem am besten gefüllten verfügbaren Spiel bei |
|
||||
| `/lt join <Arena>` | Tritt einer bestimmten Arena bei |
|
||||
| `/lt leave` | Verlässt das aktuelle Spiel |
|
||||
| `/lt list` | Zeigt alle Arenen mit Status und Spieleranzahl |
|
||||
| `/lt stats` | Zeigt deine persönlichen Gesamt-Statistiken |
|
||||
| `/lt top` | Zeigt die Top-10 Spieler nach Gesamtpunkten |
|
||||
| `/lt help` | Zeigt die Befehlsübersicht |
|
||||
|
||||
**Aliase:** `/lasertec` und `/laser` funktionieren genauso wie `/lt`
|
||||
|
||||
### Statistik-Anzeige (`/lt stats`)
|
||||
|
||||
```
|
||||
════════════════════════════
|
||||
⚡ DEINE STATISTIKEN
|
||||
════════════════════════════
|
||||
Spiele gespielt: 47
|
||||
Kills gesamt: 312
|
||||
Tode gesamt: 198
|
||||
K/D-Ratio: 1.58
|
||||
Punkte gesamt: 34.750
|
||||
Beste Kill-Serie: 8
|
||||
Basis-Angriffe: 63
|
||||
════════════════════════════
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Admin-Befehle
|
||||
|
||||
Alle Admin-Befehle erfordern die Berechtigung `lasertec.admin` (Standard: OP).
|
||||
|
||||
### Arena-Verwaltung
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
|--------|-------------|
|
||||
| `/ltadmin create <Name>` | Erstellt eine neue Arena |
|
||||
| `/ltadmin delete <Name>` | Löscht eine Arena dauerhaft |
|
||||
| `/ltadmin enable <Name>` | Aktiviert eine fertig eingerichtete Arena |
|
||||
| `/ltadmin disable <Name>` | Deaktiviert eine Arena (Spieler können nicht mehr beitreten) |
|
||||
| `/ltadmin info <Name>` | Zeigt alle Details einer Arena (Spawns, Basen, Status) |
|
||||
|
||||
### Spawn & Basis setzen
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
|--------|-------------|
|
||||
| `/ltadmin setspawn <Arena> <Team>` | Setzt einen Spawn-Punkt an deiner Position (Teams: `red`, `blue`, `green`, `yellow`) |
|
||||
| `/ltadmin setbase <Arena> <Team>` | Setzt den Basis-Block an deiner Position |
|
||||
| `/ltadmin setlobby` | Setzt den Lobby-Spawn an deiner Position |
|
||||
|
||||
### Spiel-Steuerung
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
|--------|-------------|
|
||||
| `/ltadmin forcestart <Arena>` | Startet den Countdown oder das Spiel sofort |
|
||||
| `/ltadmin forcestop <Arena>` | Beendet das laufende Spiel sofort |
|
||||
|
||||
### Weitere Befehle
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
|--------|-------------|
|
||||
| `/ltadmin reload` | Lädt die `config.yml` neu (kein Server-Neustart nötig) |
|
||||
| `/ltadmin modinfo` | Zeigt den Status des Mod-Schutzes und was er leistet |
|
||||
| `/ltadmin signs` | Zeigt wie viele Join-Schilder registriert sind |
|
||||
| `/ltadmin help` | Zeigt alle Admin-Befehle |
|
||||
|
||||
---
|
||||
|
||||
## Berechtigungen
|
||||
|
||||
| Permission | Standard | Beschreibung |
|
||||
|-----------|---------|-------------|
|
||||
| `lasertec.play` | Alle Spieler | Darf Spielen beitreten und Spieler-Befehle nutzen |
|
||||
| `lasertec.admin` | OP | Darf alle Admin-Befehle nutzen und Schilder erstellen/entfernen |
|
||||
|
||||
Berechtigungen können über jedes Permissions-Plugin (z.B. LuckPerms) vergeben werden:
|
||||
|
||||
```
|
||||
# Beispiel LuckPerms — Spieler-Gruppe
|
||||
/lp group default permission set lasertec.play true
|
||||
|
||||
# Beispiel LuckPerms — Admin-Gruppe
|
||||
/lp group admin permission set lasertec.admin true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Vollständige config.yml
|
||||
|
||||
Die Datei befindet sich unter `plugins/Lasertec/config.yml`. Nach Änderungen kannst du `/ltadmin reload` nutzen — **kein Server-Neustart erforderlich.**
|
||||
|
||||
```yaml
|
||||
# ============================================================
|
||||
# LASERTEC v3.0 — Vollständige Konfiguration
|
||||
# Alle Werte hier können ohne Neustart geändert werden:
|
||||
# /ltadmin reload
|
||||
# ============================================================
|
||||
|
||||
# ── Allgemeines ──────────────────────────────────────────────
|
||||
messages:
|
||||
prefix: "§8[§b§lLASERTEC§8] §r"
|
||||
|
||||
lobby:
|
||||
location: null # Wird per /ltadmin setlobby gesetzt
|
||||
|
||||
# ── Spiel-Grundeinstellungen ─────────────────────────────────
|
||||
game:
|
||||
game-duration: 300 # Spielzeit in Sekunden
|
||||
countdown: 10 # Countdown-Sekunden vor Spielstart
|
||||
min-players: 2 # Mindestspieler (alle Teams zusammen)
|
||||
max-players-per-team: 4 # Max. Spieler pro Team (×4 = 16 gesamt)
|
||||
end-display-time: 8 # Sekunden bis Reset nach Spielende
|
||||
|
||||
# ── Respawn / Hit-Mechanik ───────────────────────────────────
|
||||
heal:
|
||||
base-heal-time: 2 # Sekunden an der Basis zum Heilen
|
||||
base-radius: 4.0 # Radius um Basis-Block zum Heilen (in Blöcken)
|
||||
invincible-after-heal: true # Kurze Unverwundbarkeit nach Heilung
|
||||
invincible-duration: 60 # Ticks Unverwundbarkeit (60 Ticks = 3 Sekunden)
|
||||
|
||||
# ── Punkte-System ────────────────────────────────────────────
|
||||
scoring:
|
||||
kill-points: 100 # Punkte für Treffer auf Gegner
|
||||
base-attack-points: 60 # Punkte für Treffer auf Gegnerbasis
|
||||
base-destroy-bonus: 200 # Bonus wenn Basis vollständig zerstört wird
|
||||
streak-3-bonus: 50 # Extra-Punkte bei 3er Kill-Serie
|
||||
streak-5-bonus: 100 # Extra-Punkte bei 5er Kill-Serie
|
||||
streak-10-bonus: 250 # Extra-Punkte bei 10er Kill-Serie
|
||||
|
||||
# ── Basen ────────────────────────────────────────────────────
|
||||
base:
|
||||
health: 5 # Treffer bis Basis zerstört
|
||||
warn-at-hp: 2 # Team warnen wenn Basis-HP auf diesen Wert fällt
|
||||
regenerate: false # Basis-HP regenerieren während des Spiels?
|
||||
regenerate-interval: 60 # Sekunden zwischen Regeneration (wenn aktiviert)
|
||||
|
||||
# ── Anti-Camp System ─────────────────────────────────────────
|
||||
anti-camp:
|
||||
enabled: true
|
||||
max-idle-seconds: 15 # Max. Sekunden an gleicher Stelle
|
||||
idle-radius: 5.0 # Radius in Blöcken: weniger = "steht still"
|
||||
action: WARN_THEN_PUNISH # WARN_ONLY | WARN_THEN_PUNISH | PUNISH_ONLY
|
||||
warn-message: "§c⚠ CAMPEN VERBOTEN! Bewege dich oder verliere Punkte!"
|
||||
score-penalty: 10 # Punkte-Abzug pro Sekunde beim Campen
|
||||
warn-duration: 5 # Sekunden Warnung bevor Strafe beginnt
|
||||
exclude-base-radius: 8.0 # Basisbereich von Anti-Camp ausschließen
|
||||
warn-sound: BLOCK_NOTE_BLOCK_BASS
|
||||
warn-sound-pitch: 0.5
|
||||
|
||||
# ── Minimap / Mod-Schutz ─────────────────────────────────────
|
||||
mod-protection:
|
||||
enabled: true
|
||||
fog-of-war: true # Spieler außerhalb Radius unsichtbar machen
|
||||
fog-radius: 48 # Sichtbarer Radius in Blöcken
|
||||
arena-barrier: true
|
||||
hide-coordinates: true
|
||||
hide-from-tab: true # Spieler aus normaler Tab-Liste entfernen
|
||||
hide-nametags: true # Spieler-Nametags im Spiel verbergen
|
||||
strict-invisibility: true
|
||||
|
||||
# ── Join-Schild ──────────────────────────────────────────────
|
||||
join-sign:
|
||||
trigger-line: "[Lasertec]" # Erste Zeile des Schilds (exakt so schreiben!)
|
||||
color-waiting: "§a" # Grün = Wartend
|
||||
color-starting: "§e" # Gelb = Startet
|
||||
color-running: "§c" # Rot = Läuft
|
||||
color-full: "§8" # Grau = Voll
|
||||
update-interval: 20 # Schild-Update in Ticks (20 = 1 Sekunde)
|
||||
|
||||
# ── Waffen ───────────────────────────────────────────────────
|
||||
weapons:
|
||||
laser-gun:
|
||||
enabled: true
|
||||
display-name: "§b⚡ Laser-Pistole"
|
||||
damage: 25
|
||||
range: 30
|
||||
cooldown-ms: 300
|
||||
pellets: 1
|
||||
particle: END_ROD
|
||||
description: "Standard-Waffe. Zuverlässig & schnell."
|
||||
|
||||
sniper:
|
||||
enabled: true
|
||||
display-name: "§5🎯 Laser-Sniper"
|
||||
damage: 80
|
||||
range: 60
|
||||
cooldown-ms: 2000
|
||||
pellets: 1
|
||||
particle: DRAGON_BREATH
|
||||
description: "Hoher Schaden, lange Reichweite."
|
||||
|
||||
shotgun:
|
||||
enabled: true
|
||||
display-name: "§6💥 Laser-Shotgun"
|
||||
damage: 20
|
||||
range: 12
|
||||
cooldown-ms: 900
|
||||
pellets: 5
|
||||
particle: FLAME
|
||||
description: "5 Pellets gleichzeitig, kurze Reichweite."
|
||||
|
||||
rapid-fire:
|
||||
enabled: true
|
||||
display-name: "§a⚡⚡ Rapid-Fire"
|
||||
damage: 12
|
||||
range: 22
|
||||
cooldown-ms: 120
|
||||
pellets: 1
|
||||
particle: CRIT
|
||||
description: "Niedrig Schaden, sehr hohe Feuerrate."
|
||||
|
||||
# ── Sounds ───────────────────────────────────────────────────
|
||||
sounds:
|
||||
enabled: true # Alle Sounds auf einmal an/aus
|
||||
shoot: ENTITY_FIREWORK_ROCKET_BLAST
|
||||
shoot-pitch: 1.8
|
||||
shoot-volume: 0.4
|
||||
hit-shooter: BLOCK_NOTE_BLOCK_BELL
|
||||
hit-shooter-pitch: 2.0
|
||||
hit-victim: ENTITY_PLAYER_HURT
|
||||
heal-start: BLOCK_ENCHANTMENT_TABLE_USE
|
||||
heal-complete: ENTITY_EXPERIENCE_ORB_PICKUP
|
||||
heal-complete-pitch: 1.5
|
||||
base-hit: ENTITY_GENERIC_EXPLODE
|
||||
game-start: ENTITY_ENDER_DRAGON_GROWL
|
||||
game-end: UI_TOAST_CHALLENGE_COMPLETE
|
||||
countdown-tick: BLOCK_NOTE_BLOCK_PLING
|
||||
warning: BLOCK_NOTE_BLOCK_BASS
|
||||
streak-3: BLOCK_BELL_USE
|
||||
streak-5: ENTITY_PLAYER_LEVELUP
|
||||
streak-10: ENTITY_LIGHTNING_BOLT_THUNDER
|
||||
|
||||
# ── Partikel ─────────────────────────────────────────────────
|
||||
particles:
|
||||
enabled: true # Alle Partikel auf einmal an/aus
|
||||
laser-trail: true # Partikel-Strahl beim Schuss
|
||||
hit-effect: true # Partikel-Explosion beim Treffer
|
||||
hit-particle-count: 15 # Anzahl der Treffer-Partikel
|
||||
base-hit-effect: true # Explosion-Partikel beim Basisangriff
|
||||
heal-effect: true # Partikel beim Abschluss der Heilung
|
||||
|
||||
# ── Scoreboard ───────────────────────────────────────────────
|
||||
scoreboard:
|
||||
enabled: true
|
||||
title: "§b§l⚡ LASERTEC"
|
||||
show-team-scores: true
|
||||
show-base-health: true
|
||||
show-kill-streak: true # Nur bei Streak ≥ 3 anzeigen
|
||||
show-player-status: true
|
||||
update-interval: 20 # Ticks zwischen Updates
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Nachrichten anpassen
|
||||
|
||||
Alle Spieler-Nachrichten können in der `config.yml` unter `text:` angepasst werden. Platzhalter werden automatisch ersetzt.
|
||||
|
||||
| Schlüssel | Platzhalter | Beschreibung |
|
||||
|-----------|------------|-------------|
|
||||
| `join` | `{player}`, `{team}` | Wenn ein Spieler beitritt |
|
||||
| `leave` | `{player}` | Wenn ein Spieler das Spiel verlässt |
|
||||
| `game-start` | — | Spielstart-Ankündigung |
|
||||
| `game-end` | `{team}` | Sieger-Ankündigung |
|
||||
| `game-draw` | — | Bei Unentschieden |
|
||||
| `hit-shooter` | `{victim}`, `{pts}`, `{streak}` | Nachricht an den Schützen |
|
||||
| `hit-victim` | `{shooter}` | Nachricht an den Getroffenen |
|
||||
| `heal-start` | `{secs}` | Heilung gestartet |
|
||||
| `heal-interrupted` | — | Heilung abgebrochen |
|
||||
| `heal-complete` | — | Heilung abgeschlossen |
|
||||
| `base-attacked` | `{hp}`, `{max}` | Basis unter Beschuss |
|
||||
| `base-destroyed` | `{team}` | Basis zerstört |
|
||||
| `time-60` / `time-30` / `time-10` | — | Zeitmeldungen |
|
||||
| `streak-3` / `streak-5` / `streak-10` | `{player}` | Kill-Serien |
|
||||
|
||||
**Farb-Codes** werden mit `§` eingegeben (z.B. `§a` = Grün, `§c` = Rot, `§e` = Gelb, `§b` = Cyan, `§6` = Orange).
|
||||
|
||||
---
|
||||
|
||||
## Gespeicherte Dateien
|
||||
|
||||
Das Plugin legt folgende Dateien im Ordner `plugins/Lasertec/` an:
|
||||
|
||||
| Datei | Inhalt | Wann bearbeiten |
|
||||
|-------|--------|----------------|
|
||||
| `config.yml` | Alle Spieleinstellungen | Jederzeit, dann `/ltadmin reload` |
|
||||
| `arenas.yml` | Arena-Positionen (Spawns, Basen) | Wird automatisch gespeichert |
|
||||
| `signs.yml` | Positionen aller Join-Schilder | Wird automatisch gespeichert |
|
||||
| `stats.yml` | Spieler-Statistiken (dauerhaft) | Wird automatisch gespeichert |
|
||||
|
||||
> **Achtung:** `arenas.yml` und `signs.yml` bitte nicht manuell bearbeiten, da die Positionen in einem speziellen Format gespeichert werden. Nutze stattdessen die Admin-Befehle.
|
||||
|
||||
---
|
||||
|
||||
## Häufige Fragen & Probleme
|
||||
|
||||
**„Arena nicht bereit" beim Aktivieren**
|
||||
→ Tippe `/ltadmin info <Arena>` — das Plugin zeigt dir genau was noch fehlt.
|
||||
Häufigste Ursache: Ein oder mehrere Teams haben noch keinen Spawn oder keine Basis gesetzt.
|
||||
|
||||
---
|
||||
|
||||
**Spieler können der Arena nicht beitreten**
|
||||
→ Prüfe mit `/lt list` ob die Arena als `✔ Aktiv` angezeigt wird.
|
||||
→ Stelle sicher dass du `/ltadmin enable <Arena>` ausgeführt hast.
|
||||
→ Prüfe ob die maximale Spieleranzahl bereits erreicht ist.
|
||||
|
||||
---
|
||||
|
||||
**Der Basis-Block erscheint nicht beim Spielstart**
|
||||
→ Das ist kein Fehler — der Block erscheint nur wenn das Spiel **aktiv läuft**, nicht beim Setup.
|
||||
→ Stelle sicher dass der Bereich an der Basis-Position nicht durch andere Blöcke blockiert wird.
|
||||
|
||||
---
|
||||
|
||||
**Spieler heilen nicht an der Basis**
|
||||
→ Der Spieler muss sich innerhalb von **4 Blöcken** (einstellbar: `heal.base-radius`) um den gesetzten Basis-Punkt befinden.
|
||||
→ Prüfe mit `/ltadmin info <Arena>` ob die Basis korrekt gesetzt ist.
|
||||
→ Die Heilung bricht ab wenn der Spieler sich zu weit entfernt — er muss stillhalten.
|
||||
|
||||
---
|
||||
|
||||
**Anti-Camp bestraft Spieler an der Basis**
|
||||
→ Erhöhe den Wert `anti-camp.exclude-base-radius` in der `config.yml`. Standard ist 8 Blöcke. Stelle sicher dass dieser Radius größer als `heal.base-radius` ist.
|
||||
|
||||
---
|
||||
|
||||
**Das Schild wird nicht erkannt**
|
||||
→ Zeile 1 muss exakt `[Lasertec]` lauten (Groß-/Kleinschreibung egal, aber Klammern und Schreibweise müssen stimmen).
|
||||
→ Zeile 2 muss exakt den Arenannamen enthalten, wie er mit `/ltadmin create` angelegt wurde.
|
||||
→ Der Spieler der das Schild erstellt muss die Berechtigung `lasertec.admin` haben.
|
||||
|
||||
---
|
||||
|
||||
**Änderungen in der config.yml wirken nicht**
|
||||
→ Führe `/ltadmin reload` aus. Laufende Spiele übernehmen neue Werte erst bei der nächsten Runde.
|
||||
|
||||
---
|
||||
|
||||
**Spieler verlassen das Spiel nicht richtig (Inventar bleibt)**
|
||||
→ Das Inventar wird beim Verlassen (`/lt leave`) oder bei Server-Disconnect automatisch wiederhergestellt.
|
||||
→ Sollte das nicht klappen: `/ltadmin forcestop <Arena>` beendet das Spiel für alle Spieler sofort.
|
||||
|
||||
---
|
||||
|
||||
*Lasertec v1.0.0 — Spigot / Paper 1.20.1*
|
||||
Reference in New Issue
Block a user