@events.finish_eatотменить нельзя2 методаКогда игрок доел еду или допил зелье, то есть использование предмета завершилось.
Точка, где известно, что предмет реально сработал, а не просто был зажат. Отсюда запускают следующий шаг: убрать пустую бутылку, взять новое яблоко, снять паузу у своего автоеда.
Событие приходит и на других игроков рядом, поэтому первым делом сверяют, кто именно ел.
| Метод | Возвращает | Зачем |
|---|---|---|
getUser() | PlayerEntity | Кто ел. Объект Minecraft, нужен wrap |
getStack() | ItemStack | Что съели. Объект Minecraft, нужен wrap |
@events.finish_eat
def on_finish_eat(event):
if not world.ingame():
return
user = event.getUser()
stack = event.getStack()
if user.getId() != mc.player.getId():
client.msg("%s доел %s" % (user.getNameForScoreboard(), str(stack.getItem())))
return
client.overlay("съедено: " + str(stack.getItem()))Общий список всех событий и правила подписки лежат на странице События.