VoltzEngine-Project / Engine

Minecraft modding core lib
Other
13 stars 11 forks source link

IndustrialCraft² Incompatible #47

Closed gitgud-software closed 8 years ago

gitgud-software commented 8 years ago

Minecraft Version

1.7.10

Forge Version

10.13.4.1614

VoltzEngine Version

VoltzEngine 0.19.0b207

IndustrialCraft² Version

IndustrialCraft² 2-2.2.824

Is this the latest CurseForge build?

Yes.

Crash Log

[23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.NoClassDefFoundError: com/builtbroken/mc/lib/mod/compat/ic/ICTemplateTile [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at com.builtbroken.mc.core.asm.template.TemplateManager.load(TemplateManager.java:39) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at com.builtbroken.mc.core.EngineCoreMod.<init>(EngineCoreMod.java:30) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.reflect.Constructor.newInstance(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.Class.newInstance(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.CoreModManager.loadCoreMod(CoreModManager.java:501) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.CoreModManager.discoverCoreMods(CoreModManager.java:389) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.CoreModManager.handleLaunch(CoreModManager.java:221) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupHome(FMLLaunchHandler.java:90) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.setupClient(FMLLaunchHandler.java:67) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.FMLLaunchHandler.configureForClientLaunch(FMLLaunchHandler.java:34) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:126) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:115) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.reflect.Method.invoke(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:310) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:395) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at org.multimc.EntryPoint.listen(EntryPoint.java:170) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at org.multimc.EntryPoint.main(EntryPoint.java:54) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.ClassNotFoundException: com.builtbroken.mc.lib.mod.compat.ic.ICTemplateTile [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 24 more [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.NoClassDefFoundError: com/builtbroken/mc/prefab/tile/Tile [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.defineClass1(Native Method) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.defineClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.security.SecureClassLoader.defineClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 26 more [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.ClassNotFoundException: com.builtbroken.mc.prefab.tile.Tile [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 30 more [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.NoClassDefFoundError: com/builtbroken/mc/prefab/tile/entity/TileEntityBase [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.defineClass1(Native Method) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.defineClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.security.SecureClassLoader.defineClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 32 more [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.ClassNotFoundException: com.builtbroken.mc.prefab.tile.entity.TileEntityBase [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 36 more [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.NoClassDefFoundError: net/minecraft/tileentity/TileEntity [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.defineClass1(Native Method) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.defineClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.security.SecureClassLoader.defineClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 38 more [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.ClassNotFoundException: net.minecraft.tileentity.TileEntity [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 42 more [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.NullPointerException [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) [23:07:33] [main/INFO]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 44 more


Crash Report:

Any modern build of IndustrialCraft2 will crash when running alongside Voltz Engine, which is attempting to load compatibility but fails when it hits ICTemplateTile.java at run-time.

DarkGuardsman commented 8 years ago

Code is compiled against 2.2.817 which is a few builds behind. However, I would have expected the minor version number to change with API changes. But, knowing player he changed the API and pushed it like a normal bug fix build. I will look into it and patch it here later. For now, you can add -DenableAsmTemplates=false to your run args to disable the templates. Not sure if it will fix the crash but is worth a try.

gitgud-software commented 8 years ago

It's a much simpler problem @DarkGuardsman

Your submodule commit of BuiltBrokenScripts is too old and you need to update the submodule to a newer commit that pulls in all the stuff that's being looked for during the compilation and ignored because it isn't there.

This should fix what I'm getting.

UPDATE: No I was completely wrong.

gitgud-software commented 8 years ago

Actually nix that whole statement about this being the only problem... the fact is though, that BuiltBrokenScripts 1.6.4 was being used in a repo where buildScripts was appropriate.

dmodoomsirius commented 8 years ago

It grabs them from a GitHub raw url https://github.com/BuiltBrokenModding/VoltzEngine/blob/development/build.gradle#L30. I handle all the gradle things. IT does not depend on the submodule what so ever.

gitgud-software commented 8 years ago

Wait the project structure is starting to go right over my head. I'm wondering as to why there's a submodule now.

dmodoomsirius commented 8 years ago

The reason we keep the submodule is because of the bat files inside of the scripts folder, and yes i understand its not an orthodox setup.

dmodoomsirius commented 8 years ago

I will do some testing to see if https://github.com/BuiltBrokenModding/BuiltBrokenScripts/pull/25 fixes the issue.

gitgud-software commented 8 years ago

It definitely doesn't, having messed around with recompiling on top of the latest forge.

There doesn't seem to have been anything relevant between the latest build and *817, and based on my failure to get even the used build of IC2 to work alongside Voltz, I think the issue predates it.

dmodoomsirius commented 8 years ago

one of the ic2 devs not player did something. I am trying to review the Jenkins in my spare time to look at it.

DarkGuardsman commented 8 years ago

Looks like build 824 just came out 2 days ago, didn't think IC2 was still making builds for 1.7 since they are doing 1.8, 1.9, and 1.10 already. Either way, I have the new versions downloads and will check the code shortly. As well the issue doesn't predate 817 as I didn't add IC2 support until a few days ago. Even though we had that version in our build path for a while now.

Also @gitgud-software Looks like my local workspace is using build 823 so... this is something more than just an incompatibility issue. Something tells me its a load order issues and might take a while to fix.

DarkGuardsman commented 8 years ago

@gitgud-software try that new build when it comes out.

Note this might take a few tries to solve. As it is not an API issue with IC2, it does look like a loading order issue. As the ICTemplate I created only depends on one API class that has not changed. Meaning at runtime that class is not loaded, or the IC2 API is not loaded. As well you can still add that runtime argument to disable the ASM as it should work.

dmodoomsirius commented 8 years ago

Newest jar

All builds that are produced on our development branch can be found here http://builtbroken.com/pages/voltzengine/1.7/downloads.php

gitgud-software commented 8 years ago

New error, similar results:

https://paste.installgentoo.com/view/343a7eea

dmodoomsirius commented 8 years ago

please use something similar to http://pastebin.com I do have it in the issue_temple.md.

gitgud-software commented 8 years ago

Apologies. Just a note, this seems to have gone from a compatibility issue with IndustrialCraft2 to a straight up broken build; that last jar doesn't work, period.

DarkGuardsman commented 8 years ago

That confirms it, it's a class loading error. I'll have to read up on a few things to solve this bug as its an issue with the class loader. As it's not loading the block.class file...

dmodoomsirius commented 8 years ago

Would after:TConstruct but for IC2 work?

DarkGuardsman commented 8 years ago

@dmodoomsirius No, it's a class loading issue.

This happens with using ASM when half of the code is not loaded yet into Minecraft. So I need to code something to force Forge's class loader to get the files I need. Then that should solve the issue with loading the template with the imports it needs. I could also try to delay the loading of the template until it's being applied but it will still have the same issue :(

Also, I might not get to fix this for a day or so as I need to prioritize freelancing work right now. I'm almost done with my current project but for now use the -DenableAsmTemplates=false in your run arguments. This will shut down the loading of the templates and avoid the crash.

border999 commented 8 years ago

I must be the first to try this, or maybe my mod combination has mad this the result. This is the new breakdown that occurs when I add the above argument into my launcher. Exception in thread "main" [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.NoClassDefFoundError: openmods/api/IResultListener [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.Class.getDeclaredConstructors0(Native Method) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.Class.getConstructor0(Unknown Source) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.Class.newInstance(Unknown Source) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.registerTransformer(LaunchClassLoader.java:88) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper.injectIntoClassLoader(CoreModManager.java:108) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:115) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.ClassNotFoundException: openmods.api.IResultListener [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at java.lang.ClassLoader.loadClass(Unknown Source) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 8 more [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: Caused by: java.lang.ClassCircularityError: com/builtbroken/mc/core/asm/template/TemplateManager [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at com.builtbroken.mc.core.asm.template.ClassTransformer.transform(ClassTransformer.java:24) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) [21:03:25] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: ... 10 more

border999 commented 8 years ago

thought this wasn't really so long to go put it on pastebin

DarkGuardsman commented 8 years ago

Hmm will look into that errors some more, almost missed com.builtbroken.mc.core.asm.template.ClassTransformer.transform(ClassTransformer.java:24) at the bottom. Going to say it some odd logic with forge that I need to correct.

@dmodoomsirius Since I have yet to get to fixing this error. think you can pull the errored version off of curse... if it was uploaded that is.

DarkGuardsman commented 8 years ago

I think the issue might be resolved in the next build version https://github.com/BuiltBrokenModding/VoltzEngine/commit/8f3bd68e8c8971450b89be8720870ddd2639b78a but I still need to do a live test

DarkGuardsman commented 8 years ago

Tested and it no longer crashes in a live modpack with IC2 and VE. Will test with additional mods that use the injection system to make sure. However, I'm considering this issue resolved but you can reopen if the issue pops back up.

https://github.com/BuiltBrokenModding/VoltzEngine/commit/bae7300c7f9f1633776c5d183a3045fa97712d25 https://github.com/BuiltBrokenModding/VoltzEngine/commit/edfab0c03b1903de8c241b34ae875f4f61ed1425 https://github.com/BuiltBrokenModding/VoltzEngine/commit/838d5f6284d00715db363d92f4bb23e6f27ed248

DarkGuardsman commented 8 years ago

Can confirm no crash when interacting with MFFS machines, so looks like everything is fixed.

Note for self: Cause was a mix of loading missing classes and trying to use Engine's main logger. Fix involved remove calls to unneeded classes, changing loading, and implementing internal logger.

Side Note: Chunk Transformer might also be fixed with this patch.