
FoliaCore
A essentialsx Alternative for Folia
Список изменений
FoliaCore v5.7-deathwish — The Deathwish Update
Welcome to FoliaCore v5.7-deathwish, the most robust and stable release of our native, multi-threaded essentials suite built specifically for Paper and Folia servers.
This major version transitions the codebase from the legacy Blue Nightingale iterations into the battle-tested Deathwish layout, featuring refined thread-safety, absolute scheduler stability, and a fully polished command stack.
🛠️ Critical Bug Fixes (Deathwish Changelog)
We have addressed and fixed several concurrency and API compatibility issues encountered during performance stress tests:
- Regional Status Concurrency Fix (
/status):- Issue: The status telemetry command previously queried
player.getLocation().getChunk().getX()across all players. On regional servers, accessing a chunk in another region off its own thread causes a thread-access violation (IllegalStateException: Async block/chunk access). - Fix: Replaced direct chunk retrieval with pure coordinate math:
getBlockX() >> 4andgetBlockZ() >> 4. This is 100% thread-safe, fast, and does not require regional locks or chunk loads.
- Issue: The status telemetry command previously queried
- Immediate Task Scheduler Rectification (
/tpa,/tpaccept,/tpahere):- Issue: The TPA system used
runDelayed(..., 0L)for immediate scheduling. Folia throwsIllegalArgumentException: Delay ticks may not be <= 0when passed0L. - Fix: Shifted to Folia's immediate executor
player.getScheduler().run(plugin, task, null).
- Issue: The TPA system used
- GPS Navigation NPE & Schedulers:
- Issue: Periodic updates threw a
NullPointerExceptiononactiveGpsTasksand invoked legacyBukkit.getScheduler()sync repeating tasks (unsupported on Folia). - Fix: Rebuilt using Folia's entity periodic scheduler
player.getScheduler().runAtFixedRate(...)and initialized coordinate maps safely.
- Issue: Periodic updates threw a
- Sidebar Scoreboard Exception Shielding:
- Issue: Setting scoreboards or fetching average TPS on regional builds lacking scoreboard support threw an unhandled
UnsupportedOperationException. - Fix: Wrapped all scoreboard updating logic in exception shields, automatically toggling visual sidebars off globally without crashing the plugin.
- Issue: Setting scoreboards or fetching average TPS on regional builds lacking scoreboard support threw an unhandled
📖 Complete Feature Walkthrough & Documentation
FoliaCore is split into modular segments designed to work concurrently across Folia's independent region threads. Below is a comprehensive walkthrough of the available features.
1. Teleportation and Request System
FoliaCore includes a complete teleport suite that respects regional scheduling boundaries. Teleporting players requires brief stability (3 seconds) to prevent visual glitching across regions.
- TPA Requests: Send a teleport request using
/tpa <player>. Accept it with/tpacceptor reject with/tpdeny. - Bring Requests: Request a player to teleport to you using
/tpahere <player>. - Last Location History: Returns to the location before your last teleportation with
/back(automatically tracks death points and teleports). - Spawn Management: Set the global spawn location with
/setspawn, set the first join location with/setfirstspawn, and teleport to them using/spawn. - Warps System: Admins can establish warps using
/setwarp <name>and delete them using/delwarp <name>. Players can see authorized warps via/warpsand travel using/warp <name>.
2. Social and Mail
Keep players connected across regional cores with asynchronous messaging:
- Private Messages: Message players privately with
/msg <player> <message>and reply instantly with/reply <message>. - Mailing System: Send offline mail notifications using
/mail send <player> <message>, read mail with/mail read, and empty your mailbox with/mail clear. - RealName Nicknames: Toggle active nick names with
/nick <nickname>and inspect real usernames using/realname <nickname>. - Privacy Block List: Prevent harassment by blocking individuals with
/block <player>and/unblock <player>.
3. Server Administration and Control
- Modular Telemetry (
/status): Displays overall server telemetry, including average MSPT (Milliseconds Per Tick) per world and chunk center coordinates of active region groups. - Time & Weather Control: Dynamically edit time and weather across independent worlds using
/time <set/add>and/weather <sun/rain/storm>. - Vanish and SocialSpy: Disappear visually from tab lists and player trackers with
/vanish. Inspect private chats on the fly with/socialspy. - Inventory Inspection: Admins can view or manage other players' inventories in real-time with
/invsee <player>and ender chests using/enderchest <player>.
4. Visual Layout (Tab-Sidebar Configuration)
FoliaCore supports optional visual formatting inside tab-sidebar.yml.
- Set custom header and footer animations.
- Setup custom sidebar menus (which fall back dynamically on regional cores that do not support scoreboard objectives).
- Toggle sidebar display per-player with
/sidebaror/scoreboard.
