Releases: Rothes/ESU
0.14.0
🎉 ESU 0.14.0 is out now!
A new BiomeSpawnersFeature is added to OptimizationsModule. This feature allows you to change the natural mob spawning settings for each biome - You can control which mobs to spawn, and their weight, spawning counts. This system should support CraftEngine or any plugins that handle nms registry.
EntityCulling has been fully optimized, and able to run on large SMP servers.
Core
ESU-bukkit
- [Remapper] Support transforming Kotlin Metadata
- [AfkEfficiency] Do not turn players spectating on efficiency mode
- [EntityTrackingEfficiency] Drop Spigot or 1.19 below support forever
- [EntityCulling] Migrate to PlayerEntityVisibilityProcessor
Note: We used to collect all entities in world and loop over to find entities nearby any player. That's fast on small SMP servers. Once players going to 150+ (and entities amount goes to 100k+), there's a huge cost of matching nearby entity.
As so, we are trying to use new PlayerEntityVisibilityProcessor to avoid the cost of the loops.
This only cost 1~2% CPU resource on a 150 player server.
However, this new system requires Paper and 1.19+ to run. - [Optimizations] Add BiomeSpawnersFeature
- [Optimizations] Refactor to SubFeature system
Note: Configuration schema is changed. Make sure you check the new config. - [Waterlogged] Remove keep-water-after-piston-push
Note: This is useless, so we are just removing it. - [ChunkDataThrottle] Fix netherRoofInvisibleCheck
- [BetterEventMessages] Fix empty format support
- British Engligh vs American English
Full Changelog: 0.13.0...0.14.0
0.13.0
🎉 ESU 0.13.0 is out now!
A new AfkEfficiency feature is added to NetworkThrottle module. This feature is designed for afk farm, which saves a lot bandwidth if you have players created a large mob farm. For normal random afk players, the bandwidth reduction is relatively limited.
ESU-bukkit
- [NetworkThrottle] New feature: AfkEfficiency
- [ChunkDataThrottle] Optimizes map
- [ChunkDataThrottle] Improve concurrent
- [ChunkDataThrottle] Improve thresholdToResentWholeChunk
- [ChunkDataThrottle] Fix blocks not updating
- [ChunkDataThrottle] Optimize detectSameStateUpdate
- Fix improved PalettedContainerReader on Paper 1.21.3+
Full Changelog: 0.12.5...0.13.0
0.12.5
🎉 ESU 0.12.5 is out now!
!!! Please download ESU-bukkit 0.12.6-dev-4 for a severe bug fix. !!!
This version brings Minecraft 1.21.11 support, and a huge improvement on ChunkDataThrottle.
Previously, ChunkDataThrottle feature allocates two bytearray to store each block in a chunk and player, up to 164KB. Now, it uses same bytearrays for each player. This should reduce memory usage and Jvm GC a lot. And we optimized occlude test for NMS BlockState types.
Core
ESU-bukkit
- Migrate to ResourceKey, 1.21.11 Support
- [ChunkDataThrottle] Cache blocksView value for BlockState type
- [ChunkDataThrottle] Cache shared temp array
- [ChunkDataThrottle] Fix detectSameStateUpdate
- [ChatAntiSpam] Fix mute multiplier
ESU-velocity
Full Changelog: 0.12.4...0.12.5
0.12.4
🎉 ESU 0.12.4 is out now!
This version brings many optimization to EntityCulling again, and introduces many changes.
A new CoreModule is added to bukkit plugin, for internal usages.
Configration schema for PrefixedMessageModifierin EsuChatModule has been changed. It's suggested to backup that config before upgrade.
Core
- [Configuration] Support replacing lang resource to existing default lang
- [Unsafe] Reliable override offset getter
This should support various JVM software. - [Unsafe] Delay internalOffset init
This is to make ESU loads on CloudNet system.
ESU-bukkit
- [EsuChatModule] PrefixedMessageModifier: Remove head/foot, in favor of format
Configurations will not be upgraded automatically. Backup the configuration before upgrade. - [EssentialCommands] Add NoFall command
- [EssentialCommands] Add Invulnerable(God) command
- [EssentialCommands] Ensure tick thread for heal/feed command
- [ChatAntiSpam] Add multiplierMax option
- [ChatAntiSpam] Add afkMultiplier
- [ChatAntiSpam] Similarity uses char based size
Now each ascii/latin letters counts as 1 char, others counts as 2 chars. - [EntityCulling] Only calculate AABB center for small bounding-box entities
- [EntityCulling] Force to skip culling players
- [EntityCulling] Improve synchronized usages
- [ChunkDataThrottle] Migrate to nms registry, vanilla blockstate occlude cache
This introduces CraftEngine blocks support, and a more accurate block occluding detect. - [SpawnProtectModule] Full hot-disable support
- [EntityCulling] Optimize locks on update tick, full hot-disable support
- [EsuChat] Fix wrong placeholder for spy/whisper receivers
- [NewsModule] Fix check button not using player locale
- [NetworkThrottle]Fix HighLatencyAdjust is always enabled
- [ChunkDataThrottle] Fix sendChunk error
- Fix player kick, support spigot
ESU-velocity
- [TrafficMonitor] Simulate network frame for more accurate overhead bytes
This new algorithm outputs the most accurate real network upload usage. - [TrafficMonitor] Fix onDisconnect not synchronized
Full Changelog: 0.12.3...0.12.4
0.12.3
🎉 ESU 0.12.3 is out now!
This version brings many optimization to EntityCulling, and NetworkThrottleModule on velocity.
UtilCommandsModule is now deleted, in favor of the new EssentialCommandsModule. New commands added: /heal, /feed, /[walk|fly]speed[Get], /spectate, /dimensionTravel, /suicide.
Common
ESU-bukkit
- Migrate UtilCommandsModule to EssentialCommandsModule
- [EntityCulling] Fix occlude detect on some shaped blocks
- [EntityCulling] Reflect to showEntity not same thread, save memory
- [EntityCulling] Add single thread benchmark
- [EntityCulling] Respect entity type track range
- [EntityCulling] Players are visible by default
- [VaultUnlocking] Fix recording already rewarded player
ESU-velocity
- [NetworkThrottle] Improve performance, not to copy network data
- [NetworkThrottle] Fix analyser filter for player/server
Full Changelog: 0.12.2...0.12.3
0.12.2
🎉 ESU 0.12.2 is out now!
This is a quick hot fix comes with last update.
ESU-bukkit
Full Changelog: 0.12.1...0.12.2
0.12.1
🎉 ESU 0.12.1 is out now!
We did many optimization to EntityCulling feature. Now it's considered the fastest way and reliable on common servers(paper, regular folia).
Added AutoBroadcastModule for both bukkit and velocity, AutoRestartModule for velocity.
Common
- Add AutoBroadcastModule
- Load all users before enabling modules
- Make AutoReloadExtensionPluginsModule last loaded
ESU-bukkit
- [NetworkThrottleModule] Add EntityUpdateInterval control
- [EntityCulling] Add entityCulledByDefault option
- [EntityCulling] Add cullThreshold option
- [EntityCulling] Support 3D-DDA
- [EntityCulling] Fix benchmark always use 4 threads
- [ChatAntiSpam] Rework cache storage: Holder for same SpamData instance, synchronized
- [ChatAntiSpam] Fix database deadlock warning while muted by both checks and score
- [ChatAntiSpam] Fix loadSpamData ignoring stored lastAccess
ESU-velocity
Full Changelog: 0.12.0...0.12.1
0.12.0
🎉 ESU 0.12.0 is out now!
We reworked on many internal architecture in this update. This ensures that while having increasingly larger modules, we can still easily maintain and add new features.
For users: If you have changed module-enabled in module config, /esu reload will now enable/disable the module for you.
We said we are using bundled packetevents since 0.11.1, but we no longer do it any more so you still need it installed in your server.
Core
- Unregister all esu commands on disable
- Not to use our own packetevents
- Shutdown coroutine Dispatchers onDisable
- Remove kotlinx-io-core in jar, we loaded it on runtime
ESU-bukkit
- [NetworkThrottleModule] Add EntityCulling
EXPERIMENTAL: This feature can hide entities behind the walls to save your bandwidth - or you can use as anti-esp.
We need user reports, for the performance and stability of this feature.
Based on measurements, performance shouldn't be an issue, but we can't estimate its stability on Folia. - [AutoReloadExtensionPlugins] Delete tmp file on exit
- [AutoReloadExtensionPlugins] Add updateCommands command
- Fix remap for non-obf classes on 1.16.5
- Custom EsuBukkitCommandManager
We handle root command updates in our own, so hot-loading won't create issues on paper servers.
Full Changelog: 0.11.2...0.12.0
0.11.2
🎉 ESU 0.11.2 is out now!
This update includes some minor updates and fixes.
If you are upgrading from 0.11.0 below, please read previous changelog.
Core
- Support hot-reload for bundled packetevents
- Compute ColorScheme on load
* This is for thread-safe after a hot reload - Downgrade H2 database driver
* This is to address datetime column creation error
ESU-bukkit
- [ChatAntiSpamModule] Keep death message on screen
- [SocialFilterModule] Add normalizeText
- Fix NewsTable
Full Changelog: 0.11.1...0.11.2
ESU v0.11.1
🎉 ESU 0.11.1 is out now!
In this update, we fixed some severe bugs. And now packetevents is bundled (we need to do that so we can use relocated adventure lib, which is faster).
If you are upgrading from 0.11.0 below, please read previous changelog.
Core
- Bundled packetevents, Improve maven dependencies resolve (~5s faster)
- Improve MavenResolver config io
- Fix saveRepoConfiguration
- Fix default table version
Full Changelog: 0.11.0...0.11.1