Fabricators-of-Create / Create

[Fabric Mod] Building Tools and Aesthetic Technology
MIT License
834 stars 188 forks source link

[Bug] Unable to start due to I/O Config Error #1321

Closed TheAyes closed 3 months ago

TheAyes commented 3 months ago

Describe the Bug

I'm unable to start Minecraft 1.20.1 using Quilt.

It throws an error because the config folder already exists. Well... It obviously does, how else would it load configs. It might also be related to me using symlinks for config files, which in itself means that your way of processing configs might be incompatible with symlinks?

Reproduction Steps

  1. Install Minecraft 1.20.1 using quilt
  2. Add Create and Qfapi to your mods
  3. Create a Symlink from "Anywhere -> .minecraft/config"
  4. Try to start minecraft

Expected Result

It should start without problems. Properly resolving symlinks.

Screenshots and Videos

No response

Crash Report or Log

https://mclo.gs/gMlBmYQ

Operating System

OS: EndeavourOS Linux x86_64 Kernel: 6.7.4-arch1-1 Uptime: 4 hours, 55 mins Packages: 1264 (pacman) Shell: fish 3.7.0 Resolution: 1920x1080, 1920x1080 DE: Plasma 5.27.10 WM: KWin Theme: [Plasma], Breeze [GTK2/3] Icons: [Plasma], breeze-dark [GTK2/3] Terminal: konsole CPU: AMD Ryzen 7 5800X (16) @ 3.800GHz GPU: NVIDIA GeForce GTX 980 Ti Memory: 6882MiB / 32002MiB

Mod Version

0.5.1f

Minecraft Version

1.20.1

Other Mods

No response

Additional Context

No response

drwoops commented 3 months ago

currently create 0.5.1d sodium 0.4.10 fabric api 0.88.1 iris 1.6.4 and indium 1.0.21 are the precise versions you want.

TheAyes commented 3 months ago

Can I even use Fabric Api with Quilt? Isn't that what Qfapi is for?

drwoops commented 3 months ago

yes. notice how qfapi also mentions the fapi version

TheAyes commented 3 months ago

And are Sodium, Indium and Iris required. Or should I rather use these specific versions if I am using them at all?

drwoops commented 3 months ago

only if you want them

TheAyes commented 3 months ago

So I've tried both Create with Qfapi for Fabric Api 0.88.1 and the normal fabric api 0.88.1 Both result in the very same error. Updated Log: https://mclo.gs/L0veCS2

drwoops commented 3 months ago

show me the error with qfapi. not sure you can use fapi with the quilt loader

TropheusJ commented 3 months ago

This error has nothing to do with the fabric api version.

drwoops commented 3 months ago

yeah but i am not sure how this happened:

Caused by: java.nio.file.FileAlreadyExistsException: /home/********/.local/share/PrismLauncher/instances/Aethyria-Base/.minecraft/config
TropheusJ commented 3 months ago

The config API is creating the config directory. Normally, it creates it if missing, or does nothing if it already exists. However, if a file of that name exists, this error is thrown.

Are you sure your link is set up correctly? It’s not being interpreted as one.

The code is as simple as it gets, if its not handing symlinks properly then I can guarantee pretty much every other config library that exists is broken too.

TheAyes commented 3 months ago

The link is working properly in my explorer. I did nothing other than a plain ln -s ~/mySourceConfig ./config

image

And the forgeconfigapiport file is also successfully being saved here.

TheAyes commented 3 months ago

The Java docs mention that Symlinks should be properly supported. Maybe it's a different issue?

TheAyes commented 3 months ago

So I've asked a friend on windows to verify my setup on windows which does indeed work...

Sooo... I'd assume that some issue with Java x Linux. There's nothing else for me left to assume otherwise.

I've also verified that it works without symlinks on my machine.

TheAyes commented 3 months ago

UPDATE: It's literally a JDK Issue. I'm unsure wheter or not it's only OpenJDK or even the proprietary one. Using OpenJDK21 instead of 17 fixes the issue. I had to turn of the Compatibility Check in Prism which enforces Version 17 tho.

Since I figured this issues is nothing to be resolved by you guys I'll consider this ticket to be resolved. :)

I might even try the proprietary JDK a bit later now that I know how I can get it to work. I'll be back~