@@ -3,33 +3,52 @@ package org.polyfrost.oneconfig.internal.compat
33import dev.deftu.omnicore.api.client.getIconResource
44import dev.deftu.omnicore.api.client.getIconResourcePath
55import io.github.notenoughupdates.moulconfig.ChromaColour
6- import io.github.notenoughupdates.moulconfig.gui.editors.*
6+ import io.github.notenoughupdates.moulconfig.gui.editors.GuiOptionEditorAccordion
7+ import io.github.notenoughupdates.moulconfig.gui.editors.GuiOptionEditorBoolean
8+ import io.github.notenoughupdates.moulconfig.gui.editors.GuiOptionEditorButton
9+ import io.github.notenoughupdates.moulconfig.gui.editors.GuiOptionEditorColour
10+ import io.github.notenoughupdates.moulconfig.gui.editors.GuiOptionEditorDraggableList
11+ import io.github.notenoughupdates.moulconfig.gui.editors.GuiOptionEditorInfoText
12+ import io.github.notenoughupdates.moulconfig.gui.editors.GuiOptionEditorText
713import io.github.notenoughupdates.moulconfig.processor.MoulConfigProcessor
814import io.github.notenoughupdates.moulconfig.processor.ProcessedCategory
915import io.github.notenoughupdates.moulconfig.processor.ProcessedOption
1016import org.polyfrost.oneconfig.api.config.v1.ConfigManager
1117import org.polyfrost.oneconfig.api.config.v1.Tree
1218import org.polyfrost.oneconfig.api.config.v1.Visualizer
13- import org.polyfrost.oneconfig.api.config.v1.Visualizer.*
14- import org.polyfrost.oneconfig.api.config.v1.dsl.*
19+ import org.polyfrost.oneconfig.api.config.v1.Visualizer.ButtonVisualizer
20+ import org.polyfrost.oneconfig.api.config.v1.Visualizer.ColorVisualizer
21+ import org.polyfrost.oneconfig.api.config.v1.Visualizer.DropdownVisualizer
22+ import org.polyfrost.oneconfig.api.config.v1.Visualizer.SliderVisualizer
23+ import org.polyfrost.oneconfig.api.config.v1.Visualizer.SwitchVisualizer
24+ import org.polyfrost.oneconfig.api.config.v1.Visualizer.TextVisualizer
25+ import org.polyfrost.oneconfig.api.config.v1.dsl.category
26+ import org.polyfrost.oneconfig.api.config.v1.dsl.icon
27+ import org.polyfrost.oneconfig.api.config.v1.dsl.noCache
28+ import org.polyfrost.oneconfig.api.config.v1.dsl.saveFunction
29+ import org.polyfrost.oneconfig.api.config.v1.dsl.subcategory
1530import org.polyfrost.oneconfig.internal.DynamicPolyImage
16- import org.polyfrost.oneconfig.internal.mixin.compat.moulconfig.Accessor_GuiOptionEditorDropdown
31+ import org.polyfrost.oneconfig.internal.utils.MoulConfigGuiOptionEditorDropdownAccessor
1732import org.polyfrost.polyui.color.PolyColor
1833import java.lang.reflect.Type
19- import java.util.UUID
34+ import java.util.*
2035import kotlin.reflect.KClass
2136import kotlin.time.Duration.Companion.milliseconds
2237import kotlin.time.Duration.Companion.nanoseconds
2338import io.github.notenoughupdates.moulconfig.Config as MoulConfig
2439import org.polyfrost.oneconfig.relocator.annotations.MoulConfig as Moulconfig
2540
2641@Moulconfig
27- object MoulConfigCompat {
42+ data object MoulConfigCompat {
2843
2944 @JvmStatic
3045 fun parseMoulconfig (processor : MoulConfigProcessor <* >, config : MoulConfig ) {
31- CompatLoader .markFirstModAsSkip()
32- ConfigManager .active().register(parseConfigTree(config, processor.allCategories.values))
46+ runCatching {
47+ CompatLoader .markFirstModAsSkip()
48+ ConfigManager .active().register(parseConfigTree(config, processor.allCategories.values))
49+ }.onFailure {
50+ println (" Failed to load moulconfig compat for $this due to $it " )
51+ }
3352 }
3453
3554 fun parseConfigTree (config : MoulConfig , children : Iterable <ProcessedCategory >): Tree = Tree .tree().apply {
@@ -126,10 +145,9 @@ object MoulConfigCompat {
126145 ColorVisualizer ::class .java
127146 }
128147
129- is Accessor_GuiOptionEditorDropdown -> {
148+ is MoulConfigGuiOptionEditorDropdownAccessor -> {
130149 fun getIndex (): Int {
131- val selectedObject: Any? = children.get()
132- if (selectedObject == null ) return - 1
150+ val selectedObject: Any = children.get() ? : return - 1
133151
134152 return if (editor.`oneconfig$useOrdinal`()) {
135153 selectedObject as Int
0 commit comments