Zum Hauptinhalt springen

Konfiguration

Drei Hauptbestandteile:

  • plugins/kginfoservs_queststrack/config.yml — Allgemeine Plugin-Konfiguration
  • plugins/kginfoservs_queststrack/quests_config.yml — Texte, Schritte und Ziele der Quests
  • plugins/kginfoservs_queststrack/lang/<locale>.yml — Uebersetzungsdateien (fr-FR, en-US, de-DE, pt-BR, pl-PL)

config.yml — Vollstaendige Referenz

Hier ist die vollstaendige Struktur der Datei config.yml mit allen verfuegbaren Optionen.

Standardkategorie (defaultCategory)

defaultCategory: "other"

Kategorie, die fuer Quests verwendet wird, die kein questParameters.questCategory in ihrer BetonQuest-Konfiguration angeben. Der Wert muss dem Konfigurationsschluessel einer Kategorie entsprechen (nicht dem displayName).

Die Kategorien organisieren die Quests im GUI-Menue. Sie koennen bis zu 4 Kategorien definieren. Jede Kategorie ist vollstaendig anpassbar.

menuItems:
categories:
story:
displayName: "Story"
material: WRITABLE_BOOK
customModelData: 0
autoTrack: true
secondary:
displayName: "Secondary"
material: BOOK
customModelData: 0
autoTrack: false
dailyQuests:
displayName: "Daily"
material: CLOCK
customModelData: 0
autoTrack: false
other:
displayName: "Other"
material: BOOKSHELF
customModelData: 0
autoTrack: false

Eigenschaften einer Kategorie

EigenschaftErforderlichStandardBeschreibung
displayNameNeinKonfigurationsschluesselIm GUI-Menue angezeigter Name. Diesen Wert verwenden Sie in questCategory von BetonQuest.
materialJaMinecraft-Material fuer das Symbol (z.B. WRITABLE_BOOK, CLOCK)
customModelDataNein0Custom Model Data fuer Ressourcenpaket
autoTrackNeinfalseWenn true, werden Quests dieser Kategorie automatisch zum Scoreboard-Tracking hinzugefuegt, wenn sie aktiviert werden
displayName und questCategory

Der Wert von questCategory in BetonQuest muss exakt mit dem displayName der Kategorie uebereinstimmen (Gross-/Kleinschreibung und Akzente beachten).

Beispiel: Wenn Ihre Kategorie displayName: "Taeglich" hat, muessen Ihre Quests questCategory: "Taeglich" haben (nicht "taeglich" oder "TAEGLICH").

Wenn kein displayName definiert ist, wird der Konfigurationsschluessel verwendet (z.B. dailyQuests).

Unterkategorien

Jede Kategorie kann Unterkategorien fuer eine feinere Organisation haben:

menuItems:
categories:
dailyQuests:
displayName: "Daily"
material: CLOCK
customModelData: 0
autoTrack: false
subcategories:
monsters:
displayName: "Monsters"
material: ZOMBIE_HEAD
farming:
displayName: "Farming"
material: NETHERITE_HOE
mining:
displayName: "Mining"
material: NETHERITE_PICKAXE

Um eine Quest in eine Unterkategorie einzuordnen, verwenden Sie das hierarchische Format mit Punkt in BetonQuest:

# In der package.yml der BetonQuest-Quest
questParameters:
questCategory: "Daily.Monsters"

Das Format ist: displayName_Kategorie.displayName_Unterkategorie

  1. Der Spieler oeffnet /quests
  2. Waehlt die Kategorie "Daily"
  3. Sieht die Unterkategorien (Monsters, Farming, Mining)
  4. Waehlt eine Unterkategorie
  5. Sieht die Quests dieser Unterkategorie

Jede Unterkategorie zeigt automatisch einen Fortschrittsbalken an, der den Prozentsatz der abgeschlossenen Quests angibt.

menuItems:
toggleCompleted:
visible:
material: LIME_DYE
customModelData: 0
hidden:
material: GRAY_DYE
customModelData: 0
nextPage:
material: PAPER
customModelData: 0
prevPage:
material: PAPER
customModelData: 0
closeButton:
material: BARRIER
customModelData: 0
SchaltflaecheBeschreibung
toggleCompleted.visibleSymbol, wenn abgeschlossene Quests sichtbar sind
toggleCompleted.hiddenSymbol, wenn abgeschlossene Quests ausgeblendet sind
nextPageSchaltflaeche fuer naechste Seite
prevPageSchaltflaeche fuer vorherige Seite
closeButtonSchaltflaeche zum Schliessen des Menues

Sprachdateien (lang)

Alle Texte des Plugins (Menues, Befehle, Scoreboard, Konsole usw.) sind in Sprachdateien ausgelagert, die sich im Ordner plugins/kginfoservs_queststrack/lang/ befinden.

Verfuegbare Sprachen

DateiSprache
fr-FR.ymlFranzoesisch
en-US.ymlEnglisch
de-DE.ymlDeutsch
pt-BR.ymlBrasilianisches Portugiesisch
pl-PL.ymlPolnisch

Die verwendete Sprache wird durch die Einstellung language in der BetonQuest-Konfiguration bestimmt (serverweit).

Schluesselkategorien

Jede Sprachdatei ist in Abschnitte gegliedert:

PraefixBeschreibung
command.*Befehlsnachrichten (Berechtigungen, Nutzung, Neuladen)
tracking.*Nachrichten zur Quest-Verfolgung (Hinzufuegen, Entfernen, Limit)
menu.*Texte des GUI-Menues (Titel, Schaltflaechen, Status, Lore-Format)
scoreboard.*Scoreboard-Nachrichten
console.*Start-/Herunterfahren-Nachrichten in der Konsole

Beispiel (Auszug aus en-US.yml)

command:
reload-success: "Quest plugin configuration reloaded."

tracking:
now-tracking: "You are now tracking the quest: {0}"
quest-tracked: "§a✔ Quest added to tracking (slot {0}/3): §r"

menu:
header: "Quests"
quest-active: "Active"
quest-finished: "Finished"
quest-locked: "Locked"
close-button: "Close"
rewards-title: "Rewards:"
lore-format:
objective-prefix: "<#55C4FF>› </#55C4FF><gray>"
separator: "<dark_gray><st> </st></dark_gray>"
reward-prefix: "<green>+</green> <white>"
status-prefix: "<gray>Status: </gray>"

scoreboard:
enabled: "✓ Quest scoreboard enabled"

console:
db-connected: "✓ Database connected"
MiniMessage-Format

Alle Uebersetzungen unterstuetzen das MiniMessage-Format. Beispiele:

  • <gold>Goldener Text</gold>
  • <#55C4FF>Hex-Farbe</#55C4FF>
  • <gradient:#800080:#D33D22>Farbverlauf</gradient>
  • <b>Fett</b>, <st>Durchgestrichen</st>, <i>Kursiv</i>

Eine neue Sprache hinzufuegen

  1. Kopieren Sie eine vorhandene Datei (z.B. en-US.yml) und benennen Sie sie mit dem gewuenschten Locale um (z.B. es-ES.yml)
  2. Uebersetzen Sie alle Werte (die Schluessel muessen identisch bleiben)
  3. Setzen Sie language: es-ES in der BetonQuest-Konfiguration
  4. Fuehren Sie /questsreload aus

Scoreboard

Das Scoreboard zeigt in Echtzeit die Ziele der vom Spieler verfolgten Quests an.

scoreboard:
enabled: true
title: "<gradient:#800080:#D33D22>◈KGInfoServs Quests◈</gradient>"
separator: "<gradient:#800080:#D33D22>--------------</gradient>"
EigenschaftStandardBeschreibung
enabledtrueAktiviert/deaktiviert das Scoreboard global fuer alle Spieler. Wenn false, wird kein Scoreboard erstellt.
titleLila-roter FarbverlaufTitel des Scoreboards (MiniMessage-Format)
separatorLila-roter FarbverlaufTrennlinie zwischen den Quests im Scoreboard (MiniMessage-Format)
Leistung

Wenn scoreboard.enabled: false gesetzt ist, werden keine Ressourcen fuer das Scoreboard verwendet (keine Ticks, keine Netzwerkpakete, kein Cache-Speicher). Dies ist die empfohlene Methode, wenn Sie ein externes Scoreboard-Plugin wie TAB verwenden.

Ereignisgesteuertes Scoreboard

Das Scoreboard erzeugt keine Ticks. Es wird nur aktualisiert, wenn ein Ereignis eintritt (Quest-Aktivierung, Fortschritt, Schrittwechsel). Selbst wenn es aktiviert ist, hat es praktisch keine Auswirkung auf die Leistung.

PlaceholderAPI

placeholders:
enabled: true
EigenschaftStandardBeschreibung
enabledtrueAktiviert/deaktiviert die Platzhalter %kgquetes_*%

Deaktivieren Sie dies, wenn Sie PlaceholderAPI nicht verwenden, um Redis-/Datenbankaufrufe zu reduzieren.

Verfuegbare Platzhalter

Praefix: %kgquetes_

PlatzhalterBeschreibung
%kgquetes_title%Titel der aktuell verfolgten Quest
%kgquetes_objective_1%Erste Zielzeile der verfolgten Quest
%kgquetes_objective_2%Zweite Zielzeile
%kgquetes_objective_N%N-te Zielzeile

Datenbankverbindungspool (database)

database:
pool:
maxSize: 30
minIdle: 5
connectionTimeoutMs: 10000
idleTimeoutMs: 300000
EigenschaftStandardBeschreibung
maxSize30Maximale Anzahl von Verbindungen im HikariCP-Pool
minIdle5Minimale Anzahl inaktiver Verbindungen
connectionTimeoutMs10000Maximale Wartezeit fuer eine Verbindung (10s)
idleTimeoutMs300000Schliesst inaktive Verbindungen nach 5 Minuten
Dimensionierung nach Spieleranzahl
  • ~100 Spieler: Standardwerte (maxSize: 30)
  • 500+ Spieler: Erhoehen Sie maxSize auf 50
  • 1000+ Spieler: Erhoehen Sie maxSize auf 80-100

Automatische Updates (updater)

updater:
auto-download: false
EigenschaftStandardBeschreibung
auto-downloadfalseWenn true, werden neue Versionen automatisch in plugins/update/ heruntergeladen. Die JAR wird beim naechsten Serverneustart angewendet.

Die Update-Pruefung erfolgt automatisch beim Start. Wenn eine neue Version verfuegbar ist, wird eine Nachricht in der Konsole angezeigt und Administratoren werden bei der Anmeldung benachrichtigt.

Sie koennen die Pruefung auch manuell mit /kgquests update ausloesen.

Redis

redis:
enabled: true
host: "127.0.0.1"
port: 6379
password: ""
EigenschaftStandardBeschreibung
enabledtrueAktiviert/deaktiviert die Redis-Synchronisierung
host"127.0.0.1"Adresse des Redis-Servers
port6379Port des Redis-Servers
password""Redis-Passwort (leer, wenn keines)

Siehe Multi-Server fuer die detaillierte Konfiguration.


quests_config.yml — Texte und Quest-Schritte

Diese Datei definiert den Textinhalt, die Schritte und die Ziele jeder Quest, die im Menue und im Scoreboard angezeigt werden.

Struktur einer Quest

quests:
ma_quete:
title: "<gold>Le Tresor Perdu</gold>"
locked_description: "Trouvez l'indice pour debloquer cette quete."
finished_text: "Felicitations ! Vous avez trouve le tresor !"
steps:
'1':
- "Parlez au marchand du village"
- "Achetez une carte au tresor"
'2':
- "Suivez la carte jusqu'a la foret"
- "Trouvez l'entree de la grotte"

Schluesselreferenz

SchluesselErforderlichBeschreibung
titleJaTitel der Quest (unterstuetzt MiniMessage)
locked_descriptionNeinText, der angezeigt wird, wenn die Quest gesperrt ist
finished_textNeinText, der angezeigt wird, wenn die Quest abgeschlossen ist
stepsJaQuest-Schritte mit Zielen

Format der Schritte (steps)

Die Schritte werden ab 1 nummeriert. Drei Formate sind moeglich:

Einfaches Format (Textliste)

steps:
'1':
- "Parlez au marchand"
- "Achetez une carte"
'2':
- "Suivez la carte"

Format mit text-Abschnitt

steps:
'1':
text:
- "Parlez au marchand"
- "Achetez une carte"

Format mit verfolgbaren Zielen

Dieses Format ermoeglicht die Verfolgung des individuellen Fortschritts jedes Ziels:

steps:
'1':
text:
- "Parlez au marchand"
objectives:
- id: "kill_zombies"
inprogress: "Tuer des zombies (%betonquest_ma_quete:objective.kill_zombies.amount%/%betonquest_ma_quete:objective.kill_zombies.absoluteamount%)"
completed: "<st>Zombies tues</st>"
- id: "collect_wood"
inprogress: "Collecter du bois (%betonquest_ma_quete:objective.collect_wood.amount%/%betonquest_ma_quete:objective.collect_wood.absoluteamount%)"
completed: "<st>Bois collecte</st>"
EigenschaftBeschreibung
idKennung des Ziels (muss mit dem BetonQuest-Ziel uebereinstimmen)
inprogressText, der angezeigt wird, wenn das Ziel in Bearbeitung ist (unterstuetzt BetonQuest-Platzhalter)
completedText, der angezeigt wird, wenn das Ziel abgeschlossen ist
BetonQuest-Platzhalter in Zielen

Verwenden Sie BetonQuest-Platzhalter, um den Fortschritt in Echtzeit anzuzeigen:

  • %betonquest_PACKAGE:objective.ID.amount% — Aktueller Fortschritt
  • %betonquest_PACKAGE:objective.ID.absoluteamount% — Erforderliche Gesamtzahl
  • %betonquest_PACKAGE:constant.KEY% — Quest-Konstanten

Beispiel: Zombies toeten (3/10) wird automatisch aktualisiert.

Vollstaendiges Beispiel

quests:
histoire_chapitre1:
title: "<gold>Le Reveil du Heros</gold>"
locked_description: "Commencez votre aventure en parlant au guide."
finished_text: "Vous avez fait vos premiers pas dans ce monde !"
steps:
'1':
- "Parlez au guide du village"
- "Acceptez la quete"
'2':
text:
- "Visitez la forge"
objectives:
- id: "visit_forge"
inprogress: "Se rendre a la forge"
completed: "<st>Forge visitee</st>"
- id: "get_sword"
inprogress: "Obtenir une epee"
completed: "<st>Epee obtenue</st>"
'3':
objectives:
- id: "kill_dummies"
inprogress: "Battre des mannequins (%betonquest_histoire_chapitre1:objective.kill_dummies.amount%/3)"
completed: "<st>Mannequins battus (3/3)</st>"

daily_minerai:
title: "<aqua>Collecte Quotidienne</aqua>"
locked_description: "Disponible chaque jour."
finished_text: "Beau travail, mineur !"
steps:
'1':
objectives:
- id: "mine_iron"
inprogress: "Miner du fer (%betonquest_daily_minerai:objective.mine_iron.amount%/32)"
completed: "<st>Fer mine (32/32)</st>"
- id: "mine_gold"
inprogress: "Miner de l'or (%betonquest_daily_minerai:objective.mine_gold.amount%/16)"
completed: "<st>Or mine (16/16)</st>"

Aenderungen anwenden

  1. Bearbeiten Sie config.yml oder quests_config.yml
  2. Fuehren Sie /questsreload aus
  3. Ueberpruefen Sie im Spiel

Siehe auch