main
Одиннадцатый этап, последний из задуманных. Сообщение о смерти в пустоте не уходит в общий чат: забирается через deathMessage(null) и отправляется только тем, кто в радиусе 100 блоков от места смерти. Текст сообщения при этом тот же самый, что и обычно. Убийство кого-то отдельным обработчиком ловить не пришлось: «X убит Y» — это то же самое событие PlayerDeathEvent, что и «X умер». Различаются они только текстом, который и так передаётся как есть. Крик визера: громкость 0.2, дальность доставки 150 блоков. Отдельного ENTITY_WITHER_SCREAM в enum нет — визer's крик в ванилле называется entity.wither.spawn, то есть ENTITY_WITHER_SPAWN. Про «дальность 150» честно: это радиус доставки пакета на сервере, то есть кто его вообще получил. Громкость 0.2 — громкость пакета, а клиент дальше применяет своё позиционное затухание: у источника слышно, в сотне метров почти нет. Чтобы звук был одинаково громким на всех 150 блоках, громкость пришлось бы поднять до 9.4, и тогда заглушало бы всех рядом с источником. Именно для такой задачи в Delta есть раздельная дальность звука, и флаг decoupled-sound-range-enabled на проде включён: без него World#playSound с радиусом молча уходит в стоковое поведение, где радиус выводится из громкости, то есть 0.2 даёт 3.2 блока. Проверено: плагин грузится без ошибок, флаг виден в /delta как true. Сама смерть в пустоте не проверялась — нужен игрок.
Description
BlackKnife plugin - DeltaMine
Languages
Java
100%