diff --git a/core/src/main/kotlin/me/eternal/purrfectsnap/core/features/impl/messaging/PreventMessageSending.kt b/core/src/main/kotlin/me/eternal/purrfectsnap/core/features/impl/messaging/PreventMessageSending.kt index 3610a4cb..886d4bca 100644 --- a/core/src/main/kotlin/me/eternal/purrfectsnap/core/features/impl/messaging/PreventMessageSending.kt +++ b/core/src/main/kotlin/me/eternal/purrfectsnap/core/features/impl/messaging/PreventMessageSending.kt @@ -47,13 +47,18 @@ class PreventMessageSending : Feature("Prevent message sending") { arrayOf(NativeUnaryCallEvent::class, UnaryCallEvent::class).forEach { eventClass -> context.event.subscribe(eventClass) { event -> - val uri = if (event is NativeUnaryCallEvent) event.uri else (event as UnaryCallEvent).uri + val unaryEvent = when (event) { + is NativeUnaryCallEvent -> event + is UnaryCallEvent -> event + else -> return@subscribe + } + val uri = unaryEvent.uri if (!uri.startsWith("/messagingcoreservice.MessagingCoreService/")) return@subscribe - if (handleCreateContentMessage(uri, event.buffer)) { - event.canceled = true + if (handleCreateContentMessage(uri, unaryEvent.buffer)) { + unaryEvent.canceled = true } - handleUpdateContentMessage(uri, event.buffer)?.let { event.buffer = it } + handleUpdateContentMessage(uri, unaryEvent.buffer)?.let { unaryEvent.buffer = it } } } diff --git a/core/src/main/kotlin/me/eternal/purrfectsnap/core/wrapper/impl/SnapUUID.kt b/core/src/main/kotlin/me/eternal/purrfectsnap/core/wrapper/impl/SnapUUID.kt index 12effc3d..4de42119 100644 --- a/core/src/main/kotlin/me/eternal/purrfectsnap/core/wrapper/impl/SnapUUID.kt +++ b/core/src/main/kotlin/me/eternal/purrfectsnap/core/wrapper/impl/SnapUUID.kt @@ -1,6 +1,6 @@ package me.eternal.purrfectsnap.core.wrapper.impl -import me.eternal.purrfectsnap.core.purrfectsnap +import me.eternal.purrfectsnap.core.PurrfectSnap import me.eternal.purrfectsnap.core.util.ktx.getObjectField import me.eternal.purrfectsnap.core.wrapper.AbstractWrapper import java.nio.ByteBuffer @@ -29,10 +29,10 @@ class SnapUUID( obj } obj is UUID -> obj.toBytes() - purrfectsnap.classCache.snapUUID.isInstance(obj) -> { + PurrfectSnap.classCache.snapUUID.isInstance(obj) -> { obj?.getObjectField("mId") as ByteArray } - purrfectsnap.classCache.snapShimsUUID?.isInstance(obj) == true -> { + PurrfectSnap.classCache.snapShimsUUID?.isInstance(obj) == true -> { val any = obj as Any runCatching { any.javaClass.getMethod("getId").invoke(any) as ByteArray }.getOrElse { any.getObjectField("mId") as ByteArray @@ -46,7 +46,7 @@ class SnapUUID( override var instance: Any? set(_) {} - get() = purrfectsnap.classCache.snapUUID.getConstructor(ByteArray::class.java).newInstance(uuidBytes) + get() = PurrfectSnap.classCache.snapUUID.getConstructor(ByteArray::class.java).newInstance(uuidBytes) override fun toString(): String { return uuidString