Серверіңіздегі модтар
Алдын ала нұсқа
Blockheads Server әзірлеу құрастырмаларында Lua және WASM (Rust) модтарын іске қосады; олар әлі шығарылымда жоқ. Клиент бөлігі бар модтар үшін ойыншыларда мод жүктегіш болуы керек (PC нұсқасы немесе Patcher-мен Android).
Модтарды қосу
Модтар сервердің деректер қалтасындағы mods қалтасынан жүктеледі:
| Баптау | Модтар қалтасы |
|---|---|
| Компьютер / пәрмен жолы | <деректер қалтасы>/mods (деректер қалтасы: BLOCKHEADS_DATA_DIR, болмаса үй қалтаңыздағы GNUstep/Library/ApplicationSupport/TheBlockheads) |
| Docker | томдағы /data/mods |
| Кез келген жерде | BLOCKHEADS_MODS_DIR айнымалысын басқа қалтаға орнатыңыз |
Модтар қалтасы жоқ болса (немесе бос болса) сервер дәл ванильдік сияқты жұмыс істейді: байттар, сақтаулар және шығыс бірдей.
Модты орнату
.bhmodфайлын Модтар бетінен жүктеңіз (немесе автордан алыңыз). Ашылған мод қалтасы (ішіндеmod.tomlбар) да жарайды.- Оны модтар қалтасына салыңыз.
- Рұқсаттарын
mods.tomlішінде беріңіз (төменде). - Серверді қайта қосыңыз. Журналда
loaded 1 mod(s): …немесе модтың неге жүктелмегені көрсетіледі.
Server қолданбасында мод қалтасына арналған Модтар экраны да бар (әзірлеу құрастырмалары).
mods.toml
mods.toml модтар қалтасында тұрады. Әр мод id-іне бір бөлім:
[hello-lua]
grant = ["players:chat"]
[noisy-mod]
enabled = false # орнатулы қалады, бірақ жүктелмейдіРұқсат қажет етпейтін модқа бөлім керек емес. Сіз бермеген рұқсатты сұрайтын мод жүктелмейді; оған тәуелді модтар да өткізіліп кетеді.
Рұқсаттар
| Рұқсат | Модқа мүмкіндік береді |
|---|---|
players:chat | барлығына чат хабарларын жіберу |
players:kick, players:ban | ойыншыларды кик немесе бан жасау |
players:teleport, players:inventory, players:health | ойыншыларды жылжыту, инвентарьды немесе денсаулықты өзгерту |
world:read, world:write | әлемді оқу немесе өзгерту (world:write world:read дегенді де қамтиды) |
net-http:<host> | сол сайтқа қосылу |
channels | басқа модтарға және клиенттерге хабар жіберу |
native | құмсалғыштан тыс нативті код іске қосу (қызыл ескерту, қолмен тексеріледі) |
Қалғанының бәріне рұқсат керек емес: оқиғалар, өз пәрмендері, таймерлер, өз сақтауы, бір ойыншыға чат және тәуелді модтардың сервистері. Модтың ашық тізімдегі бетінде оның нені сұрайтыны көрсетіледі.
Уақыт пен жад шектеулері
Модтар сервердің негізгі ағынында жұмыс істейді, сондықтан әрқайсысы қатаң шектеледі:
- Модқа әр шақыру 25 мс алуы мүмкін (5 мс-тан кейін журналға ескерту жазылады).
- Барлық модтар бірге әлемнің бір қадамына 20 мс алады; одан асқан таймерлер келесі қадамды күтеді.
- Әр модқа 32 MiB жад беріледі.
Қате, уақыт асып кету немесе жадтың таусылуы ақау деп саналады. 60 с ішінде 3 ақау модты келесі қайта қосуға дейін өшіреді; журналда disabled: 3 faults within 60 s және қате аты жазылады. Мұны модтың авторына хабарлаңыз.
Жұмыс істеп тұрған модтарды басқару
Әкімшілер серверді қайта қоспай модтарды тізімдеп, қайта жүктеп, уақытын көре алады: /mods, /mods reload [id], /mods timings. Ыстық қайта жүктеу және уақыт өлшемдері бетін қараңыз.
Сақтау
Әр мод өз деректерін әлем бойынша saves/<world>/mods/storage ішінде сақтайды, әлемнің өзінен бөлек. Оны жою модтардың деректерін тазалайды, әлемге тиіспейді. Резервтік көшірмені әлеммен бірге жасаңыз.
Java модтары (JVM)
Java немесе Kotlin тілінде жазылған модтар сервердің ішіндегі Java виртуалды машинасында жұмыс істейді. JVM-ді құмсалғышқа қамау мүмкін емес, сондықтан ол әдепкіде өшірулі, ал модта native рұқсаты болуы керек:
- Машинаға Java 8 немесе жаңасын орнатыңыз (немесе серверге біреуін көрсетіңіз).
- Сервер қолданбасында Баптаулар > Java модтары қосыңыз (немесе серверді
BLOCKHEADS_JVM=1арқылы іске қосыңыз;BLOCKHEADS_JAVA_HOMEJava қалтасын таңдайды). Қолданба Java қолдауымен құрастырылған болуы керек, әйтпесе қосқыштың астында айтылады. mods.tomlішінде модқаnativeберіңіз. Қызыл ескерту модта қалады.
Тек сенімді модтар үшін қосыңыз. Уақыт шегі Java кодындағы тығыз циклді тоқтата алмайды, тек блоктаушы шақыруды тоқтатады.
Ванильдік ойыншылар
- Тек сервер модтары: кез келген адам қарапайым ойынмен қосыла алады.
- Клиентте міндетті модтар алдын ала: мод жүктегіші жоқ ойыншылар қайтарылады (ойыны клиенттің ескіргенін айтады). Модтың бетінде мұндай модтар client-required деп белгіленеді.