mirror of
https://gitlab.com/2009scape/09launcher.git
synced 2025-12-09 16:45:54 -07:00
Launcher now has a settings menu for the client. Pog.
This commit is contained in:
parent
6d6bcf62f4
commit
89f6904604
14 changed files with 514 additions and 1 deletions
112
src/main/kotlin/settingseditor/Json.kt
Normal file
112
src/main/kotlin/settingseditor/Json.kt
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
package settingseditor
|
||||
|
||||
import org.json.simple.JSONObject
|
||||
import org.json.simple.parser.JSONParser
|
||||
import java.io.File
|
||||
import java.io.FileReader
|
||||
import java.io.FileWriter
|
||||
|
||||
object Json {
|
||||
|
||||
val HOME = System.getProperty("user.home")
|
||||
val CONF = HOME + File.separator + "config.json"
|
||||
var data: JSONObject = JSONObject()
|
||||
|
||||
fun save(){
|
||||
val customization = data["customization"] as JSONObject
|
||||
val xpDrops = customization["xpdrops"] as JSONObject
|
||||
val slayer = customization["slayer"] as JSONObject
|
||||
val rcm = customization["right_click_menu"] as JSONObject
|
||||
val styles = rcm["styles"] as JSONObject
|
||||
|
||||
val background = rcm["background"] as JSONObject
|
||||
val title_bar = rcm["title_bar"] as JSONObject
|
||||
val border = rcm["border"] as JSONObject
|
||||
val debug = data["debug"] as JSONObject
|
||||
|
||||
background["color"] = SettingsWindow.bgColorField.text
|
||||
background["opacity"] = SettingsWindow.bgOpacityField.text
|
||||
title_bar["color"] = SettingsWindow.titleColorField.text
|
||||
title_bar["opacity"] = SettingsWindow.titleOpacityField.text
|
||||
title_bar["font_color"] = SettingsWindow.titleFontColor.text
|
||||
border["color"] = SettingsWindow.borderColor.text
|
||||
border["opacity"] = SettingsWindow.borderOpacity.text
|
||||
styles["rs3border"] = SettingsWindow.rs3Border.isToggled
|
||||
debug["item_debug"] = SettingsWindow.itemDebugCheckbox.isToggled
|
||||
debug["object_debug"] = SettingsWindow.objectDebugCheckbox.isToggled
|
||||
debug["npc_debug"] = SettingsWindow.npcDebugCheckbox.isToggled
|
||||
xpDrops["enabled"] = SettingsWindow.xpDropsEnabled.isToggled
|
||||
xpDrops["drop_mode"] = SettingsWindow.xpDropMode.selectedIndex
|
||||
xpDrops["track_mode"] = SettingsWindow.xpTrackMode.selectedIndex
|
||||
slayer["enabled"] = SettingsWindow.slayerEnabled.isToggled
|
||||
slayer["color"] = SettingsWindow.slayerColor.text
|
||||
slayer["opacity"] = SettingsWindow.slayerOpacity.text
|
||||
customization["login_theme"] = SettingsWindow.loginTheme.text
|
||||
|
||||
FileWriter(CONF).use { writer ->
|
||||
writer.write(data.toJSONString())
|
||||
writer.flush()
|
||||
}
|
||||
}
|
||||
|
||||
fun parse(){
|
||||
try {
|
||||
if(!File(CONF).exists()){
|
||||
FileReader(javaClass.getResource("/config.json")!!.file).use { reader ->
|
||||
val writer = FileWriter(CONF)
|
||||
reader.copyTo(writer, 1024)
|
||||
writer.flush()
|
||||
writer.close()
|
||||
}
|
||||
}
|
||||
data = FileReader(CONF).use { reader ->
|
||||
val parser = JSONParser()
|
||||
parser.parse(reader) as JSONObject
|
||||
}
|
||||
|
||||
val customization = data["customization"] as JSONObject
|
||||
val xpDrops = customization["xpdrops"] as JSONObject
|
||||
val slayer = customization["slayer"] as JSONObject
|
||||
val rcm = customization["right_click_menu"] as JSONObject
|
||||
val styles = rcm["styles"] as JSONObject
|
||||
|
||||
val background = rcm["background"] as JSONObject
|
||||
val title_bar = rcm["title_bar"] as JSONObject
|
||||
val border = rcm["border"] as JSONObject
|
||||
val debug = data["debug"] as JSONObject
|
||||
|
||||
SettingsWindow.itemDebugCheckbox.isToggled = debug["item_debug"] as Boolean
|
||||
SettingsWindow.objectDebugCheckbox.isToggled = debug["object_debug"] as Boolean
|
||||
SettingsWindow.npcDebugCheckbox.isToggled = debug["npc_debug"] as Boolean
|
||||
|
||||
SettingsWindow.rs3Border.isToggled = styles["rs3border"] as Boolean
|
||||
SettingsWindow.bgColorField.text = background["color"].toString()
|
||||
SettingsWindow.bgOpacityField.text = background["opacity"].toString()
|
||||
SettingsWindow.titleColorField.text = title_bar["color"].toString()
|
||||
SettingsWindow.titleOpacityField.text = title_bar["opacity"].toString()
|
||||
SettingsWindow.titleFontColor.text = title_bar["font_color"].toString()
|
||||
SettingsWindow.borderColor.text = border["color"].toString()
|
||||
SettingsWindow.borderOpacity.text = border["opacity"].toString()
|
||||
|
||||
SettingsWindow.xpDropsEnabled.isToggled = xpDrops.getOrDefault("enabled",true) as Boolean
|
||||
SettingsWindow.xpDropMode.selectedIndex = xpDrops.getOrDefault("drop_mode",0).toString().toInt()
|
||||
SettingsWindow.xpTrackMode.selectedIndex = xpDrops.getOrDefault("track_mode",0).toString().toInt()
|
||||
|
||||
SettingsWindow.slayerEnabled.isToggled = slayer.getOrDefault("enabled",true) as Boolean
|
||||
SettingsWindow.slayerColor.text = slayer.getOrDefault("color", "#635a38").toString()
|
||||
SettingsWindow.slayerOpacity.text = slayer.getOrDefault("opacity","180").toString()
|
||||
SettingsWindow.loginTheme.text = customization.getOrDefault("login_theme","scape main").toString()
|
||||
} catch (e: Exception) {
|
||||
println("error parsing settings, replacing with defaults...")
|
||||
e.printStackTrace()
|
||||
File(CONF).delete()
|
||||
FileReader(javaClass.getResource("/config.json")!!.file).use { reader ->
|
||||
val writer = FileWriter(CONF)
|
||||
reader.copyTo(writer, 1024)
|
||||
writer.flush()
|
||||
writer.close()
|
||||
}
|
||||
parse()
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue