@events.effect_removedотменить нельзя3 методаКогда эффект перестал висеть на игроке: время вышло, выпили молоко или его снял сервер.
Точка, где скрипт возвращает всё как было: гасит свой режим, снимает подсветку, предлагает выпить следующее зелье.
Отличить «время вышло» от «сняли» помогает isExpired().
| Метод | Возвращает | Зачем |
|---|---|---|
getEffect() | Effect | Эффект в том виде, в каком его видели последний раз |
getEntity() | LivingEntity | С кого спал. Сейчас это всегда сам игрок |
isExpired() | bool | Время вышло само, а не эффект сняли |
@events.effect_removed
def on_effect_end(event):
eff = event.getEffect()
if eff.id != "minecraft:speed":
return
if event.isExpired():
client.warn("Скорость кончилась")
else:
client.msg("Скорость сняли")Общий список всех событий и правила подписки лежат на странице События.