Add a configuration made using the config4k library
This commit is contained in:
parent
8651c34ed7
commit
dac1294ee3
|
@ -40,6 +40,7 @@ subprojects {
|
||||||
keep("class fr.username404.snowygui.fabric.** { * ; }")
|
keep("class fr.username404.snowygui.fabric.** { * ; }")
|
||||||
keep("class fr.username404.snowygui.forge.** { * ; }")
|
keep("class fr.username404.snowygui.forge.** { * ; }")
|
||||||
keepclassmembers("class fr.username404.snowygui.** { public protected <methods>; }")
|
keepclassmembers("class fr.username404.snowygui.** { public protected <methods>; }")
|
||||||
|
// TODO Fix kotlin
|
||||||
keepattributes(); keepdirectories(); keeppackagenames(); keepparameternames()
|
keepattributes(); keepdirectories(); keeppackagenames(); keepparameternames()
|
||||||
obfuscationdictionary("$dictionariesDir/dictionary.txt")
|
obfuscationdictionary("$dictionariesDir/dictionary.txt")
|
||||||
classobfuscationdictionary("$dictionariesDir/classdictionary.txt")
|
classobfuscationdictionary("$dictionariesDir/classdictionary.txt")
|
||||||
|
@ -65,6 +66,7 @@ subprojects {
|
||||||
exclude(module = "kotlin-stdlib-common")
|
exclude(module = "kotlin-stdlib-common")
|
||||||
exclude(module = "annotations")
|
exclude(module = "annotations")
|
||||||
}
|
}
|
||||||
|
"io.github.config4k:config4k:0.4.2".also { implementation(it); shadowC(it) }
|
||||||
"minecraft"("com.mojang:minecraft:${rootProject.property("minecraft")}")
|
"minecraft"("com.mojang:minecraft:${rootProject.property("minecraft")}")
|
||||||
"mappings"(MappingsDep)
|
"mappings"(MappingsDep)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package fr.username404.snowygui.mixins;
|
package fr.username404.snowygui.mixins;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import fr.username404.snowygui.config.AddKeyMaps;
|
import fr.username404.snowygui.misc.AddKeyMaps;
|
||||||
import net.minecraft.client.KeyMapping;
|
import net.minecraft.client.KeyMapping;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.Options;
|
import net.minecraft.client.Options;
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
package fr.username404.snowygui
|
package fr.username404.snowygui
|
||||||
|
|
||||||
import fr.username404.snowygui.EventSnowy.Companion.useKey
|
import fr.username404.snowygui.EventSnowy.Companion.useKey
|
||||||
import fr.username404.snowygui.config.AddKeyMaps
|
import fr.username404.snowygui.config.Configuration.obtained
|
||||||
|
import fr.username404.snowygui.misc.AddKeyMaps
|
||||||
|
import io.github.config4k.getValue
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import org.apache.logging.log4j.Logger
|
import org.apache.logging.log4j.Logger
|
||||||
|
|
||||||
abstract class Snowy {
|
abstract class Snowy {
|
||||||
|
private val displayInitMessage: Boolean by obtained
|
||||||
companion object {
|
companion object {
|
||||||
fun onEvent(e: String, lambda: argsLambda) {
|
fun onEvent(e: String, lambda: argsLambda) = useKey(e).add(lambda)
|
||||||
useKey(e).add(lambda)
|
|
||||||
}
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val logs: Logger = LogManager.getLogger()
|
val logs: Logger = LogManager.getLogger()
|
||||||
}
|
}
|
||||||
|
@ -23,7 +24,7 @@ abstract class Snowy {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fun atInit() {
|
fun atInit() {
|
||||||
logs.info("Init point of SnowyGUI hit.")
|
if (displayInitMessage) logs.info("Init point of SnowyGUI hit.")
|
||||||
eventsInit()
|
eventsInit()
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package fr.username404.snowygui.config
|
||||||
|
|
||||||
|
import com.typesafe.config.Config
|
||||||
|
import com.typesafe.config.ConfigException
|
||||||
|
import com.typesafe.config.ConfigFactory
|
||||||
|
import fr.username404.snowygui.Snowy
|
||||||
|
import net.minecraft.client.Minecraft
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
object Configuration {
|
||||||
|
private val file: File = File(Minecraft.getInstance().gameDirectory.absolutePath + File.separator + "snowy.conf")
|
||||||
|
private val base = """
|
||||||
|
|Snowy {
|
||||||
|
| displayInitMessage = true
|
||||||
|
|}
|
||||||
|
""".trimMargin()
|
||||||
|
val obtained: Config = run {
|
||||||
|
var result: Config? = null
|
||||||
|
with(file) {
|
||||||
|
if (!exists()) {
|
||||||
|
createNewFile()
|
||||||
|
setWritable(true)
|
||||||
|
writeText(base)
|
||||||
|
setReadable(true)
|
||||||
|
} else result = try {
|
||||||
|
ConfigFactory.parseFile(file)
|
||||||
|
} catch (e: ConfigException) {
|
||||||
|
Snowy.logs.warn("Could not parse the snowy configuration file, the default configuration will be used instead."); null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (result == null) result = ConfigFactory.parseString(base)
|
||||||
|
ConfigFactory.load(result).getConfig("Snowy")
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,8 @@
|
||||||
package fr.username404.snowygui.config
|
package fr.username404.snowygui.misc
|
||||||
|
|
||||||
import com.mojang.blaze3d.platform.InputConstants
|
import com.mojang.blaze3d.platform.InputConstants
|
||||||
import fr.username404.snowygui.ClickGui
|
import fr.username404.snowygui.ClickGui
|
||||||
|
import fr.username404.snowygui.config.SnowyConfigScreen
|
||||||
import net.minecraft.client.KeyMapping
|
import net.minecraft.client.KeyMapping
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import org.lwjgl.glfw.GLFW.GLFW_KEY_U
|
import org.lwjgl.glfw.GLFW.GLFW_KEY_U
|
Loading…
Reference in New Issue