【问题标题】:I'm trying to add a word filter but it doesnt seem to be working我正在尝试添加一个单词过滤器,但它似乎不起作用
【发布时间】:2021-10-05 05:05:41
【问题描述】:

我知道你不应该遵循 youtube 教程,但我做到了,现在我后悔了。

我会在我的不和谐频道中说“testautomod”或“pleasework”,但什么都不会发生.. 过去一个小时我一直对着我的电脑尖叫

package diabot;

import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;

public class Automod extends ListenerAdapter {
    
    public void onGuildMessageRecived(GuildMessageReceivedEvent event) {
        
        String[] LIST_OF_BAD_WORDS = {"testautomod", "pleasework", "gamermomentitdoesntwork" };
        String[] message = event.getMessage().getContentRaw().split(" ");
        for (int i = 0; i < message.length; i++) {
            for (int b = 0; b < LIST_OF_BAD_WORDS.length; b++) {
                if (message[i].equalsIgnoreCase(LIST_OF_BAD_WORDS[b])) {
                    event.getMessage().delete().queue();
                    
                }
            }   
        }
    }
}

【问题讨论】:

  • 你注册监听了吗?
  • @dan1st 是的,我做到了

标签: java discord bots discord-jda


【解决方案1】:

那是因为你的方法名有错别字,它应该是 onGuildMessageReceived 而不是 onGuildMessageRecived

为避免这种情况,请在实现 JDA 定义的方法时始终使用@Override。如果您这样做并且再次输入错误,您的 IDE 会通知您在父类中没有这样的方法。

您的代码应如下所示:

@Override
public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
    
    String[] LIST_OF_BAD_WORDS = {"testautomod", "pleasework", "gamermomentitdoesntwork" };
    String[] message = event.getMessage().getContentRaw().split(" ");
    for (int i = 0; i < message.length; i++) {
        for (int b = 0; b < LIST_OF_BAD_WORDS.length; b++) {
            if (message[i].equalsIgnoreCase(LIST_OF_BAD_WORDS[b])) {
                event.getMessage().delete().queue();
                
            }
        }   
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-14
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多