Releases: xGinko/AnarchyExploitFixes
AnarchyExploitFixes 2.5.2
Fix crafting issues when window-click-crash-patch is enabled.
AnarchyExploitFixes 2.5.1
URGENT UPDATE! PATCHES CONTAINER CLICK / WINDOW CLICK CRASH EXPLOIT
This update contains a patch against a powerful lag/crash method that works across multiple versions
Example error that this update patches:
[INFO]: [STDOUT] [net.minecraft.CrashReport] Negative index in crash report handler (0/18)
[ERROR]: Failed to handle packet net.minecraft.network.protocol.game.PacketPlayInWindowClick@4fcb5fbf, suppressing error
net.minecraft.ReportedException: Container click
at net.minecraft.world.inventory.AbstractContainerMenu.clicked(AbstractContainerMenu.java:398) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:3342) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:58) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:23) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1365) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1342) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1335) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1451) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1191) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:322) ~[purpur-1.20.1.jar:git-Purpur-2062]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ArrayIndexOutOfBoundsException
New:
- Added patch against players sending Window Click packet where a negative button or slot value would result in heavy lag followed by a crash. Affects a wide variety of versions up untill 1.20.2. (Consider upgrading paper though unless you need to stay on your version.)
Fixes:
- Fixed issues with /aef kickphrase and /say command.
AnarchyExploitFixes 2.5.0
New:
- Commands can now be turned on or off in config.yml. (The workaround to remove the /help command from plugin.yml or set a commands.yml alias is no longer needed) The server will need a restart for changes to take effect though. (#146)
- Added /aef disable command for testing and better plugman/serverutil reloads (Using them on aef is still not recommended).
- Added option to configure mob pathfinding limits to reduce mobai ticks (#145)
- Added module to prevent flying flooding machines using waterlogged blocks in Folia build
- Added module to remove illegal storage items with pre-stored item nbt tags
- Added module to remove illegal damage nbt tags
- Improved preventions.portals.prevent-destroying-end-portals
- Added bundle checks to all illegal item modules in Folia build
- Replaced usage of almost all deprecated API in Folia build
- Improved performance and configurability for all illegal item modules
Fixes:
- Fixed trapdoors dropping but not breaking when using prevent-redstone-on-trapdoor-crash
- Fixed bucket entities not spawning when using illegals.spawn-eggs.prevent-using (#152)
- Fixed revert-specific-higher-enchants doing nothing (#151)
- Fixed false positives when inside vehicles in Burrow Module (#150)
- Fixed error in anti nether roof module for Folia (#147)
- Fixed lag when using first-join-messages and a lots of new players would join at the same time
- Fixed anti-bed-trap module resetting bed without checking if the player is actually bed trapped (#144)
- Fixed preventions.permanent-block-breaking.by-exploding-pistons
- Fixed es_es.yml and pt_br.yml
Once again:
Use the "Legacy" build if you're running Paper 1.12 - 1.19.4 and the "Folia" build if you're running Folia 1.19.4+ or Paper 1.20+
Edit:
Reuploaded jars to fix issues with /say command not parsing colors.
2.4.0 Folia Compatibility, Build Changes and Fixes
New:
- Seperate build fully compatible with 1.20+ Paper and Folia, utilizing MiniMessage formatting for lang files (reset your lang folder)
- Added a configurable villager chunk limit that removes excess villagers based on profession priority. (By default it will delete jobless villagers and nitwits first if it finds some.)
- Added a configurable /help command. (Configure an alias in your commands.yml if you want to use a different plugin for /help on your server)
- Added toggle for the notification sound in elytrafly section.
- Added ability to switch between teleporting back and canceling the event when players go too fast on elytra.
- Optimized lang message display speed and corrected color codes in both builds.
Fixes:
- Fixed fishing hooks automatically reeling in when snowball exploit prevention was enabled (#143).
- Fixed players getting their elytra removed too early when elytrafly was disabled on the ceiling and players were 3 blocks within the ceiling bedrock layer.
- Fixed Burrow not detecting calibrated sculk sensors as slabs on 1.20.
- Fixed Section titles showing up as plain comments in the config.yml.
- Fixed a problem where some chatmessages containing dots where unable to be sent.
To clear up confusion because the regular version has been renamed to Legacy:
It is now recommended to use Folia builds when running a Paper or Paper fork server >=1.20. This is because Folia's API is backwards compatible and you will DEFINITELY profit from the major improvements that working with a newer API and Java version brings to the table.
BOTH VERSIONS WILL STILL CONTINUE TO BE MAINTAINED.
2.3.1 Support for 1.20 and 1.20.1
New:
- Updated dependencies to support 1.20
Fixes:
- Fixed commandwhitelist tabcomplete filtering thanks to (@F3F5)
- Changed how redstone trapdoor crash fix works (Instead of preventing the placement, it will now break the trapdoor should it open too many times per second)
2.3.0 Prevent Redstone Trapdoor Crash
New:
- Added
prevent-redstone-on-trapdoors
module to prevent a crash method that affects 1.13 - 1.19.3 (#137) - Added
prevent-liquid-update-lag
module which limits the amount of liquid updates in a chunk per configurable time (play with the config, default one is not perfect) - Added
minecart-limit
module to chunk limits to help against players using them for entity cramming - Added
rate-limit-wither-skulls
module where different cooldowns for withers shooting skulls can be configured depending on if they have a target and whether the target is a player or not (helps with lag and can also assist servers that want to nerf withers on newer versions) (#132) - Made a seperate
prevent-scanning-server-plugins
module to prevent hacked clients scanning plugins using tabcomplete packets (would previously only be enabled when using command-whitelist) - Heavily improved performance for
falling-block-limit
- Improved
prevent-lever-spam
configurability, now the patch doesnt just rate limit lever usages and works like a proper antispam instead. - Improved new combat config section and moved a few relevant config options there (BowBomb and Burrow might need to be reconfigured)
- Made a few more optimizations to the plugin that are too technical to include here
Fixes:
- Fixed a bug where jumping on farmland would falsely trigger burrow
- Fixed a bug where using
prevent-map-reset-spam
could cause an NPE and therefore be bypassable - Fixed a bug where using
packetfly-patch
could throw IllegalStateException: Asynchronous player kick! - Fixed a bug where using
boatfly-patch
could throw IllegalStateException: Asynchronous player kick!
2.2.0 Patch Beehive Coordinate Exploit
(Rerelease because there was a mistake with shading in nbtapi)
New:
- Patched a coordinate exploit where reading out the nbt data of beehives and beenests would return the location where the bees spawned at and/or found a flower
- Added a configurable cooldown for creating maps for 1.12 servers to combat spammers resetting map arts (reset your lang folder for new translations)
- Added an experimental "combat" section to AEF config where seperate cooldowns for Crystal-, Bed- and AnchorAura can be configured
- Optimized events for all illegal item checks. Checks are even more efficient now while being less cpu intense
Fixes:
- Fixed a compatibility problem with other plugins using the same Reflections based language loader (@ImNotSoftik)
2.1.0 - Bugfixes, Improvements and new Patches
New:
- Updated XSeries to support 1.19.4
- Added a config section to help combat lag methods using redstone or various physics mechanics (Especially the water lag method: https://www.youtube.com/watch?v=p1H14RQSic8) (#115)
- Added a patch against a lag method where falling blocks could be held in a stasis using glitched piston heads: https://www.youtube.com/watch?v=y2CjPlvtj58 (#4)
- Created seperate modules for handling placed player heads and player head items.
- Added a patch for a bedrock breaking method using pistons and tnt (#124)
- Added a patch for a bedrock breaking method using pistons and efficiency 5 netherite pickaxes (#124)
- Implemented configurable notifications for chat.prevent-spam (#1)
- Added support for formatted itemnames in
remove-items-with-specific-names
(#112)
Fixes:
- Fixed a bunch of errors regarding modules handling player head items and placed player heads (fixes wither skull items getting deleted)
- Fixed a problem where players couldn't place buckets on the sides of blocks in the end dimension when prevent-destroying-end-portals was enabled.
- Removed the experimental revert-unnatural-datavalues module, as the implementation was too simple and would've led to multiple vanilla items in 1.12 reverting.
- Fixed a ClassCastException when using
delete-shulker-if-contains-inapplicable-enchant
- Removed default entries in some modules that would lead to structure blocks getting deleted
- Fixed a ClassCastException when using
delete-shulker-if-contains-unbreakable
- Improved Shulker checks for illegal items
- Improved cooldown mechanic for prevent-lever-spam and prevent-crafting-recipe-lag-exploit
- Improved the way the snowball exploit fix works
- Fixed an issue where a small amount of players could be permanently locked out from chat by the anti-spam
- Fixed and improved command anti-spam (#126)
- Fixed a bypass for chat.banned-regex involving russian characters and uppercase letters (#123)
- Fixed russian translation file thanks to @ImNotSoftik (reset your ru_ru.yml)
- Fixed french translation file thanks to @CAEC64 (reset your fr_fr.yml)
2.0.0 - MAJOR RELEASE, 1.19 SUPPORT
Version 2.0.0 - Stable Release
This contribution was made possible thanks to a number of people, mostly @xGinko.
Special thanks to @adalmo for testing the plugin and reporting 90% of the bugs and problems.
This plugin is now mostly maintained by contributors as I have no interest in running Minecraft servers anymore, however, I will still attempt to patch major server breaking exploits.
NOTE:
If you're upgrading from 1.x, BACKUP your config and add your values to the new config manually. - ALL CONFIG OPTIONS WILL REVERT TO THE DEFAULTS!
Upgrading from 2.X Beta releases should be fine, still some values could revert so be sure to check everything.
The code hasn't been thoroughly checked, however it has been tested by numerous server owners in order to make sure the plugin is stable. I do encourage you to read over the changed code and find any improvements that can be made.
All Changes:
New Features:
- Rewrote the entire code for version support. Plugin now fully works on versions 1.12.2 - 1.19.3
- Added Multi-Language support with 15 languages. If enabled, the plugin's messages will now change based on the locale of the player. You can configure all messages inside the lang folder. Feel free to add your language in a pr if it isn't present!
- Enourmous performance gains by only registering to the event handler what is enabled in the config - The plugin basically does DisabledClasses automatically now without needing a reboot.
- Large performance gains by using efficient methods and optimized code.
- Completely restructured and redid the entire config.yml (warning, resets your old config!) and enhanced the plugins config handling - the plugin will now automatically add new options and comments on every update!
- Largely improved logging. Console logging for any module can now be toggled and wrong config options will show now with the AEF prefix + config path so you can debug the plugin much faster.
- Largely improved ElytraFly. Added speed limit on nether ceiling, added more configuration options for each environment and made all messages customizable with the ability to use different coloring for different environments. Also use FastMath for better performance.
- Added feature to revert illegal incompatible enchantments (ex.: boots with Depth Strider + Frost Walker, etc.) (Suggested by @adalmo)
- Added anti backdoor features to prevent illegally opped and creative players. (Suggested by @adalmo)
- Added feature to remove spawners of unnatural type (ex.: pig spawners, warden spawners, etc.) that have been placed in the world. (Suggested by @adalmo)
- Improved feature to remove illegal blocks that have been placed in the world (ex.: player heads, bedrock, etc.)
- Added configurable /say command (Suggested by @PistonCube).
- Made height levels for overworld floor, nether floor and nether ceiling customizable to support datapacks/custom generators.
- Added the ability to compare the similarity between previously sent messages in precent for players bypassing antispam by adding random characters in their sentences.
- Made anti chat spam and some other modules async
- Command Whitelist: Added a patch against hacked clients scanning the server's plugins using tabcomplete packets (for servers that don't have tab-complete set to -1 in spigot.yml).
- Made 1b1t options more configurable so more people can use it.
- Added configurable /say command.
- And much more!
Fixes:
- Fixed all problems with world heights in 1.18+
- Fixed all anti-illegal items features for versions 1.12 - 1.19.3.
- Fixed all bedrock-filling features for versions 1.12 -1.19.3 and largely improved performance.
- Fixed all commands and make subcommands tabcomplete properly now.
- Fixed #109
- Made the plugin stable without protocollib (You should still use ProtocolLib though!)
- Fixed command-whitelist and added blacklisted-subcommands config option.
- Fixed Burrow in 1.12.2+ versions.
- Fixed BookBan not working with unsigned books and light_gray_shulkerboxes in 1.12.2+ versions.
- Fixed FirstJoinMessage count being off.
- And much more.
Closes:
#91, #96, #97, #101, #104, #109, #111, #113
1.27.3 - Add option to disable antispam logs
- LogBlockedMessages: true (#96)