GeyserMC / Geyser

A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition.
https://geysermc.org
MIT License
4.7k stars 673 forks source link

Knockback not as powerful for Bedrock users #3536

Open HippieBeak opened 1 year ago

HippieBeak commented 1 year ago

Describe the bug

When a Java and Bedrock players are hit with the same amount of knockback, the Java player will be thrown a lot farther back than the Bedrock player. This causes a lot of people to accuse Bedrock players of cheating/hacking, thinking that they have anti-knockback installed. Below is a video of the error. First, the Bedrock player is hit with some knockback, and they are thrown back about a block. We then hit the Java player with the same amount of knockback, and they get thrown much farther back.

To Reproduce

  1. Hit a Bedrock player with some knockback, and record how far back they go.
  2. Hit a Java player with the same amount of knockback, and record how far back they go.
  3. The Bedrock and Java players will have drastically different results.

Expected behaviour

We expect that the Java and Bedrock players will be thrown back the same number of blocks with the same amount of knockback.

Screenshots / Videos

https://user-images.githubusercontent.com/15806196/217003682-b675ec4e-615c-4642-8b01-3dc0a63f4a2f.mp4

Server Version and Plugins

Pufferfish version git-Pufferfish-56 (MC: 1.19.3)

Plugins (44): BanManager, BlockAnimator, BungeeGuard, BungeeTabListPlus, dTools, Duels, EffectLib, Essentials, EssentialsChat, EssentialsSpawn, FastAsyncWorldEdit (WorldEdit), floodgate, FreedomChat, FurnitureLib, GSit, HeadDatabase, HolographicDisplays, Hyperion, JedCore, KeepChunks, LibsDisguises, LuckPerms, MegaArenas, MegaBending, MegaEventsLW, MegaLavaReduction, MegaParticles, MegaTools, MultiChat, Multiverse-Core, NitroCommandBlocker*, NoteBlockAPI, OldCombatMechanics, PlugManX (PlugMan), ProjectAddons, ProjectKorra, ProtocolLib, SimplePortals, spark, Vault, ViaBackwards, ViaVersion, WorldGuard, WorldGuardEvents

Geyser Dump

https://dump.geysermc.org/0vrQYuXI4afLlpUPNJJuDxpoZElQEQj6

Geyser Version

Geyser version 2.1.0-SNAPSHOT (git-DEV-0000000) (Java: 1.19.3, Bedrock: 1.19.20 - 1.19.60)

Minecraft: Bedrock Edition Device/Version

1.19.51, Windows 10 Edition

Additional Context

No response

Camotoy commented 1 year ago

Fishing rod behavior might be part of the key to solving this. We manually send velocity for when a player is hooked off of a fishing rod - and it's always been off compared to Java Edition. Perhaps there's a difference in how velocity is computed between the two platforms that needs to be adjusted.

Kuratius commented 1 year ago

https://www.mcpk.wiki/wiki/Horizontal_Movement_Formulas https://www.mcpk.wiki/wiki/Vertical_Movement_Formulas

probably relevant