/* */ package NET.worlds.scape; /* */ /* */ import java.io.PrintStream; /* */ import java.util.Hashtable; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ class WorldScriptLoader /* */ extends ClassLoader /* */ { /* 19 */ Hashtable> cache = new Hashtable(); /* */ String lastWorldName; /* */ /* */ /* Error */ /* */ private byte[] loadClassData(String name) /* */ { /* */ // Byte code: /* */ // 0: ldc 27 /* */ // 2: astore_2 /* */ // 3: aload_1 /* */ // 4: aload_2 /* */ // 5: invokevirtual 29 java/lang/String:startsWith (Ljava/lang/String;)Z /* */ // 8: ifeq +12 -> 20 /* */ // 11: aload_1 /* */ // 12: aload_2 /* */ // 13: invokevirtual 35 java/lang/String:length ()I /* */ // 16: invokevirtual 39 java/lang/String:substring (I)Ljava/lang/String; /* */ // 19: astore_1 /* */ // 20: aload_1 /* */ // 21: ldc 43 /* */ // 23: invokevirtual 45 java/lang/String:indexOf (Ljava/lang/String;)I /* */ // 26: istore_3 /* */ // 27: iload_3 /* */ // 28: iconst_m1 /* */ // 29: if_icmpne +8 -> 37 /* */ // 32: iconst_0 /* */ // 33: istore_3 /* */ // 34: goto +18 -> 52 /* */ // 37: iload_3 /* */ // 38: new 30 java/lang/String /* */ // 41: dup /* */ // 42: ldc 43 /* */ // 44: invokespecial 49 java/lang/String: (Ljava/lang/String;)V /* */ // 47: invokevirtual 35 java/lang/String:length ()I /* */ // 50: iadd /* */ // 51: istore_3 /* */ // 52: aload_1 /* */ // 53: ldc 52 /* */ // 55: invokevirtual 45 java/lang/String:indexOf (Ljava/lang/String;)I /* */ // 58: istore 4 /* */ // 60: iload_3 /* */ // 61: ifne +10 -> 71 /* */ // 64: aload_0 /* */ // 65: getfield 54 NET/worlds/scape/WorldScriptLoader:lastWorldName Ljava/lang/String; /* */ // 68: ifnonnull +51 -> 119 /* */ // 71: iload 4 /* */ // 73: iconst_m1 /* */ // 74: if_icmpeq +15 -> 89 /* */ // 77: aload_1 /* */ // 78: iload_3 /* */ // 79: iload 4 /* */ // 81: invokevirtual 56 java/lang/String:substring (II)Ljava/lang/String; /* */ // 84: astore 5 /* */ // 86: goto +68 -> 154 /* */ // 89: aload_1 /* */ // 90: iload_3 /* */ // 91: invokevirtual 39 java/lang/String:substring (I)Ljava/lang/String; /* */ // 94: astore 5 /* */ // 96: new 59 java/lang/StringBuilder /* */ // 99: dup /* */ // 100: aload_1 /* */ // 101: invokestatic 61 java/lang/String:valueOf (Ljava/lang/Object;)Ljava/lang/String; /* */ // 104: invokespecial 65 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 107: ldc 52 /* */ // 109: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 112: invokevirtual 70 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 115: astore_1 /* */ // 116: goto +38 -> 154 /* */ // 119: aload_0 /* */ // 120: getfield 54 NET/worlds/scape/WorldScriptLoader:lastWorldName Ljava/lang/String; /* */ // 123: astore 5 /* */ // 125: aload_1 /* */ // 126: ldc 52 /* */ // 128: invokevirtual 74 java/lang/String:endsWith (Ljava/lang/String;)Z /* */ // 131: ifne +23 -> 154 /* */ // 134: new 59 java/lang/StringBuilder /* */ // 137: dup /* */ // 138: aload_1 /* */ // 139: invokestatic 61 java/lang/String:valueOf (Ljava/lang/Object;)Ljava/lang/String; /* */ // 142: invokespecial 65 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 145: ldc 52 /* */ // 147: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 150: invokevirtual 70 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 153: astore_1 /* */ // 154: new 59 java/lang/StringBuilder /* */ // 157: dup /* */ // 158: invokestatic 77 NET/worlds/network/NetUpdate:getUpgradeServerURL ()Ljava/lang/String; /* */ // 161: invokestatic 61 java/lang/String:valueOf (Ljava/lang/Object;)Ljava/lang/String; /* */ // 164: invokespecial 65 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 167: aload 5 /* */ // 169: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 172: ldc 82 /* */ // 174: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 177: aload_1 /* */ // 178: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 181: invokevirtual 70 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 184: invokestatic 84 NET/worlds/network/URL:make (Ljava/lang/String;)LNET/worlds/network/URL; /* */ // 187: astore 6 /* */ // 189: aload 6 /* */ // 191: iconst_1 /* */ // 192: invokestatic 90 NET/worlds/network/Cache:getFile (LNET/worlds/network/URL;Z)LNET/worlds/network/CacheFile; /* */ // 195: astore 7 /* */ // 197: aload 7 /* */ // 199: invokevirtual 96 NET/worlds/network/CacheFile:waitUntilLoaded ()V /* */ // 202: aload 7 /* */ // 204: invokevirtual 101 NET/worlds/network/CacheFile:error ()Z /* */ // 207: ifeq +5 -> 212 /* */ // 210: aconst_null /* */ // 211: areturn /* */ // 212: aload_0 /* */ // 213: aload 5 /* */ // 215: putfield 54 NET/worlds/scape/WorldScriptLoader:lastWorldName Ljava/lang/String; /* */ // 218: aload 7 /* */ // 220: invokevirtual 105 NET/worlds/network/CacheFile:getLocalName ()Ljava/lang/String; /* */ // 223: astore 8 /* */ // 225: new 108 java/io/File /* */ // 228: dup /* */ // 229: aload 8 /* */ // 231: invokespecial 110 java/io/File: (Ljava/lang/String;)V /* */ // 234: astore 9 /* */ // 236: new 111 java/io/FileInputStream /* */ // 239: dup /* */ // 240: aload 9 /* */ // 242: invokespecial 113 java/io/FileInputStream: (Ljava/io/File;)V /* */ // 245: astore 10 /* */ // 247: sipush 1024 /* */ // 250: newarray /* */ // 252: astore 11 /* */ // 254: new 116 java/io/ByteArrayOutputStream /* */ // 257: dup /* */ // 258: invokespecial 118 java/io/ByteArrayOutputStream: ()V /* */ // 261: astore 12 /* */ // 263: aload 10 /* */ // 265: aload 11 /* */ // 267: invokevirtual 119 java/io/FileInputStream:read ([B)I /* */ // 270: istore 13 /* */ // 272: iload 13 /* */ // 274: iconst_m1 /* */ // 275: if_icmpne +6 -> 281 /* */ // 278: goto +18 -> 296 /* */ // 281: aload 12 /* */ // 283: aload 11 /* */ // 285: iconst_0 /* */ // 286: iload 13 /* */ // 288: invokevirtual 123 java/io/ByteArrayOutputStream:write ([BII)V /* */ // 291: goto -28 -> 263 /* */ // 294: astore 13 /* */ // 296: aload 10 /* */ // 298: invokevirtual 127 java/io/FileInputStream:close ()V /* */ // 301: aload 12 /* */ // 303: invokevirtual 130 java/io/ByteArrayOutputStream:toByteArray ()[B /* */ // 306: areturn /* */ // 307: astore 9 /* */ // 309: aconst_null /* */ // 310: areturn /* */ // Line number table: /* */ // Java source line #26 -> byte code offset #0 /* */ // Java source line #27 -> byte code offset #3 /* */ // Java source line #28 -> byte code offset #11 /* */ // Java source line #32 -> byte code offset #20 /* */ // Java source line #33 -> byte code offset #27 /* */ // Java source line #34 -> byte code offset #32 /* */ // Java source line #35 -> byte code offset #34 /* */ // Java source line #36 -> byte code offset #37 /* */ // Java source line #38 -> byte code offset #52 /* */ // Java source line #41 -> byte code offset #60 /* */ // Java source line #42 -> byte code offset #71 /* */ // Java source line #43 -> byte code offset #77 /* */ // Java source line #44 -> byte code offset #86 /* */ // Java source line #45 -> byte code offset #89 /* */ // Java source line #46 -> byte code offset #96 /* */ // Java source line #48 -> byte code offset #116 /* */ // Java source line #49 -> byte code offset #119 /* */ // Java source line #50 -> byte code offset #125 /* */ // Java source line #51 -> byte code offset #134 /* */ // Java source line #56 -> byte code offset #154 /* */ // Java source line #59 -> byte code offset #189 /* */ // Java source line #60 -> byte code offset #197 /* */ // Java source line #61 -> byte code offset #202 /* */ // Java source line #62 -> byte code offset #210 /* */ // Java source line #65 -> byte code offset #212 /* */ // Java source line #66 -> byte code offset #218 /* */ // Java source line #69 -> byte code offset #225 /* */ // Java source line #71 -> byte code offset #236 /* */ // Java source line #73 -> byte code offset #247 /* */ // Java source line #75 -> byte code offset #254 /* */ // Java source line #79 -> byte code offset #263 /* */ // Java source line #80 -> byte code offset #272 /* */ // Java source line #81 -> byte code offset #278 /* */ // Java source line #82 -> byte code offset #281 /* */ // Java source line #83 -> byte code offset #291 /* */ // Java source line #88 -> byte code offset #296 /* */ // Java source line #89 -> byte code offset #301 /* */ // Java source line #90 -> byte code offset #307 /* */ // Java source line #91 -> byte code offset #309 /* */ // Local variable table: /* */ // start length slot name signature /* */ // 0 311 0 this WorldScriptLoader /* */ // 0 311 1 name String /* */ // 2 11 2 prefix String /* */ // 26 65 3 nameIdx int /* */ // 58 22 4 extIdx int /* */ // 84 3 5 worldName String /* */ // 94 3 5 worldName String /* */ // 123 91 5 worldName String /* */ // 187 3 6 scriptURL NET.worlds.network.URL /* */ // 195 24 7 f NET.worlds.network.CacheFile /* */ // 223 7 8 fileName String /* */ // 234 7 9 file java.io.File /* */ // 307 3 9 e Exception /* */ // 245 52 10 fis java.io.FileInputStream /* */ // 252 32 11 buffer byte[] /* */ // 261 41 12 os java.io.ByteArrayOutputStream /* */ // 270 17 13 bytesRead int /* */ // 294 1 13 localException1 Exception /* */ // Exception table: /* */ // from to target type /* */ // 263 278 294 java/lang/Exception /* */ // 281 291 294 java/lang/Exception /* */ // 225 306 307 java/lang/Exception /* */ } /* */ /* */ public synchronized Class loadClass(String name, boolean resolve) /* */ { /* 99 */ Class c = (Class)this.cache.get(name); /* 100 */ if (c == null) { /* 101 */ byte[] data = null; /* */ /* 103 */ if (!name.startsWith("java.")) { /* 104 */ data = loadClassData(name); /* */ } /* */ /* 107 */ if (data == null) { /* */ try { /* 109 */ return findSystemClass(name); /* */ } catch (Error e) { /* 111 */ System.out.println("Could not load script " + name + " " + e); /* 112 */ return null; /* */ } catch (Exception e) { /* 114 */ System.out.println("Could not load script " + name + " " + e); /* 115 */ return null; /* */ } /* */ } /* 118 */ c = defineClass(null, data, 0, data.length); /* 119 */ this.cache.put(name, c); /* */ } /* 121 */ if (resolve) { /* 122 */ resolveClass(c); /* */ } /* 124 */ return c; /* */ } /* */ } /* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\WorldScriptLoader.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */