ejektaflex / Kambrik

A Lightweight Kotlin-Fabric Library
https://kambrik.ejekta.io/
10 stars 4 forks source link

I got an issue when using it. #6

Closed SirPytan closed 2 years ago

SirPytan commented 2 years ago

Here the Log file, I will also add a screenshot: https://paste.ee/p/1nJFK

image

ejektaflex commented 2 years ago
Caused by: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "net.minecraft.class_2960.moenchantments$oldIdentifier" is null
    at net.minecraft.class_2960.handler$bpe000$moenchantments_fix_id(class_2960.java:1517)
    at net.minecraft.class_2960.<init>(class_2960.java:34)
    at net.minecraft.class_2960.<init>(class_2960.java:50)
    at net.minecraft.class_2583.<clinit>(class_2583.java:23)

I believe that it is Mo' Enchantments causing this problem. I'm not sure what they're doing during my prelaunch, but something of theirs causes crashes when it's run before it is supposed to. Seems to be that they are mixing into the Identifier class and the mixin fails.

They're using a weird hack to rewrite Identifiers during runtime whenever they encounter an old Identifier, probably because they don't use the old one anymore and this is a weird attempt to keep old version compatibility... And this solution is not what I would recommend, as clever as it is.

At the end of the day, using Identifiers during prelaunch is sensible and does not require a Minecraft context - their mixin is causing the crash, so it's a Mo Enchantments problem.

I'm also transferring this issue to the Kambrik repository, since this is the repo for the docs :)

SirPytan commented 2 years ago

Ok, thanks, did you transfer it to their Github? Just saw they are on GitLab.

ejektaflex commented 2 years ago

I did not - but I saw that you did - thank you for doing so!