为什么 onGuildMemberLeave 事件不起作用(Discord Java JDA)

huangapple 未分类评论46阅读模式
英文:

Why onGuildMemberLeave event not working (Discord Java JDA)

问题

The onGuildMemberLeave event doesn't work and I don't know why. I tried to use intents, activate intent authorizations on discord.com, but still not fixed.

The JDABuilder method:

  1. public static void buildJDA(){
  2. try {
  3. jdaBuilder.createDefault(Configuration.getToken())
  4. .enableIntents(GatewayIntent.GUILD_PRESENCES,
  5. GatewayIntent.GUILD_BANS,
  6. GatewayIntent.DIRECT_MESSAGES,
  7. GatewayIntent.DIRECT_MESSAGE_REACTIONS,
  8. GatewayIntent.GUILD_MEMBERS,
  9. GatewayIntent.GUILD_INVITES)
  10. .enableCache(CacheFlag.ACTIVITY,
  11. CacheFlag.CLIENT_STATUS,
  12. CacheFlag.EMOTE,
  13. CacheFlag.MEMBER_OVERRIDES)
  14. .addEventListeners(new JdaManager())
  15. .addEventListeners(new EngineListeners())
  16. .addEventListeners(new ElkirListeners())
  17. .build();
  18. } catch (LoginException e) {
  19. e.printStackTrace();
  20. }
  21. }

The onGuildMemberLeave event (ElkirListener):

  1. @Override
  2. public void onGuildMemberLeave(@Nonnull GuildMemberLeaveEvent event) {
  3. if(!Configuration.isSnapshotEnabled()){
  4. if(event.getGuild().getId().equalsIgnoreCase("701834905021186090")){
  5. EmbedBuilder builder = new EmbedBuilder()
  6. .setAuthor(event.getUser().getAsTag(), null, event.getUser().getAvatarUrl())
  7. .setColor(Color.red)
  8. .setDescription("Tu nous à quittés, bonne continuation mon ami.");
  9. event.getGuild().getTextChannelById("701898572534382592").sendMessage(builder.build()).queue();
  10. }
  11. if(event.getGuild().getId().equalsIgnoreCase("465583093357477896")){
  12. EmbedBuilder builder = new EmbedBuilder()
  13. .setAuthor(event.getUser().getAsTag(), null, event.getUser().getAvatarUrl())
  14. .setColor(Color.red)
  15. .setDescription("Tu nous à quitté, bonne continuation mon ami.");
  16. event.getGuild().getTextChannelById("568803340541231125").sendMessage(builder.build()).queue();
  17. }
  18. }
  19. }

What am I missing?

英文:

The onGuildMemberLeave event doesn't work and I don't know why. I tried to use intents, activate intent authorizations on discord.com, but still not fixed.

The JDABuilder method:

  1. public static void buildJDA(){
  2. try {
  3. jdaBuilder.createDefault(Configuration.getToken())
  4. .enableIntents(GatewayIntent.GUILD_PRESENCES,
  5. GatewayIntent.GUILD_BANS,
  6. GatewayIntent.DIRECT_MESSAGES,
  7. GatewayIntent.DIRECT_MESSAGE_REACTIONS,
  8. GatewayIntent.GUILD_MEMBERS,
  9. GatewayIntent.GUILD_INVITES)
  10. .enableCache(CacheFlag.ACTIVITY,
  11. CacheFlag.CLIENT_STATUS,
  12. CacheFlag.EMOTE,
  13. CacheFlag.MEMBER_OVERRIDES)
  14. .addEventListeners(new JdaManager())
  15. .addEventListeners(new EngineListeners())
  16. .addEventListeners(new ElkirListeners())
  17. .build();
  18. } catch (LoginException e) {
  19. e.printStackTrace();
  20. }
  21. }

The onGuildMemberLeave event (ElkirListener):

  1. @Override
  2. public void onGuildMemberLeave(@Nonnull GuildMemberLeaveEvent event) {
  3. if(!Configuration.isSnapshotEnabled()){
  4. if(event.getGuild().getId().equalsIgnoreCase("701834905021186090")){
  5. EmbedBuilder builder = new EmbedBuilder()
  6. .setAuthor(event.getUser().getAsTag(), null, event.getUser().getAvatarUrl())
  7. .setColor(Color.red)
  8. .setDescription("Tu nous à quittés, bonne continuation mon ami.");
  9. event.getGuild().getTextChannelById("701898572534382592").sendMessage(builder.build()).queue();
  10. }
  11. if(event.getGuild().getId().equalsIgnoreCase("465583093357477896")){
  12. EmbedBuilder builder = new EmbedBuilder()
  13. .setAuthor(event.getUser().getAsTag(), null, event.getUser().getAvatarUrl())
  14. .setColor(Color.red)
  15. .setDescription("Tu nous à quitté, bonne continuation mon ami.");
  16. event.getGuild().getTextChannelById("568803340541231125").sendMessage(builder.build()).queue();
  17. }
  18. }
  19. }

What am I missing?

答案1

得分: 0

你不应该使用已弃用的功能,比如 GuildMemberLeaveEvent

文档建议你使用代替的 GuildMemberRemoveEvent

英文:

You shouldn't be using deprecated features like the GuildMemberLeaveEvent.

The documentation tells you to use GuildMemberRemoveEvent instead.

huangapple
  • 本文由 发表于 2020年7月23日 22:57:29
  • 转载请务必保留本文链接:https://java.coder-hub.com/63057201.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定