1

我刚开始为自己编写一个新的 Discord 机器人,看看我能创造什么。目前,我正在开发 Autorole 功能,但我只是不明白为什么 Bot 不会被 MemberJoinEvent 触发。这是我的代码:

gateway.getEventDispatcher().on(MemberJoinEvent.class).subscribe(memberJoinEvent -> {
       final Member member = memberJoinEvent.getMember();            
       System.out.println(member.toString());
});
4

2 回答 2

1

我发现了问题!我不知道不和谐在他们的开发者门户中改变了一些东西。我也使用了我的旧项目,所以我没有注意到它。您必须在开发人员门户中手动启用它,机器人才能访问成员信息。启用网关功能的位置屏幕截图

于 2021-02-25T21:23:50.850 回答
0

除了leguans的回答,我还必须请求网关意图!

GatewayDiscordClient gatewayDiscordClient() {
    return discordClient()
        .gateway()
        .setEnabledIntents(IntentSet.all())
        .login()
        .block();
}

https://docs.discord4j.com/migrating-from-v3-1-to-v3-2/#gateway-intents

于 2022-01-09T15:14:26.703 回答