Immersive Portals (for Forge)

Immersive Portals (for Forge)

3M Downloads

Crashes when Creating/Joining World I Forge 1.20.1

CoralAquatic opened this issue · 4 comments

commented

According to your testing, does the issue occur with ONLY Immersive Portals mod installed?

Yes

Forge Version

1.20.1-forge-47.4.8

ImmersivePortals Version

immersive-portals-3.0.6-all (Same issue with latest verison so tried downgrading).

Latest Log

https://gist.githubusercontent.com/CoralAquatic/47d2935d6c627073025be78c3260a667/raw/db782fd3740cb0bc0363b033cb61c8715698bb79/Log

Crash Report (if applicable)

https://gist.githubusercontent.com/CoralAquatic/39beec2203c843fdcc4022be01b2a5ac/raw/c921011a82683a5dedddec366c590dea654cf100/Crash%2520Error

Steps to Reproduce

  1. Create a new world.
    or
  2. Try joining a pre-existing world.
    Instantly crashes.

What You Expected

I was expecting the immersive portals mod to work.

What Happened Instead

It crashed instead.

Additional Details

Some other stuff, can on this video here! Hope to get this solved, this is the same issue when you try joining a world that already pre-exists.

Crashes.mp4

Please Read and Confirm The Following

  • I have confirmed this bug can be replicated without the use of Optifine.
  • I have confirmed the details provided in this report are concise as possible and does not contained vague information (ie. Versions are properly recorded, answers to questions are clear).
  • I have confirmed this does not happen on the fabric version (If it does please report to here instead).
  • I have confirmed I'm not using a hybrid server (Magma, Cauldron) or a different (non official) Forge Server release.
  • I have confirmed this issue is unique and has not been reported already.
commented

Установи версию мода 3.0.4-all

commented

Looks like dev in winter sleep, but it's Forge 47.4.2 and higher that makes the game crash on 1.20.1

commented

Looks like dev in winter sleep, but it's Forge 47.4.2 and higher that makes the game crash on 1.20.1

I think the main focus is on neoforge, but they do have classes going on to IIRC.

commented

I've fixed this in Forge for you in MinecraftForge/MinecraftForge#10680, which has been released in Forge 47.4.10.

With that being said, I'm not the biggest fan of how Immersive Portals goes about with its method of disabling the check for the player's reach. I understand the use case and I'm aware that porting a Fabric mod to Forge to use its APIs is not easy, but when Forge fixes bugs that come up, it shouldn't put the burden on Forge to maintain one-to-one bytecode compatibility inside of methods due to the usage of Mixin. That is my opinion, at least.

To add, the main reason why I went ahead with making 47.4.10 instead of just opening a PR here first and waiting for a response is due to the fact that there may be multiple mods with this same kind of Mixin that target the same instruction. I personally think it's in Forge's best interest to preserve compatibility as much as possible, especially with 1.20.1, since it is so old, stable, and many mods have begun to see less work put into them as they don't need it.

There is the easy solution which I've made a PR for, simply adding the new method, canReachRaw, to your Mixin injector. This fixes this bug for Forge versions 47.4.2 - 47.4.9.

The other idea, which might take a bit more effort (and consideration based on how other mods use it), would be to add a side-effect to PlayerInteractEvent.LeftClickBlock, where setting the result to Event.Result.ALLOW would bypass the check entirely and continue as if the player was in range in the first place. If you are interested in working with me on this, I'm curious to hear your thoughts.

Cheers. 🍻