aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-05-18 00:27:01 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-05-18 00:27:01 +0200
commita10c097974d0b476be275c1fd2888d7502508efd (patch)
treeb9059f9ff1d010ce7ee32c4aece25a5dbc4141c3 /src/main/java/at/hannibal2/skyhanni/utils
parent88bff6a920bd597e7ef2a22bbcd99750158e6816 (diff)
downloadSkyHanni-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.kt36
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