Sinytra / Connector

A compatibility layer that allows running Fabric mods on NeoForge
https://sinytra.org/docs/connector
MIT License
531 stars 23 forks source link

AdventureZ prevents player from swimming #1343

Open YShadowMY opened 2 months ago

YShadowMY commented 2 months ago

Mod Name

AdventureZ

Mod Homepage

https://www.curseforge.com/minecraft/mc-mods/adventurez

Minecraft version

1.21.1

Describe the bug

while the player is in the water, he cannot move in any direction

Steps to reproduce

  1. download Connector, AdventureZ + dependencies
  2. create a new world
  3. try swimming in the water

Logs

https://gist.github.com/YShadowMY/08c11f64e718f8210532fcd341af4a3e

Additional context

No response

Tursiops-G commented 2 months ago

Same exact problem with UselessReptile... Player Can't move in water. (everything else works, AFAIK).

Cixon commented 2 months ago

confirmed bug.

starrysais commented 2 months ago

this also happens with betterend and its dependencies.

Cixon commented 2 months ago

this also happens with betterend and its dependencies.

i would open a separate ticket for this !

JalinRio42 commented 2 months ago

This also happens with betterend and its dependencies.

Had this same issue. It was just better end for me. It also affects all mobs. which was super odd watching pigs drown and fish just float in one spot.

Cixon commented 2 months ago

bump

coco875 commented 2 months ago

bump

bump are not useful, the dev work on something else for now so just wait

SmexyJesse commented 4 weeks ago

I got a work around. -Disable the problem mods and create a new world -Check swimming works -Save and exit -Enable the problem mods -Load back into new world you created -Should be able to swim with the problem mods

Cixon commented 4 weeks ago

yeah but not an ideal work around. for modpack creators, downloaders expect things to just work.

I got a work around. -Disable the problem mods and create a new world -Check swimming works -Save and exit -Enable the problem mods -Load back into new world you created -Should be able to swim with the problem mods

SmexyJesse commented 4 weeks ago

yeah but not an ideal work around. for modpack creators, downloaders expect things to just work.

I got a work around. -Disable the problem mods and create a new world -Check swimming works -Save and exit -Enable the problem mods -Load back into new world you created -Should be able to swim with the problem mods

yeah but this information can help people who wanna play their own mod packs and help devs locate the cause of the bug.

Atrimilan commented 3 weeks ago

I think I've found the variable that needs to be fixed, it's in the world file level.dat, which you can edit with NBTExplorer.

You don't need to close Minecraft for this process, just quit your world and do the following.

Tursiops-G commented 1 week ago

Tried the NBTExplorer trick, No joy. The id: neoforge:swim_speed attribute tag entry didn't exist. Tried creating/saving it, but it gets overwritten/deleted when subsequently reloading the modified world save.

Note: this is using Useless Reptile 0.8.3-1.21.1 (Fabric mod).

Atrimilan commented 1 week ago

Yes, I added Useless Reptile and other mods, and my workaround no longer works...

I also have another bug, probably related somehow, when I fly in creative mode and I change handheld item, the gravity reactivates and I can't fly anymore (I have to switch to spectator mode to reactivate it).

I don't have AdventureZ, but I have BetterEnd, BetterNether, Useless Reptile, RPG Series mods, and other small mods.

unilock commented 1 week ago

I think I've found the variable that needs to be fixed, it's in the world file level.dat, which you can edit with NBTExplorer.

The in-game command equivalent would be /attribute <username> neoforge:swim_speed base set 1.0, but that didn't work for me either.

dsniav commented 1 week ago

I think I've found the variable that needs to be fixed, it's in the world file level.dat, which you can edit with NBTExplorer.

The in-game command equivalent would be /attribute <username> neoforge:swim_speed base set 1.0, but that didn't work for me either.

This method (the command) is actually successful in resolving the issue for the mod I'm trying to use at least. Thank you for sharing it. Edit: Although it should be noted that this only resolves the issue for the player, not other non-aquatic entities.

unilock commented 6 days ago

I've created a workaround in the form of a mod: https://github.com/unilock/sinytra1343

All it does is make LivingEntity#getAttributeValue, when its parameter is NeoForgeMod.SWIM_SPEED, always return 1.0.
Note that this will obviously break other mods that may change that attribute's value, but at least it restores vanilla behavior.

Cixon commented 6 days ago

I've created a workaround in the form of a mod: https://github.com/unilock/sinytra1343

All it does is make LivingEntity#getAttributeValue, when its parameter is NeoForgeMod.SWIM_SPEED, always return 1.0. Note that this will obviously break other mods that may change that attribute's value, but at least it restores vanilla behavior.

goated. i will need to try it in my modpack to see if there’s any strange behaviors

Atrimilan commented 6 days ago

I've created a workaround in the form of a mod: https://github.com/unilock/sinytra1343

All it does is make LivingEntity#getAttributeValue, when its parameter is NeoForgeMod.SWIM_SPEED, always return 1.0. Note that this will obviously break other mods that may change that attribute's value, but at least it restores vanilla behavior.

Swimming seems to work fine with your workaround in my local world, thanks 😄.

Atrimilan commented 6 days ago

I also have another bug, probably related somehow, when I fly in creative mode and I change handheld item, the gravity reactivates and I can't fly anymore (I have to switch to spectator mode to reactivate it).

In case anyone else is having the same flying issue in creative mod, simply update @unilock's workaround like so :

return attribute.is(NeoForgeMod.SWIM_SPEED::is) || attribute.is(NeoForgeMod.CREATIVE_FLIGHT::is) ? 1.0D : original;

You'll still lose your flight when changing handheld items, but you'll be able to fly again without changing game mode.

Cixon commented 4 days ago

hey @unilock is it possible for you to make a mod/patch for issue #1435 ? I reached out to mod creator of Legacy 4J and they mentioned that connector is not allowing the nametag rendering.

Please and thank you for everything!

Atrimilan commented 4 days ago

hey @unilock is it possible for you to make a mod/patch for issue #1435 ? I reached out to mod creator of Legacy 4J and they mentioned that connector is not allowing the nametag rendering.

Maybe you can try updating the code by changing the neoforge:nametag_distance ?

Because without any mod, I get: Image And with betterend, etc. I get 0.0.

I've seen this property here too : https://nekoyue.github.io/ForgeJavaDocs-NG/javadoc/1.20.6-neoforge/net/neoforged/neoforge/common/NeoForgeMod.html#NAMETAG_DISTANCE

Maybe you can simply edit the unilock workaround to something like the following:

        if (attribute.is(NeoForgeMod.SWIM_SPEED::is) || attribute.is(NeoForgeMod.CREATIVE_FLIGHT::is)) {
            return 1.0D;
        } else if (attribute.is(NeoForgeMod.NAMETAG_DISTANCE::is)) {
            return 64.0D;
        } else {
            return original;
        }

I don't know if it's actually the affected attribute, I haven't tried it yet.

unilock commented 4 days ago

I've updated my mod to only activate when the detected attribute value is 0.0 (so it may be slightly more compatible with other mods), and to account for NeoForgeMod.NAMETAG_DISTANCE (returns 64.0) and NeoForgeMod.CREATIVE_FLIGHT (returns 1.0 if the LivingEntity is a Player and the player is in creative mode).

You can download it here: https://github.com/unilock/sinytra1343/releases/tag/1.1.0

Cixon commented 4 days ago

goated. for now, i'm trying to help the community get BetterEnd stuff to work, i have a fix... but i need help. https://github.com/Sinytra/Connector/issues/1331#issuecomment-2467050681

Tursiops-G commented 3 days ago

I've updated my mod to only activate when the detected attribute value is 0.0 (so it may be slightly more compatible with other mods), and to account for NeoForgeMod.NAMETAG_DISTANCE (returns 64.0) and NeoForgeMod.CREATIVE_FLIGHT (returns 1.0 if the LivingEntity is a Player and the player is in creative mode).

Swimming bug fix Confirmed working w/ Useless reptile (Using Latest Neo & FFAPI as well)... Thank you very much for your work on this. :)

Cixon commented 3 days ago

I tried to get Adventure Z to work with newer version of NeoForge for instance 21.1.72 and it won't work. I know for a fact the older NeoForge version it works but something changed. Is anyone else experiencing this?

Cixon commented 3 days ago

I tried to get Adventure Z to work with newer version of NeoForge for instance 21.1.72 and it won't work. I know for a fact the older NeoForge version it works but something changed. Is anyone else experiencing this?

https://github.com/Sinytra/Connector/issues/1527