diff options
Diffstat (limited to 'NET/worlds/scape/World.java')
| -rw-r--r-- | NET/worlds/scape/World.java | 1650 |
1 files changed, 1650 insertions, 0 deletions
diff --git a/NET/worlds/scape/World.java b/NET/worlds/scape/World.java new file mode 100644 index 0000000..6490ffc --- /dev/null +++ b/NET/worlds/scape/World.java @@ -0,0 +1,1650 @@ +/* */ package NET.worlds.scape; +/* */ +/* */ import NET.worlds.console.AdBanner; +/* */ import NET.worlds.console.Console; +/* */ import NET.worlds.console.Gamma; +/* */ import NET.worlds.console.Main; +/* */ import NET.worlds.console.ProgressBar; +/* */ import NET.worlds.console.Shaper; +/* */ import NET.worlds.console.WorldsMarkPart; +/* */ import NET.worlds.core.Hashtable; +/* */ import NET.worlds.core.IniFile; +/* */ import NET.worlds.core.Std; +/* */ import NET.worlds.network.Galaxy; +/* */ import NET.worlds.network.NetUpdate; +/* */ import NET.worlds.network.URL; +/* */ import NET.worlds.network.WorldServer; +/* */ import java.io.BufferedReader; +/* */ import java.io.File; +/* */ import java.io.FileReader; +/* */ import java.io.IOException; +/* */ import java.io.PrintStream; +/* */ import java.text.MessageFormat; +/* */ import java.util.Enumeration; +/* */ import java.util.Vector; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public class World +/* */ extends SuperRoot +/* */ implements URLSelf, LoadedURLSelf, IncrementalRestorer +/* */ { +/* */ public World getWorld() +/* */ { +/* 160 */ return this; +/* */ } +/* */ +/* 163 */ static WorldRedirector redir = new WorldRedirector(URL.make(Gamma.getHome() + +/* 164 */ "redir.txt")); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static void load(URL url, LoadedURLSelf callback, boolean force) +/* */ { +/* 173 */ if (Gamma.loadProgress != null) { +/* 174 */ Gamma.loadProgress.setMessage("Loading world files..."); +/* 175 */ Gamma.loadProgress.advance(); +/* */ } +/* */ +/* */ +/* 179 */ if (url.toString().indexOf("UserHomeWorld") != -1) { +/* 180 */ String homeWorld = WorldsMarkPart.getFirstSystemMarkURL(); +/* 181 */ if (homeWorld != null) +/* */ { +/* 183 */ int poundIdx = homeWorld.indexOf("#"); +/* 184 */ if (poundIdx != -1) +/* 185 */ homeWorld = homeWorld.substring(0, poundIdx); +/* 186 */ url = URL.make(homeWorld); +/* */ } +/* */ } +/* */ +/* */ +/* 191 */ File f = new File(url.unalias()); +/* 192 */ if (!f.exists()) { +/* 193 */ url = redir.get(url); +/* */ } +/* 195 */ if (isProscribed(url, force)) { +/* 196 */ callback.loadedURLSelf(null, url, "Can't autoload WorldsStore"); +/* 197 */ return; +/* */ } +/* */ +/* */ +/* */ +/* 202 */ World w = (World)worldHash.get(url); +/* 203 */ if (w != null) { +/* 204 */ w.incRef(); +/* 205 */ callback.loadedURLSelf(w, url, null); +/* */ } else { +/* 207 */ URLSelfLoader.load(url, callback, true); +/* */ } +/* */ } +/* */ +/* 211 */ public static void load(URL url, LoadedURLSelf callback) { load(url, callback, false); } +/* */ +/* */ +/* 214 */ private static boolean cloistered = false; +/* 215 */ private static boolean cloisteredSet = false; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static boolean isCloistered() +/* */ { +/* 223 */ if (!cloisteredSet) { +/* 224 */ URL homeDir = URL.make("home:" + WorldsMarkPart.getFirstWorld()); +/* 225 */ cloistered = new File(homeDir.unalias() + "/cloistered").exists(); +/* 226 */ cloisteredSet = true; +/* */ } +/* 228 */ return cloistered; +/* */ } +/* */ +/* */ public static URL getHomeStore() { +/* 232 */ URL storeinf = URL.make("home:" + WorldsMarkPart.getFirstWorld() + +/* 233 */ "/store.inf"); +/* 234 */ URL homeStore = URL.make("home:PolyGram/polygramdlb.world"); +/* */ +/* 236 */ File sf = new File(storeinf.unalias()); +/* 237 */ if ((!sf.exists()) || (!sf.isFile())) { +/* 238 */ sf = new File(URL.make("home:PolyGram/store.inf").unalias()); +/* 239 */ if ((!sf.exists()) || (!sf.isFile())) { +/* 240 */ return homeStore; +/* */ } +/* */ } +/* */ try +/* */ { +/* 245 */ BufferedReader rdr = new BufferedReader(new FileReader(sf)); +/* 246 */ String s = rdr.readLine(); +/* 247 */ rdr.close(); +/* 248 */ homeStore = new URL(s); +/* */ } +/* */ catch (IOException localIOException) {} +/* */ +/* 252 */ return homeStore; +/* */ } +/* */ +/* */ public static boolean isWorldsStoreProscribed() { +/* 256 */ return (isCloistered()) && +/* 257 */ (IniFile.gamma().getIniInt("WorldsStoreProscribed", 1) != 0); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public static boolean isProscribed(URL url, boolean forceLoad) +/* */ { +/* 270 */ if ((!forceLoad) && (!WorldValidator.allow(url.toString()))) { +/* 271 */ return true; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 283 */ return false; +/* */ } +/* */ +/* */ public boolean isHomeWorld() { +/* 287 */ URL url = getSourceURL(); +/* 288 */ if (url != null) { +/* 289 */ URL homeURL = URL.make("home:" + WorldsMarkPart.getFirstWorld()); +/* 290 */ if (url.unalias().startsWith(homeURL.unalias() + "/")) +/* 291 */ return true; +/* */ } +/* 293 */ return false; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public void setEdited(boolean state) +/* */ { +/* 301 */ if (state != this.hasBeenEdited) { +/* 302 */ this.hasBeenEdited = state; +/* 303 */ worldListChanged(); +/* */ } +/* */ } +/* */ +/* */ public void markEdited() +/* */ { +/* 309 */ setEdited(true); +/* */ } +/* */ +/* 312 */ private String adCubeBaseURL = null; +/* */ +/* */ public String getAdCubeBaseURL() { +/* 315 */ if (this.adCubeBaseURL == null) { +/* 316 */ String worldURL = getSourceURL().toString(); +/* */ +/* */ +/* 319 */ if (worldURL.lastIndexOf("/") == -1) { +/* 320 */ return "ads/ad"; +/* */ } +/* 322 */ worldURL = worldURL.substring(0, worldURL.lastIndexOf("/")); +/* */ +/* 324 */ WorldServer w = Pilot.getActive().getServer(); +/* 325 */ if ((w != null) && (w.getGalaxy().getOnline())) { +/* 326 */ String adserverURL = NetUpdate.getUpgradeServerURL(); +/* 327 */ if (adserverURL != null) +/* */ { +/* 329 */ int i1 = worldURL.lastIndexOf("/"); +/* 330 */ int i2 = worldURL.lastIndexOf(":"); +/* 331 */ i1 = i1 > i2 ? i1 : i2; +/* 332 */ if (i1 > -1) { +/* 333 */ worldURL = worldURL.substring(i1 + 1); +/* */ } +/* 335 */ return adserverURL + worldURL + "/ads/ad"; +/* */ } +/* */ } +/* */ +/* 339 */ return worldURL + "/ads/ad"; +/* */ } +/* */ +/* 342 */ return this.adCubeBaseURL; +/* */ } +/* */ +/* */ public void setAdCubeBaseURL(String s) { +/* 346 */ this.adCubeBaseURL = new String(s); +/* */ } +/* */ +/* 349 */ private boolean hasClickableAdCube = false; +/* */ +/* */ public boolean getHasClickableAdCube() { +/* 352 */ return this.hasClickableAdCube; +/* */ } +/* */ +/* */ public void setHasClickableAdCube(boolean b) { +/* 356 */ this.hasClickableAdCube = b; +/* */ } +/* */ +/* 359 */ private boolean adCubeFormatIsGif = false; +/* */ +/* */ public boolean getAdCubeFormatIsGif() { +/* 362 */ return this.adCubeFormatIsGif; +/* */ } +/* */ +/* */ public void setAdCubeFormatIsGif(boolean b) { +/* 366 */ this.adCubeFormatIsGif = b; +/* */ } +/* */ +/* 369 */ private String defaultAdCubeURL = IniFile.override().getIniString( +/* 370 */ "defaultAdCubeURL", "http://www.worlds.com/"); +/* */ +/* */ public String getDefaultAdCubeURL() { +/* 373 */ return this.defaultAdCubeURL; +/* */ } +/* */ +/* */ public void setDefaultAdCubeURL(String s) { +/* 377 */ this.defaultAdCubeURL = new String(s); +/* */ } +/* */ +/* */ +/* */ +/* */ public boolean getEdited() +/* */ { +/* 384 */ return this.hasBeenEdited; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* 391 */ private boolean hasBeenEdited = false; +/* */ +/* */ +/* */ +/* */ private static void worldListChanged() +/* */ { +/* 397 */ if (Gamma.getShaper() != null) { +/* 398 */ Gamma.getShaper().worldListChange(); +/* */ } +/* */ } +/* */ +/* */ +/* */ public void getChildren(DeepEnumeration d) +/* */ { +/* 405 */ d.addChildEnumeration(getRooms()); +/* 406 */ if (this.eventHandlers != null) { +/* 407 */ d.addChildVector(this.eventHandlers); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public Room getRoom(String roomName) +/* */ { +/* 416 */ if (roomName.indexOf("UserHomeRoom") != -1) { +/* 417 */ roomName = getDefaultRoomName(); +/* */ } +/* */ +/* 420 */ return (Room)this.roomHash.get(roomName); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public String getDefaultRoomName() +/* */ { +/* 430 */ if (getRoom(this.defaultRoomName) == null) { +/* 431 */ if (this.roomList.isEmpty()) { +/* 432 */ this.defaultRoomName = ""; +/* */ } else { +/* 434 */ this.defaultRoomName = ((Room)this.roomList.elementAt(0)).getName(); +/* */ } +/* */ } +/* 437 */ return this.defaultRoomName; +/* */ } +/* */ +/* */ public void setDefaultRoomName(String name) { +/* 441 */ this.defaultRoomName = name; +/* */ } +/* */ +/* 444 */ private String defaultRoomName = ""; +/* */ +/* */ +/* */ +/* */ +/* */ public void addRoom(Room room) +/* */ { +/* 451 */ String name = room.getName(); +/* 452 */ int roomNum = 1; +/* 453 */ while (getRoom(name) != null) +/* 454 */ name = "Room" + roomNum++; +/* 455 */ room.setName(name); +/* 456 */ this.roomHash.put(name, room); +/* 457 */ this.roomList.addElement(room); +/* 458 */ add(room); +/* */ +/* 460 */ URL sourceURL = getSourceURL(); +/* 461 */ if ((sourceURL != null) && (worldHash.containsKey(sourceURL))) +/* */ { +/* */ +/* 464 */ room.register(); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public void renameRoom(String oldName, String newName, Room room) +/* */ { +/* 474 */ if (oldName != null) { +/* 475 */ assert (this.roomHash.get(oldName) == room); +/* 476 */ this.roomHash.remove(oldName); +/* */ } else { +/* 478 */ assert (!this.roomList.removeElement(room)); +/* 479 */ this.roomList.addElement(room); +/* */ } +/* */ +/* 482 */ assert (newName != null); +/* 483 */ assert (room.getName().equals(newName)); +/* 484 */ this.roomHash.put(newName, room); +/* */ } +/* */ +/* */ +/* */ +/* */ public void removeRoom(Room room) +/* */ { +/* 491 */ this.roomHash.remove(this.roomHash.getKey(room)); +/* 492 */ this.roomList.removeElement(room); +/* */ } +/* */ +/* */ +/* */ +/* */ public Enumeration<Object> getRooms() +/* */ { +/* 499 */ return this.roomList.elements(); +/* */ } +/* */ +/* */ +/* */ +/* */ public static Room findRoomByName(String name) +/* */ { +/* 506 */ Enumeration<World> we = worldList.elements(); +/* 507 */ Enumeration<Object> re; for (; we.hasMoreElements(); +/* */ +/* */ +/* 510 */ re.hasMoreElements()) +/* */ { +/* 508 */ World w = (World)we.nextElement(); +/* 509 */ re = w.getRooms(); +/* 510 */ continue; +/* 511 */ Room r = (Room)re.nextElement(); +/* 512 */ if (r.toString().equals(name)) { +/* 513 */ return r; +/* */ } +/* */ } +/* 516 */ return null; +/* */ } +/* */ +/* 519 */ protected Hashtable<String, Room> roomHash = new Hashtable(); +/* 520 */ protected Vector<Object> roomList = new Vector(); +/* */ +/* */ Vector<Object> eventHandlers; +/* */ +/* */ public void invokeActions(String actLabel) +/* */ { +/* 526 */ Enumeration<Object> en = getDeepOwned(); +/* 527 */ while (en.hasMoreElements()) { +/* 528 */ Object obj = en.nextElement(); +/* 529 */ if ((obj instanceof WObject)) { +/* 530 */ ((WObject)obj).doAction(actLabel, null); +/* */ } +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public boolean deliver(FrameEvent event) +/* */ { +/* 546 */ if (this.eventHandlers != null) { +/* 547 */ if (Main.profile != 0) { +/* 548 */ int i = this.eventHandlers.size(); +/* 549 */ do { FrameHandler fh = (FrameHandler)this.eventHandlers.elementAt(i); +/* 550 */ int start = Std.getRealTime(); +/* 551 */ long startBytes = Runtime.getRuntime().freeMemory(); +/* 552 */ event.retargetAndDeliver(fh, null); +/* 553 */ int dur = Std.getRealTime() - start; +/* 554 */ long used = Runtime.getRuntime().freeMemory() - startBytes; +/* 555 */ if (dur > Main.profile) { +/* 556 */ System.out.println("Took " + dur + "ms and " + used + +/* 557 */ " bytes to call world eventHandler " + fh); +/* */ } +/* 548 */ i--; } while (i >= 0); +/* */ +/* */ +/* */ +/* */ +/* */ } +/* */ else +/* */ { +/* */ +/* */ +/* */ +/* */ +/* 560 */ int i = this.eventHandlers.size(); +/* 561 */ do { event.retargetAndDeliver( +/* 562 */ (FrameHandler)this.eventHandlers.elementAt(i), null);i--; +/* 560 */ } while (i >= 0); +/* */ } +/* */ } +/* */ +/* 564 */ return true; +/* */ } +/* */ +/* 567 */ private static boolean[] didTouch = new boolean[1]; +/* */ +/* */ +/* */ private static int lastGeneratedFrameEvents; +/* */ +/* */ +/* */ private int renderStamp; +/* */ +/* */ +/* */ public static void generateFrameEvents(FrameEvent f) +/* */ { +/* 578 */ didTouch[0] = false; +/* */ +/* 580 */ int now = Std.getFastTime(); +/* */ +/* 582 */ int i = worldList.size(); +/* 583 */ do { World w = (World)worldList.elementAt(i); +/* 584 */ if (!w.discardIfOld(didTouch)) { +/* 585 */ w.deliver(f); +/* */ } +/* 582 */ i--; } while (i >= 0); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 590 */ if (Pilot.getActiveWorld() != null) { +/* 591 */ lastGeneratedFrameEvents = now; +/* */ } +/* */ } +/* */ +/* */ public Enumeration<Object> getHandlers() +/* */ { +/* 597 */ if (this.eventHandlers == null) { +/* 598 */ return new Vector().elements(); +/* */ } +/* 600 */ return this.eventHandlers.elements(); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public boolean hasHandler(SuperRoot h) +/* */ { +/* 609 */ return (this.eventHandlers != null) && (this.eventHandlers.indexOf(h) != -1); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public World addHandler(SuperRoot h) +/* */ { +/* 618 */ if (!(h instanceof FrameHandler)) +/* */ { +/* 620 */ Object[] arguments = { new String(h.getName()) }; +/* 621 */ Console.println(MessageFormat.format( +/* 622 */ Console.message("FrameHandler"), arguments)); +/* 623 */ return this; +/* */ } +/* 625 */ if (this.eventHandlers == null) +/* 626 */ this.eventHandlers = new Vector(); +/* 627 */ this.eventHandlers.addElement(h); +/* */ +/* 629 */ add(h); +/* */ +/* 631 */ return this; +/* */ } +/* */ +/* */ +/* */ +/* */ public void removeHandler(SuperRoot h) +/* */ { +/* 638 */ if (this.eventHandlers.contains(h)) { +/* 639 */ h.detach(); +/* */ +/* 641 */ this.eventHandlers.removeElement(h); +/* 642 */ if (this.eventHandlers.size() == 0) { +/* 643 */ this.eventHandlers = null; +/* */ } +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public void incRef() +/* */ { +/* 654 */ this.renderStamp = Std.getFastTime(); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 675 */ private int timeoutAge = 15000; +/* 676 */ private int nextRoomCheck = 0; +/* */ +/* */ +/* */ +/* */ +/* */ public void decRef() {} +/* */ +/* */ +/* */ +/* */ +/* */ private void touchAdjacentRooms(boolean[] didTouch) +/* */ { +/* 688 */ if (didTouch[0] == 0) { +/* 689 */ didTouch[0] = true; +/* */ +/* */ +/* 692 */ Room r = Pilot.getActiveRoom(); +/* 693 */ if (r != null) { +/* 694 */ Vector<Portal> portals = r.getOutgoingPortals(); +/* 695 */ int i = portals.size(); +/* 696 */ do { Room farr = ((Portal)portals.elementAt(i)).farSideRoom(); +/* 697 */ if (farr != null) { +/* 698 */ farr.noteRef(); +/* */ } +/* 695 */ i--; } while (i >= 0); +/* */ } +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ boolean discardIfOld(boolean[] didTouch) +/* */ { +/* 712 */ int now = Std.getFastTime(); +/* 713 */ if (now < this.nextRoomCheck) { +/* 714 */ return false; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 722 */ this.nextRoomCheck = (now + 5000 + (int)(3000.0D * Math.random())); +/* */ +/* 724 */ touchAdjacentRooms(didTouch); +/* */ +/* 726 */ int i = this.roomList.size(); +/* 727 */ do { ((Room)this.roomList.elementAt(i)).discardIfOld();i--; +/* 726 */ } while (i >= 0); +/* */ +/* */ +/* 729 */ if (this.hasBeenEdited) { +/* 730 */ return false; +/* */ } +/* 732 */ int age = now - this.renderStamp; +/* 733 */ if ((age > this.timeoutAge) && (this.renderStamp < lastGeneratedFrameEvents)) +/* */ { +/* */ +/* 736 */ if (age > this.timeoutAge) { +/* 737 */ discard(); +/* 738 */ return true; +/* */ } +/* */ } +/* */ +/* 742 */ return false; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public void discard() +/* */ { +/* 754 */ URL url = getSourceURL(); +/* 755 */ synchronized (worldHash) { +/* 756 */ worldHash.remove(url); +/* 757 */ worldList.removeElement(this); +/* */ } +/* 759 */ worldListChanged(); +/* */ +/* 761 */ URLSelfLoader.unload(this); +/* */ +/* 763 */ if (this.eventHandlers != null) { +/* 764 */ int i = this.eventHandlers.size(); +/* 765 */ do { removeHandler((SuperRoot)this.eventHandlers.elementAt(i));i--; +/* 764 */ } while (i >= 0); +/* */ } +/* 766 */ assert (this.eventHandlers == null); +/* */ +/* */ +/* */ +/* */ +/* 771 */ discardRooms(); +/* */ +/* 773 */ if (this.console != null) +/* 774 */ this.console.decRef(); +/* 775 */ this.console = null; +/* */ +/* */ +/* 778 */ System.gc(); +/* 779 */ System.runFinalization(); +/* */ } +/* */ +/* */ private void discardRooms() +/* */ { +/* 784 */ while (!this.roomList.isEmpty()) { +/* 785 */ Room r = (Room)this.roomList.elementAt(0); +/* 786 */ r.discard(); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ protected void finalize() +/* */ { +/* 795 */ discardRooms(); +/* 796 */ super.finalize(); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* 803 */ private static Hashtable<URL, World> worldHash = new Hashtable(); +/* 804 */ private static Vector<World> worldList = new Vector(); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 811 */ private boolean registerable = false; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ private void markInitialized() +/* */ { +/* 820 */ if (getSourceURL() != null) { +/* 821 */ register(); +/* */ } else { +/* 823 */ this.registerable = true; +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ private void register() +/* */ { +/* 831 */ URL url = getSourceURL(); +/* 832 */ synchronized (worldHash) { +/* 833 */ assert (!worldHash.containsKey(url)); +/* 834 */ worldHash.put(url, this); +/* 835 */ worldList.addElement(this); +/* */ } +/* 837 */ worldListChanged(); +/* 838 */ this.registerable = false; +/* */ +/* */ +/* */ +/* 842 */ int i = this.roomList.size(); +/* 843 */ do { ((Room)this.roomList.elementAt(i)).register();i--; +/* 842 */ } while (i >= 0); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public void setSourceURL(URL url) +/* */ { +/* 850 */ super.setSourceURL(url); +/* */ +/* 852 */ if (this.registerable) { +/* 853 */ register(); +/* */ } +/* */ } +/* */ +/* */ public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException +/* */ { +/* 859 */ Object ret = null; +/* */ +/* 861 */ switch (index - offset) { +/* */ case 0: +/* 863 */ if (mode == 0) { +/* 864 */ ret = StringPropertyEditor.make(new Property(this, index, +/* 865 */ "Default Room Name")); +/* 866 */ } else if (mode == 1) { +/* 867 */ ret = getDefaultRoomName(); +/* 868 */ } else if (mode == 2) { +/* 869 */ String name = (String)value; +/* 870 */ if (getRoom(name) == null) { +/* 871 */ Console.println(name + Console.message("No-room-named")); +/* */ } else +/* 873 */ setDefaultRoomName(name); +/* */ } +/* 875 */ break; +/* */ +/* */ case 1: +/* 878 */ if (mode == 0) { +/* 879 */ ret = BooleanPropertyEditor.make(new Property(this, index, +/* 880 */ "Multiuser"), "No", "Yes"); +/* 881 */ } else if (mode == 1) { +/* 882 */ ret = new Boolean(getMultiuser()); +/* 883 */ } else if (mode == 2) +/* 884 */ setMultiuser(((Boolean)value).booleanValue()); +/* 885 */ break; +/* */ case 2: +/* 887 */ if (mode == 0) { +/* 888 */ ret = new Property(this, index, "Console"); +/* 889 */ } else if (mode == 1) +/* 890 */ ret = this.console; +/* 891 */ break; +/* */ +/* */ case 3: +/* 894 */ if (mode == 0) { +/* 895 */ ret = PropAdder.make(new VectorProperty(this, index, "Rooms")); +/* 896 */ } else if (mode == 1) { +/* 897 */ ret = VectorProperty.toVector(this.roomHash); +/* 898 */ } else if (mode == 4) { +/* 899 */ ((Room)value).detach(); +/* 900 */ } else if (mode == 3) { +/* 901 */ if (!(value instanceof Room)) +/* 902 */ throw new Error("Can only add Rooms to a World."); +/* 903 */ addRoom((Room)value); +/* 904 */ } else if ((mode == 5) && ((value instanceof Room))) { +/* 905 */ ret = value; } +/* 906 */ break; +/* */ case 4: +/* 908 */ if (mode == 0) { +/* 909 */ ret = FloatPropertyEditor.make(new Property(this, index, +/* 910 */ "Time-out Age (seconds)")); +/* 911 */ } else if (mode == 1) { +/* 912 */ ret = new Float(this.timeoutAge / 1000.0F); +/* 913 */ } else if (mode == 2) { +/* 914 */ this.timeoutAge = Math.round(((Float)value).floatValue() * 1000.0F); +/* */ } +/* 916 */ break; +/* */ +/* */ case 5: +/* 919 */ if (mode == 0) { +/* 920 */ ret = PropAdder.make(new VectorProperty(this, index, +/* 921 */ "Running Actions (delete to stop)")); +/* 922 */ } else if (mode == 1) { +/* 923 */ if (this.eventHandlers != null) +/* 924 */ ret = this.eventHandlers.clone(); +/* 925 */ } else if (mode == 4) { +/* 926 */ removeHandler((SuperRoot)value); +/* */ } +/* 928 */ break; +/* */ case 6: +/* 930 */ if (mode == 0) { +/* 931 */ ret = URLPropertyEditor.make(new Property(this, index, +/* 932 */ "Server URL"), "console"); +/* 933 */ } else if (mode == 1) { +/* 934 */ ret = this.desiredWorldServerURL; +/* 935 */ if (ret != null) { +/* 936 */ String u = this.desiredWorldServerURL.unalias(); +/* 937 */ if (u.startsWith("worldserver://")) +/* 938 */ ret = URL.make(u + "default.console"); +/* */ } +/* 940 */ } else if (mode == 2) { +/* 941 */ URL url = (URL)value; +/* 942 */ if (url != null) { +/* 943 */ String u = url.unalias(); +/* 944 */ int len = u.length(); +/* 945 */ if (u.startsWith("worldserver://")) +/* */ { +/* 947 */ if ((!url.endsWith("/default.console")) || (len < 31)) { +/* 948 */ Console.println( +/* 949 */ Console.message("server-URL") + "default.console"); +/* */ } +/* */ else +/* */ { +/* 953 */ u = u.substring(14, len - 16); } +/* */ } else +/* 955 */ url = Console.makeServerURL(u); +/* */ } else { +/* 957 */ setWorldServerURL(url); +/* */ } } +/* 959 */ break; +/* */ case 7: +/* 961 */ if (mode == 0) { +/* 962 */ ret = BooleanPropertyEditor.make(new Property(this, index, +/* 963 */ "Courtesy VIP"), "No", "Yes"); +/* 964 */ } else if (mode == 1) { +/* 965 */ ret = new Boolean(getCourtesyVIP()); +/* 966 */ } else if (mode == 2) +/* 967 */ setCourtesyVIP(((Boolean)value).booleanValue()); +/* 968 */ break; +/* */ +/* */ case 8: +/* 971 */ if (mode == 0) { +/* 972 */ ret = BooleanPropertyEditor.make(new Property(this, index, +/* 973 */ "Force Human"), "No", "Yes"); +/* 974 */ } else if (mode == 1) { +/* 975 */ ret = new Boolean(getForceHuman()); +/* 976 */ } else if (mode == 2) +/* 977 */ setForceHuman(((Boolean)value).booleanValue()); +/* 978 */ break; +/* */ +/* */ case 9: +/* 981 */ if (mode == 0) { +/* 982 */ ret = BooleanPropertyEditor.make(new Property(this, index, +/* 983 */ "Has Ad Banner"), "No", "Yes"); +/* 984 */ } else if (mode == 1) { +/* 985 */ ret = new Boolean(getHasAdBanner()); +/* 986 */ } else if (mode == 2) { +/* 987 */ setHasAdBanner(((Boolean)value).booleanValue()); +/* 988 */ setupAdBanner(); +/* */ } +/* 990 */ break; +/* */ case 10: +/* 992 */ if (mode == 0) { +/* 993 */ ret = IntegerPropertyEditor.make(new Property(this, index, +/* 994 */ "Banner Width")); +/* 995 */ } else if (mode == 1) { +/* 996 */ ret = new Integer(getBannerWidth()); +/* 997 */ } else if (mode == 2) { +/* 998 */ setBannerWidth(((Integer)value).intValue()); +/* 999 */ setupAdBanner(); +/* */ } +/* 1001 */ break; +/* */ case 11: +/* 1003 */ if (mode == 0) { +/* 1004 */ ret = IntegerPropertyEditor.make(new Property(this, index, +/* 1005 */ "Banner Height")); +/* 1006 */ } else if (mode == 1) { +/* 1007 */ ret = new Integer(getBannerHeight()); +/* 1008 */ } else if (mode == 2) { +/* 1009 */ setBannerHeight(((Integer)value).intValue()); +/* 1010 */ setupAdBanner(); +/* */ } +/* 1012 */ break; +/* */ case 12: +/* 1014 */ if (mode == 0) { +/* 1015 */ ret = StringPropertyEditor.make(new Property(this, index, +/* 1016 */ "Ad Banner URL")); +/* 1017 */ } else if (mode == 1) { +/* 1018 */ ret = getBannerURL(); +/* 1019 */ } else if (mode == 2) { +/* 1020 */ String name = (String)value; +/* 1021 */ setBannerURL(name); +/* */ } +/* 1023 */ break; +/* */ case 13: +/* 1025 */ if (mode == 0) { +/* 1026 */ ret = BooleanPropertyEditor.make(new Property(this, index, +/* 1027 */ "Has Clickable Ad Cube"), "No", "Yes"); +/* 1028 */ } else if (mode == 1) { +/* 1029 */ ret = new Boolean(getHasClickableAdCube()); +/* 1030 */ } else if (mode == 2) { +/* 1031 */ setHasClickableAdCube(((Boolean)value).booleanValue()); +/* */ } +/* 1033 */ break; +/* */ +/* */ case 14: +/* 1036 */ if (mode == 0) { +/* 1037 */ ret = BooleanPropertyEditor.make(new Property(this, index, +/* 1038 */ "Ad Cube image format"), "CMP", "GIF"); +/* 1039 */ } else if (mode == 1) { +/* 1040 */ ret = new Boolean(getAdCubeFormatIsGif()); +/* 1041 */ } else if (mode == 2) { +/* 1042 */ setAdCubeFormatIsGif(((Boolean)value).booleanValue()); +/* */ } +/* 1044 */ break; +/* */ +/* */ case 15: +/* 1047 */ if (mode == 0) { +/* 1048 */ ret = StringPropertyEditor.make(new Property(this, index, +/* 1049 */ "Ad cube base URL")); +/* 1050 */ } else if (mode == 1) { +/* 1051 */ ret = getAdCubeBaseURL(); +/* 1052 */ } else if (mode == 2) { +/* 1053 */ String name = (String)value; +/* 1054 */ setAdCubeBaseURL(name); +/* */ } +/* 1056 */ break; +/* */ +/* */ case 16: +/* 1059 */ if (mode == 0) { +/* 1060 */ ret = StringPropertyEditor.make(new Property(this, index, +/* 1061 */ "Ad cube default click URL")); +/* 1062 */ } else if (mode == 1) { +/* 1063 */ ret = getDefaultAdCubeURL(); +/* 1064 */ } else if (mode == 2) { +/* 1065 */ String name = (String)value; +/* 1066 */ setDefaultAdCubeURL(name); +/* */ } +/* 1068 */ break; +/* */ +/* */ default: +/* 1071 */ ret = super.properties(index, offset + 17, mode, value); +/* */ } +/* 1073 */ return ret; +/* */ } +/* */ +/* */ +/* 1077 */ private static Object classCookie = new Object(); +/* */ private static final int INIT = 0; +/* */ +/* 1080 */ public void saveState(Saver s) throws IOException { s.saveVersion(13, classCookie); +/* 1081 */ super.saveState(s); +/* 1082 */ s.saveString(this.defaultRoomName); +/* 1083 */ URL.save(s, this.desiredWorldServerURL); +/* 1084 */ s.saveInt(this.timeoutAge); +/* 1085 */ s.saveBoolean(getMultiuser()); +/* 1086 */ s.saveBoolean(getCourtesyVIP()); +/* 1087 */ s.saveBoolean(getForceHuman()); +/* 1088 */ s.saveBoolean(getHasAdBanner()); +/* 1089 */ s.saveInt(getBannerWidth()); +/* 1090 */ s.saveInt(getBannerHeight()); +/* 1091 */ s.saveString(getBannerURL()); +/* 1092 */ s.saveBoolean(getHasClickableAdCube()); +/* 1093 */ s.saveBoolean(getAdCubeFormatIsGif()); +/* 1094 */ s.saveString(getAdCubeBaseURL()); +/* 1095 */ s.saveString(getDefaultAdCubeURL()); +/* */ +/* 1097 */ s.save(this.roomHash); +/* */ } +/* */ +/* */ +/* */ +/* */ private static final int RESTOREROOMS = 1; +/* */ +/* */ +/* */ private static final int ADDROOMS = 2; +/* */ +/* */ +/* */ public void restoreState(Restorer r) +/* */ throws IOException, TooNewException +/* */ { +/* 1111 */ URLSelfLoader.immediateLoad(this, r); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ private void restoreOldURL(Restorer r) +/* */ throws IOException +/* */ { +/* 1124 */ String s = r.restoreString(); +/* */ URL url; +/* */ URL url; +/* 1127 */ if ((s == null) || (s.equals("UNSHARED"))) { +/* 1128 */ url = null; } else { URL url; +/* 1129 */ if (!s.endsWith(".console")) { +/* 1130 */ url = Console.makeServerURL(s); +/* */ } else +/* 1132 */ url = URL.restore(r, s, null); +/* */ } +/* 1134 */ if (url == null) { +/* 1135 */ url = defaultServerURL; +/* */ } else { +/* 1137 */ setMultiuser(true); +/* */ } +/* 1139 */ setWorldServerURL(url); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public int restorePreRooms(Restorer r) +/* */ throws IOException, TooNewException +/* */ { +/* 1150 */ int version = r.restoreVersion(classCookie); +/* 1151 */ switch (version) { +/* */ case 0: +/* 1153 */ r.setOldFlag(); +/* 1154 */ setName(r.restoreString()); +/* 1155 */ this.defaultRoomName = r.restoreString(); +/* 1156 */ restoreOldURL(r); +/* 1157 */ this.roomHash = ((Hashtable)r.restore(false)); +/* */ +/* 1159 */ break; +/* */ case 1: +/* */ case 3: +/* 1162 */ r.setOldFlag(); +/* 1163 */ super.restoreState(r); +/* 1164 */ this.defaultRoomName = r.restoreString(); +/* 1165 */ restoreOldURL(r); +/* 1166 */ this.roomHash = ((Hashtable)r.restore(false)); +/* 1167 */ break; +/* */ case 2: +/* 1169 */ r.setOldFlag(); +/* 1170 */ super.restoreState(r); +/* 1171 */ this.defaultRoomName = r.restoreString(); +/* 1172 */ restoreOldURL(r); +/* 1173 */ r.restoreString(); +/* 1174 */ this.roomHash = ((Hashtable)r.restore(false)); +/* 1175 */ break; +/* */ case 4: +/* 1177 */ super.restoreState(r); +/* 1178 */ this.defaultRoomName = r.restoreString(); +/* 1179 */ restoreOldURL(r); +/* 1180 */ this.roomHash = ((Hashtable)r.restore(false)); +/* 1181 */ break; +/* */ case 5: +/* 1183 */ super.restoreState(r); +/* 1184 */ this.defaultRoomName = r.restoreString(); +/* 1185 */ restoreOldURL(r); +/* 1186 */ this.timeoutAge = r.restoreInt(); +/* 1187 */ this.roomHash = ((Hashtable)r.restore(false)); +/* 1188 */ break; +/* */ case 6: +/* 1190 */ super.restoreState(r); +/* 1191 */ this.defaultRoomName = r.restoreString(); +/* 1192 */ restoreOldURL(r); +/* 1193 */ this.timeoutAge = r.restoreInt(); +/* 1194 */ r.restoreBoolean(); +/* 1195 */ this.roomHash = ((Hashtable)r.restore(false)); +/* 1196 */ break; +/* */ case 7: +/* 1198 */ super.restoreState(r); +/* 1199 */ this.defaultRoomName = r.restoreString(); +/* */ +/* 1201 */ URL url = URL.restore(r); +/* 1202 */ if (url == null) { +/* 1203 */ url = defaultServerURL; +/* */ } else { +/* 1205 */ setMultiuser(true); +/* */ } +/* 1207 */ setWorldServerURL(url); +/* */ +/* 1209 */ this.timeoutAge = r.restoreInt(); +/* 1210 */ r.restoreBoolean(); +/* 1211 */ this.roomHash = ((Hashtable)r.restore(false)); +/* 1212 */ break; +/* */ case 8: +/* */ case 9: +/* */ case 10: +/* */ case 11: +/* */ case 12: +/* */ case 13: +/* 1219 */ super.restoreState(r); +/* 1220 */ this.defaultRoomName = r.restoreString(); +/* 1221 */ setWorldServerURL(URL.restore(r)); +/* 1222 */ this.timeoutAge = r.restoreInt(); +/* 1223 */ setMultiuser(r.restoreBoolean()); +/* 1224 */ if (version > 9) +/* 1225 */ setCourtesyVIP(r.restoreBoolean()); +/* 1226 */ if (version > 10) +/* 1227 */ setForceHuman(r.restoreBoolean()); +/* 1228 */ if (version > 11) { +/* 1229 */ setHasAdBanner(r.restoreBoolean()); +/* 1230 */ setBannerWidth(r.restoreInt()); +/* 1231 */ setBannerHeight(r.restoreInt()); +/* 1232 */ setBannerURL(r.restoreString()); +/* */ } +/* 1234 */ if (version > 12) { +/* 1235 */ setHasClickableAdCube(r.restoreBoolean()); +/* 1236 */ setAdCubeFormatIsGif(r.restoreBoolean()); +/* 1237 */ setAdCubeBaseURL(r.restoreString()); +/* 1238 */ setDefaultAdCubeURL(r.restoreString()); +/* */ } +/* 1240 */ this.roomHash = ((Hashtable)r.restore(false)); +/* 1241 */ break; +/* */ default: +/* 1243 */ throw new TooNewException(); +/* */ } +/* */ +/* 1246 */ for (Enumeration<Room> e = this.roomHash.elements(); e.hasMoreElements();) { +/* 1247 */ this.roomList.addElement(e.nextElement()); +/* */ } +/* 1249 */ if ((version < 9) && (this.timeoutAge == 60000)) { +/* 1250 */ this.timeoutAge = 15000; +/* */ } +/* 1252 */ return version; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public Object clone() +/* */ { +/* 1260 */ World newWorld = (World)super.clone(); +/* */ +/* */ +/* 1263 */ int worldNum = 1; +/* */ String newname; +/* */ URL key; +/* */ do { +/* 1267 */ newname = "World" + worldNum++; +/* 1268 */ key = URL.make("session:" + newname + ".world"); +/* 1269 */ } while (worldHash.containsKey(key)); +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 1277 */ newWorld.setName(newname); +/* 1278 */ newWorld.setSourceURL(key); +/* */ +/* 1280 */ return newWorld; +/* */ } +/* */ +/* */ +/* */ +/* */ private static final int LOADCONSOLE = 3; +/* */ +/* */ +/* */ private static final int DONE = -1; +/* */ +/* */ +/* */ private Enumeration<Room> tmpenum; +/* */ +/* */ +/* */ public int incRestore(int state, Restorer r, URLSelfLoader p) +/* */ throws Exception +/* */ { +/* 1297 */ switch (state) { +/* */ case 0: +/* 1299 */ p.itemp2 = restorePreRooms(r); +/* 1300 */ p.itemp1 = this.roomHash.restoreCount(r); +/* */ +/* */ case 1: +/* 1303 */ if (--p.itemp1 >= 0) { +/* 1304 */ this.roomHash.restoreEntry(r); +/* 1305 */ return 1; +/* */ } +/* */ +/* */ +/* 1309 */ if (p.itemp2 == 4) { +/* 1310 */ this.timeoutAge = r.restoreInt(); +/* */ +/* */ +/* 1313 */ if ((this.timeoutAge == 900000) || (this.timeoutAge == 60000)) { +/* 1314 */ this.timeoutAge = 15000; +/* */ } +/* */ } +/* 1317 */ if (r.version() < 3) { +/* 1318 */ return -1; +/* */ } +/* */ case 2: case 3: +/* 1321 */ return finishRestore(state, +/* 1322 */ (r.version() != Saver.version()) || (r.oldFlag()), p.getURL()); +/* */ } +/* */ +/* 1325 */ if (!$assertionsDisabled) throw new AssertionError(); +/* 1326 */ return -1; +/* */ } +/* */ +/* */ +/* */ +/* */ public int finishRestore(int state, boolean oldFlag, URL url) +/* */ throws Exception +/* */ { +/* 1334 */ switch (state) +/* */ { +/* */ +/* */ +/* */ case 0: +/* */ case 1: +/* 1340 */ this.tmpenum = this.roomHash.elements(); +/* */ +/* 1342 */ this.roomHash = new Hashtable(); +/* */ +/* */ case 2: +/* 1345 */ if (this.tmpenum.hasMoreElements()) { +/* 1346 */ Room rm = (Room)this.tmpenum.nextElement(); +/* 1347 */ addRoom(rm); +/* 1348 */ return 2; +/* */ } +/* 1350 */ this.tmpenum = null; +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ case 3: +/* 1359 */ if ((this.console == null) && (this.loadErr == null)) { +/* 1360 */ return 3; +/* */ } +/* 1362 */ if (this.loadErr != null) { +/* 1363 */ throw new IOException(this.loadErr); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 1374 */ markInitialized(); +/* */ +/* 1376 */ return -1; } +/* */ +/* 1378 */ if (!$assertionsDisabled) throw new AssertionError(); +/* 1379 */ return -1; +/* */ } +/* */ +/* */ public void postRestore(int version) { +/* 1383 */ super.postRestore(version); +/* 1384 */ if (version > 2) +/* 1385 */ return; +/* 1386 */ int state = 0; +/* */ try { +/* 1388 */ while ((state = finishRestore(state, true, +/* 1389 */ URL.make("error:This file"))) != -1) {} +/* */ } +/* */ catch (Exception ex) +/* */ { +/* 1393 */ ex.printStackTrace(System.out); +/* 1394 */ if (!$assertionsDisabled) { throw new AssertionError(); +/* */ } +/* */ } +/* */ } +/* */ +/* */ +/* 1400 */ protected Console console = null; +/* */ +/* */ String loadErr; +/* */ +/* */ +/* */ public Console getConsole() +/* */ { +/* 1407 */ return this.console; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ public void loadedURLSelf(URLSelf o, URL url, String err) +/* */ { +/* 1415 */ if ((err != null) || (!(o instanceof Console))) { +/* 1416 */ if (err == null) { +/* 1417 */ Object[] arguments = { new String(url) }; +/* 1418 */ Console.println(MessageFormat.format( +/* 1419 */ Console.message("no-world"), arguments)); +/* 1420 */ o.decRef(); +/* */ } +/* */ +/* */ +/* 1424 */ Console.println(Console.message("cant-load") + err); +/* 1425 */ Console.load(null, this); +/* */ +/* 1427 */ return; +/* */ } +/* */ +/* */ +/* 1431 */ Console oldConsole = this.console; +/* */ +/* 1433 */ this.console = ((Console)o); +/* */ +/* 1435 */ if (oldConsole != null) +/* */ { +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 1444 */ Galaxy oldGalaxy = oldConsole.getGalaxy(); +/* 1445 */ Galaxy galaxy = this.console.getGalaxy(); +/* */ +/* 1447 */ assert (oldGalaxy != null); +/* 1448 */ assert (galaxy != null); +/* 1449 */ if (oldGalaxy != galaxy) { +/* 1450 */ oldGalaxy.forceObjectRereg(); +/* */ } +/* */ +/* 1453 */ oldConsole.decRef(); +/* */ } +/* */ +/* 1456 */ this.worldServerURL = url; +/* */ +/* */ +/* 1459 */ if ((Pilot.getActive() != null) && (Pilot.getActive().getWorld() == this)) { +/* 1460 */ Pilot.changeActiveRoom(Pilot.getActive().getRoom()); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* 1468 */ static URL defaultServerURL = URL.make("worldserver://www.3dcd.com:6650/"); +/* */ private URL worldServerURL; +/* 1470 */ private URL desiredWorldServerURL = defaultServerURL; +/* */ +/* */ +/* */ private boolean isCourtesyVIP; +/* */ +/* */ +/* */ +/* */ public boolean getCourtesyVIP() +/* */ { +/* 1479 */ return this.isCourtesyVIP; +/* */ } +/* */ +/* */ private void setCourtesyVIP(boolean b) { +/* 1483 */ this.isCourtesyVIP = b; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* 1491 */ private boolean isForceHuman = false; +/* */ +/* */ public boolean getForceHuman() { +/* 1494 */ return this.isForceHuman; +/* */ } +/* */ +/* */ private void setForceHuman(boolean b) { +/* 1498 */ this.isForceHuman = b; +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* 1505 */ private boolean hasAdBanner = false; +/* 1506 */ private int adBannerWidth = 474; +/* 1507 */ private int adBannerHeight = 65; +/* 1508 */ private String adBannerURL = "$SCRIPTSERVERgetad.pl?s=$SERIALNUM"; +/* */ +/* */ public boolean getHasAdBanner() { +/* 1511 */ return this.hasAdBanner; +/* */ } +/* */ +/* */ public void setHasAdBanner(boolean b) { +/* 1515 */ this.hasAdBanner = b; +/* */ } +/* */ +/* */ public int getBannerWidth() { +/* 1519 */ return this.adBannerWidth; +/* */ } +/* */ +/* */ public void setBannerWidth(int i) { +/* 1523 */ this.adBannerWidth = i; +/* */ } +/* */ +/* */ public int getBannerHeight() { +/* 1527 */ return this.adBannerHeight; +/* */ } +/* */ +/* */ public void setBannerHeight(int i) { +/* 1531 */ this.adBannerHeight = i; +/* */ } +/* */ +/* */ public String getBannerURL() { +/* 1535 */ return this.adBannerURL; +/* */ } +/* */ +/* */ public void setBannerURL(String s) { +/* 1539 */ this.adBannerURL = s; +/* */ } +/* */ +/* 1542 */ private static AdBanner theAdBanner = null; +/* */ private boolean isMultiuser; +/* */ +/* 1545 */ public void setupAdBanner() { if (theAdBanner != null) { +/* 1546 */ theAdBanner.detach(); +/* 1547 */ theAdBanner = null; +/* */ } +/* */ +/* 1550 */ if (this.hasAdBanner) { +/* 1551 */ theAdBanner = new AdBanner(this.adBannerWidth, this.adBannerHeight, +/* 1552 */ this.adBannerURL); +/* */ } +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ private boolean getMultiuser() +/* */ { +/* 1563 */ return this.isMultiuser; +/* */ } +/* */ +/* */ private void setMultiuser(boolean b) { +/* 1567 */ this.isMultiuser = b; +/* 1568 */ setWorldServerURL(this.desiredWorldServerURL); +/* */ } +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ +/* */ public World setWorldServerURL(URL s) +/* */ { +/* 1582 */ this.desiredWorldServerURL = s; +/* */ +/* */ +/* 1585 */ String i = s.getInternal(); +/* 1586 */ if ((i.startsWith("worldserver://www.3dcd.com")) && +/* 1587 */ (NetUpdate.overrideWorldServer != null)) { +/* 1588 */ i = i.substring(26); +/* 1589 */ if ((i.startsWith(":")) && +/* 1590 */ (NetUpdate.overrideWorldServer.indexOf(':', 13) >= 0)) +/* */ { +/* 1592 */ for (int j = 1; +/* 1593 */ j < i.length(); j++) +/* 1594 */ if (!Character.isDigit(i.charAt(j))) +/* */ break; +/* 1596 */ i = i.substring(j); +/* */ } +/* 1598 */ s = URL.make(NetUpdate.overrideWorldServer + i); +/* */ } +/* */ +/* 1601 */ this.loadErr = null; +/* 1602 */ Console.load(this.isMultiuser ? s : null, this); +/* */ +/* 1604 */ return this; +/* */ } +/* */ +/* */ public static Enumeration<World> getWorlds() { +/* 1608 */ return worldList.elements(); +/* */ } +/* */ } + + +/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\World.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 0.7.1 + */
\ No newline at end of file |