我正在尝试添加一个单词过滤器,但它似乎不起作用

Posted

技术标签:

【中文标题】我正在尝试添加一个单词过滤器,但它似乎不起作用【英文标题】: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 是的,我做到了 【参考方案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();
                
            
           
    

【讨论】:

以上是关于我正在尝试添加一个单词过滤器,但它似乎不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 Debian 10 中使用用户组添加组似乎不起作用

我正在尝试向我的游戏窗口添加背景颜色,但它不起作用,并且不断弹出属性错误。有啥建议吗?

如何在 Android Studio logcat 中过滤多个单词

我正在尝试更新数据,但它不起作用

为啥我的单元测试一直显示 NullPointerException?我正在使用@BeforeClass,但它似乎不起作用

CheckBoxTableCell 更改侦听器不起作用