diff options
| author | Fuwn <[email protected]> | 2021-05-03 16:38:41 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-05-03 16:38:41 -0700 |
| commit | e1e781bb2135ef78592226f1a3eaba4925702f1f (patch) | |
| tree | 8a5b590463ed413e1c6eabb719130e701b95ca63 /NET/worlds/core | |
| download | worlds.jar-main.tar.xz worlds.jar-main.zip | |
Diffstat (limited to 'NET/worlds/core')
| -rw-r--r-- | NET/worlds/core/Archive.java | 327 | ||||
| -rw-r--r-- | NET/worlds/core/ArchiveMaker.java | 395 | ||||
| -rw-r--r-- | NET/worlds/core/AssertionException.java | 24 | ||||
| -rw-r--r-- | NET/worlds/core/Debug.java | 25 | ||||
| -rw-r--r-- | NET/worlds/core/FastDataInput.java | 77 | ||||
| -rw-r--r-- | NET/worlds/core/Hashtable.java | 155 | ||||
| -rw-r--r-- | NET/worlds/core/IniFile.java | 83 | ||||
| -rw-r--r-- | NET/worlds/core/Recycler.java | 42 | ||||
| -rw-r--r-- | NET/worlds/core/RegKey.java | 117 | ||||
| -rw-r--r-- | NET/worlds/core/RegKeyNotFoundException.java | 26 | ||||
| -rw-r--r-- | NET/worlds/core/ServerTableManager.java | 336 | ||||
| -rw-r--r-- | NET/worlds/core/Sort.java | 152 | ||||
| -rw-r--r-- | NET/worlds/core/Std.java | 332 | ||||
| -rw-r--r-- | NET/worlds/core/Std_A.java | 11 | ||||
| -rw-r--r-- | NET/worlds/core/Std_B.java | 12 | ||||
| -rw-r--r-- | NET/worlds/core/Std_IA.java | 9 | ||||
| -rw-r--r-- | NET/worlds/core/Std_IB.java | 11 | ||||
| -rw-r--r-- | NET/worlds/core/SystemInfo.java | 161 | ||||
| -rw-r--r-- | NET/worlds/core/TestInstanceOf.java | 60 | ||||
| -rw-r--r-- | NET/worlds/core/Timer.java | 31 | ||||
| -rw-r--r-- | NET/worlds/core/TimerCallback.java | 12 |
21 files changed, 2398 insertions, 0 deletions
diff --git a/NET/worlds/core/Archive.java b/NET/worlds/core/Archive.java new file mode 100644 index 0000000..051a340 --- /dev/null +++ b/NET/worlds/core/Archive.java @@ -0,0 +1,327 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import NET.worlds.network.URL; +/* */ import java.io.BufferedInputStream; +/* */ import java.io.File; +/* */ import java.io.FileInputStream; +/* */ import java.io.IOException; +/* */ import java.io.InputStream; +/* */ import java.util.Enumeration; +/* */ import java.util.Hashtable; +/* */ import java.util.zip.ZipEntry; +/* */ import java.util.zip.ZipFile; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class Archive +/* */ { +/* */ public static final String archiveName = "content.zip"; +/* 66 */ private static Object mutex = new Object(); +/* */ +/* */ +/* 69 */ private static Object noArchive = new Object(); +/* */ +/* */ +/* 72 */ private static Hashtable<String, Object> archives = new Hashtable(); +/* */ +/* */ +/* 75 */ private static String homePrefix = URL.getHome().unalias(); +/* */ +/* */ +/* */ private ZipFile zip; +/* */ +/* */ +/* */ +/* */ public static boolean exists(String name) +/* */ { +/* 84 */ synchronized (mutex) +/* */ { +/* */ +/* 87 */ String nname = name.toLowerCase().replace('\\', '/'); +/* */ +/* */ +/* 90 */ if (nname.startsWith("./")) { +/* 91 */ nname = homePrefix + nname.substring(2); +/* */ } +/* 93 */ if (nname.startsWith(homePrefix)) { +/* 94 */ nname = nname.substring(homePrefix.length()); +/* */ +/* */ +/* 97 */ Archive arch = getOrMake(""); +/* */ +/* 99 */ if ((arch != null) && (arch.lookup(nname) != null)) { +/* 100 */ return true; +/* */ } +/* */ +/* */ +/* 104 */ int start = -1; +/* */ int end; +/* 106 */ while ((end = nname.indexOf('/', start + 1)) != -1) { int end; +/* 107 */ String path = nname.substring(0, end + 1); +/* 108 */ arch = getOrMake(path); +/* 109 */ if (arch != null) { +/* 110 */ String file = nname.substring(end + 1); +/* 111 */ if (arch.lookup(file) != null) +/* 112 */ return true; +/* */ } +/* 114 */ start = end; +/* */ } +/* */ } +/* */ +/* */ +/* 119 */ File f = new File(name); +/* 120 */ int length = (int)f.length(); +/* 121 */ if (length != 0) { +/* 122 */ return true; +/* */ } +/* */ +/* */ +/* 126 */ return false; +/* */ } +/* */ } +/* */ +/* */ private static void reallyRead(InputStream s, byte[] data) throws IOException +/* */ { +/* 132 */ int bytesRemaining = data.length; +/* 133 */ int totalBytesRead = 0; +/* */ +/* 135 */ while (bytesRemaining > 0) { +/* 136 */ int bytesRead = s.read(data, totalBytesRead, bytesRemaining); +/* 137 */ totalBytesRead += bytesRead; +/* 138 */ if (bytesRead == -1) +/* 139 */ return; +/* 140 */ bytesRemaining -= bytesRead; +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static byte[] readBinaryFile(String name) +/* */ { +/* 150 */ synchronized (mutex) +/* */ { +/* */ try +/* */ { +/* 154 */ String nname = name.toLowerCase().replace('\\', '/'); +/* */ +/* */ +/* 157 */ if (nname.startsWith("./")) { +/* 158 */ nname = homePrefix + nname.substring(2); +/* */ } +/* 160 */ if (nname.startsWith(homePrefix)) { +/* 161 */ nname = nname.substring(homePrefix.length()); +/* */ +/* */ +/* 164 */ Archive arch = getOrMake(""); +/* */ ZipEntry entry; +/* 166 */ if ((arch != null) && ((entry = arch.lookup(nname)) != null)) { +/* 167 */ return arch.load(entry); +/* */ } +/* */ +/* */ +/* 171 */ int start = -1; +/* */ int end; +/* 173 */ while ((end = nname.indexOf('/', start + 1)) != -1) { int end; +/* 174 */ String path = nname.substring(0, end + 1); +/* 175 */ arch = getOrMake(path); +/* 176 */ if (arch != null) { +/* 177 */ String file = nname.substring(end + 1); +/* 178 */ ZipEntry entry; if ((entry = arch.lookup(file)) != null) +/* 179 */ return arch.load(entry); +/* */ } +/* 181 */ start = end; +/* */ } +/* */ } +/* */ +/* */ +/* 186 */ File f = new File(name); +/* 187 */ int length = (int)f.length(); +/* 188 */ if (length != 0) { +/* 189 */ FileInputStream fis = new FileInputStream(f); +/* 190 */ byte[] data = new byte[length]; +/* 191 */ reallyRead(fis, data); +/* 192 */ fis.close(); +/* 193 */ return data; +/* */ } +/* */ +/* */ } +/* */ catch (IOException localIOException) +/* */ { +/* 199 */ return null; +/* */ } +/* */ } +/* */ } +/* */ +/* */ public static byte[] readTextFile(String name) { +/* 205 */ byte[] data = readBinaryFile(name); +/* 206 */ if (data != null) { +/* 207 */ int count = 0; +/* 208 */ for (int i = 0; i < data.length; i++) +/* 209 */ if ((data[i] == 13) && (data[(i + 1)] == 10)) { +/* 210 */ i++; +/* 211 */ count++; +/* */ } +/* 213 */ byte[] ret = new byte[data.length - count]; +/* 214 */ int j = 0; +/* 215 */ for (int i = 0; i < data.length; i++) +/* 216 */ if ((data[i] != 13) || (data[(i + 1)] != 10)) +/* 217 */ ret[(j++)] = data[i]; +/* 218 */ data = ret; +/* */ } +/* 220 */ return data; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public static void flushAll() +/* */ { +/* 228 */ synchronized (mutex) { +/* 229 */ Enumeration<Object> e = archives.elements(); +/* 230 */ while (e.hasMoreElements()) { +/* 231 */ Object o = e.nextElement(); +/* 232 */ if ((o instanceof Archive)) +/* 233 */ ((Archive)o).close(); +/* */ } +/* 235 */ archives.clear(); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ private static Archive getOrMake(String relPath) +/* */ { +/* 249 */ String archName = relPath + "content.zip"; +/* 250 */ Object obj = archives.get(archName); +/* */ +/* 252 */ if (obj == null) +/* */ { +/* */ try +/* */ { +/* 256 */ Archive arch = new Archive(archName); +/* 257 */ archives.put(archName, arch); +/* 258 */ return arch; +/* */ } +/* */ catch (IOException e) +/* */ { +/* 262 */ archives.put(archName, noArchive); +/* */ } +/* 264 */ } else if (obj != noArchive) +/* */ { +/* 266 */ return (Archive)obj; +/* */ } +/* */ +/* */ +/* 270 */ return null; +/* */ } +/* */ +/* */ private Archive(String path) throws IOException +/* */ { +/* 275 */ this.zip = new ZipFile(homePrefix + path); +/* */ } +/* */ +/* */ private void close() +/* */ { +/* */ try { +/* 281 */ this.zip.close(); +/* */ } +/* */ catch (IOException localIOException) {} +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ private ZipEntry lookup(String name) +/* */ { +/* 292 */ return this.zip.getEntry(name); +/* */ } +/* */ +/* */ +/* */ +/* */ private byte[] load(ZipEntry ent) +/* */ throws IOException +/* */ { +/* 300 */ return load(this.zip, ent); +/* */ } +/* */ +/* */ static byte[] load(ZipFile zip, ZipEntry ent) throws IOException { +/* 304 */ int size = (int)ent.getSize(); +/* 305 */ byte[] data = new byte[size]; +/* 306 */ InputStream is = zip.getInputStream(ent); +/* 307 */ if (ent.getMethod() == 0) { +/* 308 */ reallyRead(is, data); +/* */ } else { +/* 310 */ BufferedInputStream bis = new BufferedInputStream(is, 4096); +/* 311 */ for (int amt = 0; amt < size;) +/* 312 */ amt += bis.read(data, amt, size - amt); +/* 313 */ bis.close(); +/* */ } +/* 315 */ return data; +/* */ } +/* */ +/* */ static Object getMutex() { +/* 319 */ return mutex; +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Archive.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/ArchiveMaker.java b/NET/worlds/core/ArchiveMaker.java new file mode 100644 index 0000000..811bc38 --- /dev/null +++ b/NET/worlds/core/ArchiveMaker.java @@ -0,0 +1,395 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import NET.worlds.console.Console; +/* */ import NET.worlds.console.PolledDialog; +/* */ import NET.worlds.network.ProgressBar; +/* */ import NET.worlds.network.URL; +/* */ import NET.worlds.scape.FileList; +/* */ import NET.worlds.scape.Pilot; +/* */ import NET.worlds.scape.World; +/* */ import java.awt.Button; +/* */ import java.awt.Event; +/* */ import java.awt.GridBagConstraints; +/* */ import java.awt.GridBagLayout; +/* */ import java.awt.Insets; +/* */ import java.awt.Label; +/* */ import java.io.File; +/* */ import java.io.FileInputStream; +/* */ import java.io.FileOutputStream; +/* */ import java.io.IOException; +/* */ import java.text.MessageFormat; +/* */ import java.util.Enumeration; +/* */ import java.util.Vector; +/* */ import java.util.zip.CRC32; +/* */ import java.util.zip.ZipEntry; +/* */ import java.util.zip.ZipFile; +/* */ import java.util.zip.ZipOutputStream; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class ArchiveMaker +/* */ extends PolledDialog +/* */ { +/* */ private static final long serialVersionUID = -7620030251122522576L; +/* */ private static final String extensions = "cmp;mov"; +/* */ private URL sourceURL; +/* */ private String path; +/* 50 */ private Label status = new Label("", 0); +/* */ private Button goButton; +/* 52 */ private Button closeButton = new Button( +/* 53 */ Console.message("Close")); +/* 54 */ private ProgressBar progress = new ProgressBar(1); +/* */ +/* */ private boolean start; +/* */ private boolean stop; +/* */ private boolean finished; +/* */ private boolean condense; +/* */ +/* */ public ArchiveMaker(boolean condense) +/* */ { +/* 63 */ super(Console.getFrame(), null, condense ? Console.message("Condense-Files") : Console.message("Expand-Files"), true); +/* 64 */ this.condense = condense; +/* 65 */ ready(); +/* */ } +/* */ +/* */ protected void build() { +/* 69 */ String errStatus = null; +/* 70 */ Pilot pilot = Pilot.getActive(); +/* 71 */ if (pilot != null) { +/* 72 */ World world = pilot.getWorld(); +/* 73 */ if (world != null) { +/* 74 */ this.sourceURL = world.getSourceURL(); +/* 75 */ this.path = this.sourceURL.unalias(); +/* 76 */ this.path = this.path.substring(0, this.path.lastIndexOf('/')); +/* 77 */ String home = URL.getHome().unalias(); +/* 78 */ if (this.path.startsWith(home)) { +/* 79 */ File f = new File(URL.make(this.sourceURL, "content.zip") +/* 80 */ .unalias()); +/* 81 */ if (this.condense) { +/* 82 */ if (f.exists()) { +/* 83 */ errStatus = Console.message("Must-expand"); +/* */ } +/* 85 */ } else if (!f.exists()) { +/* 86 */ errStatus = Console.message("Must-condense"); +/* */ } +/* */ } else { +/* 89 */ errStatus = Console.message("Not-a-home"); +/* */ } +/* 91 */ } else { errStatus = Console.message("Cant-access-world"); +/* */ } +/* 93 */ } else { errStatus = Console.message("Cant-access-pilot"); +/* */ } +/* 95 */ GridBagLayout gbag = new GridBagLayout(); +/* 96 */ setLayout(gbag); +/* 97 */ GridBagConstraints c = new GridBagConstraints(); +/* 98 */ c.weightx = 0.0D; +/* 99 */ c.gridwidth = 1; +/* 100 */ add(gbag, new Label(Console.message("Status"), 2), c); +/* 101 */ c.weightx = 1.0D; +/* 102 */ c.gridwidth = 0; +/* 103 */ c.fill = 2; +/* 104 */ add(gbag, this.status, c); +/* 105 */ c.fill = 0; +/* 106 */ c.weightx = 0.0D; +/* 107 */ c.gridwidth = 0; +/* 108 */ this.goButton = new Button(this.condense ? Console.message("Condense") : +/* 109 */ Console.message("Expand")); +/* 110 */ add(gbag, this.goButton, c); +/* 111 */ c.weightx = 1.0D; +/* 112 */ c.fill = 2; +/* 113 */ Insets tmp = c.insets; +/* 114 */ c.insets = new Insets(5, 5, 5, 5); +/* 115 */ add(gbag, this.progress, c); +/* 116 */ c.insets = tmp; +/* 117 */ c.fill = 0; +/* 118 */ c.weightx = 0.0D; +/* 119 */ add(gbag, this.closeButton, c); +/* */ +/* 121 */ if (errStatus != null) { +/* 122 */ this.status.setText(errStatus); +/* 123 */ this.goButton.setEnabled(false); +/* */ } else { +/* 125 */ String name = this.sourceURL.getAbsolute(); +/* 126 */ name = name.substring(0, name.lastIndexOf('/')); +/* */ +/* 128 */ Object[] arguments = { new String(name) }; +/* 129 */ if (this.condense) { +/* 130 */ this.status.setText(MessageFormat.format( +/* 131 */ Console.message("condense-name"), arguments)); +/* */ } else { +/* 133 */ this.status.setText(MessageFormat.format( +/* 134 */ Console.message("expand-name"), arguments)); +/* */ } +/* */ } +/* */ } +/* */ +/* */ public boolean action(Event event, Object what) { +/* 140 */ Object target = event.target; +/* 141 */ if (target == this.goButton) { +/* 142 */ if (!this.start) { +/* 143 */ this.start = true; +/* */ } else +/* 145 */ this.stop = true; +/* 146 */ } else if (target == this.closeButton) { +/* 147 */ if ((!this.start) || (this.finished)) +/* 148 */ done(true); +/* */ } else +/* 150 */ return false; +/* 151 */ return true; +/* */ } +/* */ +/* */ protected void activeCallback() +/* */ { +/* 156 */ if ((!this.start) || (this.finished)) +/* 157 */ return; +/* 158 */ this.goButton.setLabel(Console.message("Stop")); +/* 159 */ if (this.condense) { +/* 160 */ doCondense(); +/* */ } else +/* 162 */ doExpand(); +/* */ } +/* */ +/* */ private void doCondense() { +/* 166 */ this.status.setText(Console.message("Scanning-dir")); +/* */ +/* */ +/* 169 */ Vector<String> dirs = new Vector(); +/* 170 */ getDirectories(dirs, this.path); +/* */ +/* 172 */ if (this.stop) { +/* 173 */ cancelled(); +/* 174 */ return; +/* */ } +/* */ +/* */ +/* 178 */ String d = ""; +/* 179 */ int count = dirs.size(); +/* 180 */ for (int i = 0; i < count; i++) { +/* 181 */ if (d.length() != 0) +/* 182 */ d = d + ";"; +/* 183 */ d = d + (String)dirs.elementAt(i); +/* */ } +/* */ +/* */ +/* 187 */ Vector<String> files = new FileList(d, "cmp;mov").keepPathInfo().dontSort() +/* 188 */ .getList(); +/* 189 */ count = files.size(); +/* 190 */ String[] list = new String[count]; +/* 191 */ int start = this.path.length() + 1; +/* 192 */ for (int i = 0; i < count; i++) { +/* 193 */ list[i] = ((String)files.elementAt(i)).substring(start) +/* 194 */ .replace('\\', '/').toLowerCase(); +/* */ } +/* */ +/* 197 */ this.status.setText(Console.message("Sorting-files")); +/* 198 */ Sort.sort(list); +/* */ +/* 200 */ if (this.stop) { +/* 201 */ cancelled(); +/* 202 */ return; +/* */ } +/* */ +/* */ +/* 206 */ this.status.setText(Console.message("Building-archive")); +/* 207 */ String zipFileName = this.path + "/" + "content.zip"; +/* 208 */ boolean deleteOnError = true; +/* */ try { +/* 210 */ FileOutputStream fos = new FileOutputStream(zipFileName); +/* 211 */ ZipOutputStream zs = new ZipOutputStream(fos); +/* 212 */ zs.setMethod(0); +/* 213 */ double dlen = list.length; +/* 214 */ for (int i = 0; (i < list.length) && (!this.stop); i++) { +/* 215 */ Object[] arguments = { new String(list[i]) }; +/* 216 */ this.status.setText(MessageFormat.format( +/* 217 */ Console.message("Reading-list"), arguments)); +/* 218 */ File f = new File(this.path + "/" + list[i]); +/* 219 */ int length = (int)f.length(); +/* 220 */ byte[] data = new byte[length]; +/* 221 */ FileInputStream fis = new FileInputStream(f); +/* 222 */ fis.read(data); +/* 223 */ fis.close(); +/* 224 */ CRC32 crc = new CRC32(); +/* 225 */ crc.update(data); +/* 226 */ this.status.setText(MessageFormat.format( +/* 227 */ Console.message("Writing-list"), arguments)); +/* 228 */ ZipEntry ze = new ZipEntry(list[i]); +/* 229 */ ze.setSize(length); +/* 230 */ ze.setTime(f.lastModified()); +/* 231 */ ze.setCrc(crc.getValue()); +/* 232 */ zs.putNextEntry(ze); +/* 233 */ zs.write(data, 0, length); +/* 234 */ zs.closeEntry(); +/* 235 */ this.progress.setProgress((i + 1) / dlen); +/* */ } +/* 237 */ zs.finish(); +/* 238 */ zs.close(); +/* 239 */ if (!this.stop) +/* */ { +/* */ +/* 242 */ deleteOnError = false; +/* 243 */ this.goButton.setEnabled(false); +/* 244 */ Archive.flushAll(); +/* 245 */ for (int i = 0; i < list.length; i++) { +/* 246 */ Object[] arguments = { new String(list[i]) }; +/* 247 */ this.status.setText(MessageFormat.format( +/* 248 */ Console.message("Deleting-list"), arguments)); +/* 249 */ File f = new File(this.path + "/" + list[i]); +/* 250 */ f.delete(); +/* 251 */ this.progress.setProgress((i + 1) / dlen); +/* */ } +/* */ +/* */ +/* 255 */ this.status.setText(Console.message("Removing-empty")); +/* 256 */ count = dirs.size(); +/* 257 */ for (int i = 0; i < count; i++) { +/* 258 */ File f = new File((String)dirs.elementAt(i)); +/* 259 */ if (f.list().length == 0) { +/* 260 */ f.delete(); +/* */ } +/* */ } +/* 263 */ this.status.setText(Console.message("Done")); +/* 264 */ this.finished = true; +/* 265 */ return; +/* */ } +/* */ } catch (IOException ioe) { +/* 268 */ Object[] arguments = { new String(this.status.getText()) }; +/* 269 */ this.status.setText(MessageFormat.format(Console.message("IO-Error"), +/* 270 */ arguments)); +/* */ +/* 272 */ if (deleteOnError) { +/* 273 */ File f = new File(zipFileName); +/* 274 */ f.delete(); +/* */ } +/* 276 */ this.finished = true; +/* 277 */ if (this.stop) +/* 278 */ cancelled(); +/* */ } +/* */ } +/* */ +/* 282 */ private void doExpand() { this.status.setText(Console.message("Scanning-archive")); +/* 283 */ boolean deleteOnError = true; +/* 284 */ Vector<File> written = new Vector(); +/* */ try { +/* 286 */ String zipFileName = this.path + "/" + "content.zip"; +/* 287 */ ZipFile zip = new ZipFile(zipFileName); +/* 288 */ Enumeration<? extends ZipEntry> ents = zip.entries(); +/* 289 */ int count = 0; +/* 290 */ while ((ents.hasMoreElements()) && (!this.stop)) { +/* 291 */ count++; +/* 292 */ ents.nextElement(); +/* */ } +/* 294 */ String lastDir = ""; +/* 295 */ ents = zip.entries(); +/* 296 */ int i = 0; +/* 297 */ double dlen = count; +/* 298 */ while ((ents.hasMoreElements()) && (!this.stop)) { +/* 299 */ ZipEntry ent = (ZipEntry)ents.nextElement(); +/* 300 */ String name = ent.getName(); +/* 301 */ Object[] arguments = { new String(name) }; +/* 302 */ this.status.setText(MessageFormat.format( +/* 303 */ Console.message("Checking-name"), arguments)); +/* 304 */ String filePath = this.path + "/" + name; +/* 305 */ File f = new File(filePath); +/* 306 */ if (f.exists()) { +/* 307 */ this.stop = true; +/* 308 */ this.finished = true; +/* 309 */ this.status.setText(MessageFormat.format( +/* 310 */ Console.message("File-exists"), arguments)); +/* 311 */ break; +/* */ } +/* 313 */ int index = filePath.lastIndexOf('/'); +/* 314 */ if (index != -1) { +/* 315 */ String dir = filePath.substring(0, index); +/* 316 */ if (!dir.equals(lastDir)) { +/* 317 */ this.status.setText(Console.message("Creating-dir")); +/* 318 */ File dirs = new File(dir); +/* 319 */ dirs.mkdirs(); +/* 320 */ lastDir = dir; +/* */ } +/* */ } +/* 323 */ this.status.setText(MessageFormat.format( +/* 324 */ Console.message("Reading-list"), arguments)); +/* 325 */ byte[] data = Archive.load(zip, ent); +/* 326 */ this.status.setText(MessageFormat.format( +/* 327 */ Console.message("Writing-list"), arguments)); +/* 328 */ FileOutputStream fos = new FileOutputStream(f); +/* 329 */ written.addElement(f); +/* 330 */ fos.write(data); +/* 331 */ fos.close(); +/* */ +/* 333 */ this.progress.setProgress(++i / dlen); +/* */ } +/* 335 */ zip.close(); +/* 336 */ if (!this.stop) +/* */ { +/* 338 */ this.goButton.setEnabled(false); +/* 339 */ deleteOnError = false; +/* 340 */ synchronized (Archive.getMutex()) { +/* 341 */ Archive.flushAll(); +/* 342 */ new File(zipFileName).delete(); +/* */ } +/* 344 */ this.status.setText(Console.message("Done")); +/* 345 */ this.finished = true; +/* 346 */ return; +/* */ } +/* */ } catch (IOException ioe) { +/* 349 */ Object[] arguments = { new String(this.status.getText()) }; +/* 350 */ this.status.setText(MessageFormat.format(Console.message("IO-Error"), +/* 351 */ arguments)); +/* */ +/* 353 */ if (deleteOnError) { +/* 354 */ Enumeration<File> e = written.elements(); +/* 355 */ while (e.hasMoreElements()) +/* 356 */ ((File)e.nextElement()).delete(); +/* */ } +/* 358 */ if (!this.finished) { +/* 359 */ this.finished = true; +/* 360 */ if (this.stop) +/* 361 */ cancelled(); +/* */ } +/* */ } +/* */ } +/* */ +/* 366 */ private void cancelled() { this.finished = true; +/* 367 */ this.status.setText(Console.message("Cancelled")); +/* */ } +/* */ +/* */ protected boolean done(boolean confirmed) +/* */ { +/* 372 */ if ((!this.start) || (this.finished)) +/* 373 */ return super.done(confirmed); +/* 374 */ return true; +/* */ } +/* */ +/* */ private static void getDirectories(Vector<String> dirs, String path) { +/* 378 */ dirs.addElement(path); +/* 379 */ File dir = new File(path); +/* 380 */ String[] files = dir.list(); +/* 381 */ for (int i = 0; i < files.length; i++) { +/* 382 */ String name = path + '/' + files[i]; +/* 383 */ File f = new File(name); +/* 384 */ if (f.isDirectory()) { +/* 385 */ getDirectories(dirs, name); +/* */ } +/* */ } +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\ArchiveMaker.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/AssertionException.java b/NET/worlds/core/AssertionException.java new file mode 100644 index 0000000..58d6f79 --- /dev/null +++ b/NET/worlds/core/AssertionException.java @@ -0,0 +1,24 @@ +/* */ package NET.worlds.core; +/* */ +/* */ +/* */ +/* */ public class AssertionException +/* */ extends RuntimeException +/* */ { +/* */ private static final long serialVersionUID = -5738682100298167153L; +/* */ +/* */ +/* */ public AssertionException() {} +/* */ +/* */ +/* */ public AssertionException(String str) +/* */ { +/* 16 */ super(str); +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\AssertionException.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Debug.java b/NET/worlds/core/Debug.java new file mode 100644 index 0000000..e853036 --- /dev/null +++ b/NET/worlds/core/Debug.java @@ -0,0 +1,25 @@ +/* */ package NET.worlds.core; +/* */ +/* */ +/* */ +/* */ public class Debug +/* */ { +/* */ public static final boolean ON = true; +/* */ +/* */ +/* */ public static final boolean TRACEON = false; +/* */ +/* */ +/* */ public static void LogDebug() +/* */ { +/* 15 */ LogDebug(""); +/* */ } +/* */ +/* */ public static synchronized void LogDebug(String string) {} +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Debug.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/FastDataInput.java b/NET/worlds/core/FastDataInput.java new file mode 100644 index 0000000..edc2668 --- /dev/null +++ b/NET/worlds/core/FastDataInput.java @@ -0,0 +1,77 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import java.io.DataInput; +/* */ import java.io.IOException; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class FastDataInput +/* */ implements DataInput +/* */ { +/* */ private int nativeInfo; +/* */ +/* */ public FastDataInput(String fileName) +/* */ throws IOException +/* */ { +/* 20 */ nativeInit(); +/* 21 */ read(fileName); +/* */ } +/* */ +/* */ +/* */ public native void close(); +/* */ +/* */ public void readFully(byte[] b) +/* */ throws IOException +/* */ { +/* 30 */ readFully(b, 0, b.length); +/* */ } +/* */ +/* */ public static native void nativeInit(); +/* */ +/* */ public native void readFully(byte[] paramArrayOfByte, int paramInt1, int paramInt2) +/* */ throws IOException; +/* */ +/* */ public native int skipBytes(int paramInt) throws IOException; +/* */ +/* */ public native boolean readBoolean() throws IOException; +/* */ +/* */ public native byte readByte() throws IOException; +/* */ +/* */ public native int readUnsignedByte() throws IOException; +/* */ +/* */ public native short readShort() throws IOException; +/* */ +/* */ public native int readUnsignedShort() throws IOException; +/* */ +/* */ public native char readChar() throws IOException; +/* */ +/* */ public native int readInt() throws IOException; +/* */ +/* */ public native long readLong() throws IOException; +/* */ +/* */ public native float readFloat() throws IOException; +/* */ +/* */ public native double readDouble() throws IOException; +/* */ +/* */ public String readLine() throws IOException +/* */ { +/* 62 */ if (!$assertionsDisabled) throw new AssertionError(); +/* 63 */ return null; +/* */ } +/* */ +/* */ public native String readUTF() +/* */ throws IOException; +/* */ +/* */ private native void read(String paramString) +/* */ throws IOException; +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\FastDataInput.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Hashtable.java b/NET/worlds/core/Hashtable.java new file mode 100644 index 0000000..c8edfb0 --- /dev/null +++ b/NET/worlds/core/Hashtable.java @@ -0,0 +1,155 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import NET.worlds.scape.Persister; +/* */ import NET.worlds.scape.Restorer; +/* */ import NET.worlds.scape.Saver; +/* */ import NET.worlds.scape.TooNewException; +/* */ import java.io.IOException; +/* */ import java.util.Enumeration; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class Hashtable<K, V> +/* */ extends java.util.Hashtable<K, V> +/* */ implements Persister +/* */ { +/* */ private static final long serialVersionUID = 1133311923215053895L; +/* */ +/* */ public Hashtable(int initialCapacity, float loadFactor) +/* */ { +/* 38 */ super(initialCapacity, loadFactor); +/* */ } +/* */ +/* */ +/* */ +/* */ public Hashtable(int initialCapacity) +/* */ { +/* 45 */ super(initialCapacity); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public Hashtable() {} +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public Object getKey(Object obj) +/* */ { +/* 65 */ Enumeration<K> e = keys(); +/* 66 */ while (e.hasMoreElements()) { +/* 67 */ Object key = e.nextElement(); +/* 68 */ if (get(key) == obj) +/* 69 */ return key; +/* */ } +/* 71 */ return null; +/* */ } +/* */ +/* 74 */ private static Object classCookie = new Object(); +/* */ +/* */ +/* */ +/* */ public void saveState(Saver s) +/* */ throws IOException +/* */ { +/* 81 */ s.saveVersion(0, classCookie); +/* 82 */ int count = 0; +/* 83 */ Enumeration<K> e = keys(); +/* 84 */ while (e.hasMoreElements()) { +/* 85 */ Object key = e.nextElement(); +/* 86 */ Object obj = get(key); +/* 87 */ if ((((key instanceof String)) || ((key instanceof Persister))) && +/* 88 */ ((obj instanceof Persister))) { +/* 89 */ count++; +/* */ } +/* */ } +/* */ +/* 93 */ s.saveInt(count); +/* 94 */ e = keys(); +/* 95 */ while (e.hasMoreElements()) { +/* 96 */ Object key = e.nextElement(); +/* 97 */ Object obj = get(key); +/* 98 */ if ((((key instanceof String)) || ((key instanceof Persister))) && +/* 99 */ ((obj instanceof Persister))) { +/* 100 */ if ((key instanceof String)) { +/* 101 */ s.saveBoolean(true); +/* 102 */ s.saveString((String)key); +/* */ } else { +/* 104 */ s.saveBoolean(false); +/* 105 */ s.save((Persister)key); +/* */ } +/* 107 */ s.save((Persister)obj); +/* */ } +/* */ } +/* */ } +/* */ +/* */ public void restoreState(Restorer r) throws IOException, TooNewException { +/* 113 */ int count = restoreCount(r); +/* 114 */ for (int i = 0; i < count; i++) { +/* 115 */ restoreEntry(r); +/* */ } +/* */ } +/* */ +/* */ +/* */ public void postRestore(int version) {} +/* */ +/* */ +/* */ public int restoreCount(Restorer r) +/* */ throws IOException, TooNewException +/* */ { +/* 126 */ switch (r.restoreVersion(classCookie)) { +/* */ case 0: +/* 128 */ return r.restoreInt(); +/* */ } +/* 130 */ throw new TooNewException(); +/* */ } +/* */ +/* */ +/* */ +/* */ public void restoreEntry(Restorer r) +/* */ throws IOException, TooNewException +/* */ { +/* */ K key; +/* */ +/* */ K key; +/* */ +/* 142 */ if (r.restoreBoolean()) { +/* 143 */ key = r.restoreString(); +/* */ } else +/* 145 */ key = r.restore(); +/* 146 */ V obj = r.restore(); +/* 147 */ put(key, obj); +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Hashtable.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/IniFile.java b/NET/worlds/core/IniFile.java new file mode 100644 index 0000000..44a3e74 --- /dev/null +++ b/NET/worlds/core/IniFile.java @@ -0,0 +1,83 @@ +/* */ package NET.worlds.core; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class IniFile +/* */ { +/* */ String file; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ String section; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public IniFile(String section) +/* */ { +/* 27 */ this.file = null; +/* 28 */ this.section = section; +/* */ } +/* */ +/* */ public IniFile(String inifileName, String section) +/* */ { +/* 33 */ this.file = inifileName; +/* 34 */ this.section = section; +/* */ } +/* */ +/* 37 */ static boolean initialized = false; +/* */ +/* 39 */ private static IniFile gamma_ = null; +/* 40 */ private static IniFile override_ = null; +/* */ +/* */ public static IniFile gamma() +/* */ { +/* 44 */ if (gamma_ == null) { +/* 45 */ gamma_ = new IniFile("Gamma"); +/* */ } +/* 47 */ if (!initialized) { +/* 48 */ nativeInit(); +/* 49 */ initialized = true; +/* */ } +/* 51 */ return gamma_; +/* */ } +/* */ +/* */ public static IniFile override() +/* */ { +/* 56 */ if (!initialized) { +/* 57 */ nativeInit(); +/* 58 */ initialized = true; +/* */ } +/* */ +/* 61 */ if (override_ == null) { +/* 62 */ override_ = new IniFile(".\\override.ini", "Runtime"); +/* */ } +/* */ +/* 65 */ return override_; +/* */ } +/* */ +/* */ public native int getIniInt(String paramString, int paramInt); +/* */ +/* */ public native void setIniInt(String paramString, int paramInt); +/* */ +/* */ public native String getIniString(String paramString1, String paramString2); +/* */ +/* */ public native void setIniString(String paramString1, String paramString2); +/* */ +/* */ public static native void nativeInit(); +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\IniFile.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Recycler.java b/NET/worlds/core/Recycler.java new file mode 100644 index 0000000..defe829 --- /dev/null +++ b/NET/worlds/core/Recycler.java @@ -0,0 +1,42 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import java.io.PrintStream; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class Recycler +/* */ { +/* */ public static Object alloc(String classType) +/* */ { +/* 22 */ return null; +/* */ } +/* */ +/* */ public static void free(Object old) { +/* 26 */ String className = old.getClass().getName(); +/* 27 */ System.out.println("Classname = " + className); +/* */ +/* 29 */ if (className.startsWith("[")) { +/* 30 */ Object[] oldArr = (Object[])old; +/* */ +/* */ +/* 33 */ System.out.println(" array[" + oldArr.length + "]"); +/* */ } +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Recycler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/RegKey.java b/NET/worlds/core/RegKey.java new file mode 100644 index 0000000..f5ad8b6 --- /dev/null +++ b/NET/worlds/core/RegKey.java @@ -0,0 +1,117 @@ +/* */ package NET.worlds.core; +/* */ +/* */ +/* */ +/* */ public class RegKey +/* */ { +/* */ public static final int CLASSES_ROOT = 0; +/* */ +/* */ +/* */ public static final int CURRENT_USER = 1; +/* */ +/* */ +/* */ public static final int LOCAL_MACHINE = 2; +/* */ +/* */ +/* */ public static final int USERS = 3; +/* */ +/* */ +/* */ public static final int KEYOPEN_READ = 0; +/* */ +/* */ +/* */ public static final int KEYOPEN_WRITE = 1; +/* */ +/* */ public static final int KEYOPEN_CREATE = 2; +/* */ +/* */ private int hKey; +/* */ +/* */ +/* */ static {} +/* */ +/* */ +/* */ public static RegKey getRootKey(int type) +/* */ throws RegKeyNotFoundException +/* */ { +/* 35 */ return new RegKey(getReservedKey(type)); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public RegKey(RegKey base, String subKey, int mode) +/* */ throws RegKeyNotFoundException +/* */ { +/* 44 */ if (mode == 2) { +/* 45 */ this.hKey = createKey(base.hKey, subKey); +/* */ } else { +/* 47 */ this.hKey = openKey(base.hKey, subKey, mode); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public native String getStringValue(String paramString); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public native boolean setStringValue(String paramString1, String paramString2, boolean paramBoolean); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public native int getIntValue(String paramString); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public native boolean setIntValue(String paramString, int paramInt); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public native void close(); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ private static native int getReservedKey(int paramInt) +/* */ throws RegKeyNotFoundException; +/* */ +/* */ +/* */ +/* */ +/* */ private static native int openKey(int paramInt1, String paramString, int paramInt2) +/* */ throws RegKeyNotFoundException; +/* */ +/* */ +/* */ +/* */ +/* */ private static native int createKey(int paramInt, String paramString); +/* */ +/* */ +/* */ +/* */ +/* */ public static native void nativeInit(); +/* */ +/* */ +/* */ +/* */ +/* */ private RegKey(int hKey) +/* */ { +/* 109 */ this.hKey = hKey; +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\RegKey.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/RegKeyNotFoundException.java b/NET/worlds/core/RegKeyNotFoundException.java new file mode 100644 index 0000000..f5da51f --- /dev/null +++ b/NET/worlds/core/RegKeyNotFoundException.java @@ -0,0 +1,26 @@ +/* */ package NET.worlds.core; +/* */ +/* */ +/* */ +/* */ public class RegKeyNotFoundException +/* */ extends Exception +/* */ { +/* */ private static final long serialVersionUID = 3873901007988284311L; +/* */ +/* */ +/* */ +/* */ public RegKeyNotFoundException() {} +/* */ +/* */ +/* */ +/* */ public RegKeyNotFoundException(String s) +/* */ { +/* 18 */ super(s); +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\RegKeyNotFoundException.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/ServerTableManager.java b/NET/worlds/core/ServerTableManager.java new file mode 100644 index 0000000..b118755 --- /dev/null +++ b/NET/worlds/core/ServerTableManager.java @@ -0,0 +1,336 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import NET.worlds.console.Gamma; +/* */ import NET.worlds.console.ProgressBar; +/* */ import NET.worlds.network.Cache; +/* */ import NET.worlds.network.CacheFile; +/* */ import NET.worlds.network.NetUpdate; +/* */ import NET.worlds.network.ProgressDialog; +/* */ import NET.worlds.network.URL; +/* */ import NET.worlds.scape.BGLoaded; +/* */ import NET.worlds.scape.BackgroundLoader; +/* */ import NET.worlds.scape.Room; +/* */ import java.io.BufferedReader; +/* */ import java.io.File; +/* */ import java.io.FileNotFoundException; +/* */ import java.io.IOException; +/* */ import java.io.PrintStream; +/* */ import java.io.RandomAccessFile; +/* */ import java.io.StringReader; +/* */ import java.util.StringTokenizer; +/* */ import java.util.Vector; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class ServerTableManager +/* */ implements BGLoaded +/* */ { +/* */ private Hashtable<String, String[]> tables; +/* */ private String tableFile; +/* 36 */ private int fileVersion = 0; +/* */ +/* */ public int getFileVersion() { +/* 39 */ return this.fileVersion; +/* */ } +/* */ +/* 42 */ public static ServerTableManager theTableManager = null; +/* */ +/* */ public static ServerTableManager instance() { +/* 45 */ if (theTableManager == null) +/* 46 */ theTableManager = new ServerTableManager(); +/* 47 */ return theTableManager; +/* */ } +/* */ +/* */ public String[] getTable(String tableName) { +/* 51 */ Object table = this.tables.get(tableName); +/* */ +/* 53 */ if (table == null) +/* 54 */ System.out.println("Requested table " + tableName + " not found."); +/* 55 */ return (String[])table; +/* */ } +/* */ +/* */ private ServerTableManager() { +/* 59 */ this.tables = new Hashtable(); +/* */ +/* 61 */ this.tableFile = IniFile.override().getIniString("ServerTableFile", +/* 62 */ "tables/tables.dat"); +/* */ +/* 64 */ if (IniFile.gamma().getIniInt("encryptTables", 0) == 1) { +/* 65 */ encryptTablesFile(); +/* */ } +/* 67 */ loadTableFile(); +/* */ } +/* */ +/* */ private boolean loadTableFile() { +/* 71 */ URL tableURL = URL.make(NetUpdate.getUpgradeServerURL() + this.tableFile); +/* */ +/* 73 */ boolean syncLoad = IniFile.gamma().getIniInt("synchronousTableLoad", 1) == 1; +/* */ +/* 75 */ if (Gamma.loadProgress != null) +/* */ { +/* 77 */ Gamma.loadProgress.setMessage("Downloading global server information..."); +/* 78 */ Gamma.loadProgress.advance(); +/* */ } +/* */ +/* 81 */ if (syncLoad) { +/* 82 */ CacheFile cf = Cache.getFile(tableURL); +/* 83 */ cf.waitUntilLoaded(); +/* 84 */ if (!cf.error()) { +/* 85 */ syncBackgroundLoad(cf.getLocalName(), null); +/* */ } +/* */ } +/* */ +/* */ +/* 90 */ boolean ok = parseFile(); +/* */ +/* 92 */ if (!syncLoad) { +/* 93 */ BackgroundLoader.get(this, tableURL); +/* */ } +/* 95 */ return ok; +/* */ } +/* */ +/* */ public synchronized Object asyncBackgroundLoad(String localName, URL remoteURL) +/* */ { +/* 100 */ return localName; +/* */ } +/* */ +/* */ public boolean syncBackgroundLoad(Object obj, URL remoteURL) { +/* 104 */ String localName = (String)obj; +/* 105 */ if ((localName != null) && (new File(localName).exists())) { +/* 106 */ ProgressDialog.copyFile(localName, this.tableFile); +/* */ } +/* 108 */ return false; +/* */ } +/* */ +/* */ public Room getBackgroundLoadRoom() { +/* 112 */ return null; +/* */ } +/* */ +/* 115 */ private static String tableStart = "private static String[] "; +/* 116 */ private static String version = "VERSION"; +/* */ +/* */ private boolean parseFile() { +/* 119 */ BufferedReader buf = null; +/* */ try +/* */ { +/* 122 */ RandomAccessFile fIn = new RandomAccessFile(this.tableFile, "r"); +/* 123 */ byte[] encrypted = new byte[fIn.readInt()]; +/* 124 */ fIn.readFully(encrypted); +/* 125 */ fIn.close(); +/* 126 */ String decrypted = decrypt(encrypted); +/* 127 */ buf = new BufferedReader(new StringReader(decrypted)); +/* */ +/* */ String line; +/* 130 */ while ((line = buf.readLine()) != null) { +/* 131 */ String line = line.trim(); +/* 132 */ if (!line.startsWith("//")) +/* */ { +/* 134 */ if (line.length() != 0) +/* */ { +/* */ +/* */ +/* 138 */ if (line.startsWith(version)) { +/* 139 */ StringTokenizer tok = new StringTokenizer(line); +/* 140 */ String versionString = ""; +/* 141 */ while (tok.hasMoreTokens()) { +/* 142 */ versionString = tok.nextToken(); +/* */ } +/* 144 */ if (versionString != "") { +/* 145 */ this.fileVersion = Double.valueOf(versionString).intValue(); +/* */ } +/* */ } +/* */ +/* */ +/* 150 */ if (line.startsWith(tableStart)) { +/* 151 */ String tableName = line.substring(tableStart.length()); +/* 152 */ StringTokenizer tok = new StringTokenizer(tableName); +/* */ +/* 154 */ if (tok.hasMoreTokens()) +/* 155 */ parseTable(buf, tok.nextToken().trim()); +/* */ } +/* */ } +/* */ } +/* */ } +/* 160 */ buf.close(); +/* */ } catch (FileNotFoundException e) { +/* 162 */ System.out.println(e); +/* 163 */ return false; +/* */ } catch (IOException e) { +/* 165 */ System.out.println(e); +/* 166 */ return false; +/* */ } +/* */ +/* 169 */ return true; +/* */ } +/* */ +/* */ private String stripQuotes(String in) { +/* 173 */ String out = new String(in); +/* */ +/* */ +/* */ +/* 177 */ if (out.charAt(0) == '"') +/* 178 */ out = out.substring(1); +/* 179 */ if (out.charAt(out.length() - 1) == '"') +/* 180 */ out = out.substring(0, out.length() - 1); +/* */ int idx; +/* 182 */ while ((idx = out.indexOf('"')) != -1) { +/* */ int idx; +/* 184 */ out = out.substring(0, idx) + out.substring(idx + 1); +/* */ } +/* */ +/* 187 */ return out; +/* */ } +/* */ +/* */ private void parseTable(BufferedReader buf, String tableName) +/* */ throws IOException +/* */ { +/* 193 */ String lastEntry = null; +/* */ +/* 195 */ Vector<String> strings = new Vector(); +/* */ StringTokenizer tok; +/* 197 */ label176: String line; for (; (line = buf.readLine()) != null; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 209 */ tok.hasMoreTokens()) +/* */ { +/* 198 */ String line = line.trim(); +/* 199 */ if ((line.length() == 0) || (line.startsWith("//"))) { +/* */ break label176; +/* */ } +/* 202 */ if (line.startsWith("};")) { +/* */ break; +/* */ } +/* */ +/* */ +/* 207 */ tok = new StringTokenizer(line, ",\n\r"); +/* */ +/* 209 */ continue; +/* 210 */ String token = tok.nextToken().trim(); +/* */ +/* 212 */ if (token.startsWith("+ \"")) { +/* 213 */ if (lastEntry != null) { +/* 214 */ token = token.substring(2); +/* 215 */ lastEntry = lastEntry + stripQuotes(token); +/* 216 */ strings.removeElement(strings.lastElement()); +/* 217 */ strings.addElement(lastEntry); +/* */ } +/* */ } else { +/* 220 */ String entry = stripQuotes(token); +/* 221 */ lastEntry = entry; +/* 222 */ strings.addElement(entry); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* 228 */ int numStrings = strings.size(); +/* 229 */ String[] table = new String[numStrings]; +/* 230 */ for (int i = 0; i < numStrings; i++) { +/* 231 */ table[i] = ((String)strings.elementAt(i)); +/* */ } +/* */ +/* */ +/* 235 */ System.out.println("Adding table " + tableName); +/* 236 */ this.tables.put(tableName, table); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ private byte[] encrypt(String in) +/* */ { +/* */ try +/* */ { +/* 247 */ inBytes = in.getBytes("UTF8"); +/* */ } catch (Exception e) { byte[] inBytes; +/* 249 */ System.out.println("Error encoding to UTF8" + e.toString()); +/* 250 */ return null; +/* */ } +/* */ byte[] inBytes; +/* 253 */ byte[] outBytes = new byte[inBytes.length]; +/* */ +/* 255 */ int len = inBytes.length; +/* */ +/* 257 */ outBytes[0] = inBytes[0]; +/* 258 */ for (int idx = 1; idx < len; idx++) { +/* 259 */ outBytes[idx] = ((byte)(inBytes[idx] ^ outBytes[(idx - 1)])); +/* */ } +/* */ +/* 262 */ return outBytes; +/* */ } +/* */ +/* */ private String decrypt(byte[] in) { +/* 266 */ byte[] outBytes = new byte[in.length]; +/* */ +/* 268 */ int len = in.length; +/* */ +/* 270 */ outBytes[0] = in[0]; +/* 271 */ for (int idx = 1; idx < len; idx++) { +/* 272 */ outBytes[idx] = ((byte)(in[idx] ^ in[(idx - 1)])); +/* */ } +/* */ +/* */ try +/* */ { +/* 277 */ out = new String(outBytes, "UTF8"); +/* */ } catch (Exception e) { String out; +/* 279 */ System.out.println("Error encoding UTF8 " + e.toString()); +/* 280 */ return null; +/* */ } +/* */ String out; +/* 283 */ return out; +/* */ } +/* */ +/* */ private void encryptTablesFile() { +/* */ try { +/* 288 */ System.out.println("Encoding tables file..."); +/* */ +/* 290 */ RandomAccessFile inFilth = new RandomAccessFile("..\\tables.txt", +/* 291 */ "r"); +/* 292 */ String inStr = new String(); +/* 293 */ while (inFilth.getFilePointer() < inFilth.length()) { +/* 294 */ String in = inFilth.readLine(); +/* 295 */ System.out.println(in); +/* 296 */ inStr = inStr + in + "\r\n"; +/* */ } +/* 298 */ inFilth.close(); +/* */ +/* 300 */ byte[] encrypted = encrypt(inStr); +/* */ +/* 302 */ RandomAccessFile out = new RandomAccessFile(this.tableFile, "rw"); +/* 303 */ RandomAccessFile out2 = new RandomAccessFile("..\\tables.dat", "rw"); +/* 304 */ out.writeInt(encrypted.length); +/* 305 */ out2.writeInt(encrypted.length); +/* 306 */ out.write(encrypted); +/* 307 */ out2.write(encrypted); +/* 308 */ out.close(); +/* 309 */ out2.close(); +/* */ +/* 311 */ System.out.println("Tables file " + this.tableFile + +/* 312 */ " successfully written."); +/* */ } catch (Exception e) { +/* 314 */ System.out.println("Error encoding tables file: " + e.toString()); +/* */ } +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\ServerTableManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Sort.java b/NET/worlds/core/Sort.java new file mode 100644 index 0000000..51a6eb1 --- /dev/null +++ b/NET/worlds/core/Sort.java @@ -0,0 +1,152 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import java.awt.Choice; +/* */ import java.awt.List; +/* */ import java.util.Enumeration; +/* */ import java.util.Hashtable; +/* */ import java.util.Vector; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class Sort +/* */ { +/* */ public static void sort(String[] list) +/* */ { +/* 21 */ quicksort(list, 0, list.length - 1); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public static String[] sort(Enumeration<String> e, int count) +/* */ { +/* 29 */ String[] list = new String[count]; +/* 30 */ for (int i = 0; i < count; i++) +/* 31 */ list[i] = ((String)e.nextElement()).toString(); +/* 32 */ quicksort(list, 0, count - 1); +/* 33 */ return list; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public static String[] sort(Vector<String> v) +/* */ { +/* 41 */ return sort(v.elements(), v.size()); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public static String[] sortKeys(Hashtable<String, ?> h) +/* */ { +/* 49 */ return sort(h.keys(), h.size()); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public static void sortInto(List list, Hashtable<String, ?> h) +/* */ { +/* 57 */ String[] content = sortKeys(h); +/* 58 */ for (int i = 0; i < content.length; i++) { +/* 59 */ list.add(content[i]); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ public static void sortInto(List list, Vector<String> v) +/* */ { +/* 67 */ String[] content = sort(v); +/* 68 */ for (int i = 0; i < content.length; i++) { +/* 69 */ list.add(content[i]); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ public static void sortInto(Choice list, Hashtable<String, ?> h) +/* */ { +/* 77 */ String[] content = sortKeys(h); +/* 78 */ for (int i = 0; i < content.length; i++) { +/* 79 */ list.add(content[i]); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ public static void sortInto(Choice list, Vector<String> v) +/* */ { +/* 87 */ String[] content = sort(v); +/* 88 */ for (int i = 0; i < content.length; i++) { +/* 89 */ list.add(content[i]); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ private static void quicksort(String[] objectList, int l, int r) +/* */ { +/* 97 */ if (r > l) { +/* 98 */ String v = objectList[r]; +/* */ +/* */ +/* 101 */ int i = l - 1; +/* 102 */ int j = r; +/* */ String tstr; +/* */ do +/* */ { +/* */ do +/* */ { +/* 108 */ i++; +/* 107 */ } while ( +/* */ +/* 109 */ objectList[i].compareTo(v) < 0); +/* */ do +/* */ { +/* 112 */ j--; +/* 113 */ } while ((j > l) && (objectList[j].compareTo(v) > 0)); +/* */ +/* */ +/* */ +/* 117 */ tstr = objectList[i]; +/* 118 */ objectList[i] = objectList[j]; +/* 119 */ objectList[j] = tstr; +/* 106 */ } while ( +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 120 */ j > i); +/* */ +/* */ +/* 123 */ objectList[j] = objectList[i]; +/* 124 */ objectList[i] = objectList[r]; +/* 125 */ objectList[r] = tstr; +/* 126 */ quicksort(objectList, l, i - 1); +/* 127 */ quicksort(objectList, i + 1, r); +/* */ } +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Sort.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Std.java b/NET/worlds/core/Std.java new file mode 100644 index 0000000..f332fbf --- /dev/null +++ b/NET/worlds/core/Std.java @@ -0,0 +1,332 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import java.io.File; +/* */ import java.io.InputStream; +/* */ import java.io.PrintStream; +/* */ import java.net.InetAddress; +/* */ import java.net.Socket; +/* */ import java.util.Date; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class Std +/* */ { +/* */ public static final String JavaVersion = "1922a10"; +/* */ public static final String JavaBuildDate = "2020031200"; +/* */ private static String productName; +/* */ private static int lastTime; +/* */ +/* */ public static void assertFail(String file, int line) +/* */ { +/* 58 */ String msg = "Assertion failed: file " + file + ", line " + line; +/* 59 */ dumpStackTrace(); +/* 60 */ exit(); +/* */ } +/* */ +/* */ public static String replaceStr(String in, String seek, String replace) { +/* 64 */ if ((seek == null) || (replace == null)) { +/* 65 */ return in; +/* */ } +/* */ int idx; +/* 68 */ while ((idx = in.indexOf(seek)) != -1) { int idx; +/* 69 */ String tmp = in.substring(0, idx) + replace + +/* 70 */ in.substring(idx + seek.length()); +/* 71 */ in = tmp; +/* */ } +/* */ +/* 74 */ return in; +/* */ } +/* */ +/* */ public static native void exit(); +/* */ +/* */ public static void dumpStackTrace() +/* */ { +/* */ try { +/* 82 */ throw new Error(""); +/* */ } catch (Error e) { +/* 84 */ e.printStackTrace(System.out); +/* */ } +/* */ } +/* */ +/* */ +/* */ public static String getProductName() +/* */ { +/* 91 */ assert (productName != null); +/* */ +/* 93 */ return productName; +/* */ } +/* */ +/* */ public static void initProductName() { +/* 97 */ assert (productName == null); +/* 98 */ productName = IniFile.gamma().getIniString("PRODUCT_NAME", +/* 99 */ "Worlds.com - The 3D Entertainment Portal"); +/* */ +/* */ +/* 102 */ productName = IniFile.override().getIniString("productName", +/* 103 */ productName); +/* */ } +/* */ +/* */ private static native int nativeGetMillis(); +/* */ +/* */ private static synchronized int getMillis() { +/* 109 */ return nativeGetMillis(); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static native int getTimeZero(); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static native long getPerformanceFrequency(); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static native long getPerformanceCount(); +/* */ +/* */ +/* */ +/* */ +/* */ public static boolean sleep(float seconds) +/* */ { +/* */ try +/* */ { +/* 137 */ Thread.sleep((seconds * 1000.0F)); +/* */ } catch (InterruptedException e) { +/* 139 */ return true; +/* */ } +/* */ +/* 142 */ return false; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static int getFastTime() +/* */ { +/* 157 */ if (lastTime == 0) +/* 158 */ getRealTime(); +/* 159 */ return lastTime; +/* */ } +/* */ +/* */ +/* */ +/* */ public static int getRealTime() +/* */ { +/* 166 */ lastTime = getMillis(); +/* 167 */ return lastTime; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public static int getSynchronizedTime() +/* */ { +/* 175 */ initSyncTime(); +/* 176 */ return getFastTime() / 1000 + syncTimeBase; +/* */ } +/* */ +/* 179 */ static boolean syncTimeInited = false; +/* */ +/* */ static int syncTimeBase; +/* 182 */ static boolean offline = IniFile.override().getIniInt("Offline", 0) == 1; +/* 183 */ static boolean stopOnFault = IniFile.gamma().getIniInt("StopOnHttpFault", 0) == 1; +/* 184 */ static String timeServer = IniFile.override().getIniString("timeServer", "time.worlds.net"); +/* */ +/* */ static void initSyncTime() +/* */ { +/* 188 */ if ((offline) || (stopOnFault)) { +/* 189 */ syncTimeInited = true; +/* 190 */ syncTimeBase = 0; +/* 191 */ return; +/* */ } +/* */ +/* 194 */ if (!syncTimeInited) { +/* 195 */ syncTimeInited = true; +/* */ try { +/* 197 */ InetAddress ip = InetAddress.getByName(timeServer); +/* 198 */ Socket s = new Socket(ip, 37); +/* */ +/* 200 */ InputStream is = s.getInputStream(); +/* 201 */ int b1 = is.read(); +/* 202 */ int b2 = is.read(); +/* 203 */ int b3 = is.read(); +/* 204 */ int b4 = is.read(); +/* 205 */ is.close(); +/* 206 */ long time = (b1 << 24) + (b2 << 16) + (b3 << 8) + b4; +/* */ +/* */ +/* 209 */ time -= -1141367296L; +/* 210 */ syncTimeBase = (int)time - getFastTime() / 1000; +/* 211 */ s.close(); +/* */ } catch (Exception e) { +/* 213 */ System.out.println("Error retrieving network time: " + e); +/* */ } +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static native boolean instanceOf(Object paramObject, Class<?> paramClass); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static native String getenv(String paramString); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static long GetDiskFreeSpace(String drive) +/* */ { +/* 236 */ long value = -1L; +/* */ try +/* */ { +/* 239 */ if (drive == null) { +/* 240 */ drive = "."; +/* */ } +/* 242 */ File f = new File(drive); +/* 243 */ value = f.getFreeSpace() / 1024L; +/* */ } +/* */ catch (Exception ex) { +/* 246 */ value = -1L; +/* */ } +/* */ +/* 249 */ return value; +/* */ } +/* */ +/* */ +/* */ +/* */ public static long GetDiskFreeSpace() +/* */ { +/* 256 */ return GetDiskFreeSpace(null); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public static void printThreads() +/* */ { +/* 264 */ ThreadGroup tg = Thread.currentThread().getThreadGroup(); +/* 265 */ Thread[] ta = new Thread[100]; +/* 266 */ int n = tg.enumerate(ta); +/* 267 */ tg.list(); +/* 268 */ for (int i = 0; i < n; i++) { +/* 269 */ if (ta[i].isDaemon()) { +/* 270 */ System.out.println("is daemon"); +/* */ } else { +/* 272 */ System.out.println("isn't daemon"); +/* */ } +/* */ } +/* */ } +/* */ +/* */ public static void printlnOut(String msg) +/* */ { +/* 279 */ System.out.println(msg); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public static native boolean byteArraysEqual(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2); +/* */ +/* */ +/* */ +/* */ +/* */ public static native String getBuildInfo(); +/* */ +/* */ +/* */ +/* */ +/* */ public static native int getVersion(); +/* */ +/* */ +/* */ +/* */ public static String getJavaVersion() +/* */ { +/* 301 */ return "1922a10"; +/* */ } +/* */ +/* */ public static String getJavaBuildDate() { +/* 305 */ return "2020031200"; +/* */ } +/* */ +/* */ +/* */ public static native String getClientVersion(); +/* */ +/* */ +/* */ private static native int getBuildYear(); +/* */ +/* */ +/* */ private static native int getBuildMonth(); +/* */ +/* */ private static native int getBuildDay(); +/* */ +/* */ public static long getBuildDate() +/* */ { +/* 321 */ return +/* 322 */ Date.UTC(getBuildYear(), getBuildMonth(), getBuildDay(), 0, 0, 0); +/* */ } +/* */ +/* */ public static native int checkNativeHeap(); +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Std.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Std_A.java b/NET/worlds/core/Std_A.java new file mode 100644 index 0000000..003abc9 --- /dev/null +++ b/NET/worlds/core/Std_A.java @@ -0,0 +1,11 @@ +package NET.worlds.core; + +class Std_A + implements Std_IA +{} + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Std_A.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Std_B.java b/NET/worlds/core/Std_B.java new file mode 100644 index 0000000..8568a51 --- /dev/null +++ b/NET/worlds/core/Std_B.java @@ -0,0 +1,12 @@ +package NET.worlds.core; + +class Std_B + extends Std_A + implements Std_IB +{} + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Std_B.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Std_IA.java b/NET/worlds/core/Std_IA.java new file mode 100644 index 0000000..a8ab89d --- /dev/null +++ b/NET/worlds/core/Std_IA.java @@ -0,0 +1,9 @@ +package NET.worlds.core; + +abstract interface Std_IA {} + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Std_IA.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Std_IB.java b/NET/worlds/core/Std_IB.java new file mode 100644 index 0000000..5fa6001 --- /dev/null +++ b/NET/worlds/core/Std_IB.java @@ -0,0 +1,11 @@ +package NET.worlds.core; + +abstract interface Std_IB + extends Std_IA +{} + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Std_IB.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/SystemInfo.java b/NET/worlds/core/SystemInfo.java new file mode 100644 index 0000000..dc77784 --- /dev/null +++ b/NET/worlds/core/SystemInfo.java @@ -0,0 +1,161 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import NET.worlds.console.Main; +/* */ import NET.worlds.console.MainCallback; +/* */ import NET.worlds.console.MainTerminalCallback; +/* */ import java.io.PrintStream; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class SystemInfo +/* */ implements MainCallback, MainTerminalCallback +/* */ { +/* 23 */ private static SystemInfo instance = new SystemInfo(); +/* 24 */ private long _lastFrame = 0L; private long _lastReport = 0L; +/* 25 */ private long _min; private long _max; private long _avg; private long _avgCount = 0L; +/* */ +/* */ private SystemInfo() { +/* 28 */ Main.register(this); +/* */ } +/* */ +/* */ public void mainCallback() { +/* 32 */ long curTime = Std.getFastTime(); +/* 33 */ long frameTime = curTime - this._lastFrame; +/* */ +/* 35 */ if (frameTime < this._min) +/* 36 */ this._min = frameTime; +/* 37 */ if (frameTime > this._max) +/* 38 */ this._max = frameTime; +/* 39 */ this._avg += frameTime; +/* 40 */ this._avgCount += 1L; +/* */ +/* 42 */ if (curTime - this._lastReport > 300000L) +/* */ { +/* 44 */ if (this._lastFrame != 0L) { +/* 45 */ System.out.println(logTime() + "Frame rate report:" + this._min + +/* 46 */ "/" + this._avg / this._avgCount + "/" + this._max); +/* */ } +/* 48 */ this._min = 10000L; +/* 49 */ this._max = 0L; +/* 50 */ this._avg = 0L; +/* 51 */ this._avgCount = 0L; +/* 52 */ this._lastReport = curTime; +/* */ } +/* 54 */ this._lastFrame = curTime; +/* */ } +/* */ +/* */ public void terminalCallback() { +/* 58 */ Main.unregister(this); +/* 59 */ if (this._avgCount != 0L) { +/* 60 */ System.out.println(logTime() + "Frame rate report:" + this._min + "/" + +/* 61 */ this._avg / this._avgCount + "/" + this._max); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static void Record(PrintStream out) +/* */ { +/* 71 */ out.println("DISK REPORT:"); +/* 72 */ recordPath(out, "Windows SYSTEM path", GetSystemDirectory()); +/* 73 */ recordPath(out, "Current Working Directory", GetCurrentDirectory()); +/* */ +/* */ +/* 76 */ out.println(""); +/* 77 */ out.println("JAVA MEMORY:"); +/* 78 */ out.println(logTime() + "\t Free memory: " + +/* 79 */ Runtime.getRuntime().freeMemory()); +/* 80 */ out.println(logTime() + "\tTotal memory: " + +/* 81 */ Runtime.getRuntime().totalMemory()); +/* */ +/* */ +/* 84 */ out.println(""); +/* 85 */ out.println("WINDOWS MEMORY:"); +/* 86 */ out.println(logTime() + "\tTotal Physical Memory: " + +/* 87 */ GetTotalPhysicalMemory()); +/* 88 */ out.println(logTime() + "\tAvail Physical Memory: " + +/* 89 */ GetAvailPhysicalMemory()); +/* 90 */ out.println(logTime() + "\t Total Paged Memory: " + +/* 91 */ GetTotalPagedMemory()); +/* 92 */ out.println(logTime() + "\t Avail Paged Memory: " + +/* 93 */ GetAvailPagedMemory()); +/* */ +/* */ +/* 96 */ out.println(""); +/* 97 */ out.println(logTime() + "Java Properties: " + System.getProperties()); +/* 98 */ out.println(logTime() + "Number of CPUs: " + GetNumberOfProcessors()); +/* 99 */ out.println(logTime() + "Processor Type: " + GetProcessorType()); +/* 100 */ out.println(logTime() + "Platform Type: " + GetPlatformID()); +/* */ } +/* */ +/* */ +/* */ +/* */ private static void recordPath(PrintStream out, String comment, String path) +/* */ { +/* 107 */ out.println(logTime() + comment + ": " + path); +/* 108 */ if (path != null) +/* */ { +/* 110 */ String drive = path.substring(0, 2); +/* 111 */ out.println(logTime() + "\tFree disk space (" + drive + "): " + +/* 112 */ GetDiskFreeSpace(new StringBuilder(String.valueOf(drive)).append("\\").toString()) + " KB"); +/* */ } +/* */ } +/* */ +/* */ public static String logTime() { +/* 117 */ return "[" + Std.getRealTime() + "] "; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static native int GetDiskFreeSpace(String paramString); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static int GetDiskFreeSpace() +/* */ { +/* 135 */ return GetDiskFreeSpace(null); +/* */ } +/* */ +/* */ public static native String GetSystemDirectory(); +/* */ +/* */ public static native String GetCurrentDirectory(); +/* */ +/* */ public static native int GetTotalPhysicalMemory(); +/* */ +/* */ public static native int GetAvailPhysicalMemory(); +/* */ +/* */ public static native int GetTotalPagedMemory(); +/* */ +/* */ public static native int GetAvailPagedMemory(); +/* */ +/* */ public static native String GetPlatformID(); +/* */ +/* */ public static native int GetNumberOfProcessors(); +/* */ +/* */ public static native String GetProcessorType(); +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\SystemInfo.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/TestInstanceOf.java b/NET/worlds/core/TestInstanceOf.java new file mode 100644 index 0000000..686322a --- /dev/null +++ b/NET/worlds/core/TestInstanceOf.java @@ -0,0 +1,60 @@ +/* */ package NET.worlds.core; +/* */ +/* */ import java.io.PrintStream; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class TestInstanceOf +/* */ { +/* */ public TestInstanceOf() +/* */ { +/* 27 */ System.out.println("Testing instanceOf"); +/* 28 */ Std_A a = new Std_A(); +/* 29 */ Std_B b = new Std_B(); +/* 30 */ Std_A[] aa = new Std_A[1]; +/* 31 */ Std_B[] bb = new Std_B[1]; +/* */ try { +/* 33 */ assert (Std.instanceOf(a, a.getClass())); +/* 34 */ assert (Std.instanceOf(b, b.getClass())); +/* 35 */ assert (Std.instanceOf(b, a.getClass())); +/* 36 */ assert (!Std.instanceOf(a, b.getClass())); +/* 37 */ assert (Std.instanceOf(a, Class.forName(cName("Std_IA")))); +/* 38 */ assert (!Std.instanceOf(a, Class.forName(cName("Std_IB")))); +/* 39 */ assert (Std.instanceOf(b, Class.forName(cName("Std_IA")))); +/* 40 */ assert (Std.instanceOf(b, Class.forName(cName("Std_IB")))); +/* 41 */ assert (Std.instanceOf(aa, aa.getClass())); +/* 42 */ assert (Std.instanceOf(bb, bb.getClass())); +/* 43 */ assert (Std.instanceOf(bb, aa.getClass())); +/* 44 */ assert (!Std.instanceOf(aa, bb.getClass())); +/* 45 */ System.out.println("Passed all tests"); +/* 46 */ return; +/* */ } +/* */ catch (ClassNotFoundException localClassNotFoundException) { +/* 49 */ System.out.println("Failed"); +/* */ } +/* */ } +/* */ +/* 53 */ private static String cName(String className) { return "NET.worlds.core." + className; } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\TestInstanceOf.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/Timer.java b/NET/worlds/core/Timer.java new file mode 100644 index 0000000..775032f --- /dev/null +++ b/NET/worlds/core/Timer.java @@ -0,0 +1,31 @@ +/* */ package NET.worlds.core; +/* */ +/* */ +/* */ public class Timer +/* */ extends Thread +/* */ { +/* */ private float m_delay; +/* */ private TimerCallback m_callback; +/* */ +/* */ public Timer(float delay, TimerCallback callback) +/* */ { +/* 12 */ this.m_delay = delay; +/* 13 */ this.m_callback = callback; +/* */ } +/* */ +/* */ public void run() +/* */ { +/* */ try { +/* 19 */ sleep((this.m_delay * 1000.0F)); +/* */ } +/* */ catch (InterruptedException localInterruptedException) {} +/* */ +/* 23 */ this.m_callback.timerDone(); +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\Timer.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file diff --git a/NET/worlds/core/TimerCallback.java b/NET/worlds/core/TimerCallback.java new file mode 100644 index 0000000..55293b2 --- /dev/null +++ b/NET/worlds/core/TimerCallback.java @@ -0,0 +1,12 @@ +package NET.worlds.core; + +public abstract interface TimerCallback +{ + public abstract void timerDone(); +} + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\core\TimerCallback.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file |