Java Discord бот: не выполняйте код в onGuildVoiceMoveEvent-прослушивателе, когда участник перемещается самим ботом

#discord #bots #listener

#Discord #боты #прослушиватель

Вопрос:

 @Override
    public void onGuildVoiceMove(@NotNull GuildVoiceMoveEvent event) {
    }
  

Я хочу, чтобы код внутри этого Eventlistener не выполнялся
когда бот сам перемещает участника (не перемещается). Я думал о
используя что-то вроде этого:

 if(!event.getMover().getUser().isBot()){ //getMover doesn't exist just
                                         //.getMember and .getEntity

//Code
}
  

Но я не могу найти способ получить участника / пользователя, который перемещает участника.
Я был бы очень благодарен, если у кого-нибудь есть какие-либо идеи.

Комментарии:

1. Я знаю, что этот вопрос устарел, но я только что нашел способ сделать это. Вы можете использовать логическое значение, которое вы устанавливаете в значение true, если выполняется код для перемещения участника, а затем проверить в случае, если это логическое значение равно true. Если это так, вы можете выполнить код, который хотите. Не забудьте сбросить логическое значение на false при выполнении кода в событии перемещения.

2. @Redi Привет, спасибо за ответ. Это кажется хорошей идеей, но я не уверен, вызывает ли это какие-то супер плохие ошибки, если пользователь перемещается из другого источника во время постановки операции перемещения в очередь и выполнения. (До н.э. это будет обрабатываться при перемещении бота)

3. Тем не менее, это довольно маловероятный случай, и в зависимости от того, как работает поток в discord, это может работать нормально.

4. Возможно, мы получим конечную точку API для этого в будущем. Давайте просто надеяться на это.

5. Это было бы круто

Ответ №1:

Это не поддерживается Discord JDA / Discord API. Вы можете открыть вопрос с предложением здесь или предложение для официального Discord API здесь