1.21.11 [0.5.8]
Русский
EasyPlaceFix 0.5.8
Релиз 0.5.8 фокусируется на стабильности поворота при установке блоков, более безопасной скорости постановки для анти-чит плагинов на серверах и стабилизации памяти в длинных сессиях.
Что изменено
- Исправлен race condition в LookAt.
- LookAt переведён с изменяемого enum на неизменяемый класс.
- Убрана мутация общих значений через customize()/NowYaw()/NowPitch(), которая могла давать некорректный yaw/pitch при нескольких действиях подряд.
- Добавлены безопасные варианты:
- LookAt.PlayerYaw
- LookAt.PlayerPitch
- LookAt.of(float) для вычисляемых углов
- Обновлены миксины блоков, которые используют поворот (rails, signs, hanging signs, wall hanging signs, pistons, observers, barrels, dispensers, doors, shulkers, skulls и др.), чтобы работать через новую
модель LookAt. - Добавлен глобальный анти-чит rate limit установки: placementDelay.
- Новый конфиг: placementDelay (диапазон 0..20 тиков, по умолчанию 0).
- Логика применяется до локального cooldown по позиции.
- При placementDelay > 0 Easy Place добавляет глобальную паузу между попытками установки (в миллисекундах это ticks * 50).
- Это снижает шанс флагов на серверах с жёсткими проверками темпа действий.
- Исправлен рост памяти в cooldown-кэше установки.
- Для lastPlacementTimeMap добавлена очистка устаревших записей (старше 10 секунд), если кэш разросся.
- Сохранена текущая логика порога cooldown по позиции: RTT + 100ms.
- В длинных строительных сессиях кэш больше не накапливается бесконтрольно.
Технические детали по пайплайну установки
- В doEasyPlace добавлена проверка isGlobalPlacementCooling() перед проверкой per-position cooldown.
- В момент старта установки вызывается markGlobalPlacement().
- В коде установки убрано дублирующее ручное выставление yawLock/pitchLock из старого пути, ротация теперь проходит через единый поток с безопасным чтением актуальных углов.
Совместимость
- Minecraft 1.21.11
- Java 17
- Fabric Loader 0.18.4
———
English
EasyPlaceFix 0.5.8
Version 0.5.8 focuses on rotation stability during placement, anti-cheat-friendly placement pacing, and memory stability in long sessions.
Changes
- Fixed a race condition in LookAt.
- Reworked LookAt from a mutable enum into an immutable class.
- Removed shared-state mutation via customize()/NowYaw()/NowPitch(), which could produce incorrect yaw/pitch in rapid chained actions.
- Added safe variants:
- LookAt.PlayerYaw
- LookAt.PlayerPitch
- LookAt.of(float) for computed angles
- Updated orientation-sensitive block mixins (rails, signs, hanging signs, wall hanging signs, pistons, observers, barrels, dispensers, doors, shulkers, skulls, etc.) to use the new LookAt model.
- Added global anti-cheat placement pacing via placementDelay.
- New config: placementDelay (0..20 ticks, default 0).
- Applied before per-position cooldown checks.
- When placementDelay > 0, Easy Place enforces a global pause between placement attempts (ticks * 50ms).
- This reduces anti-cheat flags on stricter servers.
- Fixed memory growth in the placement cooldown cache.
- Added stale-entry pruning in lastPlacementTimeMap (older than 10 seconds) when the cache grows.
- Kept per-position cooldown threshold logic as RTT + 100ms.
- Prevents uncontrolled cache growth in long building sessions.
Placement pipeline details
- Added isGlobalPlacementCooling() check in doEasyPlace before per-position cooldown.
- Added markGlobalPlacement() when a placement action starts.
- Removed duplicated manual yawLock/pitchLock writes from the old path; rotation now follows a single safer flow with current-angle reads.
Compatibility
- Minecraft 1.21.11
- Java 17
- Fabric Loader 0.18.4