@events.start_break_blockможно отменить2 методаНа первом ударе по блоку, до того как игра начнёт его ломать.
block_break приходит, когда блок уже сломан, а это событие в самом начале. Значит, ломку ещё можно запретить.
На нём делают защиту от случайной ломки: не трогать сундуки, не копать рядом с базой, не выбивать блок из-под ног.
| Метод | Возвращает | Зачем |
|---|---|---|
getBlockPos() | BlockPos | Какой блок начали ломать. Объект Minecraft, нужен wrap |
cancel() / isCancelled() | ничего / bool | Не давать начать ломку |
mod = Module("BlockGuard", "Player")
mod.setDesc("Не ломать блок под ногами")
@events.start_break_block
def on_start_break(event):
if not mod.isEnabled() or not world.ingame():
return
pos = event.getBlockPos()
p = mc.player
same_column = int(pos.getX()) == int(p.getX() // 1) and int(pos.getZ()) == int(p.getZ() // 1)
under_feet = int(pos.getY()) == int(p.getY() // 1) - 1
if same_column and under_feet:
event.cancel()
client.warn("Под ногами ломать не буду")Общий список всех событий и правила подписки лежат на странице События.