Releases: NguyenDevs/FreesiaII
Releases · NguyenDevs/FreesiaII
Release list
Release: 1.0.6-YSM-2.6.5
Changelog
v1.0.6 — Security & Stability Audit
This release fixes 21 issues identified in a full project audit, ranging from critical thread-safety bugs to low-priority cleanup — all 6 modules affected.
Critical Fixes
- Null check order in
NettyServerChannelHandlerLayer.sendMessage()— swappednullcheck beforechannel.isOpen()to prevent NPE on first invocation - Platform-dependent charset in
W2MWorkerInfoMessage— enforced UTF-8 encoding to prevent data corruption on mixed OS deployments - Infinite max frame size —
LengthFieldBasedFrameDecodernow bounded to 16MB to prevent OOM from oversized frames - Blocking spin-wait in
MapperSessionProcessor.waitForDisconnected()— added 10s timeout + backoff to prevent event-thread stalls - No shutdown handlers in proxy modules — resources (Netty, tasks, listeners) now properly cleaned up on proxy disable/reload
- Waterfall
onServerConnectedblocking event thread — handler now executes asynchronously viarunAsync
High Priority Fixes
- Netty
ByteBufleak in Backend — all buffers now properly released via try-with-resources - Orphaned callbacks — stale entries in
VirtualPlayerManager.pendingCallbackscleaned up after 10s timeout - Unbounded Guava cache — player data cache limited to 1000 entries
- Unlimited NBT heap — deserialization limited to 1MB via
NbtAccounter.create(1048576L) - Blocking
CompletableFuture.join()on entity load — added 10s timeout Bukkit.getOnlinePlayers()from I/O thread — replaced with cached player reference for thread safety
Medium Priority Fixes
- Unbounded
packetFlushQueue— capped at 1024 pending messages M2WDispatchCommandMessagelambda parameter bug — fixed parameter naming and error handling@Overwritemixins — all 3 replaced with@Inject(cancellable=true)for mod compatibility- Worker Netty resources not shut down — added
NettySocketClient.shutdown()on server stop - Waterfall
CitizensPersistenceManageratomic write — now writes to temp file then atomically moves
Low Priority Fixes
volatileon staticLOGGER_INSTfor thread safety- Renamed
BuiltinMessageRegitres→BuiltinMessageRegistries(file + 3 references) - Upgraded
trustAlllog fromINFOtoWARN - Config files no longer stripped of comments on every startup
VirtualYsmPacketProxyImpl.processS2C/C2SreturnsProxyComputeResult.ofPass()instead ofnull- Replace
getHostName()withgetHostString()to avoid reverse DNS lookup - Pass Component directly instead of
toString()in command feedback.
Release: 1.0.5-YSM-2.6.4
Fixed
- (common): fix reconnection spam and suppress SSL handshake noise
- (common): fix race condition in NettySocketClient where multiple reconnection loops could start
- (common): move reconnection logic to background thread to prevent main thread freeze
- (proxy): use monotonic nanoTime for tracker cache TTL
- (proxy): optimize and fix backend player counting (ConcurrentHashMap + LongAdder)
- (proxy): standardize ysmDetectionTimeout unit to milliseconds
- (velocity): implement atomic save for citizens model cache
- (worker): fix race condition in null player data initialization (Double-checked locking)
- (waterfall): optimize virtual player NBT storage and add size limits
- (waterfall): optimize real player NBT storage and add size limits
- (velocity): optimize virtual player NBT storage and add size limits
- (velocity): optimize NBT storage and add size limits
- (security): implement command whitelist for worker-to-proxy dispatch
- (common): replace recursive connect() with iterative loop to prevent StackOverflowError
- (perf): cache tracker list with 100ms TTL in notifyFullTrackerUpdates
- (velocity): remove blocking .join() on Netty I/O thread in processS2C
Release: 1.0.4-YSM-2.6.4
Changelog:
New Module: Freesia-Citizens
- Introduced the Freesia-Citizens module to handle dedicated Citizens NPC Hook management.
- Implemented Citizens Traits for handling NPC model and skin assignments directly at the backend.
- Added the
freesia-citizenscommand, fully support Tab Completion - Offloaded NPC state persistence logic from the Proxy to this new backend module.
Security & Networking
- Upgraded communication protocol from TLS to mTLS (Mutual TLS) for 2-way authentication.
- Implemented automated persistent self-signed certificate generation.
- Restructured security assets into a dedicated
security/directory. - Modernized network security policy and documentation.
Optimization & Cleanup
- Update README
- Cleaned up redundant localization keys across multiple language files.
- Removed obsolete CI/CD workflows and updated version dependencies.
Release: 1.0.3-YSM-2.6.4
Changelog: 1.0.3-YSM-2.6.4
Features
- TLS Encryption Configuration: Added robust configurations for automated TLS certificate distribution between Proxy and Workers setups.
enable_tlsis now standardized and forcefully switched totrueby default on all generated configurations to grant instant native connection encryption out-of-the-box. - Firewall Stabilization: Strengthened internal IP Filtering parameters, securing local routing pathways from unauthorized intrusions.
- Zero-Latency Connection Overhaul: Successfully bypassed buffering restrictions (Nagle's Algorithm) entirely. Internal game packets are now guaranteed to transmit instantaneously between Worker nodes to the Proxy without artificial latency spikes.
Release: 1.0.2-YSM-2.6.2
Merge pull request #3 from NguyenDevs/Optimization Optimization
Release: 1.0.1-YSM-2.6.2
Fix model not clickable when switch backend
Release: 1.0.0-YSM-2.6.2
Update FreesiaBackend.java