LeraRiemann / ProjectInfinity

https://modrinth.com/mod/infinite-dimensions
7 stars 4 forks source link

Compatibility issue notice + question #10

Closed Dumpling00 closed 5 months ago

Dumpling00 commented 5 months ago

Hello! BIG fan of the concept. I just had a crash when activating a portal (right clicking after throwing book and quill inside), and the crash report seems to specify this mod called NeepMeat. (see crash report below)

I understand this is still alpha but I would just like to ask how the world generation works exactly - does it take every available block, even modded ones, to randomize terrain? If so, could there be a config file where we can blacklist certain mods from being in the pool? If not, what was the crash caused by?

Another question for future implementation - I have this mod for Weeping Angels - they zap you to a random dimension if they touch you. Dimensions can be blacklisted in the Weeping Angels config file by specifiying, say "minecraft:the_end", but since Infinite dimensions are created on the fly, they will constantly be added to the pool the Angels can zap you to.

Could there be a way to make it so all future dimensions from infinity can be blacklisted by simply adding something like "infinite:root" to the Weeping Angels blacklist?

Thank you so much for your time and consideration. This mod is going to be absolutely amazing. PS. Could potentially make it into a Rick and Morty themed one? ;) Portal gun creates a random dimension every time it's used on a surface? Food for thought!

LeraRiemann commented 5 months ago

i... don't see the crash report...

Dumpling00 commented 5 months ago

i... don't see the crash report...

I'm so sorry, something must have gone wrong. Here it is! crash-2024-03-21_02.25.36-server.txt

LeraRiemann commented 5 months ago

Alright, now to answer your questions and suggestions.

On the crash report: the NeepMeat, for some reason, didn't properly "catch" a new dimension my mod generated. I can think of three reasons for this: either something went wrong in my code, generating a non-working dimension (which under the vanilla framework would make the game just refuse to open a portal with an error message in the logs, but an external mod might be overriding it with this crash); something is wrong with the config files leading to same results; or there's a larger incompatibility at play. There might be. My mod injects new dimensions into a running server in a somewhat cheaty way.

For checking 2nd, you can delete your config/infinity folder, restart the game, and try to reproduce the issue. For the 1st, you can check is the issue arising with any book text or only this specific book text. If you remember it, it might help if you test your book test in a less modded environment and see if the portal opens there. (Or just tell it to me)

Oh, and it would help a lot if you send full logs of the game session in which the issue occurs.

On the Weeping Angels: i'm afraid i cannot make the behaviour you described possible with only modifying my code. A simple solution to that problem would be to make it possible for the Weeping Angels to operate on the basis of a whitelist instead of a blacklist, but this is most probably something only the Weeping Angel's creator could achieve.

On the block selection process: it is actually done through a weighed whitelist of vanilla blocks that comes packaged with the mod and installs itself in the configs, but there's a possibility to add to it, change the weights, snap blocks out etc. I was just recently working on an utility that makes such files automatically for all loaded mods; it is currently accessible through the /generate_configs command; although this approach is somewhat imperfect with handling wacky edge cases and requires additional testing and manual processing, it is a good first approximation that i'm planning to improve upon. You can check out the info on the usage of the mentioned command in the changelog published on Modrinth.

Dumpling00 commented 5 months ago

That's super interesting! Thank you so much for the info.

Hopefully the NeepMeat issue can be resolved. Unfortunately, I cannot remember the string I wrote on the book as I just mashed a bunch of keys. On that regard, another question: Does the signature also matter or is it just what's written on it? Either way, I just tried it again, and I've got a crash, still seeming to involve NeepMeat. Full Session Log here: https://mclo.gs/b540w0S (I literally just opened the game and tried it again). Beware though: My Minecraft is HEAVILY modded, haha.

Real shame about the behaviour with the Weeping Angels. It could become impossible to find the way back to the portal if ended up in one of these random dimensions, especially once the portal has been destroyed. Maybe this could be helped by having the portal always spawn in its 1 y 1 coordinates, or as close as possible to the 0 0 0 area?

LeraRiemann commented 5 months ago

I can try to test the neepmeat myself somewhen in the close future. So far it seems like the option #3, which is... errr... i can't promise i can even resolve this. But maybe some trickery, like a compatibility addon, can help.

Speaking of, I can also theoretically write a compatibility layer for weeping angels to banish them from my realms. But this will be an addon separate from the main mod. I made such a thing for Create before, allowing its trains to use my portals, just never got to releasing it publically.

Dumpling00 commented 5 months ago

That would be incredible if you could. In the meantime I've also opened an issue with the Weeping Angels dev asking for a whitelist option to be used instead of a blacklist but I don't have much hope - they seem to be very spotty in the way they resolve issues, as I'm seeing a lot of closed ones that don't even have answers from them.

As for the NeepMeat, I really hope something can be figured out. Thank you for your time and good luck! Looking forward to the development of Infinite Dimensions!

Dumpling00 commented 5 months ago

I can try to test the neepmeat myself somewhen in the close future. So far it seems like the option #3, which is... errr... i can't promise i can even resolve this. But maybe some trickery, like a compatibility addon, can help.

Speaking of, I can also theoretically write a compatibility layer for weeping angels to banish them from my realms. But this will be an addon separate from the main mod. I made such a thing for Create before, allowing its trains to use my portals, just never got to releasing it publically.

Got in touch with the NeepMeat Dev and they made a fork with the fix! Not sure if this helps? https://github.com/unilock/ProjectInfinity/tree/event

unilock commented 5 months ago

I'm not the NEEPMeat dev, haha. I just have a tendency to... do things?

I've opened a PR for that fork of mine, as well: https://github.com/LeraRiemann/ProjectInfinity/pull/12

Dumpling00 commented 5 months ago

I'm not the NEEPMeat dev, haha. I just have a tendency to... do things?

I've opened a PR for that fork of mine, as well: #12

Oh sorry! Thank you immensely. I'm kinda new to github and all of this to be honest, so, may I ask how do I go about downloading the fixed version of the mod?

LeraRiemann commented 5 months ago

wait for me to get home, look through this, accept the pull request, assemble the mod and release a new version on modrinth.

if i manage to get home safely, i'll hopefully do it all in <12h. hopefully.

terribly sorry for making you wait.

Dumpling00 commented 5 months ago

wait for me to get home, look through this, accept the pull request, assemble the mod and release a new version on modrinth.

if i manage to get home safely, i'll hopefully do it all in <12h. hopefully.

terribly sorry for making you wait.

Right on! Thank you so much! Stay safe!

LeraRiemann commented 5 months ago

I'm not the NEEPMeat dev, haha. I just have a tendency to... do things?

I've opened a PR for that fork of mine, as well: https://github.com/LeraRiemann/ProjectInfinity/pull/12

thank you so much 🥺

MeatWheeze commented 5 months ago

Hi there. Just to let you know, I should have fixed the incompatibility on the NEEPMeat end: #8

Dumpling00 commented 5 months ago

I can confirm that it works!! Thank you so much, you legends!!

Dumpling00 commented 5 months ago

Hey I was wondering, is there a way to config the portal so that you gotta use another type of blocks instead of obsidian?

LeraRiemann commented 5 months ago

Hi there. Just to let you know, I should have fixed the incompatibility on the NEEPMeat end: #8

thank you! i'll still accept the PR though for purposes of better compatibility in the future.

Hey I was wondering, is there a way to config the portal so that you gotta use another type of blocks instead of obsidian?

since the Infinity portal is created from a vanilla Nether portal, no.

LeraRiemann commented 5 months ago

wait for me to get home, look through this, accept the pull request, assemble the mod and release a new version on modrinth.

if i manage to get home safely, i'll hopefully do it all in <12h. hopefully.

terribly sorry for making you wait.

merged both pull requests, released 1.8.1 on modrinth.

once again huge thanks @unilock for making these! i wanted to contact you over discord to ask under which name would you like to be credited in my mod's acknowledgements section, but it seems like i can't with the current discord name featured on your page. so um. you can contact me if you want!

with that, i believe this issue to be fully resolved :D

unilock commented 5 months ago

Oh! Sorry, I forgot my GitHub profile even mentions my Discord handle. It's @unilock as well now.

As for what name to use - I would prefer "unilock" there as well :p

And - glad I could help! Open source is lovely, isn't it?