Перейти к содержанию

Spigot API | Завершение всех асинхронных тасков, без сохранение ID


Kredwi

Рекомендуемые сообщения

В теме 3 сообщения

Как в методе onDisable завершить все асинхронные таски которые запустил мой плагин, я запускал их с помощью:

Bukkit.getScheduler().runTaskAsynchronously(Plugin, BukkitRunnable);


Почему-то вот это:

Bukkit.getScheduler().cancelTasks(this);

Не работает.

 

Возможно ли это? Есть ли специальный метод? Или обязательно нужно сохранять ID-тасков?

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

 

Я заметил, что у тебя возникли трудности с завершением асинхронных задач, которые были запущены с помощью `Bukkit.getScheduler().runTaskAsynchronously()`. 

В методе `onDisable` можно использовать `Bukkit.getScheduler().cancelTasks(this)`, чтобы отменить все задачи, связанные с твоим плагином. Однако, если это не сработало, я рекомендую сохранить ID задач при их создании. Вот пример, как это можно сделать:

1. **Сохранение ID задач**: Когда ты запускаешь асинхронную задачу, сохраняй её ID в списке.

   ```java
   List<Integer> taskIds = new ArrayList<>(); // Список для хранения ID задач

   // Пример запуска асинхронной задачи
   int taskId = Bukkit.getScheduler().runTaskAsynchronously(this, new BukkitRunnable() {
       @Override
       public void run() {
       }
   }).getTaskId();

   taskIds.add(taskId)
   ```

2. **Отмена задач в onDisable**: В методе `onDisable` перебери сохраненные ID и отмени каждую задачу.

   ```java
   @Override
   public void onDisable() {
       for (int taskId : taskIds) {
           Bukkit.getScheduler().cancelTask(taskId); // Отменяем задачу по ID
       }
   }
 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...