commit 8f06688f55ef2aef6178d08c7a21722fbfef7db8
parent b378bdde871f28fb7408c2c99e01cf195f876937
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Thu, 28 Dec 2023 16:55:30 +0100

fea(scripting/messaging): snapchatter info

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/scripting/impl/CoreMessaging.kt | 11++++++++++-
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/wrapper/impl/Snapchatter.kt | 11++++++++++-
2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/scripting/impl/CoreMessaging.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/scripting/impl/CoreMessaging.kt @@ -8,6 +8,7 @@ import me.rhunk.snapenhance.core.ModContext import me.rhunk.snapenhance.core.features.impl.messaging.Messaging import me.rhunk.snapenhance.core.wrapper.impl.Message import me.rhunk.snapenhance.core.wrapper.impl.SnapUUID +import me.rhunk.snapenhance.core.wrapper.impl.Snapchatter import org.mozilla.javascript.Scriptable import org.mozilla.javascript.annotations.JSFunction @@ -15,7 +16,8 @@ import org.mozilla.javascript.annotations.JSFunction class CoreMessaging( private val modContext: ModContext ) : AbstractBinding("messaging", BindingSide.CORE) { - private val conversationManager get() = modContext.feature(Messaging::class).conversationManager + private val messaging by lazy { modContext.feature(Messaging::class) } + private val conversationManager get() = messaging.conversationManager @JSFunction fun isPresent() = conversationManager != null @@ -144,5 +146,12 @@ class CoreMessaging( modContext.messageSender.sendChatMessage(listOf(SnapUUID.fromString(conversationId)), message, onSuccess = { result(null) }, onError = { result(it.toString()) }) } + @JSFunction + fun fetchSnapchatterInfos( + userIds: List<String> + ): List<Snapchatter> { + return messaging.fetchSnapchatterInfos(userIds = userIds) + } + override fun getObject() = this } diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/wrapper/impl/Snapchatter.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/wrapper/impl/Snapchatter.kt @@ -1,19 +1,28 @@ package me.rhunk.snapenhance.core.wrapper.impl import me.rhunk.snapenhance.core.wrapper.AbstractWrapper - +import org.mozilla.javascript.annotations.JSGetter +import org.mozilla.javascript.annotations.JSSetter class BitmojiInfo(obj: Any?) : AbstractWrapper(obj) { + @get:JSGetter @set:JSSetter var avatarId by field<String?>("mAvatarId") + @get:JSGetter @set:JSSetter var backgroundId by field<String?>("mBackgroundId") + @get:JSGetter @set:JSSetter var sceneId by field<String?>("mSceneId") + @get:JSGetter @set:JSSetter var selfieId by field<String?>("mSelfieId") } class Snapchatter(obj: Any?) : AbstractWrapper(obj) { + @get:JSGetter val bitmojiInfo by field<BitmojiInfo?>("mBitmojiInfo") + @get:JSGetter @set:JSSetter var displayName by field<String?>("mDisplayName") + @get:JSGetter @set:JSSetter var userId by field("mUserId") { SnapUUID(it) } + @get:JSGetter @set:JSSetter var username by field<String>("mUsername") } \ No newline at end of file