Skip to content

Commit

Permalink
Release 1.2-pre3
Browse files Browse the repository at this point in the history
  • Loading branch information
DreamVoid committed Jul 16, 2021
2 parents 593ab87 + f6f0665 commit e61336c
Show file tree
Hide file tree
Showing 17 changed files with 688 additions and 94 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>io.github.dreamvoid</groupId>
<artifactId>MiraiMC</artifactId>
<version>1.2-pre2</version>
<version>1.2-pre3</version>

<name>MiraiMC</name>
<description>Mirai for Minecraft server</description>
Expand Down Expand Up @@ -64,7 +64,7 @@
<dependency>
<groupId>net.mamoe</groupId>
<artifactId>mirai-core-jvm</artifactId>
<version>2.6.4</version>
<version>2.7-M2</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
Expand Down
14 changes: 13 additions & 1 deletion src/main/java/me/dreamvoid/miraimc/api/MiraiBot.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,20 @@
public class MiraiBot {

private final Logger Logger;
private static MiraiBot instance;

public MiraiBot() { this.Logger = Utils.getLogger(); }
public MiraiBot() {
this.Logger = Utils.getLogger();
instance = this;
}

/**
* 获取MiraiBot实例
* @return MiraiBot 实例
*/
public static MiraiBot getInstance(){
return instance;
}

/**
* 登录一个机器人账号
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/me/dreamvoid/miraimc/bukkit/CommandHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class CommandHandler implements CommandExecutor {

public CommandHandler(BukkitPlugin plugin) {
this.plugin = plugin;
this.mirai = new MiraiBot();
this.mirai = MiraiBot.getInstance();
this.MiraiAutoLogin = new MiraiAutoLogin(plugin);
}

Expand Down Expand Up @@ -53,7 +53,7 @@ public void run() {
sender.sendMessage(ChatColor.translateAlternateColorCodes('&',"&e可用的协议类型: ANDROID_PHONE, ANDROID_PAD, ANDROID_WATCH."));
Protocol = BotConfiguration.MiraiProtocol.ANDROID_PHONE;
}
mirai.doBotLogin(Integer.parseInt(args[1]),args[2], Protocol);
mirai.doBotLogin(Long.parseLong(args[1]),args[2], Protocol);
}
}.runTaskAsynchronously(plugin);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public void run() {
BotConfiguration.MiraiProtocol Protocol = BotConfiguration.MiraiProtocol.valueOf(configuration.get("protocol").toString());

Logger.info("[AutoLogin] Auto login bot account: " + Account + " Protocol: " + Protocol.name());
new MiraiBot().doBotLogin(Account, Password, Protocol);
MiraiBot.getInstance().doBotLogin(Account, Password, Protocol);
}
}
}.runTaskAsynchronously(plugin);
Expand Down
40 changes: 40 additions & 0 deletions src/main/java/me/dreamvoid/miraimc/internal/MiraiEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,15 @@ public MiraiEvent() { }
private Listener BotOfflineForceListener;
private Listener BotOfflineDroppedListener;
private Listener BotOfflineRequireReconnectListener;
private Listener BotReloginEventListener;
private Listener BotAvatarChangedEventListener;
private Listener BotNickChangedEventListener;

private Listener GroupMessageListener;
private Listener FriendMessageListener;
private Listener GroupTempMessageEventListener;
private Listener StrangerMessageEventListener;
private Listener OtherClientMessageEventListener;

private Listener GroupMessagePreSendEventListener;
private Listener FriendMessagePreSendEventListener;
Expand All @@ -31,6 +35,14 @@ public MiraiEvent() { }
private Listener GroupTempMessagePostSendEventListener;
private Listener StrangerMessagePostSendEventListener;

private Listener FriendMessageRecallEventListener;
private Listener GroupMessageRecallEventListener;

private Listener BeforeImageUploadEventListener;
private Listener ImageUploadSucceedEventListener;
private Listener ImageUploadFailedEventListener;
private Listener NudgeEventListener;

private Listener BotLeaveActiveEventListener;
private Listener BotLeaveKickEventListener;
private Listener BotGroupPermissionChangeEventListener;
Expand All @@ -52,13 +64,17 @@ public void startListenEvent(){
BotOfflineForceListener = GlobalEventChannel.INSTANCE.subscribeAlways(BotOfflineEvent.Force.class,event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiBotOfflineEvent(event, "Force")));
BotOfflineDroppedListener = GlobalEventChannel.INSTANCE.subscribeAlways(BotOfflineEvent.Dropped.class,event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiBotOfflineEvent(event, "Dropped")));
BotOfflineRequireReconnectListener = GlobalEventChannel.INSTANCE.subscribeAlways(BotOfflineEvent.RequireReconnect.class,event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiBotOfflineEvent(event, "RequireReconnect")));
BotReloginEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(BotReloginEvent.class,event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiBotReloginEvent(event)));
BotAvatarChangedEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(BotAvatarChangedEvent.class,event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiBotAvatarChangedEvent(event)));
BotNickChangedEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(BotNickChangedEvent.class,event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiBotNickChangedEvent(event)));

// 消息
// - 被动
GroupMessageListener = GlobalEventChannel.INSTANCE.subscribeAlways(GroupMessageEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiGroupMessageEvent(event)));
FriendMessageListener = GlobalEventChannel.INSTANCE.subscribeAlways(FriendMessageEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiFriendMessageEvent(event)));
GroupTempMessageEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(GroupTempMessageEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiGroupTempMessageEvent(event)));
StrangerMessageEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(StrangerMessageEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiStrangerMessageEvent(event)));
OtherClientMessageEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(OtherClientMessageEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiOtherClientMessageEvent(event)));
// - 主动前
GroupMessagePreSendEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(GroupMessagePreSendEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiGroupMessagePreSendEvent(event)));
FriendMessagePreSendEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(FriendMessagePreSendEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiFriendMessagePreSendEvent(event)));
Expand All @@ -69,6 +85,17 @@ public void startListenEvent(){
FriendMessagePostSendEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(FriendMessagePostSendEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiFriendMessagePostSendEvent(event)));
GroupTempMessagePostSendEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(GroupTempMessagePostSendEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiGroupTempMessagePostSendEvent(event)));
StrangerMessagePostSendEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(StrangerMessagePostSendEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiStrangerMessagePostSendEvent(event)));
// - 撤回
FriendMessageRecallEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(MessageRecallEvent.FriendRecall.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiFriendMessageRecallEvent(event)));
GroupMessageRecallEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(MessageRecallEvent.GroupRecall.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiGroupMessageRecallEvent(event)));
// - 图片上传
// -- 图片上传前
BeforeImageUploadEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(BeforeImageUploadEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiBeforeImageUploadEvent(event)));
// -- 图片上传完成
ImageUploadSucceedEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(ImageUploadEvent.Succeed.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiImageUploadSucceedEvent(event)));
ImageUploadFailedEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(ImageUploadEvent.Failed.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiImageUploadFailedEvent(event)));
// - 戳一戳
NudgeEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(NudgeEvent.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiNudgeEvent(event)));

// 群
BotLeaveActiveEventListener = GlobalEventChannel.INSTANCE.subscribeAlways(BotLeaveEvent.Active.class, event -> Bukkit.getServer().getPluginManager().callEvent(new MiraiGroupBotLeaveEvent(event, event)));
Expand All @@ -95,11 +122,15 @@ public void stopListenEvent(){
BotOfflineForceListener.complete();
BotOfflineDroppedListener.complete();
BotOfflineRequireReconnectListener.complete();
BotReloginEventListener.complete();
BotAvatarChangedEventListener.complete();
BotNickChangedEventListener.complete();

GroupMessageListener.complete();
FriendMessageListener.complete();
GroupTempMessageEventListener.complete();
StrangerMessageEventListener.complete();
OtherClientMessageEventListener.complete();

GroupMessagePreSendEventListener.complete();
FriendMessagePreSendEventListener.complete();
Expand All @@ -111,6 +142,15 @@ public void stopListenEvent(){
GroupTempMessagePostSendEventListener.complete();
StrangerMessagePostSendEventListener.complete();

FriendMessageRecallEventListener.complete();
GroupMessageRecallEventListener.complete();

BeforeImageUploadEventListener.complete();
ImageUploadSucceedEventListener.complete();
ImageUploadFailedEventListener.complete();

NudgeEventListener.complete();

BotLeaveActiveEventListener.complete();
BotLeaveKickEventListener.complete();
BotGroupPermissionChangeEventListener.complete();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package me.dreamvoid.miraimc.listener;

import net.mamoe.mirai.event.events.BeforeImageUploadEvent;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;

public class MiraiBeforeImageUploadEvent extends Event {

public MiraiBeforeImageUploadEvent(BeforeImageUploadEvent event) {
super(true);
this.event = event;
}

private static final HandlerList handlers = new HandlerList();
private final BeforeImageUploadEvent event;

public @NotNull HandlerList getHandlers() { return handlers; }
public static HandlerList getHandlerList() { return handlers; }

/**
* 获取机器人账号
* @return 机器人账号
*/
public long getID() { return event.getBot().getId(); }

/**
* 获取接收此图片的ID
* @return 接收者ID
*/
public long getTargetID() { return event.getTarget().getId(); }

/**
* 获取图片ID
* @return 图片ID
*/
public String getImageID() { return event.getSource().calculateResourceId(); }

/**
* 获取图片MD5
* @return 图片MD5
*/
public byte[] getImageMd5() { return event.getSource().getMd5(); }

/**
* 获取图片Sha1
* @return 图片Sha1
*/
public byte[] getImageSha1() { return event.getSource().getSha1(); }

/**
* 获取图片格式化后的名称
* @return 图片名称
*/
public String getImageName() { return event.getSource().getFormatName(); }

/**
* 获取图片大小
* @return 图片大小
*/
public long getImageSize() { return event.getSource().getSize(); }

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package me.dreamvoid.miraimc.listener;

import net.mamoe.mirai.event.events.BotAvatarChangedEvent;
import net.mamoe.mirai.event.events.BotReloginEvent;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;

public class MiraiBotAvatarChangedEvent extends Event {

public MiraiBotAvatarChangedEvent(BotAvatarChangedEvent event) {
super(true);
this.event = event;
}

private static final HandlerList handlers = new HandlerList();
private final BotAvatarChangedEvent event;

public @NotNull HandlerList getHandlers() { return handlers; }
public static HandlerList getHandlerList() { return handlers; }

/**
* 获取机器人账号
* @return 机器人账号
*/
public long getID() { return event.getBot().getId(); }

/**
* 获取机器人昵称
* @return 机器人昵称
*/
public String getNick() { return event.getBot().getNick(); }

/**
* 获取机器人头像Url
* @return 机器人头像Url
*/
public String getAvatarUrl(){
return event.getBot().getAvatarUrl();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package me.dreamvoid.miraimc.listener;

import net.mamoe.mirai.event.events.BotNickChangedEvent;
import net.mamoe.mirai.event.events.BotReloginEvent;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;

public class MiraiBotNickChangedEvent extends Event {

public MiraiBotNickChangedEvent(BotNickChangedEvent event) {
super(true);
this.event = event;
}

private static final HandlerList handlers = new HandlerList();
private final BotNickChangedEvent event;

public @NotNull HandlerList getHandlers() { return handlers; }
public static HandlerList getHandlerList() { return handlers; }

/**
* 获取机器人账号
* @return 机器人账号
*/
public long getID() { return event.getBot().getId(); }

/**
* 获取机器人更换前的昵称
* @return 机器人更换前的昵称
*/
public String getOldNick() { return event.getFrom(); }

/**
* 获取机器人更换后的昵称
* @return 机器人更换后的昵称
*/
public String getNewNick() { return event.getTo(); }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package me.dreamvoid.miraimc.listener;

import net.mamoe.mirai.contact.ContactList;
import net.mamoe.mirai.contact.Friend;
import net.mamoe.mirai.contact.Group;
import net.mamoe.mirai.event.events.BotReloginEvent;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.List;

public class MiraiBotReloginEvent extends Event {

public MiraiBotReloginEvent(BotReloginEvent event) {
super(true);
this.event = event;
}

private static final HandlerList handlers = new HandlerList();
private final BotReloginEvent event;

public @NotNull HandlerList getHandlers() { return handlers; }
public static HandlerList getHandlerList() { return handlers; }

/**
* 获取机器人账号
* @return 机器人账号
*/
public long getID() { return event.getBot().getId(); }

/**
* 获取机器人昵称
* @return 机器人昵称
*/
public String getNick() { return event.getBot().getNick(); }

}
Loading

0 comments on commit e61336c

Please sign in to comment.