diff options
| author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-05-18 00:27:01 +0200 |
|---|---|---|
| committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-05-18 00:27:01 +0200 |
| commit | a10c097974d0b476be275c1fd2888d7502508efd (patch) | |
| tree | b9059f9ff1d010ce7ee32c4aece25a5dbc4141c3 /src/main/java/at/hannibal2/skyhanni/utils | |
| parent | 88bff6a920bd597e7ef2a22bbcd99750158e6816 (diff) | |
| download | SkyHanni-a10c097974d0b476be275c1fd2888d7502508efd.tar.gz SkyHanni-a10c097974d0b476be275c1fd2888d7502508efd.tar.bz2 SkyHanni-a10c097974d0b476be275c1fd2888d7502508efd.zip | |
added profile specific config support
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index b7930bfd1..556eb59a0 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -24,6 +24,10 @@ import java.text.DecimalFormat import java.text.NumberFormat import java.text.SimpleDateFormat import java.util.* +import kotlin.properties.ReadWriteProperty +import kotlin.reflect.KMutableProperty1 +import kotlin.reflect.KProperty +import kotlin.reflect.KProperty0 object LorenzUtils { @@ -183,7 +187,9 @@ object LorenzUtils { return monthNr } - fun getPlayerUuid() = Minecraft.getMinecraft().thePlayer.uniqueID.toDashlessUUID() + fun getPlayerUuid() = getRawPlayerUuid().toDashlessUUID() + + fun getRawPlayerUuid() = Minecraft.getMinecraft().thePlayer.uniqueID fun getPlayerName() = Minecraft.getMinecraft().thePlayer.name @@ -312,4 +318,32 @@ object LorenzUtils { } add(newList) } + + // TODO nea? +// fun <T> dynamic(block: () -> KMutableProperty0<T>?): ReadWriteProperty<Any?, T?> { +// return object : ReadWriteProperty<Any?, T?> { +// override fun getValue(thisRef: Any?, property: KProperty<*>): T? { +// return block()?.get() +// } +// +// override fun setValue(thisRef: Any?, property: KProperty<*>, value: T?) { +// if (value != null) +// block()?.set(value) +// } +// } +// } + + fun <T, R> dynamic(root: KProperty0<R?>, child: KMutableProperty1<R, T>) = + object : ReadWriteProperty<Any?, T?> { + override fun getValue(thisRef: Any?, property: KProperty<*>): T? { + val rootObj = root.get() ?: return null + return child.get(rootObj) + } + + override fun setValue(thisRef: Any?, property: KProperty<*>, value: T?) { + if (value == null) return + val rootObj = root.get() ?: return + child.set(rootObj, value) + } + } }
\ No newline at end of file |
