Konfiguration
Drei Hauptbestandteile:
plugins/kginfoservs_queststrack/config.yml— Allgemeine Plugin-Konfigurationplugins/kginfoservs_queststrack/quests_config.yml— Texte, Schritte und Ziele der Questsplugins/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).
Menue-Kategorien (menuItems.categories)
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
| Eigenschaft | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
displayName | Nein | Konfigurationsschluessel | Im GUI-Menue angezeigter Name. Diesen Wert verwenden Sie in questCategory von BetonQuest. |
material | Ja | — | Minecraft-Material fuer das Symbol (z.B. WRITABLE_BOOK, CLOCK) |
customModelData | Nein | 0 | Custom Model Data fuer Ressourcenpaket |
autoTrack | Nein | false | Wenn true, werden Quests dieser Kategorie automatisch zum Scoreboard-Tracking hinzugefuegt, wenn sie aktiviert werden |
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
Navigation im Menue
- Der Spieler oeffnet
/quests - Waehlt die Kategorie "Daily"
- Sieht die Unterkategorien (Monsters, Farming, Mining)
- Waehlt eine Unterkategorie
- Sieht die Quests dieser Unterkategorie
Jede Unterkategorie zeigt automatisch einen Fortschrittsbalken an, der den Prozentsatz der abgeschlossenen Quests angibt.
Menue-Schaltflaechen
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
| Schaltflaeche | Beschreibung |
|---|---|
toggleCompleted.visible | Symbol, wenn abgeschlossene Quests sichtbar sind |
toggleCompleted.hidden | Symbol, wenn abgeschlossene Quests ausgeblendet sind |
nextPage | Schaltflaeche fuer naechste Seite |
prevPage | Schaltflaeche fuer vorherige Seite |
closeButton | Schaltflaeche 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
| Datei | Sprache |
|---|---|
fr-FR.yml | Franzoesisch |
en-US.yml | Englisch |
de-DE.yml | Deutsch |
pt-BR.yml | Brasilianisches Portugiesisch |
pl-PL.yml | Polnisch |
Die verwendete Sprache wird durch die Einstellung language in der BetonQuest-Konfiguration bestimmt (serverweit).
Schluesselkategorien
Jede Sprachdatei ist in Abschnitte gegliedert:
| Praefix | Beschreibung |
|---|---|
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"
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
- Kopieren Sie eine vorhandene Datei (z.B.
en-US.yml) und benennen Sie sie mit dem gewuenschten Locale um (z.B.es-ES.yml) - Uebersetzen Sie alle Werte (die Schluessel muessen identisch bleiben)
- Setzen Sie
language: es-ESin der BetonQuest-Konfiguration - Fuehren Sie
/questsreloadaus
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>"
| Eigenschaft | Standard | Beschreibung |
|---|---|---|
enabled | true | Aktiviert/deaktiviert das Scoreboard global fuer alle Spieler. Wenn false, wird kein Scoreboard erstellt. |
title | Lila-roter Farbverlauf | Titel des Scoreboards (MiniMessage-Format) |
separator | Lila-roter Farbverlauf | Trennlinie zwischen den Quests im Scoreboard (MiniMessage-Format) |
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.
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
| Eigenschaft | Standard | Beschreibung |
|---|---|---|
enabled | true | Aktiviert/deaktiviert die Platzhalter %kgquetes_*% |
Deaktivieren Sie dies, wenn Sie PlaceholderAPI nicht verwenden, um Redis-/Datenbankaufrufe zu reduzieren.
Verfuegbare Platzhalter
Praefix: %kgquetes_
| Platzhalter | Beschreibung |
|---|---|
%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
| Eigenschaft | Standard | Beschreibung |
|---|---|---|
maxSize | 30 | Maximale Anzahl von Verbindungen im HikariCP-Pool |
minIdle | 5 | Minimale Anzahl inaktiver Verbindungen |
connectionTimeoutMs | 10000 | Maximale Wartezeit fuer eine Verbindung (10s) |
idleTimeoutMs | 300000 | Schliesst inaktive Verbindungen nach 5 Minuten |
- ~100 Spieler: Standardwerte (maxSize: 30)
- 500+ Spieler: Erhoehen Sie
maxSizeauf 50 - 1000+ Spieler: Erhoehen Sie
maxSizeauf 80-100
Automatische Updates (updater)
updater:
auto-download: false
| Eigenschaft | Standard | Beschreibung |
|---|---|---|
auto-download | false | Wenn 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: ""
| Eigenschaft | Standard | Beschreibung |
|---|---|---|
enabled | true | Aktiviert/deaktiviert die Redis-Synchronisierung |
host | "127.0.0.1" | Adresse des Redis-Servers |
port | 6379 | Port 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
| Schluessel | Erforderlich | Beschreibung |
|---|---|---|
title | Ja | Titel der Quest (unterstuetzt MiniMessage) |
locked_description | Nein | Text, der angezeigt wird, wenn die Quest gesperrt ist |
finished_text | Nein | Text, der angezeigt wird, wenn die Quest abgeschlossen ist |
steps | Ja | Quest-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>"
| Eigenschaft | Beschreibung |
|---|---|
id | Kennung des Ziels (muss mit dem BetonQuest-Ziel uebereinstimmen) |
inprogress | Text, der angezeigt wird, wenn das Ziel in Bearbeitung ist (unterstuetzt BetonQuest-Platzhalter) |
completed | Text, der angezeigt wird, wenn das Ziel abgeschlossen ist |
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
- Bearbeiten Sie
config.ymloderquests_config.yml - Fuehren Sie
/questsreloadaus - Ueberpruefen Sie im Spiel
Siehe auch
- BetonQuest-Integration — Events und Tags konfigurieren
- Befehle — Befehle zum Neuladen
- Multi-Server — Redis-Konfiguration