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

View File

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