Skip to content

1.21.11 [0.5.8]

Choose a tag to compare

@ServChan ServChan released this 06 Mar 18:36
· 32 commits to main since this release

Русский

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