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 672 forks source link

Geyser not interacting well with Model Engine (mostly custom mounts) #3302

Open Cinder4198 opened 1 year ago

Cinder4198 commented 1 year ago

Describe the bug

This is kind of a 3 in 1 bug report, since all of these issues stem from the plugin ModelEngine.

So the for the 1st bug, when a Bedrock player attempts to dismount or jump on a custom mount, it causes a desync between where the Bedrock client thinks its off the mount, but the server keeps them on the mount. (also when you do it through jumping, it will cause the mount to keep jumping as well)

For the 2nd bug, when a player mounted on a custom mount comes into loaded chunks for a Bedrock player, they will appear to be just floating on top of the mount (in some cases the mounted player wouldn't be above the mob but I couldn't reproduce it)

For the 3rd bug, custom hitboxes made with ModelEngine doesn't work on Bedrock very well. It seems like an extremely small slime is what controls the hitbox for ModelEngine, since it was visible on Bedrock, and near it caused the hitbox to activate.

To Reproduce

First Bug:

  1. Summon a mob that you can mount with a ModelEngine model (usually done with MythicMobs)

  2. Mount it on a Bedrock client

  3. Attempt to jump or crouch

Second Bug:

  1. Have a player ride a mount that uses ModelEngine

  2. Have that player go into the chunks of a Bedrock player

Third Bug:

  1. Summon a mob with a ModelEngine model

  2. Attempt to hit it on a Bedrock client

Expected behaviour

First Bug: Crouching should have had the Bedrock player dismount on both client and server side, and Jumping shouldn't cause the player to dismount on the client side.

Second Bug: The player on the mount should have been sitting on top of the mount.

Third Bug: The Bedrock player should have been able to hit the pig, since it's hitbox goes over it's body.

Screenshots / Videos

Bug 1:

https://user-images.githubusercontent.com/67652147/191885147-a1eb1a69-ef88-4785-99d2-a43860355c3f.mp4

Bug 2:

https://user-images.githubusercontent.com/67652147/191885175-3b544f19-a146-469e-bde1-a7e3359b1750.mp4

Bug 3:

https://user-images.githubusercontent.com/67652147/191886294-4890a794-760a-4081-af57-eb71be7467bc.mp4

Server Version and Plugins

Paper version git-Paper-113

Minecraft 1.19.2

Plugins:

(the most important ones are probably ModelEngine and MythicMobs)

AnyMessageFilter, ArmorStandEditor, BetterRTP, Bookshelves, Breaker, BuycraftX, Citizens, CombatPlus, CraftEnhance, CustomEvents, CustomItems, CustomJukebox, CustomStructures, CustomUniverse, DefteraTest, DeluxeMenus, DungeonParties, DynamicAliases, EmojiChat, EpicRename, Essentials, EssentialsSpawn, EZLinks, floodgate, GUIWarps, Hat, InfiniteJump, ItemBridge, JoinEventsPro, LibsDisguises, LuckPerms, MCCosmetics, MCSF, MessageFilter, MMOItems, ModelEngine, Multiverse-Core, MyCommand, MythicDungeons, MythicLib, MythicMobs, NBTAPI, PixelPrinter, PlaceholderAPI, PlayerParticles, PluginConstructorAPI, PlugMan, ProtocolLib, PsudoCommand, QualityArmory, RecipeManager, Rift, Skript, Stopwatch, Sudo, SuperLog, TexturePackChanger*, Timber, Vault, VeinMiner, ViaVersion, WorldEdit

Geyser Dump

https://dump.geysermc.org/F6g8ZyRukp42ptqJU2wm5nzhW0mIOsaU

Geyser Version

2.1.0-SNAPSHOT (git-master-d2b7b8c)

Minecraft: Bedrock Edition Device/Version

1.19.30, Windows 10 pc

Additional Context

Using ModelEngine 3.0 and MythicMobs 5.1.0

Also I'm down to help test stuff or explain something about ModelEngine or MythicMobs, I get that you guys probably don't mess with it much

Cinder4198 commented 1 year ago

Ok the 1st bug also happens if the bedrock client gets their head stuck in a block when in a ModelEngine mount

DaddyRobLIVE commented 1 year ago

Looks like this has been reported already, I was about to report this just today. Tested on MCpets, MythicMobs, ModelEngine's latest version.

Experience: When a bedrock user rides a mount especially a flying mount like a dragon. The moment they press jump (horse jump) they will fall from the mount and the mount will continuously fly forward or upwards. I've disabled the mount feature for bedrock users due to this issue.

Kas-tle commented 6 months ago

Can you confirm all these issues still occur with the latest Geyser build?

MattDeWeerd commented 5 months ago

Can you confirm all these issues still occur with the latest Geyser build?

@Kas-tle I can confirm the first two issues are still occurring, while the third seems to be fixed for me.

Videos

Jumping and Crouching issue still happening: https://i.imgur.com/nTzegBv.mp4

Bedrock going into Java Chunks issue still happening: https://i.imgur.com/FsRmjaw.mp4

Bedrock hitting mythic mob using a model engine model: https://i.imgur.com/1H86tub.mp4

Plugin Info / Versions

Mythic Mobs: 5.6.2 Model Engine: R3.1.11 Geyser: 2.2.2-SNAPSHOT (git-master-a9467cf) Server Jar: purpur-1.20.4-2136.jar

Client Versions

Java: 1.20.1 Bedrock: v1.20.72

Cinder4198 commented 5 months ago

Can you confirm all these issues still occur with the latest Geyser build?

After testing a bit, it seems like the the second and third bugs are fixed, but the first one still persists, although it seems to behave a bit differently than before. When jumping or crouching, it will desync, but attempt to correct itself a bit after. Sometimes the correction will begin to fail though (and crouching doesn't make the player unmount).

Bedrock recording:

https://github.com/GeyserMC/Geyser/assets/67652147/1566e75b-7b98-45f2-b138-8d9396c71064

Java Recording:

https://github.com/GeyserMC/Geyser/assets/67652147/da026500-94db-4352-824e-d86ec0788e63

Agaloth commented 2 months ago

I'm having the same issue