[Add] MessageSource 将MiraiMessageEvent的MessageSource分离成独立的类;

[Change] SpringCQMessageEvent, MiraiMessageEvent 适配新的更改;
This commit is contained in:
LamGC 2020-04-19 01:34:45 +08:00
parent ae27141fea
commit 09fa1bd2e8
3 changed files with 34 additions and 35 deletions

View File

@ -6,6 +6,7 @@ import net.lamgc.cgj.bot.cache.CacheStore;
import net.lamgc.cgj.bot.cache.HotDataCacheStore;
import net.lamgc.cgj.bot.cache.LocalHashCacheStore;
import net.lamgc.cgj.bot.cache.StringRedisCacheStore;
import net.lamgc.cgj.bot.message.MessageSource;
import net.mamoe.mirai.message.ContactMessage;
import net.mamoe.mirai.message.FriendMessage;
import net.mamoe.mirai.message.GroupMessage;
@ -197,27 +198,4 @@ public class MiraiMessageEvent extends MessageEvent {
}
}
/**
* 消息来源
*/
public enum MessageSource {
/**
* 私聊消息
*/
Private,
/**
* 群组消息
*/
Group,
/**
* 讨论组消息
* @deprecated 已被QQ取消
*/
Discuss,
/**
* 未知来源
*/
Unknown
}
}

View File

@ -1,6 +1,7 @@
package net.lamgc.cgj.bot.event;
import net.lamgc.cgj.bot.BotCode;
import net.lamgc.cgj.bot.message.MessageSource;
import net.lz1998.cq.event.message.CQDiscussMessageEvent;
import net.lz1998.cq.event.message.CQGroupMessageEvent;
import net.lz1998.cq.event.message.CQMessageEvent;
@ -11,12 +12,8 @@ import java.util.Objects;
public class SpringCQMessageEvent extends MessageEvent {
private final static int TYPE_PRIVATE = 0;
private final static int TYPE_GROUP = 1;
private final static int TYPE_DISCUSS = 2;
private final CoolQ cq;
private final int type;
private final MessageSource source;
public SpringCQMessageEvent(CoolQ cq, CQMessageEvent messageEvent) {
super(messageEvent instanceof CQGroupMessageEvent ? (
@ -26,22 +23,23 @@ public class SpringCQMessageEvent extends MessageEvent {
messageEvent.getUserId(), messageEvent.getMessage());
this.cq = Objects.requireNonNull(cq);
if(messageEvent instanceof CQGroupMessageEvent) {
type = TYPE_GROUP;
source = MessageSource.Group;
} else if (messageEvent instanceof CQDiscussMessageEvent) {
type = TYPE_DISCUSS;
source = MessageSource.Discuss;
} else {
type = TYPE_PRIVATE;
source = MessageSource.Private;
}
}
@Override
public int sendMessage(final String message) {
switch(type) {
case TYPE_PRIVATE:
switch(source) {
case Private:
return cq.sendPrivateMsg(getFromQQ(), message, false).getData().getMessageId();
case TYPE_GROUP:
case TYPE_DISCUSS:
case Group:
return cq.sendGroupMsg(getFromGroup(), message, false).getData().getMessageId();
case Discuss:
return cq.sendDiscussMsg(getFromGroup(), message, false).getData().getMessageId();
default:
return -1;
}

View File

@ -0,0 +1,23 @@
package net.lamgc.cgj.bot.message;
/**
* 消息来源
*/
public enum MessageSource {
/**
* 私聊消息
*/
Private,
/**
* 群组消息
*/
Group,
/**
* 讨论组消息
*/
Discuss,
/**
* 未知来源
*/
Unknown
}