commit e26ea0121fdda620a0a1be2910effcb3c4e8048e
parent d05ef5d7a4666d3881d018728d94345cac29b4e6
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Wed, 30 Jul 2025 16:38:21 +0200

fix(core): snapchat plus
support sc >=13.51.0.56

Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/global/SnapchatPlus.kt | 39+++++++++++++++++++++++++--------------
1 file changed, 25 insertions(+), 14 deletions(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/global/SnapchatPlus.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/global/SnapchatPlus.kt @@ -1,10 +1,10 @@ package me.rhunk.snapenhance.core.features.impl.global import me.rhunk.snapenhance.core.features.Feature +import me.rhunk.snapenhance.core.util.dataBuilder import me.rhunk.snapenhance.core.util.hook.HookStage import me.rhunk.snapenhance.core.util.hook.hook import me.rhunk.snapenhance.core.util.hook.hookConstructor -import me.rhunk.snapenhance.core.util.ktx.setObjectField import me.rhunk.snapenhance.mapper.impl.PlusSubscriptionMapper class SnapchatPlus: Feature("SnapchatPlus") { @@ -17,19 +17,30 @@ class SnapchatPlus: Feature("SnapchatPlus") { if (snapchatPlusTier != null) { context.mappings.useMapper(PlusSubscriptionMapper::class) { classReference.get()?.hookConstructor(HookStage.AFTER) { param -> - val instance = param.thisObject<Any>() - //subscription tier - instance.setObjectField(tierField.getAsString()!!, when (snapchatPlusTier) { - "not_subscribed" -> 1 - "basic" -> 2 - "ad_free" -> 3 - else -> 2 - }) - //subscription status - instance.setObjectField(statusField.getAsString()!!, 2) - - instance.setObjectField(originalSubscriptionTimeMillisField.getAsString()!!, originalSubscriptionTime) - instance.setObjectField(expirationTimeMillisField.getAsString()!!, expirationTimeMillis) + param.thisObject<Any>().dataBuilder { + //subscription tier + if (get<Any>(tierField.getAsString()!!)?.javaClass?.isEnum == true) { + set(tierField.getAsString()!!, when (snapchatPlusTier) { + "not_subscribed" -> "NO_ACCESS" + "basic" -> "SNAPCHAT_PLUS" + "ad_free" -> "SNAPCHAT_PLUS_AD_FREE" + else -> "SNAPCHAT_PLUS" + }) + } else { + set(tierField.getAsString()!!, when (snapchatPlusTier) { + "not_subscribed" -> 1 + "basic" -> 2 + "ad_free" -> 3 + else -> 2 + }) + } + + //subscription status + set(statusField.getAsString()!!, 2) + + set(originalSubscriptionTimeMillisField.getAsString()!!, originalSubscriptionTime) + set(expirationTimeMillisField.getAsString()!!, expirationTimeMillis) + } } } }