Ver Fonte

Make `CancellableEvent` an interface, introduce `AbstractCancellableEvent`

Him188 há 6 anos atrás
pai
commit
001ad975b9

+ 18 - 3
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/Subscribable.kt

@@ -34,18 +34,33 @@ interface Event
 /**
  * 可被取消的事件
  */
-abstract class CancellableEvent : Event {
+interface CancellableEvent {
     /**
      * 事件是否已取消.
      */
-    val cancelled: Boolean get() = _cancelled
+    val isCancelled: Boolean
+
+    /**
+     * 取消这个事件.
+     */
+    fun cancel()
+}
+
+/**
+ * 可被取消的事件的实现
+ */
+abstract class AbstractCancellableEvent : Event, CancellableEvent {
+    /**
+     * 事件是否已取消.
+     */
+    override val isCancelled: Boolean get() = _cancelled
 
     private var _cancelled: Boolean = false
 
     /**
      * 取消事件.
      */
-    fun cancel() {
+    override fun cancel() {
         _cancelled = true
     }
 }