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 index a242e14f..8e186b6d 100644 --- 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 + ): List { + 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 index 0a3dcca1..38619c59 100644 --- 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("mAvatarId") + @get:JSGetter @set:JSSetter var backgroundId by field("mBackgroundId") + @get:JSGetter @set:JSSetter var sceneId by field("mSceneId") + @get:JSGetter @set:JSSetter var selfieId by field("mSelfieId") } class Snapchatter(obj: Any?) : AbstractWrapper(obj) { + @get:JSGetter val bitmojiInfo by field("mBitmojiInfo") + @get:JSGetter @set:JSSetter var displayName by field("mDisplayName") + @get:JSGetter @set:JSSetter var userId by field("mUserId") { SnapUUID(it) } + @get:JSGetter @set:JSSetter var username by field("mUsername") } \ No newline at end of file