| Total Complexity | 2 | 
| Total Lines | 31 | 
| Duplicated Lines | 0 % | 
| Changes | 0 | ||
| 1 | package de.kleiner3.lasertag.lasertaggame.teammanagement.serialize; | ||
| 14 | public class TeamDtoSerializer { | ||
| 15 | /** | ||
| 16 | * Build a GsonBuilder for the Team | ||
| 17 | * @return The GsonBuilder designed for the Team | ||
| 18 | */ | ||
| 19 |     public static GsonBuilder getSerializer() { | ||
| 20 | // Create builder | ||
| 21 | var gsonBuilder = new GsonBuilder(); | ||
| 22 | |||
| 23 | // Create serializer for TeamDto | ||
| 24 |         var serializer = new JsonSerializer<TeamDto>() { | ||
| 25 | @Override | ||
| 26 |             public JsonElement serialize(TeamDto teamDto, Type type, JsonSerializationContext jsonSerializationContext) { | ||
| 27 | var jsonObject = new JsonObject(); | ||
| 28 | |||
| 29 | // Add RGB | ||
| 30 |                 jsonObject.addProperty("red", teamDto.color().r()); | ||
| 31 |                 jsonObject.addProperty("green", teamDto.color().g()); | ||
| 32 |                 jsonObject.addProperty("blue", teamDto.color().b()); | ||
| 33 | |||
| 34 | // Add spawnpoint block | ||
| 35 |                 jsonObject.addProperty("spawnpointBlock", Registry.BLOCK.getId(teamDto.spawnpointBlock()).toString()); | ||
| 36 | |||
| 37 | return jsonObject; | ||
| 38 | } | ||
| 39 | }; | ||
| 40 | |||
| 41 | // Register serializer for TeamDto | ||
| 42 | gsonBuilder.registerTypeAdapter(TeamDto.class, serializer); | ||
| 43 | |||
| 44 | return gsonBuilder; | ||
| 45 | } | ||
| 47 |