aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-03-08 19:35:56 -0500
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-05-24 19:51:46 -0400
commit7675f7569b381c8b9cbf36e2e69e716737455069 (patch)
tree30203444081474886e3741f0fea2fb378dbb3109 /src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java
parentf6ba429409ac73ee45992fd80e527c96b39e52e3 (diff)
downloadSkyblocker-7675f7569b381c8b9cbf36e2e69e716737455069.tar.gz
Skyblocker-7675f7569b381c8b9cbf36e2e69e716737455069.tar.bz2
Skyblocker-7675f7569b381c8b9cbf36e2e69e716737455069.zip
Update Skytils format to codecs
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java
index 89c3f051..8eeae2aa 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/Waypoints.java
@@ -29,6 +29,7 @@ import java.util.List;
public class Waypoints {
private static final Logger LOGGER = LoggerFactory.getLogger(Waypoints.class);
private static final Codec<List<WaypointCategory>> CODEC = WaypointCategory.CODEC.listOf();
+ private static final Codec<List<WaypointCategory>> SKYTILS_CODEC = WaypointCategory.SKYTILS_CODEC.listOf();
private static final Path waypointsFile = FabricLoader.getInstance().getConfigDir().resolve(SkyblockerMod.NAMESPACE).resolve("waypoints.json");
static final Multimap<String, WaypointCategory> waypoints = MultimapBuilder.hashKeys().arrayListValues().build();
@@ -48,16 +49,22 @@ public class Waypoints {
}
}
- public static Collection<WaypointCategory> fromSkytilsBase64(String base64) {
+ public static List<WaypointCategory> fromSkytilsBase64(String base64) {
return fromSkytilsJson(new String(Base64.getDecoder().decode(base64)));
}
- public static Collection<WaypointCategory> fromSkytilsJson(String waypointCategories) {
- JsonObject waypointCategoriesJson = SkyblockerMod.GSON.fromJson(waypointCategories, JsonObject.class);
- return waypointCategoriesJson.getAsJsonArray("categories").asList().stream()
- .map(JsonObject.class::cast)
- .map(WaypointCategory::fromSkytilsJson)
- .toList();
+ public static List<WaypointCategory> fromSkytilsJson(String waypointCategories) {
+ return SKYTILS_CODEC.parse(JsonOps.INSTANCE, SkyblockerMod.GSON.fromJson(waypointCategories, JsonObject.class).getAsJsonArray("categories")).resultOrPartial(LOGGER::error).orElseThrow();
+ }
+
+ public static String toSkytilsBase64(Collection<WaypointCategory> waypointCategories) {
+ return Base64.getEncoder().encodeToString(toSkytilsJson(waypointCategories).getBytes());
+ }
+
+ public static String toSkytilsJson(Collection<WaypointCategory> waypointCategories) {
+ JsonObject waypointCategoriesJson = new JsonObject();
+ waypointCategoriesJson.add("categories", SKYTILS_CODEC.encodeStart(JsonOps.INSTANCE, List.copyOf(waypointCategories)).resultOrPartial(LOGGER::error).orElseThrow());
+ return SkyblockerMod.GSON.toJson(waypointCategoriesJson);
}
public static void saveWaypoints(MinecraftClient client) {