Erfolge
Base: /api/achievements
Katalog, Rangliste und Spielerfortschritt eines optionalen Erfolge-Plugins
Endpunkte
/api/achievements/status
Erfolge-Status abfragen
Zeigt, ob ein Erfolge-Plugin installiert ist, und falls ja dessen API-Version, Plugin-Version und Variante (gameKey).
Antwort-Beispiel
{
"available": true,
"apiVersion": 1,
"pluginVersion": "1.3.5",
"gameKey": "vulkim"
}
cURL
curl -X GET 'http://localhost:5550/api/achievements/status' \
-H 'X-Admin-Token: YOUR_TOKEN'
Internes Verhalten
/api/achievements/categories
Kategorien auflisten
Liefert alle Erfolge-Kategorien mit Symbol, deutschem und englischem Namen und der Anzahl Erfolge je Kategorie.
Antwort-Beispiel
[
{
"id": "zeit",
"icon": "clock",
"name_de": "Spielzeit",
"name_en": "Playtime",
"total": 8
}
]
cURL
curl -X GET 'http://localhost:5550/api/achievements/categories' \
-H 'X-Admin-Token: YOUR_TOKEN'
Internes Verhalten
/api/achievements/achievements
Erfolge auflisten
Liefert den vollständigen Erfolge-Katalog mit Kategorie, Stufe, Ziel, Geltungsbereich, deutschem und englischem Namen und Beschreibung, ob er geheim ist, und wie oft er serverweit schon freigeschaltet wurde.
Antwort-Beispiel
[
{
"id": "spielzeit_10h",
"category": "zeit",
"tier": "bronze",
"hidden": false,
"goal": 36000,
"scope": "personal",
"name_de": "Durchhalten",
"name_en": "Staying Power",
"desc_de": "Verbringe 10 Stunden auf dem Server",
"desc_en": "Spend 10 hours on the server",
"unlockedCount": 42
}
]
cURL
curl -X GET 'http://localhost:5550/api/achievements/achievements' \
-H 'X-Admin-Token: YOUR_TOKEN'
Internes Verhalten
/api/achievements/players
Spieler auflisten
Liefert eine Seite der Spieler mit Anzahl Freischaltungen, Gesamtpunkten, letztem Login und Spielzeit.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
limit
|
integer | Nein | Seitengröße, Standard 25, maximal 500 |
offset
|
integer | Nein | Versatz für die nächste Seite, Standard 0 |
Antwort-Beispiel
[
{
"uuid": "5a6a1c2e-0000-0000-0000-000000000000",
"name": "Eranio",
"unlocked": 12,
"total": 340,
"lastSeen": 1760000000000,
"playtimeSeconds": 54000
}
]
cURL
curl -X GET 'http://localhost:5550/api/achievements/players?limit=25&offset=0' \
-H 'X-Admin-Token: YOUR_TOKEN'
Internes Verhalten
/api/achievements/player/{name}
Spielerprofil abfragen
Liefert Spielzeit, aktiven Titel, freigeschaltete Erfolge mit Zeitpunkt und den Fortschritt bei laufenden Erfolgen für einen Spieler.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
name
|
string | Ja | Spielername oder UUID |
Antwort-Beispiel
{
"uuid": "5a6a1c2e-0000-0000-0000-000000000000",
"name": "Eranio",
"playtimeSeconds": 54000,
"activeTitle": "Spielzeit Meister",
"unlocked": [
{
"id": "spielzeit_10h",
"unlockedAt": 1759999999000
}
],
"progress": [
{
"id": "spielzeit_50h",
"current": 36000,
"goal": 180000
}
]
}
cURL
curl -X GET 'http://localhost:5550/api/achievements/player/Eranio' \
-H 'X-Admin-Token: YOUR_TOKEN'
Internes Verhalten
/api/achievements/recent
Letzte Freischaltungen
Liefert die zuletzt freigeschalteten Erfolge serverweit mit Spieler, Erfolg und Zeitpunkt.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
limit
|
integer | Nein | Anzahl, Standard 20, maximal 200 |
Antwort-Beispiel
[
{
"player": "Eranio",
"achievement": "spielzeit_10h",
"at": 1759999999000
}
]
cURL
curl -X GET 'http://localhost:5550/api/achievements/recent?limit=20' \
-H 'X-Admin-Token: YOUR_TOKEN'
Internes Verhalten
/api/achievements/server-firsts
Server-Premieren auflisten
Liefert zu jedem als Server-Premiere geltenden Erfolg, wer ihn als Erster auf dem Server freigeschaltet hat.
Antwort-Beispiel
[
{
"achievement": "erster_boss",
"uuid": "5a6a1c2e-0000-0000-0000-000000000000",
"name": "Eranio",
"at": 1759999999000
}
]
cURL
curl -X GET 'http://localhost:5550/api/achievements/server-firsts' \
-H 'X-Admin-Token: YOUR_TOKEN'
Internes Verhalten
/api/achievements/grant
Erfolg vergeben
Schaltet einen Erfolg für einen Spieler frei.
Anfragekörper
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
player
|
string | Ja | Spielername oder UUID, muss online sein |
id
|
string | Ja | ID des Erfolgs |
Antwort-Beispiel
{
"success": true,
"player": "Eranio",
"id": "spielzeit_10h"
}
cURL
curl -X POST 'http://localhost:5550/api/achievements/grant' \
-H 'X-Admin-Token: YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"player": "Eranio", "id": "spielzeit_10h"}'
Internes Verhalten
/api/achievements/revoke
Erfolg entziehen
Entzieht einem Spieler einen bereits freigeschalteten Erfolg wieder.
Anfragekörper
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
player
|
string | Ja | Spielername oder UUID, muss online sein |
id
|
string | Ja | ID des Erfolgs |
Antwort-Beispiel
{
"success": true,
"player": "Eranio",
"id": "spielzeit_10h"
}
cURL
curl -X POST 'http://localhost:5550/api/achievements/revoke' \
-H 'X-Admin-Token: YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"player": "Eranio", "id": "spielzeit_10h"}'