Jump to content

missing class when loading coremod :\ wtfbbq


hydroflame

Recommended Posts

hey guys, im trying to make a coremod for 1.6.2 but when i insert the coremod into the mods folders and launch the game i get a ClassNotFoundException on cpw.mods.fml.common.asm.FMLSanityChecker

 

my log:

 

Launcher 1.2.1 (through bootstrap 5) started on windows...

Current time is Aug 4, 2013 1:54:17 PM

System.getProperty('os.name') == 'Windows 7'

System.getProperty('os.version') == '6.1'

System.getProperty('os.arch') == 'amd64'

System.getProperty('java.version') == '1.7.0_09'

System.getProperty('java.vendor') == 'Oracle Corporation'

System.getProperty('sun.arch.data.model') == '64'

Loaded 2 profile(s); selected 'Forge'

Refreshing auth...

Logging in with access token

Delta time to compare resources: 366 ms

Download job 'Resources' skipped as there are no files to download

Job 'Resources' finished successfully

Getting syncinfo for selected version

Queueing library & version downloads

Download job 'Version & Libraries' started (8 threads, 24 files)

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.2.2\gson-2.2.2.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\14.0\guava-14.0.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\argo\argo\2.25_fixed\argo-2.25_fixed.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\minecraft\launchwrapper\1.3\launchwrapper-1.3.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl-platform\2.9.0\lwjgl-platform-2.9.0-natives-windows.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\bouncycastle\bcprov-jdk15on\1.47\bcprov-jdk15on-1.47.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-all\4.1\asm-all-4.1.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\java\jinput\jinput-platform\2.0.5\jinput-platform-2.0.5-natives-windows.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar for job 'Version & Libraries': Used own copy as it matched etag

Finished downloading C:\Users\Hydroflame\AppData\Roaming\.minecraft\versions\1.6.2-Forge9.10.0.804\1.6.2-Forge9.10.0.804.jar for job 'Version & Libraries': Couldn't connect to server (responded with 403) but have local file, assuming it's good

Job 'Version & Libraries' finished successfully

Launching game

Looking for old natives to clean up...

Unpacking natives to C:\Users\Hydroflame\AppData\Roaming\.minecraft\versions\1.6.2-Forge9.10.0.804\1.6.2-Forge9.10.0.804-natives-9023328903276

Launching in C:\Users\Hydroflame\AppData\Roaming\.minecraft

Running C:\Program Files\Java\jre7\bin\javaw.exe -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx1G -Djava.library.path=C:\Users\Hydroflame\AppData\Roaming\.minecraft\versions\1.6.2-Forge9.10.0.804\1.6.2-Forge9.10.0.804-natives-9023328903276 -cp C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\minecraftforge\minecraftforge\9.10.0.804\minecraftforge-9.10.0.804.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\minecraft\launchwrapper\1.3\launchwrapper-1.3.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-all\4.1\asm-all-4.1.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\argo\argo\2.25_fixed\argo-2.25_fixed.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\bouncycastle\bcprov-jdk15on\1.47\bcprov-jdk15on-1.47.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\14.0\guava-14.0.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.2.2\gson-2.2.2.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;C:\Users\Hydroflame\AppData\Roaming\.minecraft\versions\1.6.2-Forge9.10.0.804\1.6.2-Forge9.10.0.804.jar net.minecraft.launchwrapper.Launch --username hydroflame --session token:c087de3764424947aca3446a8e7799b6:dbe325f76d3e47eeab107c8dddeff4f3 --version 1.6.2-Forge9.10.0.804 --gameDir C:\Users\Hydroflame\AppData\Roaming\.minecraft --assetsDir C:\Users\Hydroflame\AppData\Roaming\.minecraft\assets --tweakClass cpw.mods.fml.common.launcher.FMLTweaker

Client> Aug 04, 2013 1:54:25 PM net.minecraft.launchwrapper.LogWrapper log

Client> INFO: Using tweak class name cpw.mods.fml.common.launcher.FMLTweaker

Client> 2013-08-04 13:54:25 [iNFO] [ForgeModLoader] Forge Mod Loader version 6.2.35.804 for Minecraft 1.6.2 loading

Client> 2013-08-04 13:54:25 [iNFO] [ForgeModLoader] Java is Java HotSpot 64-Bit Server VM, version 1.7.0_09, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7

Client> 2013-08-04 13:54:25 [WARNING] [ForgeModLoader] The coremod com.hydroflame.asm2.ForgeRevCore does not have a MCVersion annotation, it may cause issues with this version of Minecraft

Client> 2013-08-04 13:54:25 [iNFO] [sTDOUT] Loaded 39 rules from AccessTransformer config file fml_at.cfg

Client> 2013-08-04 13:54:25 [iNFO] [sTDOUT] Loaded 107 rules from AccessTransformer config file forge_at.cfg

Client> 2013-08-04 13:54:25 [sEVERE] [ForgeModLoader] Unable to launch

Client> java.lang.RuntimeException: java.lang.ClassNotFoundException: cpw.mods.fml.common.asm.FMLSanityChecker

Client> at cpw.mods.fml.relauncher.CoreModManager.injectTransformers(CoreModManager.java:402)

Client> at cpw.mods.fml.relauncher.FMLLaunchHandler.injectPostfixTransformers(FMLLaunchHandler.java:108)

Client> at cpw.mods.fml.relauncher.FMLLaunchHandler.appendCoreMods(FMLLaunchHandler.java:113)

Client> at cpw.mods.fml.common.launcher.FMLTweaker.injectIntoClassLoader(FMLTweaker.java:78)

Client> at net.minecraft.launchwrapper.Launch.launch(Launch.java:51)

Client> at net.minecraft.launchwrapper.Launch.main(Launch.java:18)

Client> Caused by: java.lang.ClassNotFoundException: cpw.mods.fml.common.asm.FMLSanityChecker

Client> at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:179)

Client> at java.lang.ClassLoader.loadClass(Unknown Source)

Client> at java.lang.ClassLoader.loadClass(Unknown Source)

Client> at java.lang.Class.forName0(Native Method)

Client> at java.lang.Class.forName(Unknown Source)

Client> at cpw.mods.fml.relauncher.CoreModManager.injectTransformers(CoreModManager.java:391)

Client> ... 5 more

Client> Caused by: java.lang.NullPointerException

Client> at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:171)

Client> ... 10 more

Game ended with no troubles detected (exit code 0)

Deleting C:\Users\Hydroflame\AppData\Roaming\.minecraft\versions\1.6.2-Forge9.10.0.804\1.6.2-Forge9.10.0.804-natives-9023328903276

 

 

 

my IFMLoadingPlugin:

package com.hydroflame.asm2;

import java.io.File;
import java.util.Map;

import cpw.mods.fml.relauncher.IFMLLoadingPlugin;

public class ForgeRevCore implements IFMLLoadingPlugin{

public static File location;
@Override
@Deprecated
public String[] getLibraryRequestClass() {
	return null;
}

@Override
public String[] getASMTransformerClass() {
	System.out.println("returning the transformer class");
	return new String[]{ForgeRevTransformer.class.getName()};
}

@Override
public String getModContainerClass() {
	return null;
}

@Override
public String getSetupClass() {
	return null;
}

@Override
public void injectData(Map<String, Object> data) {
	System.out.println("setting the location file");
	location = (File) data.get("coremodLocation");
}

}

 

transformer class:

package com.hydroflame.asm2;

import java.io.File;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

import net.minecraft.launchwrapper.IClassTransformer;

public class ForgeRevTransformer implements IClassTransformer {

@Override
public byte[] transform(String name, String obfName, byte[] bytecode) {
	if (name.equals("net.minecraft.client.Minecraft")||name.equals("ats")) {
		bytecode = patchClassInJar(name, bytecode, obfName, ForgeRevCore.location);
	}
	return null;
}

private byte[] patchClassInJar(String name, byte[] bytes, String ObfName,
		File location) {
	try {
		// open the jar as zip
		ZipFile zip = new ZipFile(location);
		// find the file inside the zip that is called te.class or
		// net.minecraft.entity.monster.EntityCreeper.class
		// replacing the . to / so it would look for
		// net/minecraft/entity/monster/EntityCreeper.class
		ZipEntry entry = zip.getEntry(name.replace('.', '/') + ".class");

		if (entry == null) {
			System.out.println(name + " not found in " + location.getName());
		} else {

			// serialize the class file into the bytes array
			InputStream zin = zip.getInputStream(entry);
			bytes = new byte[(int) entry.getSize()];
			zin.read(bytes);
			zin.close();
			System.out.println("[" + "ForgeRevCore" + "]: " + "Class "+ name + " patched!");
		}
		zip.close();
	} catch (Exception e) {
		throw new RuntimeException("Error overriding " + name + " from "+ location.getName(), e);
	}

	// return the new bytes
	return bytes;
}

}

 

coremod.jar structure:

*META-INF

**MANIFEST.MF

*ats.class

*net

**minecraft

***client

****Minecraft.class

 

i looked into versions/1.6.2-Forge9.10.0.804 and effectivelly the class is not there but i used the installer.

 

not sure why/where i screwed up

 

i based my method off this tutorial:

http://www.minecraftforum.net/topic/1854988-tutorial-162-changing-vanilla-without-editing-base-classes-coremods-and-events-very-advanced/

the "replcaing a whole miencraft class" part

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Link to comment
Share on other sites

i might be wrong but i kindof doubt that because it would mean that people would HAVE to add option to launch. Afaik mods/coremods are suppose to be a drag n drop thing and adding this kind of option inside the coremod wouldnt make sens as java is already launched when this file is read.

 

maybe im wrong though

 

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Link to comment
Share on other sites

Are you sure you can return null there ?

@Override
public String getModContainerClass() {
	return null;
}

@Override
public String getSetupClass() {
	return null;
}

 

Mod container class is only required if you want to have mod metadata. In which case he doesn't (I know this because I do). Stup class... I made a coremod for 1.6.2 and didn't have that running either. So no its not needed. A coremod is like a paxel. It is a lot of different functions all put together. In this case though, all those methods are like the mould needed for the paxel, but I only want the shovel part of it. I also only have that mould. So I only fill in the shovel section. Simple as that.

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Link to comment
Share on other sites

ding ding ding, bonus point to GotoLink because im an idiot who cant search properly, i am returning null in my transform method meaning every class that gets through will be erased causing the class to simply not exists

 

xD derp mode enabled

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Link to comment
Share on other sites

Well maybe you can help him more than i ?

 

I found this thread with same issue here

 

Not really :P

 

ding ding ding, bonus point to GotoLink because im an idiot who cant search properly, i am returning null in my transform method meaning every class that gets through will be erased causing the class to simply not exists

 

xD derp mode enabled

 

Well, not quite the methods that affected the transformer classes, but still. Good call Gotolink :D

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Link to comment
Share on other sites

all good ^^

 

to future reader, if you need to change "net.minecraft.client.Minecraft" via ASM, good luck ^^ i was never able to do it i foudn another way around doing what i wanted (version 1.6.2)

at least its not feasable via replacing the whole class

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.