Skip to content

Releases: NguyenDevs/FreesiaII

Release: 1.0.6-YSM-2.6.5

Choose a tag to compare

@NguyenDevs NguyenDevs released this 30 May 04:22
3a2b520

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() — swapped null check before channel.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 sizeLengthFieldBasedFrameDecoder now 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 onServerConnected blocking event thread — handler now executes asynchronously via runAsync

High Priority Fixes

  • Netty ByteBuf leak in Backend — all buffers now properly released via try-with-resources
  • Orphaned callbacks — stale entries in VirtualPlayerManager.pendingCallbacks cleaned 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
  • M2WDispatchCommandMessage lambda parameter bug — fixed parameter naming and error handling
  • @Overwrite mixins — all 3 replaced with @Inject(cancellable=true) for mod compatibility
  • Worker Netty resources not shut down — added NettySocketClient.shutdown() on server stop
  • Waterfall CitizensPersistenceManager atomic write — now writes to temp file then atomically moves

Low Priority Fixes

  • volatile on static LOGGER_INST for thread safety
  • Renamed BuiltinMessageRegitresBuiltinMessageRegistries (file + 3 references)
  • Upgraded trustAll log from INFO to WARN
  • Config files no longer stripped of comments on every startup
  • VirtualYsmPacketProxyImpl.processS2C/C2S returns ProxyComputeResult.ofPass() instead of null
  • Replace getHostName() with getHostString() to avoid reverse DNS lookup
  • Pass Component directly instead of toString() in command feedback.

Release: 1.0.5-YSM-2.6.4

Choose a tag to compare

@NguyenDevs NguyenDevs released this 02 May 13:07
eaa8cb6

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

Choose a tag to compare

@NguyenDevs NguyenDevs released this 19 Apr 16:50
df22af9

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-citizens command, 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

Choose a tag to compare

@NguyenDevs NguyenDevs released this 07 Apr 03:12
f193212

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_tls is now standardized and forcefully switched to true by 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

Choose a tag to compare

@NguyenDevs NguyenDevs released this 05 Apr 03:39
c3f9565
Merge pull request #3 from NguyenDevs/Optimization

Optimization

Release: 1.0.1-YSM-2.6.2

Choose a tag to compare

@NguyenDevs NguyenDevs released this 10 Mar 00:06
Fix model not clickable when switch backend

Release: 1.0.0-YSM-2.6.2

Choose a tag to compare

@NguyenDevs NguyenDevs released this 09 Mar 23:13
Update FreesiaBackend.java