diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/MessagePacket.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/ContactMessage.kt
similarity index 93%
rename from mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/MessagePacket.kt
rename to mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/ContactMessage.kt
index b98b1ad0c..ee84de497 100644
--- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/MessagePacket.kt
+++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/message/ContactMessage.kt
@@ -29,8 +29,8 @@ import net.mamoe.mirai.contact.Member
 import net.mamoe.mirai.contact.QQ
 import net.mamoe.mirai.event.events.BotEvent
 import net.mamoe.mirai.event.selectMessages
-import net.mamoe.mirai.event.subscribingGet
-import net.mamoe.mirai.event.subscribingGetOrNull
+import net.mamoe.mirai.event.syncFromEvent
+import net.mamoe.mirai.event.syncFromEventOrNull
 import net.mamoe.mirai.event.whileSelectMessages
 import net.mamoe.mirai.message.data.*
 import net.mamoe.mirai.qqandroid.network.Packet
@@ -225,16 +225,16 @@ fun ContactMessage.isContextIdenticalWith(another: ContactMessage): Boolean {
  * 若 [filter] 抛出了一个异常, 本函数会立即抛出这个异常.
  *
  * @param timeoutMillis 超时. 单位为毫秒. `-1` 为不限制
- * @param filter 过滤器. 返回非 null 则代表得到了需要的值. [subscribingGet] 会返回这个值
+ * @param filter 过滤器. 返回非 null 则代表得到了需要的值. [syncFromEvent] 会返回这个值
  *
- * @see subscribingGet
+ * @see syncFromEvent
  */
 @JvmSynthetic
 suspend inline fun <reified P : ContactMessage> P.nextMessage(
     timeoutMillis: Long = -1,
     crossinline filter: suspend P.(P) -> Boolean
 ): MessageChain {
-    return subscribingGet<P, P>(timeoutMillis) {
+    return syncFromEvent<P, P>(timeoutMillis) {
         takeIf { this.isContextIdenticalWith(this@nextMessage) }?.takeIf { filter(it, it) }
     }.message
 }
@@ -245,17 +245,17 @@ suspend inline fun <reified P : ContactMessage> P.nextMessage(
  * 若 [filter] 抛出了一个异常, 本函数会立即抛出这个异常.
  *
  * @param timeoutMillis 超时. 单位为毫秒. `-1` 为不限制
- * @param filter 过滤器. 返回非 null 则代表得到了需要的值. [subscribingGet] 会返回这个值
+ * @param filter 过滤器. 返回非 null 则代表得到了需要的值. [syncFromEvent] 会返回这个值
  * @return 消息链. 超时时返回 `null`
  *
- * @see subscribingGetOrNull
+ * @see syncFromEventOrNull
  */
 @JvmSynthetic
 suspend inline fun <reified P : ContactMessage> P.nextMessageOrNull(
     timeoutMillis: Long = -1,
     crossinline filter: suspend P.(P) -> Boolean
 ): MessageChain? {
-    return subscribingGetOrNull<P, P>(timeoutMillis) {
+    return syncFromEventOrNull<P, P>(timeoutMillis) {
         takeIf { this.isContextIdenticalWith(this@nextMessageOrNull) }?.takeIf { filter(it, it) }
     }?.message
 }
@@ -267,13 +267,13 @@ suspend inline fun <reified P : ContactMessage> P.nextMessageOrNull(
  *
  * @throws TimeoutCancellationException
  *
- * @see subscribingGet
+ * @see syncFromEvent
  */
 @JvmSynthetic
 suspend inline fun <reified P : ContactMessage> P.nextMessage(
     timeoutMillis: Long = -1
 ): MessageChain {
-    return subscribingGet<P, P>(timeoutMillis) {
+    return syncFromEvent<P, P>(timeoutMillis) {
         takeIf { this.isContextIdenticalWith(this@nextMessage) }
     }.message
 }
@@ -288,7 +288,7 @@ inline fun <reified P : ContactMessage> P.nextMessageAsync(
     coroutineContext: CoroutineContext = EmptyCoroutineContext
 ): Deferred<MessageChain> {
     return this.bot.async(coroutineContext) {
-        subscribingGet<P, P>(timeoutMillis) {
+        syncFromEvent<P, P>(timeoutMillis) {
             takeIf { this.isContextIdenticalWith(this@nextMessageAsync) }
         }.message
     }
@@ -304,7 +304,7 @@ inline fun <reified P : ContactMessage> P.nextMessageAsync(
     crossinline filter: suspend P.(P) -> Boolean
 ): Deferred<MessageChain> {
     return this.bot.async(coroutineContext) {
-        subscribingGet<P, P>(timeoutMillis) {
+        syncFromEvent<P, P>(timeoutMillis) {
             takeIf { this.isContextIdenticalWith(this@nextMessageAsync) }
                 .takeIf { filter(this, this) }
         }.message
@@ -319,13 +319,13 @@ inline fun <reified P : ContactMessage> P.nextMessageAsync(
  * @param timeoutMillis 超时. 单位为毫秒. `-1` 为不限制
  * @return 消息链. 超时时返回 `null`
  *
- * @see subscribingGetOrNull
+ * @see syncFromEventOrNull
  */
 @JvmSynthetic
 suspend inline fun <reified P : ContactMessage> P.nextMessageOrNull(
     timeoutMillis: Long = -1
 ): MessageChain? {
-    return subscribingGetOrNull<P, P>(timeoutMillis) {
+    return syncFromEventOrNull<P, P>(timeoutMillis) {
         takeIf { this.isContextIdenticalWith(this@nextMessageOrNull) }
     }?.message
 }
@@ -339,7 +339,7 @@ inline fun <reified P : ContactMessage> P.nextMessageOrNullAsync(
     coroutineContext: CoroutineContext = EmptyCoroutineContext
 ): Deferred<MessageChain?> {
     return this.bot.async(coroutineContext) {
-        subscribingGetOrNull<P, P>(timeoutMillis) {
+        syncFromEventOrNull<P, P>(timeoutMillis) {
             takeIf { this.isContextIdenticalWith(this@nextMessageOrNullAsync) }
         }?.message
     }
@@ -352,7 +352,7 @@ inline fun <reified P : ContactMessage> P.nextMessageOrNullAsync(
  *
  * @param timeoutMillis 超时. 单位为毫秒. `-1` 为不限制
  *
- * @see subscribingGet
+ * @see syncFromEvent
  * @see whileSelectMessages
  * @see selectMessages
  */
@@ -360,7 +360,7 @@ inline fun <reified P : ContactMessage> P.nextMessageOrNullAsync(
 suspend inline fun <reified M : Message> ContactMessage.nextMessageContaining(
     timeoutMillis: Long = -1
 ): M {
-    return subscribingGet<ContactMessage, ContactMessage>(timeoutMillis) {
+    return syncFromEvent<ContactMessage, ContactMessage>(timeoutMillis) {
         takeIf { this.isContextIdenticalWith(this@nextMessageContaining) }
             .takeIf { this.message.anyIsInstance<M>() }
     }.message.firstIsInstance()
@@ -373,7 +373,7 @@ inline fun <reified M : Message> ContactMessage.nextMessageContainingAsync(
 ): Deferred<M> {
     return this.bot.async(coroutineContext) {
         @Suppress("RemoveExplicitTypeArguments")
-        subscribingGet<ContactMessage, ContactMessage>(timeoutMillis) {
+        syncFromEvent<ContactMessage, ContactMessage>(timeoutMillis) {
             takeIf { this.isContextIdenticalWith(this@nextMessageContainingAsync) }
                 .takeIf { this.message.anyIsInstance<M>() }
         }.message.firstIsInstance<M>()
@@ -388,13 +388,13 @@ inline fun <reified M : Message> ContactMessage.nextMessageContainingAsync(
  * @param timeoutMillis 超时. 单位为毫秒. `-1` 为不限制
  * @return 指定类型的消息. 超时时返回 `null`
  *
- * @see subscribingGetOrNull
+ * @see syncFromEventOrNull
  */
 @JvmSynthetic
 suspend inline fun <reified M : Message> ContactMessage.nextMessageContainingOrNull(
     timeoutMillis: Long = -1
 ): M? {
-    return subscribingGetOrNull<ContactMessage, ContactMessage>(timeoutMillis) {
+    return syncFromEventOrNull<ContactMessage, ContactMessage>(timeoutMillis) {
         takeIf { this.isContextIdenticalWith(this@nextMessageContainingOrNull) }
             .takeIf { this.message.anyIsInstance<M>() }
     }?.message?.firstIsInstance()
@@ -406,7 +406,7 @@ inline fun <reified M : Message> ContactMessage.nextMessageContainingOrNullAsync
     coroutineContext: CoroutineContext = EmptyCoroutineContext
 ): Deferred<M?> {
     return this.bot.async(coroutineContext) {
-        subscribingGetOrNull<ContactMessage, ContactMessage>(timeoutMillis) {
+        syncFromEventOrNull<ContactMessage, ContactMessage>(timeoutMillis) {
             takeIf { this.isContextIdenticalWith(this@nextMessageContainingOrNullAsync) }
                 .takeIf { this.message.anyIsInstance<M>() }
         }?.message?.firstIsInstance<M>()
@@ -414,6 +414,7 @@ inline fun <reified M : Message> ContactMessage.nextMessageContainingOrNullAsync
 }
 
 
+@PlannedRemoval("1.0.0")
 @Suppress("DEPRECATION")
 @Deprecated(level = DeprecationLevel.HIDDEN, message = "for binary compatibility")
 fun MessagePacket<*, *>.isContextIdenticalWith(another: MessagePacket<*, *>): Boolean {