Оқиғалар
Мод ойынға оқиғаларға жазылу арқылы жауап береді:
lua
bh.events.on("chat", function(ev)
if string.find(ev.text, "badword") then
ev.cancelled = true -- хабар ешқашан көрсетілмейді
end
end, { priority = "lowest" })bh.events.on id қайтарады; bh.events.off(id) өңдеушіні алып тастайды.
Оқиға түрлері
| Түрі | Қашан | Нені өзгертуге болады |
|---|---|---|
player-join, player-quit | ойыншы қосылды / шықты | – |
chat | чат хабары, көрсетілмес бұрын | бас тарту, ev.text |
command | /command жолы, кез келген өңдеушіден бұрын | бас тарту (жұтып қояды) |
tick | әлемнің әр қадамы (0,2 с) | – |
world-loaded, world-save | әлем жүктелді / сақталуда (pre, post) | – |
player-pre-login | ойыншы қосылу тексерулерінен өтті | бас тарту (қабылдамау), ev.reason |
block-place, block-break | ойыншы блок қояды / алады | бас тарту |
object-place | ойыншы верстак, сандық, есік, … қояды | бас тарту |
block-changed | кез келген тайл өзгерді, өсу немесе физика себебінен де | – (тек бақылау) |
damage | блокхедке зиян келмекші | бас тарту, ev.amount |
death | блокхед өлді | – |
player-move | блокхед басқа тайлға өтті | – |
player-pre-login және одан төмендегі түрлерге API 0.2 керек (API нұсқалары). Барлық өрістер: events анықтамасы.
Бас тартылған блок өзгерісі ойыншының экранында қорғалған тайлдағыдай кері қайтарылады.
Басымдық
Өңдеушілер lowest бастап highest дейін, содан кейін monitor жұмыс істейді:
lowest → low → normal (әдепкі) → high → highest → monitor
- Кейінгі өңдеушілер сізді өзгерте алатын болса, ертерек жұмыс істеңіз (
lowest,low), мысалы жұмсақ сүзгі. - Соңғы сөзді өзіңіз айтқыңыз келсе, кейінірек жұмыс істеңіз (
high,highest), мысалы қорғау моды. monitorсоңғы нәтижені көреді және өзгерте алмайды. Оны журналдар мен статистикаға қолданыңыз.
Бір басымдық ішінде модтар жүктелу ретімен жұмыс істейді (алдымен тәуелділіктер).
Бас тарту
- Бас тарту үшін
ev.cancelled = trueқойыңыз. Кейінгі өңдеуші оны қайтаданfalseетуі мүмкін. { ignore_cancelled = true }оқиға бас тартылған кезде өңдеушіңізді өткізіп жібереді.- Бас тартуға болмайтын оқиғалардағы өзгерістер еленбейді, журналға ескерту жазылады.
Өңдеушілер сервердің негізгі ағынында бір-бірден жұмыс істейді және жылдам болуы керек (шектеулер).