ModularMods / ModularWarfare

Gun mod & more - Minecraft 1.12.2
Other
39 stars 26 forks source link

Mismatching jars between github and curseforge renders mod not-usable on SERVERS #37

Open Burchard36 opened 2 years ago

Burchard36 commented 2 years ago

Error:

java.lang.NoClassDefFoundError: scala/actors/threadpool/Arrays
    at com.modularwarfare.utility.DevGui.<init>(DevGui.java:39)
    at com.modularwarfare.client.handler.RenderGuiHandler.onRenderGui(RenderGuiHandler.java:23)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_2867_RenderGuiHandler_onRenderGui_Post.invoke(.dynamic)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
    at net.minecraftforge.client.GuiIngameForge.post(GuiIngameForge.java:911)
    at net.minecraftforge.client.GuiIngameForge.renderExperience(GuiIngameForge.java:609)
    at net.minecraftforge.client.GuiIngameForge.func_175180_a(GuiIngameForge.java:169)
    at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1098)
    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1119)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398)
    at net.minecraft.client.main.Main.main(SourceFile:123)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

Im using the latest version, 1.1.1 from curseforge

Burchard36 commented 2 years ago

Okay some more info:

Obviously 1.12.2

I tried this in singleplayer, i can hold the guns just fine

When joining on my multiplayer server; i receive that crash message above

Burchard36 commented 2 years ago

Found the issue! It appears the sources from github and curseforge are mismatched. I decompiled the 1.1.1 and 1.1.0 jar and they both use the scala import

image

While in the GitHub source here: https://github.com/ModularMods/ModularWarfare/blob/9560958d651ec825ff0f3d4e4b04ee4e684bf253/src/main/java/com/modularwarfare/utility/DevGui.java#L16 It uses the standard java.util import

According to #11 this was removed, so this would lead to that error.

Can we please have github source pushed to curseforge so this error may not persist? And yes scala is isntalled in my /libraries folder, so not entirely sure why this would throw an error (It only crashes the client, not the sever)

Burchard36 commented 2 years ago

Okay update: I compiled the latest source on github and ran it on my CLIENT.

On the server i am using the curseforge 1.1.1 version. Appears using the compiled source on both ends of the game doesn't really work, got "Fatally missing registries" or a similar error when trying to play multiplayer.

However, using curseforge's jar on the server and the compiled source works good for both singleplayer and multiplayer on the client. Im not sure if the jar between github and curseforge is different for a reason? Or is it some oversight when deploying on curseforge?

Protoxy22 commented 2 years ago

It is normal that the latest curseforge release (january 2022) doesn't match with the github repository.

Burchard36 commented 2 years ago

It is normal that the latest curse forge release (january 2022) doesn't match with the github repository.

Is there by any chance, that a version can be pushed to curse forge that implements the java,util import instead of the scala one? Using the jar from curse forge leads to the crash listed above

Using the jar compiled on GitHub works wonderfully (Besides some scopes disappearing when ADSing, but im not too worried about it right now) however, I am unable to upload my modpack to CurseForge because of this, as they deny any modpacks using any type of custom jar image

Or is there something I'm doing wrong when installing the client side for this mod? It doesn't make sense that the client crashes with a scala error when connected to a server, but it doesn't when in singleplayer. Maybe Scala is only provided to the server and not the client, and in singleplayer the client's internal server is providing Scala at that time to the client? I'm using forge version 14.23.5.2860, I havent tried with 2859 yet though as another mod im using (NuclearCraft needs 2860)