From 114604f2b38fcaeefaceb6a7e652d65b03ec965a Mon Sep 17 00:00:00 2001 From: Him188moe Date: Sun, 8 Sep 2019 20:53:54 +0800 Subject: [PATCH] Renamed `robot` to `bot` --- README.md | 4 +- .../net/mamoe/mirai/{Robot.java => Bot.java} | 48 +++++---- .../java/net/mamoe/mirai/MiraiServer.java | 32 +++--- .../java/net/mamoe/mirai/contact/Contact.kt | 8 +- .../java/net/mamoe/mirai/contact/Group.kt | 8 +- .../main/java/net/mamoe/mirai/contact/QQ.kt | 12 +-- .../mirai/event/events/bot/BotEvent.java | 21 ++++ .../mamoe/mirai/event/events/bot/BotEvents.kt | 18 ++++ .../events/bot/BotLoginSucceedEvent.java | 10 ++ .../mirai/event/events/group/GroupEvent.java | 10 +- .../event/events/group/GroupMessageEvent.java | 6 +- .../events/network/BeforePacketSendEvent.java | 6 +- .../events/network/ClientPacketEvent.java | 6 +- .../event/events/network/PacketEvent.java | 10 +- .../event/events/network/PacketSentEvent.java | 6 +- .../events/network/ServerPacketEvent.java | 6 +- .../network/ServerPacketReceivedEvent.java | 6 +- .../mirai/event/events/qq/FriendEvent.java | 10 +- .../event/events/qq/FriendMessageEvent.java | 6 +- .../mirai/event/events/robot/RobotEvent.java | 21 ---- .../mirai/event/events/robot/RobotEvents.kt | 18 ---- .../events/robot/RobotLoginSucceedEvent.java | 10 -- .../mirai/network/RobotNetworkHandler.kt | 100 +++++++++--------- .../mirai/network/packet/action/AddContact.kt | 8 +- .../action/ClientSendFriendMessagePacket.kt | 8 +- .../action/ClientSendGroupMessagePacket.kt | 4 +- .../ServerLoginResponseKeyExchangePacket.kt | 2 +- .../mamoe/mirai/plugin/MiraiPluginBase.java | 4 +- .../java/net/mamoe/mirai/utils/MiraiLogger.kt | 24 ++--- .../net/mamoe/mirai/utils/RobotAccount.java | 4 +- mirai-core/src/test/java/BadQQFilter.kt | 14 +-- 31 files changed, 227 insertions(+), 223 deletions(-) rename mirai-core/src/main/java/net/mamoe/mirai/{Robot.java => Bot.java} (68%) create 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/BotEvents.kt create 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/robot/RobotEvent.java delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotEvents.kt delete mode 100644 mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotLoginSucceedEvent.java diff --git a/README.md b/README.md index d9f4bfd91..35c709ec9 100644 --- a/README.md +++ b/README.md @@ -40,8 +40,8 @@ Network部分使用 Kotlin 完成(因为kt有对 unsigned byte 的支持). - [X] Network - Message Receiving - [X] Network - Message Sending - [ ] Network - Events **(Working on)** -- [ ] Robot - Friend/group list -- [ ] Robot - Actions(joining group, adding friend, etc.) +- [ ] Bot - Friend/group list +- [ ] Bot - Actions(joining group, adding friend, etc.) - [ ] Message Section **(Working on)** - [ ] Contact - [ ] UI diff --git a/mirai-core/src/main/java/net/mamoe/mirai/Robot.java b/mirai-core/src/main/java/net/mamoe/mirai/Bot.java similarity index 68% rename from mirai-core/src/main/java/net/mamoe/mirai/Robot.java rename to mirai-core/src/main/java/net/mamoe/mirai/Bot.java index 8121b9cea..b6d76b71e 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/Robot.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/Bot.java @@ -3,9 +3,9 @@ package net.mamoe.mirai; import lombok.Getter; import net.mamoe.mirai.contact.Group; import net.mamoe.mirai.contact.QQ; -import net.mamoe.mirai.network.RobotNetworkHandler; +import net.mamoe.mirai.network.BotNetworkHandler; +import net.mamoe.mirai.utils.BotAccount; import net.mamoe.mirai.utils.ContactList; -import net.mamoe.mirai.utils.RobotAccount; import net.mamoe.mirai.utils.config.MiraiConfigSection; import org.jetbrains.annotations.NotNull; @@ -15,43 +15,47 @@ import java.util.concurrent.atomic.AtomicInteger; /** * Mirai 的机器人. 一个机器人实例登录一个 QQ 账号. - * Mirai 为多账号设计, 可同时维护多个机器人账号. + * Mirai 为多账号设计, 可同时维护多个机器人. *
- * {@link Robot} 由 2 个模块组成. - * {@linkplain ContactSystem 联系人管理}: 可通过 {@link Robot#contacts} 访问 - * {@linkplain RobotNetworkHandler 网络处理器}: 可通过 {@link Robot#network} 访问 + * {@link Bot} 由 2 个模块组成. + * {@linkplain ContactSystem 联系人管理}: 可通过 {@link Bot#contacts} 访问 + * {@linkplain BotNetworkHandler 网络处理器}: 可通过 {@link Bot#network} 访问 *
- * 另外地, 若你需要得到机器人的 QQ 账号, 请访问 {@link Robot#account} - * 若你需要得到服务器上所有机器人列表, 请访问 {@link Robot#instances} + * 若你需要得到机器人的 QQ 账号, 请访问 {@link Bot#account} + * 若你需要得到服务器上所有机器人列表, 请访问 {@link Bot#instances} * * @author Him188moe * @author NatrualHG * @see net.mamoe.mirai.contact.Contact * *

- * Robot that is the base of the whole program. + * Bot that is the base of the whole program. * It contains a {@link ContactSystem}, which manage contacts such as {@link QQ} and {@link Group}. */ -public final class Robot implements Closeable { - public static final List instances = Collections.synchronizedList(new LinkedList<>()); +public final class Bot implements Closeable { + public static final List instances = Collections.synchronizedList(new LinkedList<>()); + + { + instances.add(this); + } public final int id = _id.getAndAdd(1); - public final RobotAccount account; + public final BotAccount account; public final ContactSystem contacts = new ContactSystem(); - public final RobotNetworkHandler network; + public final BotNetworkHandler network; @Override public String toString() { - return String.format("Robot{id=%d,qq=%d}", id, this.account.qqNumber); + return String.format("Bot{id=%d,qq=%d}", id, this.account.qqNumber); } /** - * Robot 联系人管理. + * Bot 联系人管理. * - * @see Robot#contacts + * @see Bot#contacts */ public final class ContactSystem { private final ContactList groups = new ContactList<>(); @@ -63,14 +67,14 @@ public final class Robot implements Closeable { public QQ getQQ(long qqNumber) { if (!this.qqs.containsKey(qqNumber)) { - this.qqs.put(qqNumber, new QQ(Robot.this, qqNumber)); + this.qqs.put(qqNumber, new QQ(Bot.this, qqNumber)); } return this.qqs.get(qqNumber); } public Group getGroupByNumber(long groupNumber) { if (!this.groups.containsKey(groupNumber)) { - this.groups.put(groupNumber, new Group(Robot.this, groupNumber)); + this.groups.put(groupNumber, new Group(Bot.this, groupNumber)); } return groups.get(groupNumber); } @@ -91,9 +95,9 @@ public final class Robot implements Closeable { return owners.contains(ownerName); } - public Robot(MiraiConfigSection data) throws Throwable { + public Bot(MiraiConfigSection data) throws Throwable { this( - new RobotAccount( + new BotAccount( data.getLongOrThrow("account", () -> new IllegalArgumentException("account")), data.getStringOrThrow("password", () -> new IllegalArgumentException("password")) ), @@ -101,12 +105,12 @@ public final class Robot implements Closeable { ); } - public Robot(@NotNull RobotAccount account, @NotNull List owners) { + public Bot(@NotNull BotAccount account, @NotNull List owners) { Objects.requireNonNull(account); Objects.requireNonNull(owners); this.account = account; this.owners = Collections.unmodifiableList(owners); - this.network = new RobotNetworkHandler(this); + this.network = new BotNetworkHandler(this); } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java b/mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java index d34a6359d..6e2781f21 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/MiraiServer.java @@ -6,10 +6,10 @@ import net.mamoe.mirai.event.events.server.ServerDisabledEvent; import net.mamoe.mirai.event.events.server.ServerEnabledEvent; import net.mamoe.mirai.network.packet.login.LoginState; import net.mamoe.mirai.task.MiraiTaskManager; +import net.mamoe.mirai.utils.BotAccount; import net.mamoe.mirai.utils.LoggerTextFormat; import net.mamoe.mirai.utils.MiraiLogger; import net.mamoe.mirai.utils.MiraiLoggerKt; -import net.mamoe.mirai.utils.RobotAccount; import net.mamoe.mirai.utils.config.MiraiConfig; import net.mamoe.mirai.utils.config.MiraiConfigSection; import net.mamoe.mirai.utils.setting.MiraiSettingListSection; @@ -155,7 +155,7 @@ public class MiraiServer { MiraiConfigSection section = new MiraiConfigSection<>(); Scanner scanner = new Scanner(System.in); - getLogger().info("Input a " + LoggerTextFormat.RED + " QQ number " + LoggerTextFormat.GREEN + "for default robotNetworkHandler"); + getLogger().info("Input a " + LoggerTextFormat.RED + " QQ number " + LoggerTextFormat.GREEN + "for default botNetworkHandler"); getLogger().info("输入用于默认机器人的QQ号"); long qqNumber = scanner.nextLong(); getLogger().info("Input the password for that QQ account"); @@ -176,33 +176,33 @@ public class MiraiServer { getLogger().info(LoggerTextFormat.GREEN + "Server enabled; Welcome to Mirai"); getLogger().info("Mirai Version=" + MiraiServer.MIRAI_VERSION + " QQ Version=" + MiraiServer.QQ_VERSION); - getLogger().info("Initializing [Robot]s"); + getLogger().info("Initializing [Bot]s"); try { - getAvailableRobot(); + getAvailableBot(); } catch (ExecutionException | InterruptedException e) { e.printStackTrace(); } /* this.qqs.keySet().stream().map(key -> this.qqs.getSection(key)).forEach(section -> { - getLogger().info("Initializing [Robot] " + section.getString("account")); + getLogger().info("Initializing [Bot] " + section.getString("account")); try { - Robot robot = new Robot(section); - var state = robot.network.tryLogin$mirai_core().get(); - //robot.network.tryLogin$mirai_core().whenComplete((state, e) -> { + Bot bot = new Bot(section); + var state = bot.network.tryLogin$mirai_core().get(); + //bot.network.tryLogin$mirai_core().whenComplete((state, e) -> { if (state == LoginState.SUCCESS) { - Robot.instances.add(robot); + Bot.instances.add(bot); getLogger().success(" Login Succeed"); } else { getLogger().error(" Login Failed with error " + state); - robot.close(); + bot.close(); } // }).get(); } catch (Throwable e) { e.printStackTrace(); - getLogger().error("Could not load QQ robots config!"); + getLogger().error("Could not load QQ bots config!"); System.exit(1); } });*/ @@ -219,14 +219,14 @@ public class MiraiServer { "1515419818----1234567890\n" + "3107367848----987654321\n"; - private Robot getAvailableRobot() throws ExecutionException, InterruptedException { + private Bot getAvailableBot() throws ExecutionException, InterruptedException { for (String it : qqList.split("\n")) { var strings = it.split("----"); - var robot = new Robot(new RobotAccount(Long.parseLong(strings[0]), strings[1]), List.of()); + var bot = new Bot(new BotAccount(Long.parseLong(strings[0]), strings[1]), List.of()); - if (robot.network.tryLogin$mirai_core().get() == LoginState.SUCCESS) { - MiraiLoggerKt.success(robot, "Login succeed"); - return robot; + if (bot.network.tryLogin$mirai_core().get() == LoginState.SUCCESS) { + MiraiLoggerKt.success(bot, "Login succeed"); + return bot; } } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/contact/Contact.kt b/mirai-core/src/main/java/net/mamoe/mirai/contact/Contact.kt index f50a7520c..9525c474d 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/contact/Contact.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/contact/Contact.kt @@ -1,17 +1,17 @@ package net.mamoe.mirai.contact -import net.mamoe.mirai.Robot +import net.mamoe.mirai.Bot import net.mamoe.mirai.message.Message import net.mamoe.mirai.message.defaults.MessageChain import net.mamoe.mirai.message.defaults.PlainText /** - * A contact is a [QQ] or a [Group] for one particular [Robot] instance only. + * A contact is a [QQ] or a [Group] for one particular [Bot] instance only. * - * @param robot Owner [Robot] + * @param bot Owner [Bot] * @author Him188moe */ -abstract class Contact internal constructor(val robot: Robot, val number: Long) { +abstract class Contact internal constructor(val bot: Bot, val number: Long) { /** * Async */ diff --git a/mirai-core/src/main/java/net/mamoe/mirai/contact/Group.kt b/mirai-core/src/main/java/net/mamoe/mirai/contact/Group.kt index 8573e6cd1..118a49d53 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/contact/Group.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/contact/Group.kt @@ -1,6 +1,6 @@ package net.mamoe.mirai.contact -import net.mamoe.mirai.Robot +import net.mamoe.mirai.Bot import net.mamoe.mirai.contact.Group.Companion.groupNumberToId import net.mamoe.mirai.message.defaults.MessageChain import net.mamoe.mirai.utils.ContactList @@ -10,18 +10,18 @@ import java.io.Closeable * 群 * * Java 获取 groupNumber: `group.getNumber()` - * Java 获取所属 robot: `group.getRobot()` + * Java 获取所属 bot: `group.getBot()` * Java 获取群成员列表: `group.getMembers()` * Java 获取 groupId: `group.getGroupId()` * * Java 调用 [groupNumberToId] : `Group.groupNumberToId(number)` */ -class Group(robot: Robot, number: Long) : Contact(robot, number), Closeable { +class Group(bot: Bot, number: Long) : Contact(bot, number), Closeable { val groupId = groupNumberToId(number) val members = ContactList() override fun sendMessage(message: MessageChain) { - robot.network.messageHandler.sendGroupMessage(this, message) + bot.network.messageHandler.sendGroupMessage(this, message) } override fun sendXMLMessage(message: String) { diff --git a/mirai-core/src/main/java/net/mamoe/mirai/contact/QQ.kt b/mirai-core/src/main/java/net/mamoe/mirai/contact/QQ.kt index eebcd728f..39d58bccc 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/contact/QQ.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/contact/QQ.kt @@ -1,25 +1,25 @@ package net.mamoe.mirai.contact -import net.mamoe.mirai.Robot +import net.mamoe.mirai.Bot import net.mamoe.mirai.message.Message import net.mamoe.mirai.message.defaults.At import net.mamoe.mirai.message.defaults.MessageChain /** * QQ 账号. - * 注意: 一个 [QQ] 实例并不是独立的, 它属于一个 [Robot]. + * 注意: 一个 [QQ] 实例并不是独立的, 它属于一个 [Bot]. * * Java 获取 qq 号: `qq.getNumber()` - * Java 获取所属 robot: `qq.getRobot()` + * Java 获取所属 bot: `qq.getBot()` * * A QQ instance helps you to receive message from or send message to. - * Notice that, one QQ instance belong to one [Robot], that is, QQ instances from different [Robot] are NOT the same. + * Notice that, one QQ instance belong to one [Bot], that is, QQ instances from different [Bot] are NOT the same. * * @author Him188moe */ -class QQ(robot: Robot, number: Long) : Contact(robot, number) { +class QQ(bot: Bot, number: Long) : Contact(bot, number) { override fun sendMessage(message: MessageChain) { - robot.network.messageHandler.sendFriendMessage(this, message) + bot.network.messageHandler.sendFriendMessage(this, message) } override fun sendXMLMessage(message: String) { 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 new file mode 100644 index 000000000..c095e4c85 --- /dev/null +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvent.java @@ -0,0 +1,21 @@ +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; + +public abstract class BotEvent extends MiraiEvent { + private 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/BotEvents.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvents.kt new file mode 100644 index 000000000..3a7fc3fd6 --- /dev/null +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotEvents.kt @@ -0,0 +1,18 @@ +package net.mamoe.mirai.event.events.bot + +import net.mamoe.mirai.Bot +import net.mamoe.mirai.event.MiraiEvent + +/** + * @author Him188moe + */ +class BotLoginEvent(val bot: Bot) : MiraiEvent() + +class BotLogoutEvent(val bot: Bot) : MiraiEvent() + +class BotMessageReceivedEvent(val bot: Bot, val type: Type, val message: String) : MiraiEvent() { + enum class Type { + FRIEND, + GROUP + } +} 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 new file mode 100644 index 000000000..62cfe5f36 --- /dev/null +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/bot/BotLoginSucceedEvent.java @@ -0,0 +1,10 @@ +package net.mamoe.mirai.event.events.bot; + +import net.mamoe.mirai.Bot; + +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 index 59715c343..8393aad74 100644 --- 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 @@ -1,18 +1,18 @@ package net.mamoe.mirai.event.events.group; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.contact.Group; -import net.mamoe.mirai.event.events.robot.RobotEvent; +import net.mamoe.mirai.event.events.bot.BotEvent; import org.jetbrains.annotations.NotNull; /** * @author Him188moe */ -public abstract class GroupEvent extends RobotEvent { +public abstract class GroupEvent extends BotEvent { private final Group group; - public GroupEvent(Robot robot, Group group) { - super(robot); + public GroupEvent(Bot bot, Group group) { + super(bot); this.group = group; } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupMessageEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupMessageEvent.java index 3f6662df1..77e71e0d9 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupMessageEvent.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/group/GroupMessageEvent.java @@ -1,6 +1,6 @@ package net.mamoe.mirai.event.events.group; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.contact.Group; import net.mamoe.mirai.contact.QQ; import net.mamoe.mirai.message.defaults.MessageChain; @@ -14,8 +14,8 @@ public final class GroupMessageEvent extends GroupEvent { private final MessageChain messageChain; private final String messageString; - public GroupMessageEvent(@NotNull Robot robot, @NotNull Group group, @NotNull QQ sender, @NotNull MessageChain messageChain) { - super(robot, group); + public GroupMessageEvent(@NotNull Bot bot, @NotNull Group group, @NotNull QQ sender, @NotNull MessageChain messageChain) { + super(bot, group); this.sender = sender; this.messageChain = messageChain; this.messageString = messageChain.toString(); 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 index 80854d43a..505d732c4 100644 --- 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 @@ -1,6 +1,6 @@ package net.mamoe.mirai.event.events.network; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.event.Cancellable; import net.mamoe.mirai.network.packet.ClientPacket; import org.jetbrains.annotations.NotNull; @@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull; * @author Him188moe */ public final class BeforePacketSendEvent extends ClientPacketEvent implements Cancellable { - public BeforePacketSendEvent(@NotNull Robot robot, @NotNull ClientPacket packet) { - super(robot, packet); + 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 index ba7c12cca..cd709c660 100644 --- 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 @@ -1,6 +1,6 @@ package net.mamoe.mirai.event.events.network; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.network.packet.ClientPacket; import org.jetbrains.annotations.NotNull; @@ -8,8 +8,8 @@ import org.jetbrains.annotations.NotNull; * @author Him188moe */ public abstract class ClientPacketEvent extends PacketEvent { - public ClientPacketEvent(@NotNull Robot robot, @NotNull ClientPacket packet) { - super(robot, packet); + public ClientPacketEvent(@NotNull Bot bot, @NotNull ClientPacket packet) { + super(bot, packet); } @Override 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 index af75f839a..0e0711fe7 100644 --- 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 @@ -1,7 +1,7 @@ package net.mamoe.mirai.event.events.network; -import net.mamoe.mirai.Robot; -import net.mamoe.mirai.event.events.robot.RobotEvent; +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; @@ -10,11 +10,11 @@ import java.util.Objects; /** * @author Him188moe */ -public abstract class PacketEvent extends RobotEvent { +public abstract class PacketEvent extends BotEvent { private final Packet packet; - public PacketEvent(@NotNull Robot robot, @NotNull Packet packet) { - super(robot); + public PacketEvent(@NotNull Bot bot, @NotNull Packet packet) { + super(bot); this.packet = Objects.requireNonNull(packet); } 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 index 1215a95d0..53257893b 100644 --- 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 @@ -1,6 +1,6 @@ package net.mamoe.mirai.event.events.network; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.network.packet.ClientPacket; import org.jetbrains.annotations.NotNull; @@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull; * @author Him188moe */ public final class PacketSentEvent extends ClientPacketEvent { - public PacketSentEvent(@NotNull Robot robot, @NotNull ClientPacket packet) { - super(robot, packet); + 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 index 7f5849e9d..21e802ef0 100644 --- 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 @@ -1,14 +1,14 @@ package net.mamoe.mirai.event.events.network; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.network.packet.ServerPacket; /** * @author Him188moe */ public abstract class ServerPacketEvent extends PacketEvent { - public ServerPacketEvent(Robot robot, ServerPacket packet) { - super(robot, packet); + public ServerPacketEvent(Bot bot, ServerPacket packet) { + super(bot, packet); } @Override 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 index f92300882..dd4be2178 100644 --- 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 @@ -1,6 +1,6 @@ package net.mamoe.mirai.event.events.network; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.event.Cancellable; import net.mamoe.mirai.network.packet.ServerPacket; import net.mamoe.mirai.network.packet.ServerVerificationCodePacket; @@ -12,7 +12,7 @@ import net.mamoe.mirai.network.packet.ServerVerificationCodePacket; * @author Him188moe */ public final class ServerPacketReceivedEvent extends ServerPacketEvent implements Cancellable { - public ServerPacketReceivedEvent(Robot robot, ServerPacket packet) { - super(robot, packet); + 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 index 7c25d5308..7e34ba5f4 100644 --- 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 @@ -1,8 +1,8 @@ package net.mamoe.mirai.event.events.qq; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.contact.QQ; -import net.mamoe.mirai.event.events.robot.RobotEvent; +import net.mamoe.mirai.event.events.bot.BotEvent; import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -10,11 +10,11 @@ import java.util.Objects; /** * @author Him188moe */ -public abstract class FriendEvent extends RobotEvent { +public abstract class FriendEvent extends BotEvent { private final QQ qq; - public FriendEvent(@NotNull Robot robot, @NotNull QQ qq) { - super(robot); + public FriendEvent(@NotNull Bot bot, @NotNull QQ qq) { + super(bot); this.qq = Objects.requireNonNull(qq); } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendMessageEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendMessageEvent.java index 400f0c0ac..3952db4a3 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendMessageEvent.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/event/events/qq/FriendMessageEvent.java @@ -1,6 +1,6 @@ package net.mamoe.mirai.event.events.qq; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; import net.mamoe.mirai.contact.QQ; import net.mamoe.mirai.message.defaults.MessageChain; import org.jetbrains.annotations.NotNull; @@ -13,8 +13,8 @@ import java.util.Objects; public final class FriendMessageEvent extends FriendEvent { private final MessageChain messageChain; - public FriendMessageEvent(@NotNull Robot robot, @NotNull QQ sender, @NotNull MessageChain messageChain) { - super(robot, sender); + public FriendMessageEvent(@NotNull Bot bot, @NotNull QQ sender, @NotNull MessageChain messageChain) { + super(bot, sender); this.messageChain = Objects.requireNonNull(messageChain); } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotEvent.java deleted file mode 100644 index 70d85ed78..000000000 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotEvent.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.mamoe.mirai.event.events.robot; - -import net.mamoe.mirai.Robot; -import net.mamoe.mirai.event.MiraiEvent; -import org.jetbrains.annotations.NotNull; - -import java.util.Objects; - -public abstract class RobotEvent extends MiraiEvent { - private final Robot robot; - - public RobotEvent(@NotNull Robot robot) { - this.robot = Objects.requireNonNull(robot); - } - - @NotNull - public Robot getRobot() { - return robot; - } - -} diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotEvents.kt b/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotEvents.kt deleted file mode 100644 index 9b452b1fd..000000000 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotEvents.kt +++ /dev/null @@ -1,18 +0,0 @@ -package net.mamoe.mirai.event.events.robot - -import net.mamoe.mirai.Robot -import net.mamoe.mirai.event.MiraiEvent - -/** - * @author Him188moe - */ -class RobotLoginEvent(val robot: Robot) : MiraiEvent() - -class RobotLogoutEvent(val robot: Robot) : MiraiEvent() - -class RobotMessageReceivedEvent(val robot: Robot, val type: Type, val message: String) : MiraiEvent() { - enum class Type { - FRIEND, - GROUP - } -} diff --git a/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotLoginSucceedEvent.java b/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotLoginSucceedEvent.java deleted file mode 100644 index a49d5f213..000000000 --- a/mirai-core/src/main/java/net/mamoe/mirai/event/events/robot/RobotLoginSucceedEvent.java +++ /dev/null @@ -1,10 +0,0 @@ -package net.mamoe.mirai.event.events.robot; - -import net.mamoe.mirai.Robot; - -public final class RobotLoginSucceedEvent extends RobotEvent { - - public RobotLoginSucceedEvent(Robot robot) { - super(robot); - } -} diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt index 1e18db8d0..d24cade3a 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/RobotNetworkHandler.kt @@ -1,21 +1,21 @@ @file:JvmMultifileClass -@file:JvmName("RobotNetworkHandler") +@file:JvmName("BotNetworkHandler") package net.mamoe.mirai.network +import net.mamoe.mirai.Bot import net.mamoe.mirai.MiraiServer -import net.mamoe.mirai.Robot import net.mamoe.mirai.contact.Group import net.mamoe.mirai.contact.QQ +import net.mamoe.mirai.event.events.bot.BotLoginSucceedEvent import net.mamoe.mirai.event.events.network.BeforePacketSendEvent import net.mamoe.mirai.event.events.network.PacketSentEvent import net.mamoe.mirai.event.events.network.ServerPacketReceivedEvent import net.mamoe.mirai.event.events.qq.FriendMessageEvent -import net.mamoe.mirai.event.events.robot.RobotLoginSucceedEvent import net.mamoe.mirai.event.hookWhile import net.mamoe.mirai.message.Message import net.mamoe.mirai.message.defaults.MessageChain -import net.mamoe.mirai.network.RobotNetworkHandler.* +import net.mamoe.mirai.network.BotNetworkHandler.* import net.mamoe.mirai.network.packet.* import net.mamoe.mirai.network.packet.action.* import net.mamoe.mirai.network.packet.login.* @@ -36,9 +36,9 @@ import kotlin.reflect.KClass /** * Mirai 的网络处理器, 它处理所有数据包([Packet])的发送和接收. - * [RobotNetworkHandler] 是全程异步和线程安全的. + * [BotNetworkHandler] 是全程异步和线程安全的. * - * [RobotNetworkHandler] 由 2 个模块构成: + * [BotNetworkHandler] 由 2 个模块构成: * - [SocketHandler]: 处理数据包底层的发送([ByteArray]) * - [PacketHandler]: 制作 [Packet] 并传递给 [SocketHandler] 继续处理; 分析来自服务器的数据包并处理 * @@ -48,12 +48,12 @@ import kotlin.reflect.KClass * - [MessageHandler] 处理消息相关(群消息/好友消息)([ServerEventPacket]) * - [ActionHandler] 处理动作相关(踢人/加入群/好友列表等) * - * A RobotNetworkHandler is used to connect with Tencent servers. + * A BotNetworkHandler is used to connect with Tencent servers. * * @author Him188moe */ @Suppress("EXPERIMENTAL_API_USAGE")//to simplify code -class RobotNetworkHandler(private val robot: Robot) : Closeable { +class BotNetworkHandler(private val bot: Bot) : Closeable { private val socketHandler: SocketHandler = SocketHandler() val debugHandler = DebugHandler() @@ -105,7 +105,7 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { return } - this@RobotNetworkHandler.socketHandler.touch(ip, touchingTimeoutMillis).get().let { state -> + this@BotNetworkHandler.socketHandler.touch(ip, touchingTimeoutMillis).get().let { state -> if (state == LoginState.UNKNOWN || state == LoginState.TIMEOUT) { login() } else { @@ -126,13 +126,13 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { packet.decode() } catch (e: java.lang.Exception) { e.printStackTrace() - robot.debug("Packet=$packet") - robot.debug("Packet size=" + packet.input.goto(0).readAllBytes().size) - robot.debug("Packet data=" + packet.input.goto(0).readAllBytes().toUHexString()) + bot.debug("Packet=$packet") + bot.debug("Packet size=" + packet.input.goto(0).readAllBytes().size) + bot.debug("Packet data=" + packet.input.goto(0).readAllBytes().toUHexString()) return } - if (ServerPacketReceivedEvent(robot, packet).broadcast().isCancelled) { + if (ServerPacketReceivedEvent(bot, packet).broadcast().isCancelled) { debugHandler.onPacketReceived(packet) return } @@ -186,14 +186,14 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { * Start network and touch the server */ internal fun touch(serverAddress: String, timeoutMillis: Long): CompletableFuture { - robot.info("Connecting server: $serverAddress") + bot.info("Connecting server: $serverAddress") this.loginFuture = CompletableFuture() socketHandler.serverIP = serverAddress waitForPacket(ServerPacket::class, timeoutMillis) { loginFuture!!.complete(LoginState.TIMEOUT) } - sendPacket(ClientTouchPacket(robot.account.qqNumber, socketHandler.serverIP)) + sendPacket(ClientTouchPacket(bot.account.qqNumber, socketHandler.serverIP)) return this.loginFuture!! } @@ -212,15 +212,15 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { try { packet.encodePacket() - if (BeforePacketSendEvent(robot, packet).broadcast().isCancelled) { + if (BeforePacketSendEvent(bot, packet).broadcast().isCancelled) { return } val data = packet.toByteArray() socket!!.send(DatagramPacket(data, data.size)) - robot cyanL "Packet sent: $packet" + bot cyanL "Packet sent: $packet" - PacketSentEvent(robot, packet).broadcast() + PacketSentEvent(bot, packet).broadcast() } catch (e: Throwable) { e.printStackTrace() } @@ -230,7 +230,7 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { internal fun

waitForPacket(packetClass: KClass

, timeoutMillis: Long, timeout: () -> Unit) { var got = false ServerPacketReceivedEvent::class.hookWhile { - if (packetClass.isInstance(it.packet) && it.robot == robot) { + if (packetClass.isInstance(it.packet) && it.bot == bot) { got = true true } else { @@ -283,10 +283,10 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { inner class DebugHandler : PacketHandler() { override fun onPacketReceived(packet: ServerPacket) { if (!packet.javaClass.name.endsWith("Encrypted") && !packet.javaClass.name.endsWith("Raw")) { - robot notice "Packet received: $packet" + bot notice "Packet received: $packet" } if (packet is ServerEventPacket) { - sendPacket(ClientMessageResponsePacket(robot.account.qqNumber, packet.packetId, sessionKey, packet.eventIdentity)) + sendPacket(ClientMessageResponsePacket(bot.account.qqNumber, packet.packetId, sessionKey, packet.eventIdentity)) } } } @@ -327,12 +327,12 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { if (packet.serverIP != null) {//redirection socketHandler.serverIP = packet.serverIP!! //connect(packet.serverIP!!) - sendPacket(ClientServerRedirectionPacket(packet.serverIP!!, robot.account.qqNumber)) + sendPacket(ClientServerRedirectionPacket(packet.serverIP!!, bot.account.qqNumber)) } else {//password submission this.loginIP = packet.loginIP this.loginTime = packet.loginTime this.token0825 = packet.token0825 - sendPacket(ClientPasswordSubmissionPacket(robot.account.qqNumber, robot.account.password, packet.loginTime, packet.loginIP, this.tgtgtKey, packet.token0825)) + sendPacket(ClientPasswordSubmissionPacket(bot.account.qqNumber, bot.account.password, packet.loginTime, packet.loginIP, this.tgtgtKey, packet.token0825)) } } @@ -344,7 +344,7 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { is ServerVerificationCodeCorrectPacket -> { this.tgtgtKey = getRandomByteArray(16) this.token00BA = packet.token00BA - sendPacket(ClientLoginResendPacket3105(robot.account.qqNumber, robot.account.password, this.loginTime, this.loginIP, this.tgtgtKey, this.token0825, this.token00BA)) + sendPacket(ClientLoginResendPacket3105(bot.account.qqNumber, bot.account.password, this.loginTime, this.loginIP, this.tgtgtKey, this.token0825, this.token00BA)) } is ServerLoginResponseVerificationCodeInitPacket -> { @@ -354,13 +354,13 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { if (packet.unknownBoolean != null && packet.unknownBoolean!!) { this.captchaSectionId = 1 - sendPacket(ClientVerificationCodeTransmissionRequestPacket(1, robot.account.qqNumber, this.token0825, this.captchaSectionId++, this.token00BA)) + sendPacket(ClientVerificationCodeTransmissionRequestPacket(1, bot.account.qqNumber, this.token0825, this.captchaSectionId++, this.token00BA)) } } is ServerVerificationCodeTransmissionPacket -> { if (packet is ServerVerificationCodeWrongPacket) { - robot error "验证码错误, 请重新输入" + bot error "验证码错误, 请重新输入" captchaSectionId = 1 this.captchaCache = byteArrayOf() } @@ -369,31 +369,31 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { this.token00BA = packet.token00BA if (packet.transmissionCompleted) { - robot notice (CharImageUtil.createCharImg(ImageIO.read(this.captchaCache!!.inputStream()))) - robot notice ("需要验证码登录, 验证码为 4 字母") + bot notice (CharImageUtil.createCharImg(ImageIO.read(this.captchaCache!!.inputStream()))) + bot notice ("需要验证码登录, 验证码为 4 字母") try { (MiraiServer.getInstance().parentFolder + "VerificationCode.png").writeBytes(this.captchaCache!!) - robot notice ("若看不清字符图片, 请查看 Mirai 根目录下 VerificationCode.png") + bot notice ("若看不清字符图片, 请查看 Mirai 根目录下 VerificationCode.png") } catch (e: Exception) { - robot notice "无法写出验证码文件, 请尝试查看以上字符图片" + bot notice "无法写出验证码文件, 请尝试查看以上字符图片" } - robot notice ("若要更换验证码, 请直接回车") + bot notice ("若要更换验证码, 请直接回车") val code = Scanner(System.`in`).nextLine() if (code.isEmpty() || code.length != 4) { this.captchaCache = byteArrayOf() this.captchaSectionId = 1 - sendPacket(ClientVerificationCodeRefreshPacket(packet.packetIdLast + 1, robot.account.qqNumber, token0825)) + sendPacket(ClientVerificationCodeRefreshPacket(packet.packetIdLast + 1, bot.account.qqNumber, token0825)) } else { - sendPacket(ClientVerificationCodeSubmitPacket(packet.packetIdLast + 1, robot.account.qqNumber, token0825, code, packet.verificationToken)) + sendPacket(ClientVerificationCodeSubmitPacket(packet.packetIdLast + 1, bot.account.qqNumber, token0825, code, packet.verificationToken)) } } else { - sendPacket(ClientVerificationCodeTransmissionRequestPacket(packet.packetIdLast + 1, robot.account.qqNumber, token0825, captchaSectionId++, token00BA)) + sendPacket(ClientVerificationCodeTransmissionRequestPacket(packet.packetIdLast + 1, bot.account.qqNumber, token0825, captchaSectionId++, token00BA)) } } is ServerLoginResponseSuccessPacket -> { this.sessionResponseDecryptionKey = packet.sessionResponseDecryptionKey - sendPacket(ClientSessionRequestPacket(robot.account.qqNumber, socketHandler.serverIP, packet.token38, packet.token88, packet.encryptionKey, this.tlv0105)) + sendPacket(ClientSessionRequestPacket(bot.account.qqNumber, socketHandler.serverIP, packet.token38, packet.token88, packet.encryptionKey, this.tlv0105)) } //是ClientPasswordSubmissionPacket之后服务器回复的 @@ -404,10 +404,10 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { //} if (packet.flag == ServerLoginResponseKeyExchangePacket.Flag.`08 36 31 03`) { this.tgtgtKey = packet.tgtgtKey - sendPacket(ClientLoginResendPacket3104(robot.account.qqNumber, robot.account.password, loginTime, loginIP, tgtgtKey, token0825, packet.tokenUnknown + sendPacket(ClientLoginResendPacket3104(bot.account.qqNumber, bot.account.password, loginTime, loginIP, tgtgtKey, token0825, packet.tokenUnknown ?: this.token00BA, packet.tlv0006)) } else { - sendPacket(ClientLoginResendPacket3106(robot.account.qqNumber, robot.account.password, loginTime, loginIP, tgtgtKey, token0825, packet.tokenUnknown + sendPacket(ClientLoginResendPacket3106(bot.account.qqNumber, bot.account.password, loginTime, loginIP, tgtgtKey, token0825, packet.tokenUnknown ?: token00BA, packet.tlv0006)) } } @@ -415,10 +415,10 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { is ServerSessionKeyResponsePacket -> { sessionKey = packet.sessionKey heartbeatFuture = MiraiThreadPool.getInstance().scheduleWithFixedDelay({ - sendPacket(ClientHeartbeatPacket(robot.account.qqNumber, sessionKey)) + sendPacket(ClientHeartbeatPacket(bot.account.qqNumber, sessionKey)) }, 90000, 90000, TimeUnit.MILLISECONDS) - RobotLoginSucceedEvent(robot).broadcast() + BotLoginSucceedEvent(bot).broadcast() //登录成功后会收到大量上次的消息, 忽略掉 MiraiThreadPool.getInstance().schedule({ @@ -426,24 +426,24 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { }, 2, TimeUnit.SECONDS) this.tlv0105 = packet.tlv0105 - sendPacket(ClientChangeOnlineStatusPacket(robot.account.qqNumber, sessionKey, ClientLoginStatus.ONLINE)) + sendPacket(ClientChangeOnlineStatusPacket(bot.account.qqNumber, sessionKey, ClientLoginStatus.ONLINE)) } is ServerLoginSuccessPacket -> { socketHandler.loginFuture!!.complete(LoginState.SUCCESS) - sendPacket(ClientSKeyRequestPacket(robot.account.qqNumber, sessionKey)) + sendPacket(ClientSKeyRequestPacket(bot.account.qqNumber, sessionKey)) } is ServerSKeyResponsePacket -> { actionHandler.sKey = packet.sKey - actionHandler.cookies = "uin=o" + robot.account.qqNumber + ";skey=" + actionHandler.sKey + ";" + actionHandler.cookies = "uin=o" + bot.account.qqNumber + ";skey=" + actionHandler.sKey + ";" sKeyRefresherFuture = MiraiThreadPool.getInstance().scheduleWithFixedDelay({ - sendPacket(ClientSKeyRefreshmentRequestPacket(robot.account.qqNumber, sessionKey)) + sendPacket(ClientSKeyRefreshmentRequestPacket(bot.account.qqNumber, sessionKey)) }, 1800000, 1800000, TimeUnit.MILLISECONDS) actionHandler.gtk = getGTK(actionHandler.sKey) - sendPacket(ClientAccountInfoRequestPacket(robot.account.qqNumber, sessionKey)) + sendPacket(ClientAccountInfoRequestPacket(bot.account.qqNumber, sessionKey)) } is ServerEventPacket.Raw -> distributePacket(packet.distribute()) @@ -514,12 +514,12 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { return } - FriendMessageEvent(robot, robot.contacts.getQQ(packet.qq), packet.message).broadcast() + FriendMessageEvent(bot, bot.contacts.getQQ(packet.qq), packet.message).broadcast() } is ServerGroupMessageEventPacket -> { //todo message chain - //GroupMessageEvent(this.robot, robot.contacts.getGroupByNumber(packet.groupNumber), robot.contacts.getQQ(packet.qq), packet.message) + //GroupMessageEvent(this.bot, bot.contacts.getGroupByNumber(packet.groupNumber), bot.contacts.getQQ(packet.qq), packet.message) } is UnknownServerEventPacket -> { @@ -537,12 +537,12 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { } fun sendFriendMessage(qq: QQ, message: MessageChain) { - sendPacket(ClientSendFriendMessagePacket(robot.account.qqNumber, qq.number, sessionKey, message)) + sendPacket(ClientSendFriendMessagePacket(bot.account.qqNumber, qq.number, sessionKey, message)) } fun sendGroupMessage(group: Group, message: Message): Unit { TODO() - //sendPacket(ClientSendGroupMessagePacket(group.groupId, robot.account.qqNumber, sessionKey, message)) + //sendPacket(ClientSendGroupMessagePacket(group.groupId, bot.account.qqNumber, sessionKey, message)) } } @@ -620,7 +620,7 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { } ServerCanAddFriendResponsePacket.State.REQUIRE_VERIFICATION -> { - sendPacket(ClientAddFriendPacket(robot.account.qqNumber, qq, sessionKey)) + sendPacket(ClientAddFriendPacket(bot.account.qqNumber, qq, sessionKey)) } ServerCanAddFriendResponsePacket.State.NOT_REQUIRE_VERIFICATION -> { @@ -634,7 +634,7 @@ class RobotNetworkHandler(private val robot: Robot) : Closeable { } fun sendAddRequest() { - sendPacket(ClientCanAddFriendPacket(robot.account.qqNumber, qq, sessionKey).also { this.id = it.packetIdLast }) + sendPacket(ClientCanAddFriendPacket(bot.account.qqNumber, qq, sessionKey).also { this.id = it.packetIdLast }) } override fun close() { diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddContact.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddContact.kt index d784c4f0b..0f5904f15 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddContact.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/AddContact.kt @@ -15,7 +15,7 @@ import java.util.* @PacketId("00 A7") @ExperimentalUnsignedTypes class ClientCanAddFriendPacket( - val robot: Long, + val bot: Long, val qq: Long, val sessionKey: ByteArray ) : ClientPacket() { @@ -28,7 +28,7 @@ class ClientCanAddFriendPacket( override fun encode() { this.write(packetIdLast)//id, 2bytes - this.writeQQ(robot) + this.writeQQ(bot) this.writeHex(Protocol.fixVer2) this.encryptAndWrite(sessionKey) { it.writeQQ(qq) @@ -79,7 +79,7 @@ class ServerCanAddFriendResponsePacket(input: DataInputStream) : ServerPacket(in @PacketId("00 AE") @ExperimentalUnsignedTypes class ClientAddFriendPacket( - val robot: Long, + val bot: Long, val qq: Long, val sessionKey: ByteArray ) : ClientPacket() { @@ -92,7 +92,7 @@ class ClientAddFriendPacket( override fun encode() { this.write(packetIdLast)//id, 2bytes - this.writeQQ(robot) + this.writeQQ(bot) this.writeHex(Protocol.fixVer2) this.encryptAndWrite(sessionKey) { it.writeHex("01 00 01") diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendFriendMessagePacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendFriendMessagePacket.kt index 1ac425868..509726ffd 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendFriendMessagePacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendFriendMessagePacket.kt @@ -12,22 +12,22 @@ import java.io.DataInputStream @PacketId("00 CD") @ExperimentalUnsignedTypes class ClientSendFriendMessagePacket( - private val robotQQ: Long, + private val botQQ: Long, private val targetQQ: Long, private val sessionKey: ByteArray, private val message: MessageChain ) : ClientPacket() { override fun encode() { this.writeRandom(2)//part of packet id - this.writeQQ(robotQQ) + this.writeQQ(botQQ) this.writeHex(Protocol.fixVer2) this.encryptAndWrite(sessionKey) { - it.writeQQ(robotQQ) + it.writeQQ(botQQ) it.writeQQ(targetQQ) it.writeHex("00 00 00 08 00 01 00 04 00 00 00 00") it.writeHex("37 0F") - it.writeQQ(robotQQ) + it.writeQQ(botQQ) it.writeQQ(targetQQ) it.write(md5(lazyEncode { md5Key -> md5Key.writeQQ(targetQQ); md5Key.write(sessionKey) })) it.writeHex("00 0B") diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendGroupMessagePacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendGroupMessagePacket.kt index b26a24316..17f84f988 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendGroupMessagePacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/action/ClientSendGroupMessagePacket.kt @@ -12,13 +12,13 @@ import java.io.DataInputStream @ExperimentalUnsignedTypes class ClientSendGroupMessagePacket( private val groupId: Long,//不是 number - private val robotQQ: Long, + private val botQQ: Long, private val sessionKey: ByteArray, private val message: String ) : ClientPacket() { override fun encode() { this.writeRandom(2)//part of packet id - this.writeQQ(robotQQ) + this.writeQQ(botQQ) this.writeHex(Protocol.fixVer2) this.encryptAndWrite(sessionKey) { diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseKeyExchangePacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseKeyExchangePacket.kt index 5894aad73..9470bc0b6 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseKeyExchangePacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/login/ServerLoginResponseKeyExchangePacket.kt @@ -39,7 +39,7 @@ class ServerLoginResponseKeyExchangePacket(input: DataInputStream, val flag: Fla Flag.OTHER -> { //do nothing in this packet. - //[this.token] will be set in [RobotNetworkHandler] + //[this.token] will be set in [BotNetworkHandler] //token } } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/plugin/MiraiPluginBase.java b/mirai-core/src/main/java/net/mamoe/mirai/plugin/MiraiPluginBase.java index 8bec23692..d4874f90e 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/plugin/MiraiPluginBase.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/plugin/MiraiPluginBase.java @@ -1,11 +1,11 @@ package net.mamoe.mirai.plugin; -import net.mamoe.mirai.Robot; +import net.mamoe.mirai.Bot; /** * 插件基类. *

- * 插件属于整个 Mirai, 而不是属于单个 {@link Robot}. + * 插件属于整个 Mirai, 而不是属于单个 {@link Bot}. * * @see net.mamoe.mirai.event.MiraiEventManager * @see net.mamoe.mirai.event.MiraiEventManagerKt diff --git a/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt b/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt index 1a4ed2f70..d571831b5 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/utils/MiraiLogger.kt @@ -1,6 +1,6 @@ package net.mamoe.mirai.utils -import net.mamoe.mirai.Robot +import net.mamoe.mirai.Bot import java.text.SimpleDateFormat import java.util.* @@ -36,27 +36,27 @@ object MiraiLogger { } } -infix fun Robot.log(o: Any?) = info(o) -infix fun Robot.println(o: Any?) = info(o) -infix fun Robot.info(o: Any?) = print(this, o.toString(), LoggerTextFormat.RESET) +infix fun Bot.log(o: Any?) = info(o) +infix fun Bot.println(o: Any?) = info(o) +infix fun Bot.info(o: Any?) = print(this, o.toString(), LoggerTextFormat.RESET) -infix fun Robot.error(o: Any?) = print(this, o.toString(), LoggerTextFormat.RED) +infix fun Bot.error(o: Any?) = print(this, o.toString(), LoggerTextFormat.RED) -infix fun Robot.notice(o: Any?) = print(this, o.toString(), LoggerTextFormat.LIGHT_BLUE) +infix fun Bot.notice(o: Any?) = print(this, o.toString(), LoggerTextFormat.LIGHT_BLUE) -infix fun Robot.purple(o: Any?) = print(this, o.toString(), LoggerTextFormat.PURPLE) +infix fun Bot.purple(o: Any?) = print(this, o.toString(), LoggerTextFormat.PURPLE) -infix fun Robot.cyanL(o: Any?) = print(this, o.toString(), LoggerTextFormat.LIGHT_CYAN) +infix fun Bot.cyanL(o: Any?) = print(this, o.toString(), LoggerTextFormat.LIGHT_CYAN) -infix fun Robot.success(o: Any?) = print(this, o.toString(), LoggerTextFormat.GREEN) +infix fun Bot.success(o: Any?) = print(this, o.toString(), LoggerTextFormat.GREEN) -infix fun Robot.debug(o: Any?) = print(this, o.toString(), LoggerTextFormat.YELLOW) +infix fun Bot.debug(o: Any?) = print(this, o.toString(), LoggerTextFormat.YELLOW) @Synchronized -private fun print(robot: Robot, value: String?, color: LoggerTextFormat = LoggerTextFormat.WHITE) { +private fun print(bot: Bot, value: String?, color: LoggerTextFormat = LoggerTextFormat.WHITE) { val s = SimpleDateFormat("MM-dd HH:mm:ss").format(Date()) - kotlin.io.println("$color[Mirai] $s #R${robot.id}: $value") + kotlin.io.println("$color[Mirai] $s #R${bot.id}: $value") } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/utils/RobotAccount.java b/mirai-core/src/main/java/net/mamoe/mirai/utils/RobotAccount.java index 0f2bea143..a998a5233 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/utils/RobotAccount.java +++ b/mirai-core/src/main/java/net/mamoe/mirai/utils/RobotAccount.java @@ -6,11 +6,11 @@ import lombok.Data; * @author Him188moe */ @Data -public final class RobotAccount { +public final class BotAccount { public final long qqNumber; public final String password; - public RobotAccount(long qqNumber, String password) { + public BotAccount(long qqNumber, String password) { this.qqNumber = qqNumber; this.password = password; } diff --git a/mirai-core/src/test/java/BadQQFilter.kt b/mirai-core/src/test/java/BadQQFilter.kt index 9d67dc6e4..ed738dac8 100644 --- a/mirai-core/src/test/java/BadQQFilter.kt +++ b/mirai-core/src/test/java/BadQQFilter.kt @@ -1,8 +1,8 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch -import net.mamoe.mirai.Robot +import net.mamoe.mirai.Bot import net.mamoe.mirai.network.packet.login.LoginState -import net.mamoe.mirai.utils.RobotAccount +import net.mamoe.mirai.utils.BotAccount import java.util.* /** @@ -64,21 +64,21 @@ val qqList = "2535777366----abc123456\n" + fun main() { - val goodRobotList = Collections.synchronizedList(mutableListOf()) + val goodBotList = Collections.synchronizedList(mutableListOf()) qqList.split("\n").forEach { GlobalScope.launch { val strings = it.split("----") - val robot = Robot(RobotAccount(strings[0].toLong(), strings[1].let { password -> + val bot = Bot(BotAccount(strings[0].toLong(), strings[1].let { password -> if (password.endsWith(".")) { return@let password.substring(0, password.length - 1) } return@let password }), listOf()) - robot.network.tryLogin().whenComplete { state, _ -> + bot.network.tryLogin().whenComplete { state, _ -> if (!(state == LoginState.BLOCKED || state == LoginState.DEVICE_LOCK || state == LoginState.WRONG_PASSWORD)) { - goodRobotList.add(robot) + goodBotList.add(bot) } } } @@ -86,5 +86,5 @@ fun main() { Thread.sleep(9 * 3000) - println(goodRobotList.joinToString("\n") { it.account.qqNumber.toString() + " " + it.account.password }) + println(goodBotList.joinToString("\n") { it.account.qqNumber.toString() + " " + it.account.password }) }