import org.schema.game.network.objects.*;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Iterator;

public class StarMadeExtractor {

	public static void main(String[] argv) {
		String classes[] = {"org.schema.game.network.objects.NetworkShip"};

		for (String cname : classes) {
			try {
				Class<?> c = Class.forName(cname);
				String[] fields = new String[c.getFields().length];
				for (int i=0; i<fields.length; i++) {
					fields[i] = c.getFields()[i].getName();
				}

				assert (fields.length < 127);
				Arrays.sort(fields);

				System.out.println("+" + c.getSimpleName());
				for (String str : fields) {
					System.out.println(str);
				}
				System.out.println("-" + c.getSimpleName());
			}
			catch (ClassNotFoundException x) {
				x.printStackTrace();
			}
		}
	}
}
@@ -4,43 +4,87 @@
 ort 
-org.schema.game.network.objects.*;%0A
+java.io.File;%0Aimport java.io.FileNotFoundException;%0Aimport java.io.IOException;
 %0Aimp
@@ -128,19 +128,47 @@
 ava.
-util.Arrays
+net.URLClassLoader;%0Aimport java.net.URL
 ;%0Aim
@@ -186,16 +186,14 @@
 til.
-Iterator
+Arrays
 ;%0A%0Ap
@@ -337,19 +337,268 @@
 Ship%22%7D;%0A
+%09%09
 %0A%09%09
+try %7B%0A%09%09%09File file = new File(argv%5B0%5D);%0A%09%09%09if( !file.exists() )%0A%09%09%09%09throw new FileNotFoundException(file.getPath());%0A%09%09%09URLClassLoader loader = new URLClassLoader (new URL%5B%5D %7B file.toURI().toURL() %7D, StarMadeExtractor.class.getClassLoader());%0A%0A%09%09%09
 for (Str
@@ -621,17 +621,8 @@
 ses)
- %7B%0A%09%09%09try
  %7B%0A%09
@@ -656,16 +656,30 @@
 me(cname
+, true, loader
 );%0A%09%09%09%09S
@@ -1054,16 +1054,20 @@
 );%0A%09%09%09%7D%0A
+%09%09%7D%0A
 %09%09%09catch
@@ -1097,16 +1097,70 @@
 n x) %7B%0A%09
+%09%09x.printStackTrace();%0A%09%09%7D%0A%09%09%09catch (IOException x) %7B%0A
 %09%09%09x.pri
@@ -1175,21 +1175,16 @@
 race();%0A
-%09%09%09%7D%0A
 %09%09%7D%0A%09%7D%0A%7D

use class loader