diff --git a/src/main/kotlin/Editors.kt b/src/main/kotlin/Editors.kt index fe5c4ad..d32387d 100644 --- a/src/main/kotlin/Editors.kt +++ b/src/main/kotlin/Editors.kt @@ -343,6 +343,38 @@ enum class Editors(val data: EditorData) { } TableData.itemSpawns = spawnMap } + + override fun save() { + Logger.logInfo("Saving Item spawn info...") + val spawnMap = HashMap() + for ((_, spawns) in TableData.itemSpawns) { + for (spawn in spawns) { + if (!spawnMap.contains(spawn.id)) spawnMap[spawn.id] = StringBuilder() + spawnMap[spawn.id]!!.append("{${spawn.amount},${spawn.location.x},${spawn.location.y},${spawn.location.z},${spawn.respawnTicks}}-") + } + } + val spawnsJsonArray = JSONArray() + for ((id, spawnString) in spawnMap.entries.sortedBy { it.key.toInt() }) { + val spawn = JSONObject() + spawn["item_id"] = id.toString() + spawn["loc_data"] = spawnString.toString() + spawnsJsonArray.add(spawn) + } + val manager = ScriptEngineManager() + val scriptEngine = manager.getEngineByName("JavaScript") + scriptEngine.put("jsonString", spawnsJsonArray.toJSONString()) + scriptEngine.eval("result = JSON.stringify(JSON.parse(jsonString), null, 2)") + val prettyPrintedJson = scriptEngine["result"] as String + + try { + FileWriter(EditorConstants.CONFIG_PATH + File.separator + fileName).use { file -> + file.write(prettyPrintedJson) + file.flush() + } + } catch (e: IOException) { + e.printStackTrace() + } + } }) }