我正在尝试制作一个简单的 Discord Bot,但它不起作用

Posted

技术标签:

【中文标题】我正在尝试制作一个简单的 Discord Bot,但它不起作用【英文标题】:I'm trying to make a simple Discord Bot, but it doesn't work 【发布时间】:2021-10-05 05:08:24 【问题描述】:

我正在尝试在 Minecraft Mod 中制作一个简单的 Discord Bot,但它不起作用。我不得不说我是用 java 编写不和谐机器人的新手,因为我更基于 javascript

这是我做的:

DiscordBot.java

public class DiscordBot

    public JDA jda;
    
    private String token = "----";
    
    public static DiscordBot instance = new DiscordBot();
    
    @SuppressWarnings("deprecation")
    public void startDiscordBot() throws LoginException
    
        jda = new JDABuilder()
                .setToken(token)
                .setStatus(OnlineStatus.DO_NOT_DISTURB)
                .addEventListeners(new DiscordEventListener())
                .build();
    

DiscordEventListener.java

public class DiscordEventListener extends ListenerAdapter

    @Override
    public void onMessageReceived(MessageReceivedEvent event)
       
        if(event.getMessage().getContentRaw().equals("-login"))
        
            EmbedBuilder eb1 = new EmbedBuilder();
            EmbedBuilder eb2 = new EmbedBuilder();
            
            event.getAuthor().openPrivateChannel().queue(channel -> 
                eb2.setColor(Color.MAGENTA);
                eb2.setTitle(placeholder-text);
                eb2.setDescription(placeholder-text);
                channel.sendMessage(eb2.build());
            );

DiscordEventListener 接受“-login”并使用其余代码进行响应,但问题是,虽然机器人确实上线了,但当我在 discord 服务器中发送 -login 时它没有做任何事情,也没有 dms。启动时也不会发生错误,事件也不会发生。另外,我有一个贬低版本的 JDA (4.2.1),因为我不明白如何使用新版本。

我尝试了多个小东西,但它们显示了 0 个结果,所以我不知道这里出了什么问题。

(也是的,我已经在 Main 中初始化了 DiscordBot 类,所以我认为这不是问题)

【问题讨论】:

您不应使用new JDABuilder(),而应使用JDABuilder.createDefault() 或类似名称。 @dan1st 我试过你说的,但仍然没有区别。机器人上线,但当我输入 -login 时什么都不做 你忘记了.queue()channel.sendMessage(eb2.build()).queue(); @dan1st 谢谢,现在可以使用了!但我还有另一个问题;我不想在这里延长讨论时间,所以如果您可以在不和谐 (LucaForever#6969) 上添加我来帮助我,将不胜感激! 【参考方案1】:

@dan1st 想通了,我忘了在channel.sendMessage 后面加上.queue();,所以谢谢他们。

【讨论】:

以上是关于我正在尝试制作一个简单的 Discord Bot,但它不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Discord bot 无法识别命令?

尝试为 Discord bot 提供多个命令文件

对创建 C# discord bot 感到困惑

Discord Bot python 3.6 报告命令

discord js在运行bot.guilds.cache.array()时返回空数组

Discord bot异步/等待错误处理