diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt | 50 | ||||
-rw-r--r-- | src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt | 26 |
2 files changed, 44 insertions, 32 deletions
diff --git a/src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt b/src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt index 363fa0d7..9aac12e5 100644 --- a/src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt +++ b/src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt @@ -142,19 +142,23 @@ class WaypointShareGui : WindowScreen(newGuiScale = 2) { val arr = gson.fromJson(decoded, JsonArray::class.java) val results = arr.mapNotNull { e -> - e as JsonObject - Waypoint( - e["name"].asString, - BlockPos( - e["x"].asInt, - e["y"].asInt, - e["z"].asInt - ), - SkyblockIsland.values().find { - it.mode == e["island"].asString - } ?: return@mapNotNull null, - e["enabled"].asBoolean - ) + return@mapNotNull runCatching { + e as JsonObject + return@runCatching Waypoint( + e["name"].asString, + BlockPos( + e["x"].asInt, + e["y"].asInt, + e["z"].asInt + ), + SkyblockIsland.values().find { + it.mode == e["island"].asString + } ?: return@mapNotNull null, + e["enabled"].asBoolean + ) + }.onFailure { + it.printStackTrace() + }.getOrNull() } Waypoints.waypoints.addAll(results) PersistentSave.markDirty<Waypoints>() @@ -175,14 +179,18 @@ class WaypointShareGui : WindowScreen(newGuiScale = 2) { entries.values.filter { it.selected.checked }.forEach { - arr.add(JsonObject().apply { - addProperty("name", it.name.getText()) - addProperty("x", it.x.getText().toInt()) - addProperty("y", it.y.getText().toInt()) - addProperty("z", it.z.getText().toInt()) - addProperty("island", island.mode) - addProperty("enabled", true) - }) + runCatching { + arr.add(JsonObject().apply { + addProperty("name", it.name.getText()) + addProperty("x", it.x.getText().toInt()) + addProperty("y", it.y.getText().toInt()) + addProperty("z", it.z.getText().toInt()) + addProperty("island", island.mode) + addProperty("enabled", true) + }) + }.onFailure { + it.printStackTrace() + } } setClipboardString(Base64.encodeBase64String(gson.toJson(arr).encodeToByteArray())) EssentialAPI.getNotifications() diff --git a/src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt b/src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt index 60001162..121fba3b 100644 --- a/src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt +++ b/src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt @@ -123,18 +123,22 @@ class WaypointsGui : WindowScreen(newGuiScale = 2), ReopenableGUI { it.island == current } for (entry in entries.values) { - Waypoints.waypoints.add( - Waypoint( - entry.name.getText(), - BlockPos( - entry.x.getText().toInt(), - entry.y.getText().toInt(), - entry.z.getText().toInt() - ), - current, - entry.enabled.checked + runCatching { + Waypoints.waypoints.add( + Waypoint( + entry.name.getText(), + BlockPos( + entry.x.getText().toInt(), + entry.y.getText().toInt(), + entry.z.getText().toInt() + ), + current, + entry.enabled.checked + ) ) - ) + }.onFailure { + it.printStackTrace() + } } PersistentSave.markDirty<Waypoints>() } |