尝试使用 Discord4j 包装器通过与 Arraylist 进行比较来搜索 Discord 消息中的关键字
Trying to search for keywords in Discord messages by comparing to Arraylist, using Discord4j wrapper
我正在尝试在 Java 中编写一个简单的 Discord 机器人程序,它会在检测到存储在文本文件中的关键字时做出响应。在连接到 Discord 之前,我将文本文件加载到 ArrayList 中,当我收到 Discord 消息时,我将消息字符串转换为数组并使用 retainAll()
来测试公共元素,但是当我 运行该程序没有任何反应。这是我的代码。
Keywords keywords = new Keywords();
ArrayList<String> keywordList = keywords.getKeywords();
final DiscordClient client = DiscordClient.create("TOKEN");
final GatewayDiscordClient gateway = client.login().block();
gateway.on(MessageCreateEvent.class).subscribe(event -> {
final Message message = event.getMessage();
boolean commonElements = keywordList.retainAll(Arrays.asList(message.getContent().split("\s+")));
if (commonElements) {
final MessageChannel channel = message.getChannel().block();
channel.createMessage("Based.").block();
}
});
gateway.onDisconnect().block();
任何正确方向的指示将不胜感激,谢谢。
我最终设法使用 Collections.disjoint()
来比较 2 个数组来解决这个问题。
我正在尝试在 Java 中编写一个简单的 Discord 机器人程序,它会在检测到存储在文本文件中的关键字时做出响应。在连接到 Discord 之前,我将文本文件加载到 ArrayList 中,当我收到 Discord 消息时,我将消息字符串转换为数组并使用 retainAll()
来测试公共元素,但是当我 运行该程序没有任何反应。这是我的代码。
Keywords keywords = new Keywords();
ArrayList<String> keywordList = keywords.getKeywords();
final DiscordClient client = DiscordClient.create("TOKEN");
final GatewayDiscordClient gateway = client.login().block();
gateway.on(MessageCreateEvent.class).subscribe(event -> {
final Message message = event.getMessage();
boolean commonElements = keywordList.retainAll(Arrays.asList(message.getContent().split("\s+")));
if (commonElements) {
final MessageChannel channel = message.getChannel().block();
channel.createMessage("Based.").block();
}
});
gateway.onDisconnect().block();
任何正确方向的指示将不胜感激,谢谢。
我最终设法使用 Collections.disjoint()
来比较 2 个数组来解决这个问题。