Added
- Added Snowball and Eggs projectile knockback
- Added an option to use smoother projectile handling by disabling damage ticks
Changed/Fixed
- Fixed Pistons breaking
- Fixed Eat while running causing infinite eating glitch?
- Fixed movement related changes that tended to break anticheats
- Fixed Multi-verse crash by command
- Fixed tnt damage option being flipped
- Improved Velocity handling/Smoother knockback
- Cap per-thread NIO cache size
-
Fix xp/effects for PlayerProfile (Paper)
- Fixed any skin breaking bugs
- Fixed terrain/generator plugins breaking due to bad implementation
- Removed Paper's block break bug
- Fixed Citizens no such method error for method profiler
- Fixed multiple CME crashes
- Fixed null pointer exception for SimpleCommandMap
- Fixed AsyncEntityTracker performance
- Changed how damage ticks are handled
- Fixed Chunk related crashes
- Fixed missing method for Entity.teleportAsync
- Improved Anti-Malware system
- Improved enderpearl handling and side pearls
World & Performance Optimization
- Reverted World Related NMS Changes
- Removed any useless chunk loading
- Optimized BlockPosition Usages
- Faster redstone torch rapid clock removal
- Micro optimizations for Chunk#loadNearby
- ChunkCord Caching by Lithium: ai/pathing/ChunkCache
- Optimized Nibble Array
- Completely Optimized PlayerChunkMap to use FastUtil (5x Faster)
- PaperBin - WorldServer#everyoneDeeplySleeping optimization
- Added warning for missing -noverify argument
- Added Native SWM support (It now doesn't need to patch)
- Fixed all carbon related memory leaks
- Added PandaRedstoneWire for redstone optimizations
- Added TacoSpigot patches for more performance
Bug Fixes & Exploit Prevention
- Fixed player#setFlying not working properly
- Fixed Killing at the same time
- Pickup delay cannot go below 0 (Also configurable now)
- Paper - shared random
- Fixed FAWE & Multiverse command exploits to crash server
- MineTick - Fix nether portal lag
- Fixed hide and show player not working
- Fixed Paper's Chunk overwriting
- Fixed eating while running/eat while gui open
- Fixed block hit glitch and sneak run glitch
- Potentially fixed bard effect bug
- Added Cannoning and Explosion Patches
- Added proper sand and falling blocks physics
- Fixed arrow bounce back glitches
- Fixed memory leak for PathFinders
- Prevent FishingHook from going through portals
Performance & Optimization
- Performance improvement in HashTreeSet (FastUtil)
- Updated old libs, cleaned up bukkit api
- Removed left over unused utils
- Downgrade special source plugin
- Paper Patch - GH-404
- YAPFA - Don't save Fireworks and Arrows
- MinetickMod - fix rounding error
- Used FastUUID Library for most NMS usages
- Cleaned up and improved EntityTracker
- Migot - Refactored IntCache to be thread local instead of static
- Akarin - Save json list async
- Added Async Entity Tracker (Supports Citizens and most anticheats)
- Backported Async Chunk Generation + Loading system from 1.13.2 (Supports Citizens and most anticheats)
- Backported PaperEntityList (Massively helps EntityTicking)
- Backported modern tick loop (Stable 20 TPS w/TPS catchup)
- Changed LongHashMap to FastUtil's LongMap
- Added HealthObfuscation
- Improved RelativeMoveFix rounding error
Player & Entity Related
- Player#getProtocolVersion & Player#getVirtualHost
- Add Bukkit#getPlayerUniqueId()
- You can now edit PlayerProfile in AsyncPlayerPreLoginEvent
- Fixed Settings config reloading
- Added an option in config to fix enchantment kb for Detailed & Expert
- Added Straight explosion knockback
- Ability to toggle of fall damage knockback
- Made block hit glitch and eat while running configurable
Miscellaneous
- Synchronized Structure and Structure related classes
- Backport SPIGOT-5428
- Backported Chunk Events
- Backported improve CraftAsyncScheduler, AsyncExecutor, CallbacksProvider etc.
- Added warning for missing -noverify argument
- Removed Timings for Spark profiler (Auto downloads if not present)
- Carbon's new event bus optimization 2.0, works on all java versions
NOTE:
- Use -noverify in JVM arguments (OBF Relate)
- You cannot use Carbon as a library in your spigot plugins development, you must use Paper and our Developer API.
Added
- Added more Book exploit patches
Changed
- Completely recoded carbon config (new file name is settings.yml)
- Removed License.yml, license field is now in settings.yml
- Fixed pearl/potion settings saving issues
- Fixed chunk loading issues with low render distance
- Fixed lava ticking damage
- Turned off verbose in console as default for paper and spigot (Cleaned up console)
- Turned off Player interaction limit, as spamming lava/water for build-uhc breaks
- Only fire InventoryCloseEvent if inventory is open
- Fixed EquipmentSetEvent being called in an invalid state
- Improved RegionFile cache
- Fix entities other than players throwing an error and despawning when they attack a player.
- Migrate certain collections to FastUtil
- Improve EventBus performance
- Improve code quality by correctly assigning generics
- Removed unused mojang code
- Add a new malware to malware detection
- Migrate log filter to a separate method
- Fix TPS command memory calculation
- Knockback is now based on the attacker's profile
- Changed Float usages to Double in pearl/potion config
NOTE: Use java 8 OR use -noverify
in JVM arguments and turn off event bus optimization in configuration (OBF Relate)
Added
- Made ArmAnimationEvent toggleable in config because it helps with delays in pvp
- Made pvp and hit detection smoother
Fixed
- Fixed straight bow boosting
- Fixed all plugins (that used PlayerVelocityEvent) that didn't work
- Fixed EquipmentSetEvent
- Fixed hit & rod switch trick's damage ticks
- Fixed double hit bug completely
- Improved hit detection generally
- Fixed ServerSidePlugin null pointer
- Fixed "Open Inventory" acheivement and popup broken
Fixed
- Knockback profiles being reset on restart
Added
- An option called "improved-mouse-tracking" where original yaw values are used for players
Fixed
- Fixed Login Crashes
- Completely re-did the knockback registry to improve plugin support
- Applied an experimental fix to "double hit combo bug"
- Fixed projectile kb not working on players
- Fixed Citizens not working for strikepractice bots
- Cleaned up code for commands
- Debug changes
Added
- Added an option "alternative-hit-detection" to enable better server-side hit detection
Fixed
- Fixed server-side crash when connecting to the server with bungeecord on
- OBF Related Issues for Knockback API (player#carbon knockback methods)
NOTE: Use java 8 OR use -noverify
in JVM arguments and turn off event bus optimization in configuration (OBF Related)
Fixed
- Fixed console spam from tab-completion
- Fixed "Bukkit.getOnlinePlayers()[]" not being a method
- Fixed Knockback Profiles (Expert, Explicit) not having their values loaded
-noverify
in JVM arguments and turn off event bus optimization in configuration (OBF Related)Added
- Added back Expert knockback profile
- Added new knockback type "Explicit"
- Added MMC mode for Pearls
Fixed
- Fixed NPE in LoginListener while disconnecting
- Fixed Citizens not working properly
- Fixed performance issues with chunk loading
- Fixed 1.7 random crashes
- Fixed Entity Hider flickering with teleporting
- Invalid direction while teleporting with KarhuAC on
Removed
- Removed Async Chunk Generation & Loading
- Removed Async Entity Tracking
- Removed Parallel World Ticking
Added
- Backported Async Chunk Generation and loading (Paper 1.13.2)
- Backported EntityZapEvent
- Added Async Entity Tracking (w/ Configuration)
- Added Async World Ticking (w/ Configuration)
- Added "expanded-ray-trace" option for better potion
- Added "no-check-rogue-arm-swings" option for better hit detection
- Added "fix-armor-damage" option to prevent too much damage with rod-switching trick
Fixed/Changed
- Fixed MethodProfiler leftovers causing NPEs
- Fixed Null check for nms code
- Fixed double hit bug (v69)
- Fixed LogFilter not working properly
- Fixed ConcurrentModificationException in Chunk code
- Cleaned up all disconnection messages in console
- Fixed show-ip option not working properly for disconnectione errors
- Restored OG carbon knockback system
- Fixed Verus missing method
- Fixed pearls and potions not saving properly
- Fixed Typos in commands
- Recoded Entity Tracker
Removed
- Async-Checker configuration
- Async Hit detection (Doesn't do anything, in ALL spigots that claim to have it)
- Async Knockback detection (All other spigots have it placebo, actual async kb is just terrible)
- An option to disable queue system of Network Manager (Terrible Idea)
Note: Use flag -noverify
to add support for java 11 and higher. (Obfuscation related)
Fixed/Changed
- Reverted ChunkIO executor changes (added back chunki-io thread config)
- Removed Async Knockback and Hit Detection (They didn't do much.)
- Fixed Null Pointers for MethodProfiler missing
- Fixed "Failed to handle Packet" errors
- Fixed Double Hit Bug that was re-introduced in the previous version
- Fixed LogFilter not working properly
Added
- AsyncTabCompleteEvent & made tab completion asynchronous
- Backported 1.13+ Console with minecrell's TerminalConsoleAppender
- Backported Support for default UTF-8, Colors and Async Tab Completion for console
- Backported Async Logging by Paper
Fixed/Changed
- Obfuscation issues with accessing Bukkit-API and NMS classes
- Only apply knockback to players, not entities
- Fixed Detailed's Y-limit and vertical knockback being funky
- Fixed PluginsCommand formatting
- Fixed Vulcan Anti-Cheat support
- Fixed Default Plugin Command format option not working fully
- Fixed PacketAPI not initialized
- Fixed HamsterAPI support apparently? (Not entirely sure)
- Optimize BlockBreakAnimation packet
- Fix Chunk Unloading being laggy and slow because of wrong Data Structure
Added
- Optimized Arm Swings (Configurable)
- Added PacketFilter to prevent crashes and exploits (Configurable)
- Added Custom Thread factory for Carbon
- Added Custom Configuration API
- Add an option to removing locking and queue system from network
- Change Sets to LinkedList to optimize performance
- Added /smh and /cry command as siblings to /shrug
- 1.13 Backports of Paper's AuthLib, Netty, UserCache and Events (API)
- 1.13 Backport of ServerListPingEvent and Network/Status Client
- Added an option to Detailed called direction which moves player in direction of attacker
- Added comments to all knockback profiles for documentation
- Added configuration to change verison message
- Added an option to toggle on default paper plugins message format
Fixed/Changed
- Rename method in RegionFileCache
- Removing DeadLocks for DataWatcher
- Recoded EventBus Optimizations and Added it back
- Only enable chunk settings as default that don't have issues
- Fixed Rounding calculation error for Position in EntityTracker (Thanks to JT For this)
- Remove PacketPlayInPosition & PacketPlayInFlying being registered Async
- Revert Guava update (Back to 18.0)
- Fixed StackOverflow Error when doing player#setVelocity in PlayerVelocityEvent
- Remove disguise API and its usages
-
Fix Verus reflection breaking due to field rename
-
Fixed Chat Component Exploit & make it configurable
- Fixed Book Payload Exploits & make it configurable
- Fixed PacketHandler sent packets method not doing anything
-
Update SnakeYML to fix DoS Exploit
-
Add warning for JDK-8 handles in config for event bus
-
Fixed Typos in Config comments
-
Fix bukkit using names instead of uuids for Metadata Store
- Recoded Packet and Movement Handlers
- Add warning for chunk concurrency in async-checker
- Fixed Kohi KB Fix not working at all, breaking knockback
- Improve and recode commands
- Cleanup config and remove useless options
- Fixed Pearls and Potion settings not saving
- Fixed ConcurrentModificationException reported by LightSpark
- Only allow carbon's kb packets async
- Fixed KickSpam option not working
- Mute PacketEvents unhandled stacktrace
- Improve KeepAlive and send metada update to all players
- Remove all MethodProfiler calls (Deprecated)
- Fix ServerTickEvents not doing anything
- Recoded Detailed Type's Y-Limit system
- Remove ChunkIO configuration
- Fixed BlockHitGlitch (Thanks JT)
Refer to our discord for KnockbackAPI related changes.
NOTE: If you want to use java 11 and higher, add "-noverify" flag before "-jar" flag, its because of obfuscation issues.
Fixed/Changed
- Removed ServerSideHitDetection
- Removed EventBus optimizations
- Renamed some options and configuration comments
- Recoded All API related code.
- Moved all API code to "api" package
- Fixed Asynchronous Threads being placebo and not working since 2.0
- Allow dual packets to be sent with the Kohi Knockback fix because it improves kb
- Fixed Instant Respawn bugging out
- Removed WorldSpawn directional spawning
- Turned off Menus because they were unstable
- Expert mode in detailed profile
- Fixed type in exclusive
- Fix detailed knockback calculation issues
- Fixed MySQL Related errors
- Reduced Jar size
Refer to our discord for KnockbackAPI related changes.
NOTE: If you want to use java 11 and higher, add "-noverify" flag before "-jar" flag, its because of obfuscation issues.
Added
- Added option to toggle expert type in detailed
- Added Straight Explosion knockback (Experimental)
- More Netty backports
- Add a toggleable show-player-ips option for console
- Better comments for config
- Improved hit registration for laggy-player-hit-reg-fix
- Ping Command with configuration
Fixed/Changed
- Fixed Detailed Knockback being mis-calculated
- Fixed Netty related issues
- Fixed Anti-Knockback for Snowball, Eggs etc.
- Fixed Menus overriding issues
- Fixed Exclusive Knockback Typo
- Improved default configuartion to support plugins better
- Karhu 2.1 incompatibilty problems (Rest are upto Johannes)
- Fixed obfuscation related issues
- Fixed Async-Threads being off-tick loop giving no hit detection
- Fixed Netty Error on shutdown
- Improved Eventbus null pointer exception handling
- Fixed typos and theming issues
- Fixed arrows randomly floating around
- Chunk Optimizations (Async Chunk Checking etc. in Config)
NOTE: If you want to use java 11 and higher, add "-noverify" flag before "-jar" flag, its because of obfuscation issues.
THIS UPDATE IS HIGHLY RECOMMENDED.
Added
- Exclusive Knockback Profile
- Optimized Event Bus (Thanks to StevieBeenz)
- Optimized Region Cache (Thanks to StevieBeenz)
- Built-in VoidWorld generator
- Project Knockback Configurable (Explosion, Pearl, Rod, Bow)
- Bow Boosting like MMC (Experimental, somtimes inconsistent)
- Menus (Except settings menu) [Experimental]
- Default values are now decent for pvp (Thanks to Dubai!)
Fixed/Changed
- Knockback handling Inconsistencies
- Recoded knockback system
- Changed how knockback files are saved
- Changed knockback file name to "profiles.yml" (Old config should auto-migrate)
- Chunk saving inconsistencies
- Anticheat incompatibilty problems
NOTE: If your server takes a bit of time to shutdown, don't worry its normal and was intended.
Fixed
• World chunk saving
• Weird knockback behavior for enchanted items
Hot Fix (2.3.5) [This is a MUST USE update]
Fixed
• Double hit bug (Hits turn into combo)
• Compatibility with projectile knockback plugins
• Fixed a fundamental flaw in how Kohi designed their knockback system
Hot Fix (2.3.4)
Added
• Added Async saving of Player Data
• Added Async saving of Persistent Collections
• Added Option to toggle Rod and Bow KB
Fixed
• Double damage while hitting a player (happens randomly)
• NPE on void damage
• PacketPlayOutPlayerInfo changes
Added
• Enderpearl Settings command
Fixed
• Fixed Pearl Settings not worked
• Weird String errors
• Maybe fixed void damage NPE?
• Maybe fixed TPS command being gay
Removed
• Java 8+ Support because reverted obfuscators (it was breaking too much shit)
Added
• Thread Names
• Better Java GC collector call (Reduces Memory Usage)
• TPS Command configuration
• Merged Threads into one called Combat Thread
• Change TPS 20* to 20 for 20 < i < 21
• Controlled Flushing of packets in NetworkManager
• Update Java Thread Affinity
• Yaw and Pitch to world#setSpawnLocation for better directional spawning
Fixed
• Removed Bow Straight KB
• Rod KB throwing erorrs in console
• TPS Command format
• Removed Config for entity-explode-event because its useless
• Being stuck on loading terrain
• Thread usages in NetworkManager preventing packet queue
• Paper server-icon.png Byte Buff lock release
Upcoming
• Asynchronous Potions
• Asynchronous Entity Tracking (Toggle-able)
• Asynchronous World Tracking (Toggle-able)
• Auto-Update system
• Custom Threading System
• FastMath usage in all instances
• Asynchronous PathFinding
• Exclusive Knockback Type
Added
• Asynchronous Chunk loading API
Fixed
• Bow Straight Arrow knockback (Maybe?)
• Pre-Loading Chunk issue
• Typo in Carbon Help message
• Limit for aliases in yml files (Bumped to 1024)
• Java 8+ Support (Fixed obfuscation issues)
Upcoming
• Asynchronous Potions
• Asynchronous Entity Tracking (Toggle-able)
• Asynchronous World Tracking (Toggle-able)
• Auto-Update system
• Custom Threading System
• FastMath usage in all instances
• Asynchronous PathFinding
• Exclusive Knockback Type
Added
• Custom Disguise System (w/API)
• Chunk Optimizations with FastUtil
• Enderpearl System with Anti-Enderpearl Glitch
• Straight Bow Boost Knockback
• Rodding Speed multiplier (Smooth Rodding like Lunar or MMC)
• Added OBF Helpers to ServerConnection
• Cleaner console output in NetworkManager
• Added LogFilter (configurable)
• Added Better World Entity ticking list
• Added Instant Respawn
• PlayerHealthChangeEvent
• Added update notice to ProtocolLib and Citizens
• Chunk Patches
• Adaptive Chunk GC
Fixed
• StrikePractice Bot incompatibility
• A logic bug with Entity Hider which would break spectating
• SlimeWorldManager class cast exceptions
• Chunk Memory Leaks
• ServerConnection lag (Faster Login times)
• NullPointerException exploits on Login
• Creatures spawning in unloaded chunks
• Book Exploits and Crashes
• All dependency security issues
• Double I/O operation on Player files
• Anti-Xray spamming console
• TinyProtocol compatibility errors
• ProtocolLib injection errors
• Retrooper's Packet Events
• Fixed Mysql Errors
• Reduced JAR Size
• Fixed PacketPlayOutPlayerInfo.java static instance
• Fixed a major bug with remapping for developers
Upcoming
• Asynchronous Potions
• Asynchronous Entity Tracking (Toggle-able)
• Asynchronous World Tracking (Toggle-able)
• Auto-Update system
• Custom Threading System
• FastMath usage in all instances
• Asynchronous PathFinding
• Exclusive Knockback Type
Disguise Usage (This might or might not be broke, I didn't test last minute changes)
player.carbon().disguise(String name) - Disguise the player using a name, will auto fetch the skin.
player.carbon().undisguise() - Undisguise the player if they are disguised
player.isDisguised() - Returns true if the player is disguised
player.getDisguisedName() - Returns the disguise name
player.getDisguisedProfile() - Returns the disguise GameProfile
• /carbon disguise <name> - carbon.disguise
• /carbon undisguise - carbon.disguise
NOTE
I recommend recreating your `carbon.yml` configuration because some options have been added and removed.
Added
• 1.8.8 PotPvP support _(Intermediate Java Developers can easily convert PotPvP to 1.8 now)_
• Velocity Natives (Paper) Packet Compression and Encryption/Decryption
• Made BetterKeepAlive handling toggle-able
• Updated Netty to 4.1.72 Final. (Can break bad anti-cheats)
• Java 8 - 18 support
• Ported mSpigot's (Hylist) chunk optimizations _(PlayerChunkMap, PaddingChunks etc.)_
• Added FastUtil Library usage for Chunk caches
• Added FastUUID Library usage for all UUID instances
• Ability to edit Version Command
• Spam Disconnect toggle-able
• Updated all libraries to latest version
Fixed
• Tick Loop causing lag _(Now stable 20 TPS)_
• Null Pointers in Knockback System
• Attack Hits turning into combo mode automatically
• EntityTracker already tracked Console Spam
• NMS incompatibilities with Frost and Citizens
• Enderpearl Suffocation in blocks
• Command Configuration not linked
• Log4J RCE Exploit _(Previously Semi-Fixed)_
Upcoming
• Better support for StrikePractice bots
• Asynchronous Potions
• Asynchronous Entity Tracking _(Toggle-able)_
• Auto-Update system
• Custom Threading System (Maybe?)
• FastMath usage in all instances
• Asynchronous PathFinding
• Exclusive Knockback Type
Note
Please use the LATEST version of Protocol Lib and Citizens with CarbonSpigot. The Java > 8 support is currently broken from obfuscation, I will try and fix this soon enough.
- [/] Redid the whole CarbonSpigot code structure from scratch
- [/] Now utilized patches to make bug fixes easier
- [/] Fixed Performance Issues
- [+] Chunk Snapshots (MineHQ)
- [/] Better KeepAlive Frequency (Helps knockback and hits)
- [/] Made Enderpearl Glitch Patch better
- [/] Fixed EntityHider issues (Hopefully?)
- [/] Fixed configuration issues
- [+] Server Sided Hit Detection to help with laggy Asian players (Toggle-able)
- [-] Removed Menus