Closed rubyuu closed 1 year ago
如果你想实现在群聊里只有当别人@机器人时,才会回复。可以考虑将获取到的消息元素进行筛选,若筛选到@机器人的消息,再向ChatGPT提问并回复,比如:
@EventHandler
public void onMessage(@NotNull MessageEvent event) {
ChatBO chatBO = new ChatBO();
chatBO.setSessionId(String.valueOf(event.getSender().getId()));
chatBO.setQuestion(event.getMessage().contentToString());
if(event.getBot().getGroups().contains(event.getSubject().getId())) {
//如果是在群聊
//遍历收到的消息元素
for (SingleMessage singleMessage : event.getMessage()) {
if (singleMessage.equals(new At(event.getBot().getId()))) {
//存在@机器人的消息就向ChatGPT提问
event.getSubject().sendMessage(interactService.chat(chatBO));
break;
}
}
}else
//不是在群聊 则直接回复
event.getSubject().sendMessage(interactService.chat(chatBO));
}
你可以将以上代码copy到项目里替换原来的onMessage函数来直接使用。 其他的设定可以参考mirai的文档,后续我也会增加这类设定功能,谢谢你的提问🌹
感激不尽
请问这个要怎么设置