【发布时间】:2020-12-18 09:29:54
【问题描述】:
目前我正在开发一个不和谐的机器人,它正在过滤消息。我的问题是在尝试过滤包含在其他单词中的单词时出现的,从而触发重复消息。
这是我的 filter.txt:
sad
sadness
sadnesses
由于“悲伤”也可以在“悲伤”中找到,所以每当写“悲伤”时,我都会误认为“悲伤”。
是否可以仅检测消息中的确切字符串?喜欢:I want to be happy, because sadness is bad → '只检测悲伤'
希望你明白我的意思。
代码:
public void onGuildMessageReceived(GuildMessageReceivedEvent e) {
File file = new File("src/filter.txt");
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
if(!line.startsWith("#")) {
if(e.getMessage().getContentRaw().contains(line)) {
User user = e.getJDA().getUserById(e.getAuthor().getIdLong());
e.getMessage().delete().queue();
user.openPrivateChannel().queue(privateChannel -> {
privateChannel.sendMessage("Bitte achte auf deine Sprache!").queue();
});
}
}
}
} catch (IOException e1) {}
}
【问题讨论】:
-
请添加您的字符串匹配代码,以便我们为您提供帮助
-
我的方法总是正则表达式。
-
尝试查看正则表达式你会得到你想要的
标签: java discord-jda