From 3119a83c09d66a415103a3e1b793525272722520 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Mon, 30 Sep 2019 00:19:01 +0800
Subject: [PATCH] Rewritten in kotlin

---
 .../mirai/event/events/bot/BotEvent.java      | 24 ------------------
 .../mamoe/mirai/event/events/bot/BotEvent.kt  | 11 ++++++++
 .../events/bot/BotLoginSucceedEvent.java      | 13 ----------
 .../mirai/event/events/group/GroupEvent.java  | 23 -----------------
 .../mirai/event/events/group/GroupEvent.kt    | 10 ++++++++
 .../events/network/BeforePacketSendEvent.java | 17 -------------
 .../events/network/ClientPacketEvent.java     | 19 --------------
 .../events/network/ClientPacketEvents.kt      | 10 ++++++++
 .../event/events/network/PacketEvent.java     | 24 ------------------
 .../mirai/event/events/network/PacketEvent.kt | 10 ++++++++
 .../event/events/network/PacketSentEvent.java | 16 ------------
 .../events/network/ServerPacketEvent.java     | 18 -------------
 .../events/network/ServerPacketEvents.kt      |  9 +++++++
 .../network/ServerPacketReceivedEvent.java    | 18 -------------
 .../mirai/event/events/qq/FriendEvent.java    | 25 -------------------
 .../mirai/event/events/qq/FriendEvent.kt      | 10 ++++++++
 .../mirai/network/packet/ServerPacket.kt      |  2 --
 17 files changed, 60 insertions(+), 199 deletions(-)
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.java
 create mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.kt
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotLoginSucceedEvent.java
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupEvent.java
 create mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupEvent.kt
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/BeforePacketSendEvent.java
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvent.java
 create mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.java
 create mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.kt
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketSentEvent.java
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvent.java
 create mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketReceivedEvent.java
 delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendEvent.java
 create mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendEvent.kt

diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.java
deleted file mode 100644
index 9f097a979..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package net.mamoe.mirai.event.events.bot;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.event.MiraiEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Objects;
-
-/**
- * @author Him188moe
- */
-public abstract class BotEvent extends MiraiEvent {
-    public final Bot bot;
-
-    public BotEvent(@NotNull Bot bot) {
-        this.bot = Objects.requireNonNull(bot);
-    }
-
-    @NotNull
-    public Bot getBot() {
-        return bot;
-    }
-
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.kt
new file mode 100644
index 000000000..d200849c9
--- /dev/null
+++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.kt
@@ -0,0 +1,11 @@
+package net.mamoe.mirai.event.events.bot
+
+import net.mamoe.mirai.Bot
+import net.mamoe.mirai.event.MiraiEvent
+
+/**
+ * @author Him188moe
+ */
+abstract class BotEvent(val bot: Bot) : MiraiEvent()
+
+class BotLoginSucceedEvent(bot: Bot) : BotEvent(bot)
\ No newline at end of file
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotLoginSucceedEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotLoginSucceedEvent.java
deleted file mode 100644
index 2928302e5..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotLoginSucceedEvent.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package net.mamoe.mirai.event.events.bot;
-
-import net.mamoe.mirai.Bot;
-
-/**
- * @author NaturalHG
- */
-public final class BotLoginSucceedEvent extends BotEvent {
-
-    public BotLoginSucceedEvent(Bot bot) {
-        super(bot);
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupEvent.java
deleted file mode 100644
index 8393aad74..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupEvent.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package net.mamoe.mirai.event.events.group;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.contact.Group;
-import net.mamoe.mirai.event.events.bot.BotEvent;
-import org.jetbrains.annotations.NotNull;
-
-/**
- * @author Him188moe
- */
-public abstract class GroupEvent extends BotEvent {
-    private final Group group;
-
-    public GroupEvent(Bot bot, Group group) {
-        super(bot);
-        this.group = group;
-    }
-
-    @NotNull
-    public Group getGroup() {
-        return group;
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupEvent.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupEvent.kt
new file mode 100644
index 000000000..885441d95
--- /dev/null
+++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupEvent.kt
@@ -0,0 +1,10 @@
+package net.mamoe.mirai.event.events.group
+
+import net.mamoe.mirai.Bot
+import net.mamoe.mirai.contact.Group
+import net.mamoe.mirai.event.events.bot.BotEvent
+
+/**
+ * @author Him188moe
+ */
+abstract class GroupEvent(bot: Bot, val group: Group) : BotEvent(bot)
\ No newline at end of file
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/BeforePacketSendEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/BeforePacketSendEvent.java
deleted file mode 100644
index 505d732c4..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/BeforePacketSendEvent.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package net.mamoe.mirai.event.events.network;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.event.Cancellable;
-import net.mamoe.mirai.network.packet.ClientPacket;
-import org.jetbrains.annotations.NotNull;
-
-/**
- * Packet 已经 encoded, 即将被发送
- *
- * @author Him188moe
- */
-public final class BeforePacketSendEvent extends ClientPacketEvent implements Cancellable {
-    public BeforePacketSendEvent(@NotNull Bot bot, @NotNull ClientPacket packet) {
-        super(bot, packet);
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvent.java
deleted file mode 100644
index cd709c660..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvent.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package net.mamoe.mirai.event.events.network;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.network.packet.ClientPacket;
-import org.jetbrains.annotations.NotNull;
-
-/**
- * @author Him188moe
- */
-public abstract class ClientPacketEvent extends PacketEvent {
-    public ClientPacketEvent(@NotNull Bot bot, @NotNull ClientPacket packet) {
-        super(bot, packet);
-    }
-
-    @Override
-    public ClientPacket getPacket() {
-        return (ClientPacket) super.getPacket();
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt
new file mode 100644
index 000000000..5e3d46fa4
--- /dev/null
+++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ClientPacketEvents.kt
@@ -0,0 +1,10 @@
+package net.mamoe.mirai.event.events.network
+
+import net.mamoe.mirai.Bot
+import net.mamoe.mirai.network.packet.ClientPacket
+
+abstract class ClientPacketEvent<out P : ClientPacket>(bot: Bot, packet: P) : PacketEvent<P>(bot, packet)
+
+class PacketSentEvent(bot: Bot, packet: ClientPacket) : ClientPacketEvent<ClientPacket>(bot, packet)
+
+class BeforePacketSendEvent(bot: Bot, packet: ClientPacket) : ClientPacketEvent<ClientPacket>(bot, packet)
\ No newline at end of file
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.java
deleted file mode 100644
index 0e0711fe7..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package net.mamoe.mirai.event.events.network;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.event.events.bot.BotEvent;
-import net.mamoe.mirai.network.packet.Packet;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Objects;
-
-/**
- * @author Him188moe
- */
-public abstract class PacketEvent extends BotEvent {
-    private final Packet packet;
-
-    public PacketEvent(@NotNull Bot bot, @NotNull Packet packet) {
-        super(bot);
-        this.packet = Objects.requireNonNull(packet);
-    }
-
-    public Packet getPacket() {
-        return packet;
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.kt
new file mode 100644
index 000000000..1d8b5fa94
--- /dev/null
+++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketEvent.kt
@@ -0,0 +1,10 @@
+package net.mamoe.mirai.event.events.network
+
+import net.mamoe.mirai.Bot
+import net.mamoe.mirai.event.events.bot.BotEvent
+import net.mamoe.mirai.network.packet.Packet
+
+/**
+ * @author Him188moe
+ */
+abstract class PacketEvent<out P : Packet>(bot: Bot, open val packet: P) : BotEvent(bot)
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketSentEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketSentEvent.java
deleted file mode 100644
index 53257893b..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/PacketSentEvent.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package net.mamoe.mirai.event.events.network;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.network.packet.ClientPacket;
-import org.jetbrains.annotations.NotNull;
-
-/**
- * Packet 已经发出
- *
- * @author Him188moe
- */
-public final class PacketSentEvent extends ClientPacketEvent {
-    public PacketSentEvent(@NotNull Bot bot, @NotNull ClientPacket packet) {
-        super(bot, packet);
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvent.java
deleted file mode 100644
index 21e802ef0..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvent.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package net.mamoe.mirai.event.events.network;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.network.packet.ServerPacket;
-
-/**
- * @author Him188moe
- */
-public abstract class ServerPacketEvent extends PacketEvent {
-    public ServerPacketEvent(Bot bot, ServerPacket packet) {
-        super(bot, packet);
-    }
-
-    @Override
-    public ServerPacket getPacket() {
-        return (ServerPacket) super.getPacket();
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt
new file mode 100644
index 000000000..fbd8eb0b4
--- /dev/null
+++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketEvents.kt
@@ -0,0 +1,9 @@
+package net.mamoe.mirai.event.events.network
+
+import net.mamoe.mirai.Bot
+import net.mamoe.mirai.network.packet.ServerPacket
+
+
+abstract class ServerPacketEvent<out P : ServerPacket>(bot: Bot, packet: P) : PacketEvent<P>(bot, packet)
+
+class ServerPacketReceivedEvent(bot: Bot, packet: ServerPacket) : ServerPacketEvent<ServerPacket>(bot, packet)
\ No newline at end of file
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketReceivedEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketReceivedEvent.java
deleted file mode 100644
index 31954ee76..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/network/ServerPacketReceivedEvent.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package net.mamoe.mirai.event.events.network;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.event.Cancellable;
-import net.mamoe.mirai.network.packet.ServerCatchaPacket;
-import net.mamoe.mirai.network.packet.ServerPacket;
-
-/**
- * 服务器接到某数据包时触发这个事件.
- * 注意, 当接收到数据包的加密包(如 {@link ServerCatchaPacket.Encrypted})也会触发这个事件, 随后才会
- *
- * @author Him188moe
- */
-public final class ServerPacketReceivedEvent extends ServerPacketEvent implements Cancellable {
-    public ServerPacketReceivedEvent(Bot bot, ServerPacket packet) {
-        super(bot, packet);
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendEvent.java
deleted file mode 100644
index 4cec1d5ee..000000000
--- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendEvent.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package net.mamoe.mirai.event.events.qq;
-
-import net.mamoe.mirai.Bot;
-import net.mamoe.mirai.contact.QQ;
-import net.mamoe.mirai.event.events.bot.BotEvent;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Objects;
-
-/**
- * @author Him188moe
- */
-public abstract class FriendEvent extends BotEvent {
-    public final QQ sender;
-
-    public FriendEvent(@NotNull Bot bot, @NotNull QQ sender) {
-        super(bot);
-        this.sender = Objects.requireNonNull(sender);
-    }
-
-    @NotNull
-    public QQ getSender() {
-        return sender;
-    }
-}
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendEvent.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendEvent.kt
new file mode 100644
index 000000000..2721166c5
--- /dev/null
+++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendEvent.kt
@@ -0,0 +1,10 @@
+package net.mamoe.mirai.event.events.qq
+
+import net.mamoe.mirai.Bot
+import net.mamoe.mirai.contact.QQ
+import net.mamoe.mirai.event.events.bot.BotEvent
+
+/**
+ * @author Him188moe
+ */
+abstract class FriendEvent(bot: Bot, val sender: QQ) : BotEvent(bot)
\ No newline at end of file
diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt
index d85e1bd40..97852e236 100644
--- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt
+++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/ServerPacket.kt
@@ -1,7 +1,5 @@
 @file:Suppress("EXPERIMENTAL_API_USAGE")
 
-//to simplify code
-
 package net.mamoe.mirai.network.packet
 
 import net.mamoe.mirai.Bot