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:
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)
+ }
}
}
}