-
Notifications
You must be signed in to change notification settings - Fork 2
API
Version: v1.5.0
Für manche Funktionen wie zum Beispiel Hausverbote, braucht man einen zentralen Speicher, um diese allen Spielern zur Verfügung zu stellen. Des Weiteren ist durch einen zentralen Speicher auch eine schnellere Anpassung möglich. Wenn zum Beispiel ein neuer Navipunkt gewünscht war, hätte man auf ein Update warten müssen. Ab der v1.5.0 werden Navipunkte von der API zur Verfügung gestellt und können direkt über das Spiel hinzugefügt werden.
Ein weiterer Grund für eine API war, dass es sicherer ist. Wir haben eine Liste von Navipunkten von UnicaCity bekommen unter der Voraussetzung, dass diese nicht veröffentlicht wird. Bis jetzt haben wir das über ein Environment Secret in GitHub gelöst. Durch die API ist es möglich die Liste über einen Endpunkt bereit zu stellen. Den Zugriff auf diese Endpunkte können wir besser schützen und die Liste ist nicht mehr durch Dekompilierung zu finden.
Die Autorisierung erfolgt über ein Token, das beim Start des Spiels generiert wird. Diese Token ist mit der UUID des Spielers verknüpft und ermöglicht dadurch ein einfaches Zugriffs-Management. Zum Beispiel bei Hausverboten darf nur der Rettungsdienst sehen, wer das Hausverbot eingetragen hat. Die UUID ermöglicht eine Abfrage, in welcher Fraktion der Spieler ist.
Das von uns generierte Token ist ein Hash aus der UUID des Spielers, einem Secret (Salt) und dem Mojang Session Token. Dieses wird mit dem Mojang Session Token an den Token Endpunkt gesendet. Über das mitgelieferte Mojang Session Token wird das Token validiert und anschließend nur das Token und die UUID des Spielers gespeichert. Das Mojang Session Token wird nicht weiter benutzt oder gespeichert.
Welche Daten speichern wir?
Entries | Fields |
---|---|
BlacklistEntry |
reason Blacklistgrundprice Blacklistpreiskills Blacklistkillanzahlissuer UUID des Spielers, der den Blacklistgrund hinzugefügt hat |
HouseBanEntry |
uuid UUID des Spielers mit dem hausverbothouseBanReasonList Liste mit Hausverbotgründen des SpielersstartTime Beginn des Hausverbots |
HouseBanReason |
reason Hausverbotgrunddays Anzahl der Tage des Hausverbotgrundesissuer UUID des Spielers, der den Hausverbotgrund hinzugefügt hat |
NaviPointEntry |
name Name des Navipunktesx x-Koordinatey y-KoordinateZ z-Koordinate |
PlayerGroup | uuid UUID des Spielers |
StatisticEntry |
uuid UUID des Spielerskills Anzahl der Killsdeaths Anzahl der Toderevives Anzahl der Revivesservices Anzahl der ServicesplayTime Anzahl der PayDays (Spielzeit) |
TokenEntry |
uuid UUID des Spielerstoken Token des Spielersversion Version des Addonstime Zeitpunkt der Registrierung |
WantedEntry |
reason Wantedgrundpoints Wantedpointsissuer UUID des Spielers, der den Wantedgrund hinzugefügt hat |
Welche Endpunkte stellen wir zur Verfügung?
No. | Request | Permission |
---|---|---|
1 | GET /blacklistreason/{factionString}
|
NONE |
2 | GET /blacklistreason/{factionString}/add reason : Stringprice : Integerkills : Integer |
Rettungsdienst[3-6] |
3 | GET /blacklistreason/{factionString}/remove reason : String |
Rettungsdienst[4-6] |
No. | Request | Permission |
---|---|---|
1 | GET /broadcast/queue
|
NONE |
2 | GET /broadcast/send message : String |
ADMIN |
No. | Request | Permission |
---|---|---|
1 | GET /houseban advanced : Boolean |
advanced: true - Rettungsdienst advanced: false - NONE
|
2 | GET /houseban/add name : Stringreason : String |
Rettungsdienst[3-6] |
3 | GET /houseban/remove name : Stringreason : String |
Rettungsdienst[4-6] |
No. | Request | Permission |
---|---|---|
1 | GET /housebanreason
|
advanced: true - Rettungsdienst advanced: false - NONE
|
2 | GET /housebanreason/add reason : Stringdays : Integer |
Rettungsdienst[4-6] |
3 | GET /housebanreason/remove reason : String |
Rettungsdienst[4-6] |
No. | Request | Permission |
---|---|---|
1 | GET /mgmt/health
|
ADMIN |
2 | GET /mgmt/user
|
ADMIN |
No. | Request | Permission |
---|---|---|
1 | GET /navipoint
|
NONE |
2 | GET /navipoint/add name : Stringx : Integery : Integerz : Integer |
ADMIN |
3 | GET /navipoint/remove name : String |
ADMIN |
No. | Request | Permission |
---|---|---|
1 | GET /player/
|
NONE |
2 | GET /player/groups
|
NONE |
3 | GET /player/add name : Stringgroup : String |
ADMIN |
4 | GET /player/remove name : Stringgroup : String |
ADMIN |
No. | Request | Permission |
---|---|---|
1 | GET /statistic/
|
NONE |
2 | GET /statistic/addKill
|
NONE |
3 | GET /statistic/addDeath
|
NONE |
4 | GET /statistic/addRevive
|
NONE |
5 | GET /statistic/addService
|
NONE |
6 | GET /statistic/addPlayTime v1.6.0
|
NONE |
No. | Request | Permission |
---|---|---|
1 | GET /create authToken : JWT OAuth Tokenversion : String v1.6.0
|
NONE |
2 | GET /revoke
|
NONE |
No. | Request | Permission |
---|---|---|
1 | GET /wantedreason
|
NONE |
2 | GET /wantedreason/add reason : Stringpoints : Integer |
Polizei[4-6] |
3 | GET /wantedreason/remove reason : String |
Polizei[4-6] |