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
	
	Block a user