summaryrefslogtreecommitdiff
path: root/NET/worlds/scape/PendingDrone.java
diff options
context:
space:
mode:
Diffstat (limited to 'NET/worlds/scape/PendingDrone.java')
-rw-r--r--NET/worlds/scape/PendingDrone.java562
1 files changed, 562 insertions, 0 deletions
diff --git a/NET/worlds/scape/PendingDrone.java b/NET/worlds/scape/PendingDrone.java
new file mode 100644
index 0000000..355a476
--- /dev/null
+++ b/NET/worlds/scape/PendingDrone.java
@@ -0,0 +1,562 @@
+/* */ package NET.worlds.scape;
+/* */
+/* */ import NET.worlds.core.Archive;
+/* */ import NET.worlds.core.IniFile;
+/* */ import NET.worlds.network.Cache;
+/* */ import NET.worlds.network.CacheFile;
+/* */ import NET.worlds.network.NetUpdate;
+/* */ import NET.worlds.network.URL;
+/* */ import java.io.File;
+/* */ import java.io.FileInputStream;
+/* */ import java.io.FileNotFoundException;
+/* */ import java.io.FileOutputStream;
+/* */ import java.io.IOException;
+/* */ import java.io.InputStream;
+/* */ import java.io.PrintStream;
+/* */ import java.net.MalformedURLException;
+/* */ import java.util.Enumeration;
+/* */ import java.util.zip.ZipEntry;
+/* */ import java.util.zip.ZipFile;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public class PendingDrone
+/* */ {
+/* */ static
+/* */ {
+/* 29 */ doAvatarUpdates = true;
+/* */ }
+/* */
+/* */
+/* 33 */ static boolean doAvatarUpdates = IniFile.gamma().getIniInt("noAvUpdates", 0) == 0;
+/* */ protected PosableDrone drone;
+/* */ protected URL url;
+/* */
+/* */ PendingDrone(PosableDrone _drone, URL _url) {
+/* 38 */ this.drone = _drone;
+/* 39 */ this.url = _url;
+/* 40 */ this.loaded = false;
+/* */ }
+/* */
+/* 43 */ public PosableDrone getDrone() { return this.drone; }
+/* 44 */ public URL getUrl() { return this.url; }
+/* 45 */ public boolean getLoaded() { return this.loaded; }
+/* 46 */ public void setLoaded() { this.loaded = true; }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ protected boolean loaded;
+/* */
+/* */
+/* */
+/* */ static final boolean debug = false;
+/* */
+/* */
+/* */
+/* */ public synchronized void download(URL avURL)
+/* */ {
+/* 62 */ if (!doAvatarUpdates) { return;
+/* */ }
+/* */
+/* 65 */ if (avURL == null) { return;
+/* */ }
+/* */
+/* */
+/* */ try
+/* */ {
+/* 71 */ if (PosableDroneLoader.avatarExistsLocally(avURL)) {
+/* 72 */ return;
+/* */ }
+/* */
+/* */
+/* */ }
+/* */ catch (MalformedURLException e)
+/* */ {
+/* 79 */ return;
+/* */ }
+/* */
+/* 82 */ String s = PosableDroneLoader.getAvatarBaseName(avURL);
+/* 83 */ assert (s != null);
+/* 84 */ s = s.toLowerCase();
+/* */
+/* 86 */ URL realFile = URL.make(NetUpdate.getUpgradeServerURL() +
+/* 87 */ "AvatarUpgrades/" + s + ".zip");
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 95 */ CacheFile cf = Cache.getFile(realFile);
+/* 96 */ cf.waitUntilLoaded();
+/* 97 */ if (cf.error())
+/* */ {
+/* */
+/* */
+/* */
+/* 102 */ return;
+/* */ }
+/* */
+/* 105 */ finishDownload(cf.getLocalName());
+/* */
+/* 107 */ cf.close();
+/* */ }
+/* */
+/* */
+/* */
+/* */ public synchronized boolean finishDownload(String localName)
+/* */ {
+/* */ try
+/* */ {
+/* 116 */ patchArchive = new ZipFile(localName);
+/* */ }
+/* */ catch (IOException e)
+/* */ {
+/* */ ZipFile patchArchive;
+/* */
+/* 122 */ notify();
+/* 123 */ return false;
+/* */ }
+/* */
+/* */
+/* */
+/* */ ZipFile patchArchive;
+/* */
+/* */
+/* 131 */ Enumeration<? extends ZipEntry> enums = patchArchive.entries();
+/* 132 */ while (enums.hasMoreElements())
+/* */ {
+/* 134 */ ZipEntry ze = (ZipEntry)enums.nextElement();
+/* 135 */ String filename = ze.getName();
+/* 136 */ String avatarFile = URL.homeUnalias("avatars/" +
+/* 137 */ filename);
+/* */
+/* 139 */ String[] validExtensions =
+/* 140 */ {
+/* 141 */ ".bod", ".seq", ".dat", ".cmp", ".mov" };
+/* */
+/* */
+/* 144 */ boolean validFile = false;
+/* 145 */ for (int idx = 0; idx < validExtensions.length;
+/* 146 */ idx++)
+/* */ {
+/* */
+/* 149 */ if (avatarFile.toString().endsWith(validExtensions[idx]))
+/* */ {
+/* 151 */ validFile = true;
+/* 152 */ break;
+/* */ }
+/* */ }
+/* */
+/* 156 */ if (validFile)
+/* */ {
+/* 158 */ if (avatarFile.toString().endsWith("avatars.dat"))
+/* */ {
+/* */
+/* */
+/* */
+/* 163 */ avatarFile = URL.homeUnalias("avatars/avatars.tmp");
+/* */
+/* 165 */ CopyAvatarFile(patchArchive, ze, avatarFile);
+/* 166 */ AppendAvatarsDat();
+/* */ }
+/* */ else
+/* */ {
+/* 170 */ CopyAvatarFile(patchArchive, ze, avatarFile);
+/* */ }
+/* */ }
+/* */ }
+/* */ try
+/* */ {
+/* 176 */ patchArchive.close();
+/* */ }
+/* */ catch (IOException localIOException1) {}
+/* */
+/* 180 */ notify();
+/* */
+/* 182 */ return false;
+/* */ }
+/* */
+/* */ public Room getBackgroundLoadRoom()
+/* */ {
+/* 187 */ if ((this.drone == null) || (this.drone.getOwner() == null))
+/* 188 */ return null;
+/* 189 */ return this.drone.getOwner().getRoom();
+/* */ }
+/* */
+/* */
+/* */ private void AppendAvatarsDat()
+/* */ {
+/* 195 */ String contentZip = URL.homeUnalias("avatars/content.zip");
+/* */
+/* */
+/* */
+/* */
+/* 200 */ Archive.flushAll();
+/* */ ZipFile contentZipArchive;
+/* */ try
+/* */ {
+/* 204 */ contentZipArchive = new ZipFile(contentZip);
+/* */ }
+/* */ catch (IOException e) {
+/* */ ZipFile contentZipArchive;
+/* 208 */ contentZipArchive = null;
+/* */ }
+/* */
+/* 211 */ if (contentZipArchive != null)
+/* */ {
+/* 213 */ ZipEntry origAvatarDat = contentZipArchive.getEntry(
+/* 214 */ "avatars.dat");
+/* 215 */ if (origAvatarDat != null)
+/* */ {
+/* */
+/* */
+/* */
+/* */
+/* 221 */ CopyAvatarFile(contentZipArchive, origAvatarDat,
+/* 222 */ URL.homeUnalias("avatars/avatars.dat"));
+/* 223 */ StripAvatarDat(contentZipArchive);
+/* */ }
+/* */ else
+/* */ {
+/* */ try {
+/* 228 */ contentZipArchive.close();
+/* */ }
+/* */ catch (IOException localIOException1) {}
+/* */ }
+/* */ }
+/* */
+/* */
+/* */ try
+/* */ {
+/* 237 */ avDat = new FileOutputStream(URL.homeUnalias(
+/* 238 */ "avatars/avatars.dat"), true);
+/* */ } catch (IOException e) {
+/* */ FileOutputStream avDat;
+/* 241 */ System.out.println(e); return;
+/* */ }
+/* */
+/* */ FileOutputStream avDat;
+/* */ try
+/* */ {
+/* 247 */ avTmp = new FileInputStream(URL.homeUnalias(
+/* 248 */ "avatars/avatars.tmp"));
+/* */ }
+/* */ catch (FileNotFoundException e) {
+/* */ try {
+/* */ FileInputStream avTmp;
+/* 253 */ avDat.close();
+/* */ }
+/* */ catch (IOException localIOException2) {}
+/* */ return;
+/* */ }
+/* */ FileInputStream avTmp;
+/* 259 */ byte[] buf = new byte['Ѐ'];
+/* */ try
+/* */ {
+/* */ for (;;) {
+/* 263 */ int bytesRead = avTmp.read(buf);
+/* 264 */ if (bytesRead == -1) break;
+/* 265 */ avDat.write(buf, 0, bytesRead);
+/* */ }
+/* */ File avTmpFile;
+/* */ return;
+/* */ }
+/* */ catch (IOException localIOException3)
+/* */ {
+/* */ try {
+/* 273 */ avDat.close();
+/* 274 */ avTmp.close();
+/* */ }
+/* */ catch (IOException localIOException4) {}
+/* */
+/* */
+/* 279 */ avTmpFile = new File(URL.homeUnalias("avatars/avatars.tmp"));
+/* */
+/* 281 */ avTmpFile.delete();
+/* */
+/* */
+/* 284 */ DroneAnimator.loadconfig(
+/* 285 */ URL.make("home:avatars/avatars.dat").unalias());
+/* */ }
+/* */ }
+/* */
+/* */ /* Error */
+/* */ private void StripAvatarDat(ZipFile contentZipArchive)
+/* */ {
+/* */ // Byte code:
+/* */ // 0: new 256 java/io/FileOutputStream
+/* */ // 3: dup
+/* */ // 4: ldc_w 318
+/* */ // 7: invokestatic 173 NET/worlds/network/URL:homeUnalias (Ljava/lang/String;)Ljava/lang/String;
+/* */ // 10: invokespecial 320 java/io/FileOutputStream:<init> (Ljava/lang/String;)V
+/* */ // 13: astore_2
+/* */ // 14: goto +5 -> 19
+/* */ // 17: astore_3
+/* */ // 18: return
+/* */ // 19: new 321 java/util/zip/ZipOutputStream
+/* */ // 22: dup
+/* */ // 23: aload_2
+/* */ // 24: invokespecial 323 java/util/zip/ZipOutputStream:<init> (Ljava/io/OutputStream;)V
+/* */ // 27: astore_3
+/* */ // 28: aload_1
+/* */ // 29: invokevirtual 156 java/util/zip/ZipFile:entries ()Ljava/util/Enumeration;
+/* */ // 32: astore 4
+/* */ // 34: goto +181 -> 215
+/* */ // 37: aload 4
+/* */ // 39: invokeinterface 160 1 0
+/* */ // 44: checkcast 166 java/util/zip/ZipEntry
+/* */ // 47: astore 5
+/* */ // 49: aload 5
+/* */ // 51: invokevirtual 168 java/util/zip/ZipEntry:getName ()Ljava/lang/String;
+/* */ // 54: astore 6
+/* */ // 56: aload 6
+/* */ // 58: ldc -65
+/* */ // 60: invokevirtual 326 java/lang/String:equals (Ljava/lang/Object;)Z
+/* */ // 63: ifne +152 -> 215
+/* */ // 66: aload_1
+/* */ // 67: aload 5
+/* */ // 69: invokevirtual 330 java/util/zip/ZipFile:getInputStream (Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
+/* */ // 72: astore 7
+/* */ // 74: new 166 java/util/zip/ZipEntry
+/* */ // 77: dup
+/* */ // 78: aload 5
+/* */ // 80: invokevirtual 168 java/util/zip/ZipEntry:getName ()Ljava/lang/String;
+/* */ // 83: invokespecial 334 java/util/zip/ZipEntry:<init> (Ljava/lang/String;)V
+/* */ // 86: astore 8
+/* */ // 88: aload_3
+/* */ // 89: aload 8
+/* */ // 91: invokevirtual 335 java/util/zip/ZipOutputStream:putNextEntry (Ljava/util/zip/ZipEntry;)V
+/* */ // 94: sipush 1024
+/* */ // 97: newarray <illegal type>
+/* */ // 99: astore 9
+/* */ // 101: aload 7
+/* */ // 103: aload 9
+/* */ // 105: invokevirtual 339 java/io/InputStream:read ([B)I
+/* */ // 108: istore 10
+/* */ // 110: iload 10
+/* */ // 112: iconst_m1
+/* */ // 113: if_icmpne +6 -> 119
+/* */ // 116: goto +58 -> 174
+/* */ // 119: aload_3
+/* */ // 120: aload 9
+/* */ // 122: iconst_0
+/* */ // 123: iload 10
+/* */ // 125: invokevirtual 342 java/util/zip/ZipOutputStream:write ([BII)V
+/* */ // 128: goto -27 -> 101
+/* */ // 131: astore 10
+/* */ // 133: getstatic 261 java/lang/System:out Ljava/io/PrintStream;
+/* */ // 136: new 85 java/lang/StringBuilder
+/* */ // 139: dup
+/* */ // 140: ldc_w 343
+/* */ // 143: invokespecial 96 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
+/* */ // 146: aload 5
+/* */ // 148: invokevirtual 168 java/util/zip/ZipEntry:getName ()Ljava/lang/String;
+/* */ // 151: invokevirtual 101 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
+/* */ // 154: ldc_w 345
+/* */ // 157: invokevirtual 101 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
+/* */ // 160: aload 10
+/* */ // 162: invokevirtual 347 java/io/IOException:getMessage ()Ljava/lang/String;
+/* */ // 165: invokevirtual 101 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
+/* */ // 168: invokevirtual 107 java/lang/StringBuilder:toString ()Ljava/lang/String;
+/* */ // 171: invokevirtual 350 java/io/PrintStream:println (Ljava/lang/String;)V
+/* */ // 174: aload_3
+/* */ // 175: invokevirtual 352 java/util/zip/ZipOutputStream:closeEntry ()V
+/* */ // 178: aload 7
+/* */ // 180: invokevirtual 355 java/io/InputStream:close ()V
+/* */ // 183: goto +32 -> 215
+/* */ // 186: astore 8
+/* */ // 188: getstatic 261 java/lang/System:out Ljava/io/PrintStream;
+/* */ // 191: new 85 java/lang/StringBuilder
+/* */ // 194: dup
+/* */ // 195: ldc_w 356
+/* */ // 198: invokespecial 96 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
+/* */ // 201: aload 8
+/* */ // 203: invokevirtual 347 java/io/IOException:getMessage ()Ljava/lang/String;
+/* */ // 206: invokevirtual 101 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
+/* */ // 209: invokevirtual 107 java/lang/StringBuilder:toString ()Ljava/lang/String;
+/* */ // 212: invokevirtual 350 java/io/PrintStream:println (Ljava/lang/String;)V
+/* */ // 215: aload 4
+/* */ // 217: invokeinterface 202 1 0
+/* */ // 222: ifne -185 -> 37
+/* */ // 225: aload_1
+/* */ // 226: invokevirtual 205 java/util/zip/ZipFile:close ()V
+/* */ // 229: aload_3
+/* */ // 230: invokevirtual 358 java/util/zip/ZipOutputStream:close ()V
+/* */ // 233: goto +29 -> 262
+/* */ // 236: astore 5
+/* */ // 238: getstatic 261 java/lang/System:out Ljava/io/PrintStream;
+/* */ // 241: new 85 java/lang/StringBuilder
+/* */ // 244: dup
+/* */ // 245: ldc_w 359
+/* */ // 248: invokespecial 96 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
+/* */ // 251: aload 5
+/* */ // 253: invokevirtual 361 java/lang/StringBuilder:append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
+/* */ // 256: invokevirtual 107 java/lang/StringBuilder:toString ()Ljava/lang/String;
+/* */ // 259: invokevirtual 350 java/io/PrintStream:println (Ljava/lang/String;)V
+/* */ // 262: new 286 java/io/File
+/* */ // 265: dup
+/* */ // 266: ldc -17
+/* */ // 268: invokestatic 173 NET/worlds/network/URL:homeUnalias (Ljava/lang/String;)Ljava/lang/String;
+/* */ // 271: invokespecial 288 java/io/File:<init> (Ljava/lang/String;)V
+/* */ // 274: astore 5
+/* */ // 276: new 286 java/io/File
+/* */ // 279: dup
+/* */ // 280: ldc_w 318
+/* */ // 283: invokestatic 173 NET/worlds/network/URL:homeUnalias (Ljava/lang/String;)Ljava/lang/String;
+/* */ // 286: invokespecial 288 java/io/File:<init> (Ljava/lang/String;)V
+/* */ // 289: astore 6
+/* */ // 291: new 286 java/io/File
+/* */ // 294: dup
+/* */ // 295: ldc_w 364
+/* */ // 298: invokestatic 173 NET/worlds/network/URL:homeUnalias (Ljava/lang/String;)Ljava/lang/String;
+/* */ // 301: invokespecial 288 java/io/File:<init> (Ljava/lang/String;)V
+/* */ // 304: astore 7
+/* */ // 306: invokestatic 241 NET/worlds/core/Archive:flushAll ()V
+/* */ // 309: aload 5
+/* */ // 311: aload 7
+/* */ // 313: invokevirtual 366 java/io/File:renameTo (Ljava/io/File;)Z
+/* */ // 316: istore 8
+/* */ // 318: aload 6
+/* */ // 320: aload 5
+/* */ // 322: invokevirtual 366 java/io/File:renameTo (Ljava/io/File;)Z
+/* */ // 325: istore 8
+/* */ // 327: goto +13 -> 340
+/* */ // 330: astore 8
+/* */ // 332: getstatic 261 java/lang/System:out Ljava/io/PrintStream;
+/* */ // 335: aload 8
+/* */ // 337: invokevirtual 267 java/io/PrintStream:println (Ljava/lang/Object;)V
+/* */ // 340: return
+/* */ // Line number table:
+/* */ // Java source line #293 -> byte code offset #0
+/* */ // Java source line #295 -> byte code offset #14
+/* */ // Java source line #296 -> byte code offset #17
+/* */ // Java source line #297 -> byte code offset #19
+/* */ // Java source line #299 -> byte code offset #28
+/* */ // Java source line #300 -> byte code offset #34
+/* */ // Java source line #302 -> byte code offset #37
+/* */ // Java source line #303 -> byte code offset #49
+/* */ // Java source line #304 -> byte code offset #56
+/* */ // Java source line #309 -> byte code offset #66
+/* */ // Java source line #310 -> byte code offset #74
+/* */ // Java source line #311 -> byte code offset #88
+/* */ // Java source line #313 -> byte code offset #94
+/* */ // Java source line #318 -> byte code offset #101
+/* */ // Java source line #319 -> byte code offset #110
+/* */ // Java source line #320 -> byte code offset #119
+/* */ // Java source line #321 -> byte code offset #128
+/* */ // Java source line #322 -> byte code offset #131
+/* */ // Java source line #324 -> byte code offset #133
+/* */ // Java source line #325 -> byte code offset #146
+/* */ // Java source line #324 -> byte code offset #171
+/* */ // Java source line #330 -> byte code offset #174
+/* */ // Java source line #331 -> byte code offset #178
+/* */ // Java source line #332 -> byte code offset #183
+/* */ // Java source line #333 -> byte code offset #186
+/* */ // Java source line #334 -> byte code offset #188
+/* */ // Java source line #300 -> byte code offset #215
+/* */ // Java source line #341 -> byte code offset #225
+/* */ // Java source line #342 -> byte code offset #229
+/* */ // Java source line #343 -> byte code offset #233
+/* */ // Java source line #344 -> byte code offset #236
+/* */ // Java source line #345 -> byte code offset #238
+/* */ // Java source line #349 -> byte code offset #262
+/* */ // Java source line #350 -> byte code offset #276
+/* */ // Java source line #351 -> byte code offset #291
+/* */ // Java source line #353 -> byte code offset #306
+/* */ // Java source line #356 -> byte code offset #309
+/* */ // Java source line #358 -> byte code offset #318
+/* */ // Java source line #360 -> byte code offset #327
+/* */ // Java source line #361 -> byte code offset #330
+/* */ // Java source line #362 -> byte code offset #332
+/* */ // Java source line #364 -> byte code offset #340
+/* */ // Local variable table:
+/* */ // start length slot name signature
+/* */ // 0 341 0 this PendingDrone
+/* */ // 0 341 1 contentZipArchive ZipFile
+/* */ // 13 2 2 os FileOutputStream
+/* */ // 19 5 2 os FileOutputStream
+/* */ // 17 2 3 e IOException
+/* */ // 27 203 3 zs java.util.zip.ZipOutputStream
+/* */ // 32 184 4 enums Enumeration<? extends ZipEntry>
+/* */ // 47 100 5 ze ZipEntry
+/* */ // 236 16 5 e IOException
+/* */ // 274 47 5 origFile File
+/* */ // 54 3 6 filename String
+/* */ // 289 30 6 newFile File
+/* */ // 72 107 7 is InputStream
+/* */ // 304 8 7 oldFile File
+/* */ // 86 4 8 ze2 ZipEntry
+/* */ // 186 16 8 e IOException
+/* */ // 316 10 8 b boolean
+/* */ // 330 6 8 e Exception
+/* */ // 99 22 9 buffer byte[]
+/* */ // 108 16 10 bytesRead int
+/* */ // 131 30 10 e IOException
+/* */ // Exception table:
+/* */ // from to target type
+/* */ // 0 14 17 java/io/IOException
+/* */ // 101 116 131 java/io/IOException
+/* */ // 119 128 131 java/io/IOException
+/* */ // 66 183 186 java/io/IOException
+/* */ // 225 233 236 java/io/IOException
+/* */ // 309 327 330 java/lang/Exception
+/* */ }
+/* */
+/* */ private void CopyAvatarFile(ZipFile patchArchive, ZipEntry ze, String avatarFile)
+/* */ {
+/* */ try
+/* */ {
+/* 372 */ is = patchArchive.getInputStream(ze);
+/* */ } catch (IOException e) {
+/* */ InputStream is;
+/* */ return;
+/* */ }
+/* */ InputStream is;
+/* 378 */ try { os = new FileOutputStream(avatarFile);
+/* */ } catch (IOException e) {
+/* */ try {
+/* */ FileOutputStream os;
+/* 382 */ is.close();
+/* */ }
+/* */ catch (IOException localIOException1) {}
+/* */
+/* */ return;
+/* */ }
+/* */ FileOutputStream os;
+/* 389 */ byte[] buffer = new byte['Ѐ'];
+/* */ try
+/* */ {
+/* */ for (;;)
+/* */ {
+/* 394 */ int bytesRead = is.read(buffer);
+/* 395 */ if (bytesRead == -1)
+/* */ break;
+/* 397 */ os.write(buffer, 0, bytesRead);
+/* */ }
+/* */
+/* */
+/* */ return;
+/* */ }
+/* */ catch (IOException localIOException2)
+/* */ {
+/* */ try
+/* */ {
+/* 407 */ is.close();
+/* 408 */ os.close();
+/* */ }
+/* */ catch (IOException localIOException3) {}
+/* */ }
+/* */ }
+/* */ }
+
+
+/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\PendingDrone.class
+ * Java compiler version: 6 (50.0)
+ * JD-Core Version: 0.7.1
+ */ \ No newline at end of file