Electroid/SportPaper

Carpets are buggy

Closed this issue · 13 comments

Server: latest SportPaper
Client: Minecraft 1.8.9 (latest LabyMod)
Plugins: none (Edit: wrong, I used AAC5)
You can not stand on carpets because you are getting dragged down.
This bug is about carpets that are placed on blocks that are not sized 1x1x1 like:
Fence
Carpet (another carpet)

This issue is probably related to the carpet fix.

/cc @Pablete1234 Thoughts?

Carpets were made not to collide with players if at same height, not to glitch 1.7 players, it is very possible that standing on them could be glitchy if there's nothing underneath, but i belive i tested it and worked fine, because most movement is client-side (from the server side it's just "as if you were using fly hacks" 0.0625 blocks above the ground, irrelevant enough for anticheat plugins to ignore)

Just re-tested, and i cannot reproduce:
image

Oh sorry guys, I just noticed that it is related to AAC but I forgot that I had it installed.
Since AAC5 (the new version of AAC) is very strict when it comes to movement it flags the person standing on carpets which results in getting dragged down by AAC.
I believe this can be reproduced with some other AntiCheats as well.

Also: When using ViaRewind and its ViaRewindLegacy Support doesnt it fix carpets itself? I do not really see the point in adding this patch to the server directly. It would make more sense to add it to plugins like ViaRewind, I guess.

@Pablete1234
@Electroid

someone reported this issue already but closed his ticket #43

Plugins: none

This issue is invalid, the enviroment isn't as described.

The anticheat is the one forcing you down, not sportbukkit. The patch is required to set the height to 0 because otherwise you'd just have the anticheat not letting 1.7 players walk ontop of carpets, send the bug report to the anticheat developer

AAC does not and will never support 1.7 clients and or 1.7 servers.

1.7 carpet behaviour = carpets have 0 height
1.8 carpet behaviour = carpets have a hitbox height of 1/16 of a block
This issues is caused because the carpet-fix introduces 1.7 carpet behaviour to 1.8 servers which does not have to be supported by plugins like anticheats in my opinion.

AAC thinks that the player is flying in the air and therefore flags him.

1.8 servers that do not let 1.7 players on their servers do not need this patch.
People using AAC can not use sportpaper safely because of this patch. (Many people are using AAC)
So I think the best solution for this issue would be to make the carpet-fix toggleable via the sportpaper.yml.

1.8 Servers, not supporting 1.7, using AAC, carpet-fix disabled: no problems
1.8 Servers, supporting 1.7, not using AAC (AAC does not support 1.7), carpet-fix enabled: no problems

AAC does not and will never support 1.7 clients and or 1.7 servers.

That is kinda irrelevant here, that's their own decision

1.7 carpet behaviour = carpets have 0 height
1.8 carpet behaviour = carpets have a hitbox height of 1/16 of a block
This issues is caused because the carpet-fix introduces 1.7 carpet behaviour to 1.8 servers which does not have to be supported by plugins like anticheats in my opinion.

The carpet fix does not modify the hitbox of carpet, if AAC relied on hitboxes it would work correctly, like matrix does. (earlier versions of the carpet fix did set height to 0, but it caused that glitch on matrix, which is why it was modified to this)

AAC thinks that the player is flying in the air and therefore flags him.

Then report the bug to AAC, since they're standing on a carpet that does have a hitbox and the plugin can check it.

So I think the best solution for this issue would be to make the carpet-fix toggleable via the sportpaper.yml.

The issue is in how AAC is handling collisions not in sport paper, but nonetheless feel free to submit a PR with it

This issue isn't the place for this discussion tho, open a specific issue (or directly a PR) for the specific incompatibility between AAC and sportpaper.

It feels like the carpet fix probably needs a config option.

I thought I'd add that the incompatibility is here: https://github.com/Electroid/SportPaper/blob/master/patches/server/0191-Prevent-1.7-players-glitching-in-carpet.patch#L32-L34

AAC calls getCubes with the checked player entity. This method evidently returns no carpet bounding box if the player is at ground level next to the carpet. Consider returning a degenerate bounding box with height 0 instead, as AAC will automatically set the height of any carpet bounding boxes to 0.0625 internally.

Please do not report this to AAC. Thanks.

Since I am not a developer and therefore not able to submit a pr fixing this issue I would really appreciate one of you guys solving this issue by adding an option to toggle this patch. @Electroid @Pablete1234
As you can read above the developer of AAC claims that this is not an AAC issue.

Just adding a simple option to toggle this patch would be the most simple and the smartest way tho solve this issue as I have already explained it above.

Let me know if the issue persists.

923ff1f glitches 1.7 clients when they jump into the carpet at certain angles, i've submitted #54 to rollback

Since 923ff1f was reverted with 5b5762f this issue should be reopened as it now is existing again.
This could be easily fixed by making https://github.com/Electroid/SportPaper/blob/master/patches/server/0191-Prevent-1.7-players-glitching-in-carpet.patch toggleable via the config.

@Electroid @Pablete1234 @AustinLMayes