Change the cache directory - Shadowrs/osrs-refactor-revision-1 GitHub Wiki

Search for

user.home

to find this code:

System.getProperty("user.home");

Will find you the code which creates the cache files, .idx and .dat2, and also the random.dat and settings file.

try {
	Class24.anInt238 = 16;
	Class16.anInt116 = var14;

	try {
		Class64.aString513 = System.getProperty("os.name");
	} catch (final Exception var20) {
		Class64.aString513 = "Unknown";
	}

	Class90.aString716 = Class64.aString513.toLowerCase();

	try {
		Class104_Sub23.aString1181 = System.getProperty("user.home");
		if (null != Class104_Sub23.aString1181)
			Class104_Sub23.aString1181 = Class104_Sub23.aString1181 + "/";
	} catch (final Exception var19) {
		;
	}

	try {
		if (Class90.aString716.startsWith("win")) {
			if (Class104_Sub23.aString1181 == null)
				Class104_Sub23.aString1181 = System.getenv("USERPROFILE");
		} else if (null == Class104_Sub23.aString1181)
			Class104_Sub23.aString1181 = System.getenv("HOME");

		if (Class104_Sub23.aString1181 != null)
			Class104_Sub23.aString1181 = Class104_Sub23.aString1181 + "/";
	} catch (final Exception var18) {
		;
	}

	if (null == Class104_Sub23.aString1181)
		Class104_Sub23.aString1181 = "~/";

	Class49.aStringArray415 = new String[] { "c:/rscache/", "/rscache/", "c:/windows/", "c:/winnt/", "c:/",
			Class104_Sub23.aString1181, "/tmp/", "" };
	Class7.aStringArray40 = new String[] { ".jagex_cache_" + Class16.anInt116,
			".file_store_" + Class16.anInt116 };

	label129: for (var3 = 0; var3 < 4; ++var3) {
		Class24.aFile239 = Class70.method325("oldschool", var22, var3);
		if (!Class24.aFile239.exists())
			Class24.aFile239.mkdirs();

		final File[] var23 = Class24.aFile239.listFiles();
		if (var23 == null)
			break;

		final File[] var24 = var23;
		int var16 = 0;

		while (true) {
			if (var16 >= var24.length)
				break label129;

			final File var29 = var24[var16];

			boolean var30;
			try {
				final RandomAccessFile var26 = new RandomAccessFile(var29, "rw");
				var9 = var26.read();
				var26.seek(0L);
				var26.write(var9);
				var26.seek(0L);
				var26.close();
				var30 = true;
			} catch (final Exception var17) {
				var30 = false;
			}

			if (!var30)
				break;

			++var16;
		}
	}

	Class72.method333(Class24.aFile239);
	Class89.method406();
	Class24.aClass96_242 = new Class96(
			new Class94(Class75.method341("main_file_cache.dat2"), "rw", 1048576000L), 5200, 0);
	Class24.aClass96_243 = new Class96(
			new Class94(Class75.method341("main_file_cache.idx255"), "rw", 1048576L), 6000, 0);
	Class22.aClass96Array227 = new Class96[Class24.anInt238];

	for (var3 = 0; var3 < Class24.anInt238; ++var3)
		Class22.aClass96Array227[var3] = new Class96(
				new Class94(Class75.method341("main_file_cache.idx" + var3), "rw", 1048576L), 6000, 0);
} catch (final Exception var21) {
	Class104_Sub9.method520((String) null, var21);
}

At this point, you can rename some classes and variables. Start off at the top.

Rename this variable to osName

Class64.aString513 = System.getProperty("os.name");

Rename aString1181 to userHome

Class104_Sub23.aString1181 = System.getProperty("user.home");

Further down, modify this String array to change rscache to something unique:

Class49.aStringArray415 = new String[] { "c:/servername-cache/", "/servername-cache/", "c:/windows/", "c:/winnt/", "c:/",
			Class104_Sub23.aString1181, "/tmp/", "" };

Below that, either remove completely or change the name of this String paramater. It is the subdirectory within the above location.

Class24.aFile239 = Class70.method325("subdir-name", var22, var3);

or for no sub-directory:

Class24.aFile239 = Class70.method325("", var22, var3);

Optional

At the very bottom is where the file system is initialised. Rename these classes to match:

Class24.maindata = new FSManager( new JagFS(Class75.method341("main_file_cache.dat2"), "rw", 1048576000L), 5200, 0);
Class24.idx255 = new FSManager(new JagFS(Class75.method341("main_file_cache.idx255"), "rw", 1048576L), 6000, 0);
Class22.managers = new FSManager[Class24.idxCount];

Use google to read more about the cache format which OSRS uses. This file system (the system that manages cache files) has a different structure to pre-400 (317, 377s etc) and are therefore incompatible.