我有一个活动,有这些问题.

  1. 每当创建新的审核日志(log)时都会触发它.
  2. 如果用户进入语音聊天,它也会被触发

这是事件监听程序

   @Override
    public void onGuildAuditLogEntryCreate(GuildAuditLogEntryCreateEvent event) {
        JDA jda=event.getJDA();
        Guild gld=jda.getGuilds().get(0);

        AuditLogPaginationAction auditLogs = event.getGuild().retrieveAuditLogs();
        auditLogs.type(ActionType.MEMBER_VOICE_KICK);
        auditLogs.limit(1);
        auditLogs.queue( (entrys) ->
        {

            if (entrys.isEmpty()) return;
            AuditLogEntry entry = entrys.get(0);
            System.out.println("The User "+ entry.getUser().getId());
            Member member=gld.getMemberById(entry.getUser().getId());
            gld.modifyNickname(member,"User Voice kicker").queue();

        });
    }

What i am aiming at:

  • 我希望它专门在Members_Voice_Kick操作发生时触发.只有那个

What i tried:

  • 我试着使用onGuildVoiceUpdate()事件...我也有同样的问题.

推荐答案

该事件已经为您提供了创建的条目,您可以专门查看该条目.

public void onGuildAuditLogEntryCreate(GuildAuditLogEntryCreateEvent event) {
  AuditLogEntry entry = event.getEntry();
  if (entry.getType() != ActionType.MEMBER_VOICE_KICK) return; // guard case
  String userId = entry.getUserId();
  guild.retrieveMemberById(userId).flatMap(member ->
    member.modifyNickname("User Voice kicker")
  ).queue();
}

Java相关问答推荐

如何专门保存数据而不显示在jTable中?

日食IDE 2024-03在Ubuntu下崩溃,导致hr_err_pid.log

我可以从Java模块中排除maven资源文件夹吗?

try 使用Java 9或更高版本对特殊对象图进行解析时出现NullPointerException

H2弹簧靴试验跌落台

Apache POI:使用反射获取zoom 级别

S的字符串表示是双重精确的吗?

Kubernetes的Java客户端检索状态.处于终止状态的Pod的阶段';正在运行';

Exe4j创建的应用程序无法再固定在任务栏Windows 11上

无法在WebSocket onMessage中捕获错误

根本不显示JavaFX阿拉伯字母

如何使用Criteria Builder处理一对多关系中的空值?

在整数列表中查找和可被第三个整数整除的对时出现无法解释的RunTimeError

如何调整JButton的大小以适应图标?

我无法在我的Spring Boot应用程序中导入CSV依赖项

为什么Spring要更改Java版本配置以及如何正确设置?

如何使用外部函数从Java中获取C++ struct 的返回值&;内存API

Java 21保护模式的穷尽性

为什么Java编译器为没有参数的方法(getter方法)创建桥接方法

将天数添加到ZonedDateTime不会更改时间