summaryrefslogtreecommitdiff
path: root/NET/worlds/scape/WorldScriptLoader.java
blob: e323e7807e63e9b283bf5eff6c1b00dd72be1601 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
/*     */ package NET.worlds.scape;
/*     */ 
/*     */ import java.io.PrintStream;
/*     */ import java.util.Hashtable;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ class WorldScriptLoader
/*     */   extends ClassLoader
/*     */ {
/*  19 */   Hashtable<String, Class<?>> 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:<init>	(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:<init>	(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:<init>	(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:<init>	(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:<init>	(Ljava/lang/String;)V
/*     */     //   234: astore 9
/*     */     //   236: new 111	java/io/FileInputStream
/*     */     //   239: dup
/*     */     //   240: aload 9
/*     */     //   242: invokespecial 113	java/io/FileInputStream:<init>	(Ljava/io/File;)V
/*     */     //   245: astore 10
/*     */     //   247: sipush 1024
/*     */     //   250: newarray <illegal type>
/*     */     //   252: astore 11
/*     */     //   254: new 116	java/io/ByteArrayOutputStream
/*     */     //   257: dup
/*     */     //   258: invokespecial 118	java/io/ByteArrayOutputStream:<init>	()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
 */