
Lattice
A Java 21 shared runtime and framework for structured Paper/Folia plugin development.
Оцените первым
69
1
Список изменений
Lattice 0.8.7 - Folia Thread-Safety Hardening
Fixed
Critical (AsyncCatcher Errors)
-
[CRITICAL] Fixed
PaperTaskService.scheduleEntity()thread validation- Added thread ownership validation before entity access
- Prevents unsafe entity lookups from async contexts
- Uses
ReentrantLockfor better granularity
-
[CRITICAL] Fixed race conditions in UI event handlers
- Synchronized
onInventoryClick()withReentrantLock - Synchronized
onPrepareAnvil()withReentrantLock - Added
closed()checks to prevent operations on closed sessions
- Synchronized
-
[CRITICAL] Fixed block/player access in text input renderers
- Protected
getBlock()calls inPaperVirtualSignTextInputRenderer.restore() - Protected
getLocation()calls in both virtual sign and anvil renderers - Prevents AsyncCatcher errors during text input UI operations
- Protected
-
[CRITICAL] Fixed PacketEvents callback thread safety
- Wrapped
PacketEventslisteners to execute in global region scheduler - Prevents unsafe operations from packet thread
- Wrapped
Important (Race Conditions)
-
[IMPORTANT] Added volatile modifiers to
PaperTextInputUiSessioncompleted,anvilView,signPosition,signLocationare now volatile- Ensures visibility across event handler and scheduler threads
-
[IMPORTANT] Synchronized
handleVirtualSignChange()withReentrantLock- Prevents race condition with concurrent session removal
-
[IMPORTANT] Synchronized
PaperInventorySurfaceRenderer.render()page access- Copies button list atomically to avoid concurrent modification
- Prevents
IndexOutOfBoundsException
-
[IMPORTANT] Synchronized
runOnPlayer()ownership check- Prevents race condition between region ownership check and schedule
-
[IMPORTANT] Added thread-safety documentation to PlaceholderAPI integrations
- Documents that handlers are called from arbitrary threads
- Lists unsafe and safe operations
Minor (Edge Cases)
- Improved lock granularity in
session(Inventory)lookup - Prevented double registration in
registerRefreshEvent()
Файлы
lattice-paper-0.8.7-standalone.jar(19.58 MiB)
ОсновнойМетаданные
Канал релиза
Beta
Номер версии
0.8.7
Загрузчики
Paper
Версии игры
1.21.11
Загрузок
5
Дата публикации
13.06.2026
