mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-06-12 05:07:46 +02:00
feat(snapchat_plus): hidden sc+ features (experimental)
This commit is contained in:
@ -498,6 +498,10 @@
|
||||
"add_friend_source_spoof": {
|
||||
"name": "Add Friend Source Spoof",
|
||||
"description": "Spoofs the source of a Friend Request"
|
||||
},
|
||||
"hidden_snapchat_plus_features": {
|
||||
"name": "Hidden Snapchat Plus Features",
|
||||
"description": "Enables unreleased/beta Snapchat Plus features\nMight not work on older Snapchat versions"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ class Experimental : ConfigContainer() {
|
||||
val meoPasscodeBypass = boolean("meo_passcode_bypass")
|
||||
val unlimitedMultiSnap = boolean("unlimited_multi_snap") { addNotices(FeatureNotice.BAN_RISK)}
|
||||
val noFriendScoreDelay = boolean("no_friend_score_delay")
|
||||
val hiddenSnapchatPlusFeatures = boolean("hidden_snapchat_plus_features") { addNotices(FeatureNotice.BAN_RISK, FeatureNotice.UNSTABLE) }
|
||||
val addFriendSourceSpoof = unique("add_friend_source_spoof",
|
||||
"added_by_username",
|
||||
"added_by_mention",
|
||||
|
@ -4,12 +4,13 @@ import me.rhunk.snapenhance.features.Feature
|
||||
import me.rhunk.snapenhance.features.FeatureLoadParams
|
||||
import me.rhunk.snapenhance.hook.HookStage
|
||||
import me.rhunk.snapenhance.hook.Hooker
|
||||
import me.rhunk.snapenhance.hook.hook
|
||||
|
||||
class SnapchatPlus: Feature("SnapchatPlus", loadParams = FeatureLoadParams.ACTIVITY_CREATE_ASYNC) {
|
||||
class SnapchatPlus: Feature("SnapchatPlus", loadParams = FeatureLoadParams.INIT_SYNC) {
|
||||
private val originalSubscriptionTime = (System.currentTimeMillis() - 7776000000L)
|
||||
private val expirationTimeMillis = (System.currentTimeMillis() + 15552000000L)
|
||||
|
||||
override fun asyncOnActivityCreate() {
|
||||
override fun init() {
|
||||
if (!context.config.global.snapchatPlus.get()) return
|
||||
|
||||
val subscriptionInfoClass = context.mappings.getMappedClass("SubscriptionInfoClass")
|
||||
@ -24,5 +25,21 @@ class SnapchatPlus: Feature("SnapchatPlus", loadParams = FeatureLoadParams.ACTIV
|
||||
param.setArg(2, originalSubscriptionTime)
|
||||
param.setArg(3, expirationTimeMillis)
|
||||
}
|
||||
|
||||
if (context.config.experimental.hiddenSnapchatPlusFeatures.get()) {
|
||||
findClass("com.snap.plus.FeatureCatalog").methods.last {
|
||||
!it.name.contains("init") &&
|
||||
it.parameterTypes.isNotEmpty() &&
|
||||
it.parameterTypes[0].name != "java.lang.Boolean"
|
||||
}.hook(HookStage.BEFORE) { param ->
|
||||
val instance = param.thisObject<Any>()
|
||||
val firstArg = param.args()[0]
|
||||
|
||||
instance::class.java.declaredFields.filter { it.type == firstArg::class.java }.forEach {
|
||||
it.isAccessible = true
|
||||
it.set(instance, firstArg)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user