@events.newton_failedотменить нельзя2 методаКогда задачу отменили или она сорвалась: дороги нет, элитра не надета, кончились блоки в инвентаре.
Причина приходит строкой, человеческим языком: «путь не найден», «отменён», «элитра не надета», «нет блока в инвентаре».
Отмена это тоже срыв: и newton.cancel(), и запуск новой задачи поверх старой дают это событие с причиной «отменён».
Обычная реакция это попробовать иначе: пойти к точке с запасом по радиусу, взять другую цель или просто сообщить игроку.
| Метод | Возвращает | Зачем |
|---|---|---|
getProcess() | str | Какая задача сорвалась |
getReason() | str | Причина простым текстом |
target = [100, 64, 200]
tries = {"n": 0}
@events.newton_failed
def on_fail(event):
if event.getReason() == "отменён":
return # отменили руками, лезть не надо
tries["n"] += 1
if tries["n"] > 3:
client.warn("Не дойти: " + event.getReason())
return
# с запасом по радиусу дорога находится чаще
newton.goto(target, radius=tries["n"] + 1)Общий список всех событий и правила подписки лежат на странице События.