I started college last week, which means I have more time for programming than ever before, however less time for testing and debugging.
This is the 555th update. Never thought I'd get that far.
- Doubled Step values in default config to try and account for laggy clients (so for example if a player could fall 10 blocks in 3 ticks, they can now fall 20 blocks in 6 ticks).
- Fixed FastBow false positives when flying.
- Fixed a false positive where you could not climb up cake which was partly eaten (so for example, if you put a cake with half of it eaten on top of a full cake). https://i.gyazo.com/08e034e488cb5cf1e71efb725101f285.png
- Improved Reach's accounting for "running away" hits, by using the actual movement direction calculated by the Speed check.
- Reach can kick players now.
- Fixed a bug where swimming in lava (in creative mode or fire resistance potions, obviously. Otherwise you'd die.) could cause drag backs for NoFall.
- The speed check's water accounting now adjusts the allowed speed in the water depending on if the player is moving with or against the flow of water. This of course doesn't affect stationary water.
- Fixed a false positive where placing on carpets on a higher block (such as fences) caused false positives.
- Fixed false positives with brewing stands.
- Fixed a rare false positive where jumping from high heights onto slime blocks could cause false positives.
- Fixed a console error when using bows.
- Fixed a bug where players hit by a bow were given extra velocity leniency which they should not have it.
- SimilarHeadMovementAmount set to 0.1 by default. Turns out my value of 1.0 was far too high. Whoops!
- AntiAura now takes the players' sprinting state into account for the Speed check. For example if the player has only been sprinting for half of the last second, AntiAura will add on the walking speed, plus half of the sprinting speed. In other words, the amount of Speed AntiAura allows for sprinting is proportional to the amount the player has been sprinting recently.
- ConsistentPercentageMax set to 85 by default.
- The Speed check now takes jumping into account when calculating the speed a player can travel.
- Silenced the console error if AntiAura can't connect to the internet. It wasn't intended for an error to be thrown.
There were a few things I didn't manage to fix in this update (such as sneaking above the void), which will come next update. Don't worry, I haven't forgotten my promise to fix all of the bugs!
The consistency killaura check is a check in itself, however it is also a base which allows me to start implementing checks by examining player behavior after a certain amount of hits. Expect there to be sub-checks soon which check the consistency of multiple things (whereas at the moment, it is only checking if one parameter is too consistent).
- Fixed a false positive where walking on more than 4 blocks of soulsand away from your last non-soulsand block caused false positives.
- Disabling and enabling Step, XRay, TileESP, and MapScrewer can now be done with the /aconfig or /areload command, without needing to restart the server.
- Disabling MapScrewer no longer disables TileESP and X-Ray blockage.
- Fixed a false positive where a lone block with a pressure plate on it wouldn't be counted as on the ground, meaning parkour servers with random pressure plates on blocks could experience drag backs during jumps.
- Added the Consistency killaura check. Explained basically, this stores an amount of hits from the player and checks if the average of those hits exceeds certain parameters. I will stress that this new check only catches specific killauras, generally killauras that bypass HeadMove or accuracy.
- Fixed a bug where being on fences were not counted as "on the ground", making bypasses where people could climb up fences but also false positives if you jumped too far off the fence. (Ironically, this took me 30 minutes to debug and fix and the issue literally ended up being one character in my code)
- Fixed a bug where a cake on top of a block with no other blocks around could cause drag backs.
- Fixed a bug where the /speed command from Essentials caused drag backs when blocking or sneaking.
- Made Step stop players moving up too quickly in water.
- Improved the Flight check relating to Jesus. It now drags back much quicker.
- Fixed a minor memory leak.
- The Step check now detects the FastFall hack, with the new MaxDistanceMovedDownwards configuration option.
- Improved Speed's blockage of Jesus. When I made the check check over a longer period of time I hadn't changed the Jesus value, meaning Jesus could travel slightly faster than expected in water.
- Made Jump only count the current location as water if the player is actually in water, stopping short range Jesus hacking by flying over 1 block over the water.
The consistency check is mainly (at the moment) focused on catching the killauras that bypass other checks.
The blockage of Jesus was not as good as I wanted. I specifically went to quite a bit of effort to make sure it was working as well as it could be.
As I stated above, there are some issues such as:
Which I will be aiming to fix for the next update.
- Sneaking at the edge of void.
- Jumping next to a cobble wall on a protruding block.
- Being hit by arrows giving too much velocity leniency.
- Phase bypasses.
I promised to try and fix all the bugs and false positives, so.. Here goes!
Making Anti-XRay async was significantly more work than I expected. Taking a ton of ChunkSnapshots on the main thread and passing them to an async thread was inconveniently troublesome.
- Fixed a false positive with upside down slabs causing false positives with the Jump check.
- Fixed a false positive with the Jump check related to teleportation, especially by other checks.
- Fixed false positives related to the Jump check and ice, and with jumping with blocks above you to go faster.
- Allowed Flight to damage players who are detected for flying based on their height (you can disable this in the config), to prevent players using the Flight check to avoid fall damage.
- Fixed false positives with DistanceSpoof NoFall if falling into single block of floating water from a high height (for example, like on the endcraft.net test server).
- Optimized Spider ground checking code when players are in the air.
- Fixed false positives with floating player heads if you didn't jump while walking on them before falling off.
- Fixed problems with double slabs sometimes being counted as single slabs which caused issues in some scenarios.
- Fixed drag-backs with the Jump check related to water (Finally!!).
- The Anti-XRay check has been made 100% asynchronous, meaning that it won't directly cause any lag on your server.
- Unfortunately the ShowBlocksIfExposedToAir option has had to be removed. It is not really easy to check all around a block asynchronously, as it caused crashes and issues, especially at blocks at the edge of chunks.
- The XRay check now hides mossy cobble and spawners.
- Teleportation of multiple checks has been accounted for better now. The different checks will no longer teleport people around multiple times when detected.
- Position now has a DecreasePerSecond option to avoid false positives. Defaults to 0.1.
- Made the Speed check track each individual movement of the player, instead of checking the distance between two locations after a certain time. This means that players using speed hacks and running in a circle will be detected now.
- The Speed check now checks players over a longer period of time. For example, players can now move 10 blocks in 2 seconds, instead of 5 blocks in 1 second (that is an EXAMPLE, not real figures). This is much better for laggy servers and players.
I was going to work on some killaura improvements for this update, however the Speed check was in need of some improvements.
The killaura checks need a new default configuration, however there isn't much inherently wrong with how they are written code-wise. Part of the reason that AntiAura's killaura is too lenient is that I listened to too many people with vague false positives that were only on their server, and tried to adjust the default configuration to account for it.
As for next update - The focus will be killaura, and I will also be looking into a way to detect PingSpoof.
My main focus now will be refining and perfecting the existing checks to make sure they don't have any false positives, especially on the default configuration.
According to ItsMennyo, this version of AntiAura uses "25% less resources" than the last version. Please don't consider that as a benchmark though, as that's just one person testing on their server.
- Standing on top of a slime block on a piston, and then activating the piston, won't drag you back now.
- Fixed a bug with FastLadder where standing on top of a ladder with a vine above you and jumping would cause you to be dragged back down to the ladder.
- Made Speed give more leniency for ice.
- The task 'sb' (with an interval of 1) has been mostly moved asychronously, saving on performance. This task was previously one of the biggest performance takers of AntiAura.
- Half of the speed check has been made asynchronous to save performance. The initial calculations are done async before starting the sync task to check if the player has been hacking.
- Fixed NoFall positives related to water.
- Accounting for slime block bouncing has been tweaked and improved a lot, previously it could cause false positives from certain heights or with multiple bounces.
- Fixed false positives related to standing on top of boats. Boats previously weren't counted as solid.
(Also keep in mind that the same resources are being used, they're just not used on the main thread, meaning that they do not lag the server directly)
Some improvements to the speed check may come next update.
- Updated water accounting code for the Jump check to avoid some rare false positives for Jump when in water. Also improves blockage of Jump/Fly hacks from inside of water.
- Fixed a bug where the Jump check did not take beds into account (so if you were jumping from flying beds onto something, false positives were likely).
- Fixed a bug where jumping from height into suspended water with no solid blocks below it could cause NoFall false positives.
- As PacketWrapper is just a library, I can directly place the PacketWrapper files into ProtocolLib. ProtocolLib versions with PacketWrapper will only work on AntiAura 11.18 or later. At the moment the only version with PacketWrapper included is for 1.12, at http://endcraft.net/deps/Minecraft 1.12 versions/.
- Fixed some problems related to fences. Fences are tricky from an anti-cheat perspective.
I also feel more comfortable now that AntiAura only requires one dependency, rather than two, for all checks to work.
Problem with bugs that don't happen all the time or on all servers is that I can test something and it can appear solved when in fact, it isn't.
- Turns out the bug where legitimate teleportations could be blocked wasn't fixed in the last update, so here's a fix.