aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt50
-rw-r--r--src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt26
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>()
}