首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >#一般频道的不和谐-超时& JDA没有收到消息

#一般频道的不和谐-超时& JDA没有收到消息
EN

Stack Overflow用户
提问于 2021-03-14 21:30:32
回答 1查看 688关注 0票数 0

我正试着用Java做我的第一个不和谐的JDA机器人。(我在StackOverflow上发现的大部分教程和问题都使用了Javascript,所以我认为应该提到它)。

我没有得到任何信息,我发送到#一般频道。我按照本教程编写了我的代码,并试图用来自此链接的代码解决这个问题。

JDA版本: 4.2.0_240 IntelliJ版本:2020.3.2JDK11.0.9JavaSE 8

我的Main课程:

代码语言:javascript
运行
复制
import com.neovisionaries.ws.client.WebSocket;
import com.neovisionaries.ws.client.WebSocketFactory;
import net.dv8tion.jda.api.AccountType;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.entities.*;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;

import javax.security.auth.login.LoginException;
import java.io.IOException;
import java.util.Objects;

public class Main extends ListenerAdapter {
    public static void main(String[] args) throws LoginException, IOException {
        JDABuilder builder = new JDABuilder(AccountType.BOT);
        String token = "my_token";
        
        WebSocketFactory factory = new WebSocketFactory();
        WebSocket ws = factory.createSocket("ws://discord.com/channels/817842449882939392/817842449882939396", 30000);

        builder.setToken(token);
        builder.addEventListeners(new Main());
        builder.build();
    }

    @Override
    public void onMessageReceived(MessageReceivedEvent event){

        for(Guild guild : event.getJDA().getGuilds()) {
            System.out.println(guild.getName());
        }

        if (event.isFromType(ChannelType.PRIVATE)) {
            System.out.printf("[PM] %s: %s\n", event.getAuthor().getName(),
                event.getMessage().getContentDisplay());
        } else {
            System.out.printf("[%s][%s] %s: %s\n", event.getGuild().getName(),
                event.getTextChannel().getName(), Objects.requireNonNull(event.getMember()).getEffectiveName(),
                event.getMessage().getContentDisplay());

        }
    }

}

我在输出中得到的警告之一是:

代码语言:javascript
运行
复制
[JDA MainWS-ReadThread] INFO WebSocketClient - Connected to WebSocket
[JDA Gateway-Worker 1] WARN GuildSetupController - Automatically marking 1 guilds as unavailable due to timeout!

我只在一个行会(#general)上使用我的儿子,所以它没有连接到它。这就是我的问题的原因吗?如果不是,那是什么?是因为我的JDABuilder被否决了吗?(我没有找到如何使用在JDABuilder上的正式文档中显示的当前GitHub实例)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-14 23:36:16

正如dan1st在评论中所说:

使用当前的JDABuilder构建器解决了这个问题:

代码语言:javascript
运行
复制
public class Main extends ListenerAdapter {
    public static void main(String[] args) throws LoginException, IOException {
        JDABuilder builder = JDABuilder.createDefault("my_token");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66629775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档