47254 lines
1.7 MiB
47254 lines
1.7 MiB
diff -ruN a/1890/NET/worlds/console/AboutDialog.java b/1890/NET/worlds/console/AboutDialog.java
|
|
--- a/1890/NET/worlds/console/AboutDialog.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/console/AboutDialog.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -3,6 +3,8 @@
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.Std;
|
|
import NET.worlds.network.NetUpdate;
|
|
+import NET.worldsplus.WPlus;
|
|
+
|
|
import java.awt.BorderLayout;
|
|
import java.awt.Button;
|
|
import java.awt.Color;
|
|
@@ -19,76 +21,77 @@
|
|
import java.util.Vector;
|
|
|
|
public class AboutDialog extends PolledDialog {
|
|
- Button okButton = new Button(Console.message("OK"));
|
|
- private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
- private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
- String apptitle;
|
|
-
|
|
- AboutDialog(String var1, Frame var2) {
|
|
- super(var2, (DialogReceiver)null, Console.message("About") + Std.getProductName(), true);
|
|
- this.apptitle = var1;
|
|
- this.ready();
|
|
- }
|
|
-
|
|
- private Component setConstraints(GridBagLayout var1, Component var2, GridBagConstraints var3) {
|
|
- var1.setConstraints(var2, var3);
|
|
- return var2;
|
|
- }
|
|
-
|
|
- protected void build() {
|
|
- this.setBackground(Color.white);
|
|
- this.setLayout(new BorderLayout());
|
|
- this.add("North", new Filler(10, 10));
|
|
- this.add("South", new Filler(10, 10));
|
|
- this.add("East", new Filler(10, 10));
|
|
- this.add("West", new Filler(10, 10));
|
|
- GridBagLayout var1 = new GridBagLayout();
|
|
- Panel var2 = new Panel(var1);
|
|
- var2.setFont(font);
|
|
- GridBagConstraints var3 = new GridBagConstraints();
|
|
- var3.fill = 0;
|
|
- var3.weightx = 1.0D;
|
|
- var3.weighty = 1.0D;
|
|
- var3.gridwidth = 0;
|
|
- var3.gridheight = 1;
|
|
- String var4 = IniFile.override().getIniString("AboutLogo", Console.message("wlogo.gif"));
|
|
- var2.add(this.setConstraints(var1, new ImageCanvas(var4), var3));
|
|
- var3.weightx = 0.0D;
|
|
- var3.weighty = 0.0D;
|
|
- var2.add(this.setConstraints(var1, new Label(this.apptitle), var3));
|
|
- if (Gamma.getShaper() != null) {
|
|
- var2.add(this.setConstraints(var1, new Label(Console.message("about-box-build-date") + " " + Std.getBuildInfo()), var3));
|
|
- } else {
|
|
- var2.add(this.setConstraints(var1, new Label(Console.message("about-box-rev") + " " + Std.getVersion()), var3));
|
|
- }
|
|
-
|
|
- Vector var5 = NetUpdate.aboutWorlds();
|
|
- TextArea var6 = new TextArea(10, 40);
|
|
- var6.setEditable(false);
|
|
- var2.add(this.setConstraints(var1, var6, var3));
|
|
- Enumeration var7 = var5.elements();
|
|
-
|
|
- while(var7.hasMoreElements()) {
|
|
- var6.append((String)var7.nextElement() + "\n");
|
|
- }
|
|
-
|
|
- var2.add(this.setConstraints(var1, new Label(Console.message("about-box-1")), var3));
|
|
- var2.add(this.setConstraints(var1, new Label(Console.message("about-box-2")), var3));
|
|
- this.okButton.setFont(bfont);
|
|
- var2.add(this.setConstraints(var1, this.okButton, var3));
|
|
- this.add("Center", var2);
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- return var1.target == this.okButton ? this.done(true) : false;
|
|
- }
|
|
-
|
|
- public boolean keyDown(Event var1, int var2) {
|
|
- return var2 != 27 && var2 != 10 ? super.keyDown(var1, var2) : this.done(true);
|
|
- }
|
|
-
|
|
- public void show() {
|
|
- super.show();
|
|
- this.okButton.requestFocus();
|
|
- }
|
|
+ Button okButton = new Button(Console.message("OK"));
|
|
+ private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
+ private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
+ String apptitle;
|
|
+
|
|
+ AboutDialog(String var1, Frame var2) {
|
|
+ super(var2, (DialogReceiver)null, Console.message("About") + Std.getProductName(), true);
|
|
+ this.apptitle = var1;
|
|
+ this.ready();
|
|
+ }
|
|
+
|
|
+ private Component setConstraints(GridBagLayout var1, Component var2, GridBagConstraints var3) {
|
|
+ var1.setConstraints(var2, var3);
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ protected void build() {
|
|
+ this.setBackground(Color.white);
|
|
+ this.setLayout(new BorderLayout());
|
|
+ this.add("North", new Filler(10, 10));
|
|
+ this.add("South", new Filler(10, 10));
|
|
+ this.add("East", new Filler(10, 10));
|
|
+ this.add("West", new Filler(10, 10));
|
|
+ GridBagLayout var1 = new GridBagLayout();
|
|
+ Panel var2 = new Panel(var1);
|
|
+ var2.setFont(font);
|
|
+ GridBagConstraints var3 = new GridBagConstraints();
|
|
+ var3.fill = 0;
|
|
+ var3.weightx = 1.0D;
|
|
+ var3.weighty = 1.0D;
|
|
+ var3.gridwidth = 0;
|
|
+ var3.gridheight = 1;
|
|
+ String var4 = IniFile.override().getIniString("AboutLogo", Console.message("wlogo.gif"));
|
|
+ var2.add(this.setConstraints(var1, new ImageCanvas(var4), var3));
|
|
+ var3.weightx = 0.0D;
|
|
+ var3.weighty = 0.0D;
|
|
+ var2.add(this.setConstraints(var1, new Label(this.apptitle), var3));
|
|
+ if (Gamma.getShaper() != null) {
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-build-date") + " " + Std.getBuildInfo()), var3));
|
|
+ } else {
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-rev") + " " + Std.getVersion()), var3));
|
|
+ }
|
|
+ var2.add(this.setConstraints(var1, new Label("Worlds+ by Wirlaburla " + WPlus.getVersion()), var3));
|
|
+
|
|
+ Vector var5 = NetUpdate.aboutWorlds();
|
|
+ TextArea var6 = new TextArea(10, 40);
|
|
+ var6.setEditable(false);
|
|
+ var2.add(this.setConstraints(var1, var6, var3));
|
|
+ Enumeration var7 = var5.elements();
|
|
+
|
|
+ while(var7.hasMoreElements()) {
|
|
+ var6.append((String)var7.nextElement() + "\n");
|
|
+ }
|
|
+
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-1")), var3));
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-2")), var3));
|
|
+ this.okButton.setFont(bfont);
|
|
+ var2.add(this.setConstraints(var1, this.okButton, var3));
|
|
+ this.add("Center", var2);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ return var1.target == this.okButton ? this.done(true) : false;
|
|
+ }
|
|
+
|
|
+ public boolean keyDown(Event var1, int var2) {
|
|
+ return var2 != 27 && var2 != 10 ? super.keyDown(var1, var2) : this.done(true);
|
|
+ }
|
|
+
|
|
+ public void show() {
|
|
+ super.show();
|
|
+ this.okButton.requestFocus();
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/console/ChatSavePart.java b/1890/NET/worlds/console/ChatSavePart.java
|
|
--- a/1890/NET/worlds/console/ChatSavePart.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worlds/console/ChatSavePart.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,49 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.io.BufferedReader;
|
|
+import java.io.FileWriter;
|
|
+import java.io.IOException;
|
|
+import java.io.StringReader;
|
|
+
|
|
+public class ChatSavePart implements DialogReceiver {
|
|
+
|
|
+ String chat;
|
|
+
|
|
+ ChatSavePart(String text) {
|
|
+ this.chat = text;
|
|
+ FileSysDialog fsd = new FileSysDialog(DefaultConsole.getFrame(), this, "Save Chat", 1, "Hypertext Markup|*.html|Plain Text|*.txt", "", false);
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var2) {
|
|
+ FileSysDialog var3 = (FileSysDialog)var1;
|
|
+ String var4 = var3.fileName();
|
|
+ this.doSave(var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean doSave(String path) {
|
|
+ try {
|
|
+ if (path != null) {
|
|
+ FileWriter textWriter = new FileWriter(path);
|
|
+ if (path.endsWith(".html") || path.endsWith(".htm")) {
|
|
+ BufferedReader bufReader = new BufferedReader(new StringReader(this.chat));
|
|
+ String line = null;
|
|
+ while( (line = bufReader.readLine()) != null )
|
|
+ {
|
|
+ textWriter.write(line + " <br>");
|
|
+ }
|
|
+ } else {
|
|
+ textWriter.write(this.chat);
|
|
+ }
|
|
+ textWriter.close();
|
|
+ Console.println("Saved chat!");
|
|
+ return true;
|
|
+ } else return false;
|
|
+ } catch (IOException var5) {
|
|
+ Console.println("Failed to save chat: " + var5.getMessage());
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+}
|
|
diff -ruN a/1890/NET/worlds/console/DefaultConsole.java b/1890/NET/worlds/console/DefaultConsole.java
|
|
--- a/1890/NET/worlds/console/DefaultConsole.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/console/DefaultConsole.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,3 +1,8 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by Fernflower decompiler)
|
|
+//
|
|
+
|
|
package NET.worlds.console;
|
|
|
|
import NET.worlds.core.ArchiveMaker;
|
|
@@ -32,6 +37,9 @@
|
|
import NET.worlds.scape.URLPropertyEditor;
|
|
import NET.worlds.scape.VehicleShape;
|
|
import NET.worlds.scape.World;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+import NET.worldsplus.IniUpdater;
|
|
+
|
|
import java.awt.BorderLayout;
|
|
import java.awt.CardLayout;
|
|
import java.awt.CheckboxMenuItem;
|
|
@@ -68,1891 +76,2081 @@
|
|
import java.util.Vector;
|
|
|
|
public class DefaultConsole extends Console implements DialogReceiver, ImageButtonsCallback, RemoteFileConst {
|
|
- MenuItem aboutItem;
|
|
- MenuItem statisticsItem;
|
|
- MenuItem upgradeItem;
|
|
- MenuItem channelItem;
|
|
- MenuItem infoItem;
|
|
- MenuItem sleepItem;
|
|
- MenuItem helpItem;
|
|
- MenuItem gettingStartedItem;
|
|
- MenuItem serverItem;
|
|
- MenuItem numVisItem;
|
|
- MenuItem checkAccountItem;
|
|
- MenuItem becomeVIPItem;
|
|
- MenuItem toggleVoiceChatItem;
|
|
- MenuItem shaperHelpItem;
|
|
- MenuItem inventoryItem;
|
|
- MenuItem proxyServerItem;
|
|
- MenuItem musicManItem;
|
|
- MenuItem condenseItem;
|
|
- MenuItem expandItem;
|
|
- MenuItem i18nTest;
|
|
- MenuItem currentLang;
|
|
- Menu switchLang;
|
|
- Vector downItems = null;
|
|
- Vector langItems = null;
|
|
- Vector fontItems = null;
|
|
- static final String LANGUAGES = "languages.lst";
|
|
- static final String FONTS = "fonts.lst";
|
|
- Vector viewItems = null;
|
|
- Vector camSpeedItems = null;
|
|
- CheckboxMenuItem currentViewItem;
|
|
- CheckboxMenuItem currentCamSpeedItem;
|
|
- ImageButtons driveButton;
|
|
- ImageButtons quitButton;
|
|
- ImageButtons exploreButton;
|
|
- ImageButtons menuButtons;
|
|
- String defaultAd = IniFile.override().getIniString("defaultAd", "home:adworlds.cmp");
|
|
- AdPart ad;
|
|
- ChatPart chat;
|
|
- RenderCanvas render;
|
|
- Panel renderAndUniverse;
|
|
- UniversePanel universe;
|
|
- CardLayout renderCard;
|
|
- InventoryPart inventory;
|
|
- WorldsMarkPart marks;
|
|
- FriendsListPart friends;
|
|
- ActionsPart actions;
|
|
- MuteListPart mutes;
|
|
- MapPart map;
|
|
- SavedAvPart savedAvs;
|
|
- private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
- private static Font mfont = new Font(Console.message("MenuFont"), 0, 12);
|
|
- CDControl cdcontrol;
|
|
- boolean playedCD;
|
|
- MenuItem cdPlayerItem;
|
|
- MenuItem volumeItem;
|
|
- MenuItem graphicsItem;
|
|
- MenuItem nametagItem;
|
|
- MenuItem chatBoxItem;
|
|
- MenuItem broadcastToRoom;
|
|
- MenuItem broadcastToAll;
|
|
- MenuItem bootSomeone;
|
|
- CheckboxMenuItem orthographicViewItem;
|
|
- MenuItem recorderPlayItem;
|
|
- MenuItem recorderRecItem;
|
|
- MenuItem recorderStopItem;
|
|
- boolean universeMode;
|
|
- private static final int[] menuButtonHeights = new int[]{23, 21, 21, 21, 21, 21, 25, -29};
|
|
- private Vector viewNames;
|
|
- private Vector speedNames;
|
|
- private static final int HELP = 0;
|
|
- private static final int OPTIONS = 1;
|
|
- private static final int WORLDSMAIL = 2;
|
|
- private static final int WORLDSMARK = 3;
|
|
- private static final int LETS = 4;
|
|
- private static final int ACTIONS = 5;
|
|
- private static final int VIP = 6;
|
|
- static String loadingString = Console.message("Loading");
|
|
- static String arrowKeyMsg = Console.message("Use-arrow-keys");
|
|
- String statusMessage;
|
|
- String overrideMessage;
|
|
- String lastStatus;
|
|
- int lastUpdateTime;
|
|
- boolean wasTeleporting;
|
|
- private int lastVMCheck;
|
|
- private int lastVMBigWarning;
|
|
- Component bottom;
|
|
- Component top;
|
|
- Label status;
|
|
- Label yourName;
|
|
- static String[] lNames = lpList();
|
|
- static int lLength;
|
|
- static MenuItem[] lLangs;
|
|
- static Locale[] newLocale;
|
|
- static String[][] lCodes;
|
|
- Vector lList;
|
|
- Vector sList;
|
|
- int[] lSizes;
|
|
- int dLength;
|
|
- MenuItem[] dLangs;
|
|
- Locale[] newdLocale;
|
|
- Vector flList;
|
|
- Vector fsList;
|
|
- int[] fSizes;
|
|
- int fLength;
|
|
- MenuItem[] dFonts;
|
|
- Locale[] newfLocale;
|
|
- static boolean wasDelta;
|
|
- static boolean doDrive;
|
|
- Panel mapPanel;
|
|
- private static String signIn;
|
|
- private static String signOut;
|
|
- private static String signingIn;
|
|
- private static String noMultiUser;
|
|
- private static String enable3D;
|
|
- private static String disable3D;
|
|
- private static String showTags;
|
|
- private static String hideTags;
|
|
- private static String enableClassicChat;
|
|
- private static String disableClassicChat;
|
|
- Menu chatLogMenu;
|
|
- AvMenu avatarMenu;
|
|
- private int chooseView;
|
|
- private int chooseCamSpeed;
|
|
- private static String sleepStatus;
|
|
- OkCancelDialog reloginDialog;
|
|
- private Object nextAvatarMutex;
|
|
- private URL nextAvatar;
|
|
- private CheckboxMenuItem nextAvatarItem;
|
|
- private CheckboxMenuItem curAvatarItem;
|
|
- private static String lastWorldName;
|
|
- private static String lowVMMsg;
|
|
- private boolean showedMidWarn;
|
|
- private static boolean startupMemCheck;
|
|
- public static int physMem;
|
|
- protected URL avatarURL;
|
|
- private static Object classCookie;
|
|
-
|
|
- public UniversePanel getUniversePanel() {
|
|
- return this.universe;
|
|
- }
|
|
-
|
|
- public void printLine(String var1) {
|
|
- this.chat.println(var1);
|
|
- super.printLine(var1);
|
|
- }
|
|
-
|
|
- protected void printWhisperFrom(String var1, String var2) {
|
|
- WhisperManager.whisperManager().printFrom(var1, var2);
|
|
- }
|
|
-
|
|
- protected void printWhisperTo(String var1, String var2) {
|
|
- WhisperManager.whisperManager().printTo(var1, var2);
|
|
- }
|
|
-
|
|
- protected void startWhisperingTo(String var1) {
|
|
- WhisperManager.whisperManager().startTo(var1);
|
|
- }
|
|
-
|
|
- public DefaultConsole() {
|
|
- this.ad = new AdPart(URL.make(this.defaultAd));
|
|
- this.chat = new ChatPart();
|
|
- this.render = new RenderCanvas(this, new Dimension(560, 360));
|
|
- this.inventory = new InventoryPart();
|
|
- this.marks = new WorldsMarkPart();
|
|
- this.friends = new FriendsListPart();
|
|
- this.actions = new ActionsPart();
|
|
- this.mutes = new MuteListPart();
|
|
- this.map = new MapPart();
|
|
- this.savedAvs = new SavedAvPart();
|
|
- this.statusMessage = arrowKeyMsg;
|
|
- this.lastStatus = "";
|
|
- this.lastUpdateTime = 0;
|
|
- this.wasTeleporting = false;
|
|
- this.status = new UnpaddedLabel("", 2);
|
|
- this.yourName = new UnpaddedLabel("", 0);
|
|
- this.lList = new Vector();
|
|
- this.sList = new Vector();
|
|
- this.lSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
- this.dLength = this.dpList(this.lList, this.sList, this.lSizes);
|
|
- this.dLangs = this.dLength == 0 ? null : new MenuItem[this.dLength];
|
|
- this.newdLocale = this.dLength == 0 ? null : new Locale[this.dLength];
|
|
- this.flList = new Vector();
|
|
- this.fsList = new Vector();
|
|
- this.fSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
- this.fLength = this.fpList(this.flList, this.fsList, this.fSizes);
|
|
- this.dFonts = this.fLength == 0 ? null : new MenuItem[this.fLength];
|
|
- this.newfLocale = this.fLength == 0 ? null : new Locale[this.fLength];
|
|
- this.chooseView = -1;
|
|
- this.chooseCamSpeed = -1;
|
|
- this.nextAvatarMutex = new Object();
|
|
- this.init();
|
|
- this.loadViewNames();
|
|
- this.speedNames = new Vector();
|
|
- this.speedNames.addElement(new DefaultConsole.CameraSpeed("Slow", 1));
|
|
- this.speedNames.addElement(new DefaultConsole.CameraSpeed("Medium", 2));
|
|
- this.speedNames.addElement(new DefaultConsole.CameraSpeed("Fast", 3));
|
|
- }
|
|
-
|
|
- public void loadViewNames() {
|
|
- this.viewNames = new Vector();
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("First-person", 1));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Low-first-person", 2));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Waist", 3));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Shoulder", 4));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Head", 5));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Overhead", 6));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Behind", 7));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Wide-shot", 8));
|
|
- if (Gamma.getShaper() != null) {
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Orthographic", 9));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setOrthoEnabled(boolean var1) {
|
|
- if (this.orthographicViewItem != null) {
|
|
- this.orthographicViewItem.setEnabled(var1);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void loadInit() {
|
|
- super.loadInit();
|
|
- }
|
|
-
|
|
- public void removeUseArrowStatusMsg() {
|
|
- if (this.statusMessage == arrowKeyMsg) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void overrideStatusMsg(String var1) {
|
|
- Label var2 = this.status;
|
|
- synchronized(var2) {
|
|
- this.overrideMessage = var1;
|
|
- if (var1 != null) {
|
|
- this.status.setText(var1);
|
|
- } else {
|
|
- this.status.setText(this.lastStatus);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public String message(String var1, Locale var2) {
|
|
- Locale.setDefault(var2);
|
|
- Console.println(var2.getDisplayName());
|
|
-
|
|
- try {
|
|
- ResourceBundle var3 = ResourceBundle.getBundle("MessagesBundle", var2);
|
|
- return var3.getString(var1);
|
|
- } catch (MissingResourceException var4) {
|
|
- return "NO MESSAGE for " + var1;
|
|
- }
|
|
- }
|
|
-
|
|
- private void init() {
|
|
- this.addPart(this.render);
|
|
- this.addPart(this.chat);
|
|
- this.addPart(this.inventory);
|
|
- this.addPart(this.marks);
|
|
- this.addPart(this.friends);
|
|
- this.addPart(this.actions);
|
|
- this.addPart(this.mutes);
|
|
- this.addPart(this.ad);
|
|
- this.addPart(this.map);
|
|
- this.addPart(this.savedAvs);
|
|
- Panel var1 = new Panel(new FlowLayout(1, 0, 0));
|
|
- String var2 = IniFile.override().getIniString("driveGif", "drive.gif");
|
|
- this.addPart(this.driveButton = new ImageButtons(var2, 81, 19, this));
|
|
- String var3 = IniFile.override().getIniString("quitGif", Console.message("quit.gif"));
|
|
- this.addPart(this.quitButton = new ImageButtons(var3, 65, 19, this));
|
|
- String var4 = IniFile.override().getIniString("exploreGif", Console.message("explore.gif"));
|
|
- this.addPart(this.exploreButton = new ImageButtons(var4, 98, 22, this));
|
|
- var1.add(this.driveButton);
|
|
- this.driveButton.setDownUpHandler(new ImageButtonsCallback() {
|
|
- public Object imageButtonsCallback(Component var1, int var2) {
|
|
- if (var2 != -1) {
|
|
- DefaultConsole.this.startDrive();
|
|
+ MenuItem aboutItem;
|
|
+ MenuItem statisticsItem;
|
|
+ MenuItem upgradeItem;
|
|
+ MenuItem channelItem;
|
|
+ MenuItem infoItem;
|
|
+ MenuItem sleepItem;
|
|
+ MenuItem helpItem;
|
|
+ MenuItem gettingStartedItem;
|
|
+ MenuItem serverItem;
|
|
+ MenuItem numVisItem;
|
|
+ MenuItem checkAccountItem;
|
|
+ MenuItem becomeVIPItem;
|
|
+ MenuItem toggleVoiceChatItem;
|
|
+ MenuItem shaperHelpItem;
|
|
+ MenuItem inventoryItem;
|
|
+ MenuItem proxyServerItem;
|
|
+ MenuItem musicManItem;
|
|
+ MenuItem condenseItem;
|
|
+ MenuItem expandItem;
|
|
+ MenuItem i18nTest;
|
|
+ MenuItem currentLang;
|
|
+ Menu switchLang;
|
|
+ Vector downItems = null;
|
|
+ Vector langItems = null;
|
|
+ Vector fontItems = null;
|
|
+ static final String LANGUAGES = "languages.lst";
|
|
+ static final String FONTS = "fonts.lst";
|
|
+ Vector viewItems = null;
|
|
+ Vector camSpeedItems = null;
|
|
+ CheckboxMenuItem currentViewItem;
|
|
+ CheckboxMenuItem currentCamSpeedItem;
|
|
+
|
|
+ Vector whisperItems = null;
|
|
+ Vector teleportItems = null;
|
|
+ CheckboxMenuItem currentWhisperItem;
|
|
+ CheckboxMenuItem currentTeleportItem;
|
|
+
|
|
+ ImageButtons driveButton;
|
|
+ ImageButtons quitButton;
|
|
+ ImageButtons exploreButton;
|
|
+ ImageButtons menuButtons;
|
|
+ String defaultAd = IniFile.override().getIniString("defaultAd", "home:adworlds.cmp");
|
|
+ AdPart ad;
|
|
+ ChatPart chat;
|
|
+ RenderCanvas render;
|
|
+ Panel renderAndUniverse;
|
|
+ UniversePanel universe;
|
|
+ CardLayout renderCard;
|
|
+ InventoryPart inventory;
|
|
+ WorldsMarkPart marks;
|
|
+ FriendsListPart friends;
|
|
+ ActionsPart actions;
|
|
+ MuteListPart mutes;
|
|
+ TarListPart tars;
|
|
+ MapPart map;
|
|
+ SavedAvPart savedAvs;
|
|
+ private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
+ private static Font mfont = new Font(Console.message("MenuFont"), 0, 12);
|
|
+ CDControl cdcontrol;
|
|
+ boolean playedCD;
|
|
+ MenuItem cdPlayerItem;
|
|
+ MenuItem volumeItem;
|
|
+ MenuItem graphicsItem;
|
|
+ MenuItem nametagItem;
|
|
+ MenuItem chatBoxItem;
|
|
+ MenuItem broadcastToRoom;
|
|
+ MenuItem broadcastToAll;
|
|
+ MenuItem bootSomeone;
|
|
+ MenuItem recorderPlayItem;
|
|
+ MenuItem recorderRecItem;
|
|
+ MenuItem recorderStopItem;
|
|
+ CheckboxMenuItem showWhispers;
|
|
+ CheckboxMenuItem showTeleports;
|
|
+ CheckboxMenuItem respondWhispers;
|
|
+ CheckboxMenuItem respondTeleports;
|
|
+ CheckboxMenuItem overrideWorldTeleport;
|
|
+ boolean universeMode;
|
|
+ private static final int[] menuButtonHeights = new int[]{23, 21, 21, 21, 21, 21, 25, -29};
|
|
+ private Vector viewNames;
|
|
+ private Vector speedNames;
|
|
+ private Vector whisperNames;
|
|
+ private Vector teleportNames;
|
|
+ private static final int HELP = 0;
|
|
+ private static final int OPTIONS = 1;
|
|
+ private static final int WORLDSMAIL = 2;
|
|
+ private static final int WORLDSMARK = 3;
|
|
+ private static final int LETS = 4;
|
|
+ private static final int ACTIONS = 5;
|
|
+ private static final int VIP = 6;
|
|
+ static String loadingString = Console.message("Loading");
|
|
+ static String arrowKeyMsg = Console.message("Use-arrow-keys");
|
|
+ String statusMessage;
|
|
+ String overrideMessage;
|
|
+ String lastStatus;
|
|
+ int lastUpdateTime;
|
|
+ boolean wasTeleporting;
|
|
+ private int lastVMCheck;
|
|
+ private int lastVMBigWarning;
|
|
+ Component bottom;
|
|
+ Component top;
|
|
+ Label status;
|
|
+ Label yourName;
|
|
+ static String[] lNames = lpList();
|
|
+ static int lLength;
|
|
+ static MenuItem[] lLangs;
|
|
+ static Locale[] newLocale;
|
|
+ static String[][] lCodes;
|
|
+ Vector lList;
|
|
+ Vector sList;
|
|
+ int[] lSizes;
|
|
+ int dLength;
|
|
+ MenuItem[] dLangs;
|
|
+ Locale[] newdLocale;
|
|
+ Vector flList;
|
|
+ Vector fsList;
|
|
+ int[] fSizes;
|
|
+ int fLength;
|
|
+ MenuItem[] dFonts;
|
|
+ Locale[] newfLocale;
|
|
+ static boolean wasDelta;
|
|
+ static boolean doDrive;
|
|
+ Panel mapPanel;
|
|
+ private static String signIn;
|
|
+ private static String signOut;
|
|
+ private static String signingIn;
|
|
+ private static String noMultiUser;
|
|
+ private static String enable3D;
|
|
+ private static String disable3D;
|
|
+ private static String showTags;
|
|
+ private static String hideTags;
|
|
+ private static String enableClassicChat;
|
|
+ private static String disableClassicChat;
|
|
+ Menu chatLogMenu;
|
|
+ AvMenu avatarMenu;
|
|
+ private int chooseView;
|
|
+ private int chooseCamSpeed;
|
|
+ private int chooseWhisper;
|
|
+ private int chooseTeleport;
|
|
+ private static String sleepStatus;
|
|
+ OkCancelDialog reloginDialog;
|
|
+ private Object nextAvatarMutex;
|
|
+ private URL nextAvatar;
|
|
+ private CheckboxMenuItem nextAvatarItem;
|
|
+ private CheckboxMenuItem curAvatarItem;
|
|
+ private static String lastWorldName;
|
|
+ private static String lowVMMsg;
|
|
+ private boolean showedMidWarn;
|
|
+ private static boolean startupMemCheck;
|
|
+ public static int physMem;
|
|
+ protected URL avatarURL;
|
|
+ private static Object classCookie;
|
|
+
|
|
+ public UniversePanel getUniversePanel() {
|
|
+ return this.universe;
|
|
+ }
|
|
+
|
|
+ public void printLine(String var1) {
|
|
+ this.chat.println(var1);
|
|
+ super.printLine(var1);
|
|
+ }
|
|
+
|
|
+ protected void printWhisperFrom(String var1, String var2) {
|
|
+ WhisperManager.whisperManager().printFrom(var1, var2);
|
|
+ }
|
|
+
|
|
+ protected void printWhisperTo(String var1, String var2) {
|
|
+ WhisperManager.whisperManager().printTo(var1, var2);
|
|
+ }
|
|
+
|
|
+ protected void startWhisperingTo(String var1) {
|
|
+ WhisperManager.whisperManager().startTo(var1);
|
|
+ }
|
|
+
|
|
+ public DefaultConsole() {
|
|
+ this.ad = new AdPart(URL.make(this.defaultAd));
|
|
+ this.chat = new ChatPart();
|
|
+ this.render = new RenderCanvas(this, new Dimension(560, 360));
|
|
+ this.inventory = new InventoryPart();
|
|
+ this.marks = new WorldsMarkPart();
|
|
+ this.friends = new FriendsListPart();
|
|
+ this.actions = new ActionsPart();
|
|
+ this.mutes = new MuteListPart();
|
|
+ this.tars = new TarListPart();
|
|
+ this.map = new MapPart();
|
|
+ this.savedAvs = new SavedAvPart();
|
|
+ this.statusMessage = arrowKeyMsg;
|
|
+ this.lastStatus = "";
|
|
+ this.lastUpdateTime = 0;
|
|
+ this.wasTeleporting = false;
|
|
+ this.status = new UnpaddedLabel("", 2);
|
|
+ this.yourName = new UnpaddedLabel("", 0);
|
|
+ this.lList = new Vector();
|
|
+ this.sList = new Vector();
|
|
+ this.lSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
+ this.dLength = this.dpList(this.lList, this.sList, this.lSizes);
|
|
+ this.dLangs = this.dLength == 0 ? null : new MenuItem[this.dLength];
|
|
+ this.newdLocale = this.dLength == 0 ? null : new Locale[this.dLength];
|
|
+ this.flList = new Vector();
|
|
+ this.fsList = new Vector();
|
|
+ this.fSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
+ this.fLength = this.fpList(this.flList, this.fsList, this.fSizes);
|
|
+ this.dFonts = this.fLength == 0 ? null : new MenuItem[this.fLength];
|
|
+ this.newfLocale = this.fLength == 0 ? null : new Locale[this.fLength];
|
|
+ this.chooseView = -1;
|
|
+ this.chooseCamSpeed = -1;
|
|
+ this.chooseWhisper = -1;
|
|
+ this.chooseTeleport = -1;
|
|
+ this.nextAvatarMutex = new Object();
|
|
+ new ChatSaver();
|
|
+ this.init();
|
|
+ this.loadViewNames();
|
|
+ this.loadSpeedNames();
|
|
+ this.loadWhisperNames();
|
|
+ this.loadTeleportNames();
|
|
+ }
|
|
+
|
|
+ public void loadSpeedNames() {
|
|
+ this.speedNames = new Vector();
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Slow", 1));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Medium", 2));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Fast", 3));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Very Fast", 4));
|
|
+ }
|
|
+
|
|
+ public void loadViewNames() {
|
|
+ this.viewNames = new Vector();
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("First-person", 1));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Low-first-person", 2));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Waist", 3));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Shoulder", 4));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Head", 5));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Overhead", 6));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Behind", 7));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Wide-shot", 8));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Orthographic", 9));
|
|
+ }
|
|
+
|
|
+ public void loadWhisperNames() {
|
|
+ this.whisperNames = new Vector();
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("Everyone", 0));
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("Friends", 1));
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("No one", 2));
|
|
+ }
|
|
+
|
|
+ public void loadTeleportNames() {
|
|
+ this.teleportNames = new Vector();
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("Everyone", 0));
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("Friends", 1));
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("No one", 2));
|
|
+ }
|
|
+
|
|
+ public void setOrthoEnabled(boolean var1) {
|
|
+
|
|
+ }
|
|
+
|
|
+ public void loadInit() {
|
|
+ super.loadInit();
|
|
+ }
|
|
+
|
|
+ public void removeUseArrowStatusMsg() {
|
|
+ if (this.statusMessage.equals(arrowKeyMsg)) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void overrideStatusMsg(String var1) {
|
|
+ synchronized(this.status) {
|
|
+ this.overrideMessage = var1;
|
|
+ if (var1 != null) {
|
|
+ this.status.setText(var1);
|
|
} else {
|
|
- DefaultConsole.this.driveButton.drawDown();
|
|
+ this.status.setText(this.lastStatus);
|
|
}
|
|
|
|
- return this;
|
|
- }
|
|
- });
|
|
- Panel var5 = new Panel();
|
|
- var5.setLayout(new GridLayout(1, 3));
|
|
- int var6 = IniFile.override().getIniInt("uiBackgroundRed", 49);
|
|
- int var7 = IniFile.override().getIniInt("uiBackgroundGreen", 0);
|
|
- int var8 = IniFile.override().getIniInt("uiBackgroundBlue", 255);
|
|
- var5.setBackground(new Color(var6, var7, var8));
|
|
- var5.add(this.yourName);
|
|
- var5.add(var1);
|
|
- var5.add(this.status);
|
|
- this.chat.line.setBackground(Color.black);
|
|
- this.chat.line.setForeground(Color.white);
|
|
- this.chat.line.setFont(font);
|
|
- InsetPanel var9 = new InsetPanel(new BorderLayout(0, 3), 0, 0, 3, 0);
|
|
- var9.add("North", var5);
|
|
- var9.add("Center", this.chat.listen.getComponent());
|
|
- var9.add("South", this.chat.line);
|
|
- this.chat.listen.setBackground(Color.black);
|
|
- this.chat.listen.setForeground(Color.white);
|
|
- this.chat.listen.setFont(font);
|
|
- Panel var10 = new Panel(new BorderLayout());
|
|
- new Panel(new BorderLayout());
|
|
- Panel var12 = new Panel(new BorderLayout());
|
|
- Panel var13 = new Panel(new BorderLayout());
|
|
- ColorFiller var14 = new ColorFiller(65, 19);
|
|
- var14.setBackground(new Color(var6, var7, var8));
|
|
- var12.add("West", this.quitButton);
|
|
- var12.add("East", var14);
|
|
- var13.add("North", var12);
|
|
- var13.add("Center", this.ad);
|
|
- var10.add("West", var13);
|
|
- this.mapPanel = new Panel(new BorderLayout());
|
|
- this.mapPanel.add("Center", this.map);
|
|
- this.mapPanel.setBackground(Color.black);
|
|
- var12 = new Panel(new BorderLayout());
|
|
- ColorFiller var15 = new ColorFiller(60, 19);
|
|
- var15.setBackground(new Color(var6, var7, var8));
|
|
- var12.add("North", var15);
|
|
- ColorFiller var16 = new ColorFiller(60, 3);
|
|
- int var17 = IniFile.override().getIniInt("uiBackground2Red", 0);
|
|
- int var18 = IniFile.override().getIniInt("uiBackground2Green", 0);
|
|
- int var19 = IniFile.override().getIniInt("uiBackground2Blue", 0);
|
|
- var16.setBackground(new Color(var17, var18, var19));
|
|
- var12.add("South", var16);
|
|
- Panel var11 = new Panel(new BorderLayout());
|
|
- var11.add("East", this.exploreButton);
|
|
- var11.add("West", var12);
|
|
- this.mapPanel.add("North", var11);
|
|
- var10.add("East", this.mapPanel);
|
|
- var10.add("Center", var9);
|
|
- this.bottom = var10;
|
|
- this.renderCard = new CardLayout();
|
|
- this.renderAndUniverse = new Panel(this.renderCard);
|
|
- this.renderAndUniverse.add("render", this.render);
|
|
- InsetPanel var20 = new InsetPanel(new BorderLayout(), 3, 3, 0, 0);
|
|
- var20.add("Center", this.renderAndUniverse);
|
|
- int var21 = IniFile.override().getIniInt("uiBackground3Red", 0);
|
|
- int var22 = IniFile.override().getIniInt("uiBackground3Green", 0);
|
|
- int var23 = IniFile.override().getIniInt("uiBackground3Blue", 0);
|
|
- var14 = new ColorFiller(97, 1);
|
|
- var14.setBackground(new Color(var21, var22, var23));
|
|
- Panel var24 = new Panel(new QuantizedStackedLayout(var14));
|
|
- String var25 = IniFile.override().getIniString("rtPanel", Console.message("rtpanel.gif"));
|
|
- this.addPart(this.menuButtons = new ImageButtons(var25, 97, menuButtonHeights, this));
|
|
- var24.add(var14);
|
|
- var24.add(this.menuButtons);
|
|
- var24.add(this.friends);
|
|
- var20.add("East", var24);
|
|
- this.top = var20;
|
|
- }
|
|
-
|
|
- public void relayoutMap() {
|
|
- this.mapPanel.invalidate();
|
|
- this.mapPanel.validate();
|
|
- this.mapPanel.doLayout();
|
|
- this.mapPanel.repaint();
|
|
- }
|
|
-
|
|
- public void startDrive() {
|
|
- this.statusMessage = Console.message("Drag-mouse");
|
|
- doDrive = true;
|
|
- Window.makeJavaReleaseCapture();
|
|
- }
|
|
-
|
|
- public void setOnlineState(boolean var1, boolean var2) {
|
|
- synchronized(this) {
|
|
- if (this.serverItem != null) {
|
|
- this.serverItem.setEnabled(var1);
|
|
- if (!var1) {
|
|
- Galaxy var4 = this.getGalaxy();
|
|
- if (var4 != null && !var4.isAnonymous()) {
|
|
- this.serverItem.setLabel(signingIn);
|
|
- } else {
|
|
- this.serverItem.setLabel(noMultiUser);
|
|
- }
|
|
- } else if (var2) {
|
|
- this.serverItem.setLabel(signOut);
|
|
- } else {
|
|
- this.serverItem.setLabel(signIn);
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleNametagsItem() {
|
|
- if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 0) {
|
|
- IniFile.gamma().setIniInt("SHOWNAMETAGS", 1);
|
|
- this.nametagItem.setLabel(hideTags);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("SHOWNAMETAGS", 0);
|
|
- this.nametagItem.setLabel(showTags);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(Console.getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- private void handleGraphicsItem() {
|
|
- if (IniFile.gamma().getIniInt("UserEnabled3DHardware", 0) == 0) {
|
|
- IniFile.gamma().setIniInt("UserEnabled3DHardware", 1);
|
|
- this.graphicsItem.setLabel(disable3D);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("UserEnabled3DHardware", 0);
|
|
- this.graphicsItem.setLabel(enable3D);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(Console.getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- private void handleChatBoxItem() {
|
|
- if (IniFile.gamma().getIniInt("classicChatBox", 1) == 0) {
|
|
- IniFile.gamma().setIniInt("classicChatBox", 1);
|
|
- this.chatBoxItem.setLabel(disableClassicChat);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("classicChatBox", 0);
|
|
- this.chatBoxItem.setLabel(enableClassicChat);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(Console.getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- public AvMenu getAvatarMenu() {
|
|
- return this.avatarMenu;
|
|
- }
|
|
-
|
|
- public void inventoryChanged() {
|
|
- super.inventoryChanged();
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.buildSpecialGuestMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setMenusWRTVIP() {
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.setEnabled(this.getVIP());
|
|
- this.avatarMenu.customize.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.savedAvs != null) {
|
|
- this.savedAvs.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.chatLogMenu != null) {
|
|
- this.chatLogMenu.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.toggleVoiceChatItem != null) {
|
|
- this.toggleVoiceChatItem.setLabel(this.getVIP() && VoiceChat.voiceChatEnabled ? Console.message("Reject-Voice") : Console.message("Accept-Voice"));
|
|
- this.toggleVoiceChatItem.setEnabled(this.getVIP() && VoiceChat.voiceChatAvailable());
|
|
- }
|
|
-
|
|
- if (this.becomeVIPItem != null) {
|
|
- this.becomeVIPItem.setLabel(Console.vip > 0 ? (Console.vip > 1 ? Console.message("Youre-a-VIP") : Console.message("Become-full-VIP")) : Console.message("Become-VIP"));
|
|
- }
|
|
-
|
|
- if (this.numVisItem != null) {
|
|
- this.numVisItem.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void addBroadcastMenu() {
|
|
- if (this.bootSomeone == null) {
|
|
- if (IniFile.gamma().getIniInt("Broadcast", 0) != 0) {
|
|
- Menu var1 = new Menu(Console.message("Broadcast"));
|
|
- var1.add(this.broadcastToRoom = new MenuItem(Console.message("Users")));
|
|
- var1.add(this.broadcastToAll = new MenuItem(Console.message("All-users")));
|
|
- this.addMenuItem((MenuItem)var1, "Options");
|
|
- }
|
|
-
|
|
- this.bootSomeone = new MenuItem(Console.message("Boot-user"));
|
|
- this.addMenuItem(this.bootSomeone, "Options");
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private Menu updateChatLogMenu() {
|
|
- if (this.chatLogMenu == null) {
|
|
- this.chatLogMenu = new Menu(Console.message("View-Chat"));
|
|
- } else {
|
|
- this.chatLogMenu.removeAll();
|
|
- }
|
|
-
|
|
- ActionListener var1 = new ActionListener() {
|
|
- public void actionPerformed(ActionEvent var1) {
|
|
- (new SendURLAction("file:" + var1.getActionCommand())).startBrowser();
|
|
- }
|
|
- };
|
|
- String[] var2 = this.logList();
|
|
- MenuItem var3 = null;
|
|
-
|
|
- for(int var4 = 0; var4 < var2.length; ++var4) {
|
|
- int var5 = var2[var4].indexOf(".glog.html");
|
|
- if (var5 > 6) {
|
|
- Object[] var6 = new Object[]{new String(var2[var4].substring(5, var5))};
|
|
- var3 = new MenuItem(MessageFormat.format(Console.message("Chat-with"), var6));
|
|
- } else {
|
|
- if (var5 <= 0) {
|
|
- continue;
|
|
- }
|
|
-
|
|
- var3 = new MenuItem(Console.message("General-chat"));
|
|
- }
|
|
-
|
|
- var3.setActionCommand(var2[var4]);
|
|
- var3.addActionListener(var1);
|
|
- this.chatLogMenu.add(var3);
|
|
- }
|
|
-
|
|
- return this.chatLogMenu;
|
|
- }
|
|
-
|
|
- private String[] logList() {
|
|
- File var1 = new File(".");
|
|
- FilenameFilter var2 = new FilenameFilter() {
|
|
- public boolean accept(File var1, String var2) {
|
|
- return var2.startsWith("chat.") && var2.endsWith(".glog.html");
|
|
- }
|
|
- };
|
|
- return var1.list(var2);
|
|
- }
|
|
-
|
|
- private static String[] lpList() {
|
|
- File var0 = new File(".");
|
|
- FilenameFilter var1 = new FilenameFilter() {
|
|
- public boolean accept(File var1, String var2) {
|
|
- return var2.startsWith("MessagesBundle") && var2.endsWith(".properties");
|
|
- }
|
|
- };
|
|
- String[] var2 = var0.list(var1);
|
|
- Collator var3 = Collator.getInstance();
|
|
- sortStrings(var3, var2);
|
|
- return var2;
|
|
- }
|
|
-
|
|
- private int dpList(Vector var1, Vector var2, int[] var3) {
|
|
- String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "languages.lst"), var1, var2, var3);
|
|
- if (var4 != null) {
|
|
- System.out.println(var4);
|
|
- return 0;
|
|
- } else {
|
|
- return var1.size();
|
|
- }
|
|
- }
|
|
-
|
|
- private int fpList(Vector var1, Vector var2, int[] var3) {
|
|
- String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "fonts.lst"), var1, var2, var3);
|
|
- if (var4 != null) {
|
|
- System.out.println(var4);
|
|
- return 0;
|
|
- } else {
|
|
- return var1.size();
|
|
- }
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator var0, String[] var1, Locale[] var2, String[][] var3) {
|
|
- for(int var8 = 0; var8 < var1.length; ++var8) {
|
|
- for(int var9 = var8 + 1; var9 < var1.length; ++var9) {
|
|
- if (var0.compare(var1[var8], var1[var9]) > 0) {
|
|
- String var4 = var1[var8];
|
|
- Locale var5 = var2[var8];
|
|
- String var6 = var3[var8][0];
|
|
- String var7 = var3[var8][1];
|
|
- var1[var8] = var1[var9];
|
|
- var2[var8] = var2[var9];
|
|
- var3[var8][0] = var3[var9][0];
|
|
- var3[var8][1] = var3[var9][1];
|
|
- var1[var9] = var4;
|
|
- var2[var9] = var5;
|
|
- var3[var9][0] = var6;
|
|
- var3[var9][1] = var7;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator var0, String[] var1, Locale[] var2, Vector var3, Vector var4) {
|
|
- for(int var9 = 0; var9 < var1.length; ++var9) {
|
|
- for(int var10 = var9 + 1; var10 < var1.length; ++var10) {
|
|
- if (var0.compare(var1[var9], var1[var10]) > 0) {
|
|
- String var5 = var1[var9];
|
|
- Locale var6 = var2[var9];
|
|
- String var7 = (String)var3.elementAt(var9);
|
|
- String var8 = (String)var4.elementAt(var9);
|
|
- var1[var9] = var1[var10];
|
|
- var2[var9] = var2[var10];
|
|
- var3.setElementAt(var3.elementAt(var10), var9);
|
|
- var4.setElementAt(var4.elementAt(var10), var9);
|
|
- var1[var10] = var5;
|
|
- var2[var10] = var6;
|
|
- var3.setElementAt(var7, var10);
|
|
- var4.setElementAt(var8, var10);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator var0, String[] var1) {
|
|
- for(int var3 = 0; var3 < var1.length; ++var3) {
|
|
- for(int var4 = var3 + 1; var4 < var1.length; ++var4) {
|
|
- if (var0.compare(var1[var3], var1[var4]) > 0) {
|
|
- String var2 = var1[var3];
|
|
- var1[var3] = var1[var4];
|
|
- var1[var4] = var2;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void activate(Container var1) {
|
|
- super.activate(var1);
|
|
- var1.setBackground(Color.black);
|
|
- var1.setForeground(Color.white);
|
|
- var1.setLayout(new BorderLayout());
|
|
- var1.add("Center", this.top);
|
|
- var1.add("South", this.bottom);
|
|
- this.chat.line.setBackground(Color.white);
|
|
- this.chat.line.setForeground(Color.black);
|
|
- boolean var2 = Gamma.getShaper() != null;
|
|
- if (var2) {
|
|
- this.shaperHelpItem = this.addMenuItem(Console.message("using-shaper"), "Help");
|
|
- }
|
|
-
|
|
- if (NetUpdate.getInfoURL() != null) {
|
|
- this.helpItem = this.addMenuItem(Console.message("Help-Contents"), "Help");
|
|
- this.infoItem = this.addMenuItem(Console.message("Latest-info"), "Help");
|
|
- }
|
|
-
|
|
- Object[] var3 = new Object[]{new String(Std.getProductName())};
|
|
- this.aboutItem = this.addMenuItem(MessageFormat.format(Console.message("About-product"), var3), "Help");
|
|
- int var4 = IniFile.gamma().getIniInt("CAM_MODE", 7);
|
|
- int var5 = IniFile.gamma().getIniInt("CAM_SPEED", 3);
|
|
- if (!var2 && var4 == 9) {
|
|
- var4 = 7;
|
|
- }
|
|
-
|
|
- super.pilot.setOutsideCameraMode(var4, var5);
|
|
- Menu var6 = new Menu(Console.message("Change-View"));
|
|
- this.addMenuItem((MenuItem)var6, "Options");
|
|
- MenuItem var7 = new MenuItem(Console.message("CAMERA-VIEW"));
|
|
- var7.setFont(mfont);
|
|
- var6.add(var7);
|
|
- this.viewItems = new Vector();
|
|
-
|
|
- for(int var8 = 0; var8 < this.viewNames.size(); ++var8) {
|
|
- DefaultConsole.CameraView var9 = (DefaultConsole.CameraView)this.viewNames.elementAt(var8);
|
|
- CheckboxMenuItem var10 = new CheckboxMenuItem(" " + Console.message(var9.viewName), var4 == var9.viewID);
|
|
- if (var4 == var9.viewID) {
|
|
- this.currentViewItem = var10;
|
|
- }
|
|
-
|
|
- var10.setFont(mfont);
|
|
- var6.add(var10);
|
|
- this.viewItems.addElement(var10);
|
|
- if (var9.viewName == "Orthographic") {
|
|
- this.orthographicViewItem = var10;
|
|
- }
|
|
- }
|
|
-
|
|
- var6.addSeparator();
|
|
- MenuItem var31 = new MenuItem(Console.message("CAMERA-SPEED"));
|
|
- var31.setFont(mfont);
|
|
- var6.add(var31);
|
|
- this.camSpeedItems = new Vector();
|
|
-
|
|
- for(int var32 = 0; var32 < this.speedNames.size(); ++var32) {
|
|
- DefaultConsole.CameraSpeed var11 = (DefaultConsole.CameraSpeed)this.speedNames.elementAt(var32);
|
|
- CheckboxMenuItem var12 = new CheckboxMenuItem(" " + Console.message(var11.speedName), var11.speedID == var5);
|
|
- if (var11.speedID == var5) {
|
|
- this.currentCamSpeedItem = var12;
|
|
- }
|
|
-
|
|
- var12.setFont(mfont);
|
|
- var6.add(var12);
|
|
- this.camSpeedItems.addElement(var12);
|
|
- }
|
|
-
|
|
- this.becomeVIPItem = this.addMenuItem(Console.vip == 1 ? Console.message("Become-full-VIP") : Console.message("Become-VIP"), "VIP");
|
|
- this.addMenuItem((MenuItem)(this.avatarMenu = new AvMenu(this, super.lastPilotRequested)), "VIP");
|
|
- this.addMenuItem((MenuItem)this.savedAvs, "VIP");
|
|
- this.addMenuItem(this.avatarMenu.customize, "VIP");
|
|
- this.toggleVoiceChatItem = this.addMenuItem(Console.message("Enable-Voice"), "VIP");
|
|
- this.toggleVoiceChatItem.setEnabled(false);
|
|
- this.numVisItem = this.addMenuItem(Console.message("Num-Visible"), "VIP");
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- this.inventoryItem = this.addMenuItem("Check Inventory", "VIP");
|
|
- }
|
|
-
|
|
- this.setMenusWRTVIP();
|
|
- this.proxyServerItem = this.addMenuItem(Console.message("Proxy-Server"), "Options");
|
|
- this.checkAccountItem = this.addMenuItem(Console.message("Account-Info"), "Options");
|
|
- if (var2) {
|
|
- this.statisticsItem = this.addMenuItem(Console.message("Display-Stat"), "Options");
|
|
- }
|
|
-
|
|
- this.upgradeItem = this.addMenuItem(Console.message("Upgrade-Now"), "Options");
|
|
- if (var2) {
|
|
- this.channelItem = this.addMenuItem(Console.message("Dimension-Sel"), "Options");
|
|
- }
|
|
-
|
|
- this.serverItem = this.addMenuItem(signIn, "Options");
|
|
- this.setOnlineState(super.galaxy.getOnlineEnabled(), super.galaxy.getOnline());
|
|
- Menu var33;
|
|
- if (IniFile.gamma().getIniInt("recorderEnabled", 1) == 1) {
|
|
- var33 = new Menu(Console.message("Recorder"));
|
|
- this.addMenuItem((MenuItem)var33, "Options");
|
|
- this.recorderRecItem = new MenuItem(Console.message("Record"));
|
|
- var33.add(this.recorderRecItem);
|
|
- this.recorderStopItem = new MenuItem(Console.message("Stop"));
|
|
- var33.add(this.recorderStopItem);
|
|
- this.recorderPlayItem = new MenuItem(Console.message("Play"));
|
|
- var33.add(this.recorderPlayItem);
|
|
- }
|
|
-
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- var33 = new Menu(Console.message("Languages"));
|
|
- this.addMenuItem((MenuItem)var33, "Options");
|
|
- Menu var34 = new Menu(Console.message("Download-Font"));
|
|
- var33.add(var34);
|
|
- var34.setFont(mfont);
|
|
- this.fontItems = new Vector();
|
|
-
|
|
- for(int var13 = 0; var13 < this.fLength; ++var13) {
|
|
- if (this.flList.elementAt(var13) != null) {
|
|
- String var14;
|
|
- if (this.fsList.elementAt(var13) != null) {
|
|
- this.newfLocale[var13] = new Locale((String)this.flList.elementAt(var13), (String)this.fsList.elementAt(var13));
|
|
- var14 = (String)this.flList.elementAt(var13) + "_" + (String)this.fsList.elementAt(var13);
|
|
- if (var14.equals(Console.message(var14))) {
|
|
- this.dFonts[var13] = new MenuItem(this.newfLocale[var13].getDisplayName());
|
|
- } else {
|
|
- this.dFonts[var13] = new MenuItem(Console.message(var14));
|
|
- }
|
|
- } else {
|
|
- var14 = (String)this.flList.elementAt(var13);
|
|
- if (var14.equals(Console.message(var14))) {
|
|
- this.dFonts[var13] = new MenuItem((String)this.flList.elementAt(var13));
|
|
- } else {
|
|
- this.dFonts[var13] = new MenuItem(Console.message(var14));
|
|
- }
|
|
- }
|
|
-
|
|
- this.dFonts[var13].setFont(mfont);
|
|
- var34.add(this.dFonts[var13]);
|
|
- this.fontItems.addElement(this.dFonts[var13]);
|
|
- }
|
|
- }
|
|
-
|
|
- Menu var35 = new Menu(Console.message("Download-Language"));
|
|
- var33.add(var35);
|
|
- var35.setFont(mfont);
|
|
- this.downItems = new Vector();
|
|
- String[] var15 = new String[this.dLength];
|
|
-
|
|
- String var24;
|
|
- for(int var16 = 0; var16 < this.dLength; ++var16) {
|
|
- if (this.lList.elementAt(var16) != null) {
|
|
- this.newdLocale[var16] = new Locale((String)this.lList.elementAt(var16), (String)this.sList.elementAt(var16));
|
|
- String var18;
|
|
- if (var16 > 0) {
|
|
- Locale var21 = new Locale((String)this.lList.elementAt(var16 - 1), (String)this.sList.elementAt(var16 - 1));
|
|
- var18 = var21.getDisplayName();
|
|
- } else {
|
|
- var18 = this.newdLocale[var16].getDisplayName();
|
|
- }
|
|
-
|
|
- String var19 = this.newdLocale[var16].getDisplayName();
|
|
- var19 = var19.substring(0, var19.indexOf(40) - 1);
|
|
- String var17;
|
|
- if (var16 < this.dLength - 1) {
|
|
- Locale var23 = new Locale((String)this.lList.elementAt(var16 + 1), (String)this.sList.elementAt(var16 + 1));
|
|
- String var20 = var23.getDisplayName();
|
|
- var20 = var20.substring(0, var20.indexOf(40) - 1);
|
|
- if (var20.equals(var19)) {
|
|
- var17 = this.newdLocale[var16].getDisplayName();
|
|
- } else {
|
|
- var17 = var19;
|
|
- }
|
|
- } else if (var16 == this.dLength - 1) {
|
|
- var18 = var18.substring(0, var18.indexOf(40) - 1);
|
|
- if (var19.equals(var18)) {
|
|
- var17 = this.newdLocale[var16].getDisplayName();
|
|
- } else {
|
|
- var17 = var19;
|
|
- }
|
|
- } else if (var15[var16 - 1].equals(var19)) {
|
|
- var17 = this.newdLocale[var16].getDisplayName();
|
|
- } else {
|
|
- var17 = var19;
|
|
- }
|
|
-
|
|
- var24 = (String)this.lList.elementAt(var16) + "_" + (String)this.sList.elementAt(var16);
|
|
- if (var24.equals(Console.message(var24))) {
|
|
- var15[var16] = var17;
|
|
- } else {
|
|
- var15[var16] = Console.message(var24);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- Collator var36 = Collator.getInstance();
|
|
- sortStrings(var36, var15, this.newdLocale, this.lList, this.sList);
|
|
-
|
|
- for(int var37 = 0; var37 < this.dLength; ++var37) {
|
|
- this.dLangs[var37] = new MenuItem(var15[var37]);
|
|
- this.dLangs[var37].setFont(mfont);
|
|
- var35.add(this.dLangs[var37]);
|
|
- this.downItems.addElement(this.dLangs[var37]);
|
|
- }
|
|
-
|
|
- Menu var38 = new Menu(Console.message("Switch-Language"));
|
|
- var33.add(var38);
|
|
- var38.setFont(mfont);
|
|
- this.langItems = new Vector();
|
|
-
|
|
- int var22;
|
|
- for(int var39 = 0; var39 < lLength; ++var39) {
|
|
- int var40 = lNames[var39].indexOf(95);
|
|
- if (var40 < 0) {
|
|
- lCodes[var39][0] = "en";
|
|
- lCodes[var39][1] = "US";
|
|
+ public String message(String var1, Locale var2) {
|
|
+ Locale.setDefault(var2);
|
|
+ Console.println(var2.getDisplayName());
|
|
+
|
|
+ try {
|
|
+ ResourceBundle var3 = ResourceBundle.getBundle("MessagesBundle", var2);
|
|
+ return var3.getString(var1);
|
|
+ } catch (MissingResourceException var4) {
|
|
+ return "NO MESSAGE for " + var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void init() {
|
|
+ this.addPart(this.render);
|
|
+ this.addPart(this.chat);
|
|
+ this.addPart(this.inventory);
|
|
+ this.addPart(this.marks);
|
|
+ this.addPart(this.friends);
|
|
+ this.addPart(this.actions);
|
|
+ this.addPart(this.mutes);
|
|
+ this.addPart(this.tars);
|
|
+ this.addPart(this.ad);
|
|
+ this.addPart(this.map);
|
|
+ this.addPart(this.savedAvs);
|
|
+ Panel var1 = new Panel(new FlowLayout(1, 0, 0));
|
|
+ String var2 = IniFile.override().getIniString("driveGif", "drive.gif");
|
|
+ this.addPart(this.driveButton = new ImageButtons(var2, 81, 19, this));
|
|
+ String var3 = IniFile.override().getIniString("quitGif", Console.message("quit.gif"));
|
|
+ this.addPart(this.quitButton = new ImageButtons(var3, 65, 19, this));
|
|
+ String var4 = IniFile.override().getIniString("exploreGif", Console.message("explore.gif"));
|
|
+ this.addPart(this.exploreButton = new ImageButtons(var4, 98, 22, this));
|
|
+ var1.add(this.driveButton);
|
|
+ this.driveButton.setDownUpHandler(new ImageButtonsCallback() {
|
|
+ public Object imageButtonsCallback(Component var1, int var2) {
|
|
+ if (var2 != -1) {
|
|
+ DefaultConsole.this.startDrive();
|
|
+ } else {
|
|
+ DefaultConsole.this.driveButton.drawDown();
|
|
+ }
|
|
+
|
|
+ return this;
|
|
+ }
|
|
+ });
|
|
+ Panel var5 = new Panel();
|
|
+ var5.setLayout(new GridLayout(1, 3));
|
|
+ int var6 = IniFile.override().getIniInt("uiBackgroundRed", 49);
|
|
+ int var7 = IniFile.override().getIniInt("uiBackgroundGreen", 0);
|
|
+ int var8 = IniFile.override().getIniInt("uiBackgroundBlue", 255);
|
|
+ var5.setBackground(new Color(var6, var7, var8));
|
|
+ var5.add(this.yourName);
|
|
+ var5.add(var1);
|
|
+ var5.add(this.status);
|
|
+ this.chat.line.setBackground(Color.black);
|
|
+ this.chat.line.setForeground(Color.white);
|
|
+ this.chat.line.setFont(font);
|
|
+ InsetPanel var9 = new InsetPanel(new BorderLayout(0, 3), 0, 0, 3, 0);
|
|
+ var9.add("North", var5);
|
|
+ var9.add("Center", this.chat.listen.getComponent());
|
|
+ var9.add("South", this.chat.line);
|
|
+ this.chat.listen.setBackground(Color.black);
|
|
+ this.chat.listen.setForeground(Color.white);
|
|
+ this.chat.listen.setFont(font);
|
|
+ Panel var10 = new Panel(new BorderLayout());
|
|
+ new Panel(new BorderLayout());
|
|
+ Panel var12 = new Panel(new BorderLayout());
|
|
+ Panel var13 = new Panel(new BorderLayout());
|
|
+ ColorFiller var14 = new ColorFiller(65, 19);
|
|
+ var14.setBackground(new Color(var6, var7, var8));
|
|
+ var12.add("West", this.quitButton);
|
|
+ var12.add("East", var14);
|
|
+ var13.add("North", var12);
|
|
+ var13.add("Center", this.ad);
|
|
+ var10.add("West", var13);
|
|
+ this.mapPanel = new Panel(new BorderLayout());
|
|
+ this.mapPanel.add("Center", this.map);
|
|
+ this.mapPanel.setBackground(Color.black);
|
|
+ var12 = new Panel(new BorderLayout());
|
|
+ ColorFiller var15 = new ColorFiller(60, 19);
|
|
+ var15.setBackground(new Color(var6, var7, var8));
|
|
+ var12.add("North", var15);
|
|
+ ColorFiller var16 = new ColorFiller(60, 3);
|
|
+ int var17 = IniFile.override().getIniInt("uiBackground2Red", 0);
|
|
+ int var18 = IniFile.override().getIniInt("uiBackground2Green", 0);
|
|
+ int var19 = IniFile.override().getIniInt("uiBackground2Blue", 0);
|
|
+ var16.setBackground(new Color(var17, var18, var19));
|
|
+ var12.add("South", var16);
|
|
+ Panel var11 = new Panel(new BorderLayout());
|
|
+ var11.add("East", this.exploreButton);
|
|
+ var11.add("West", var12);
|
|
+ this.mapPanel.add("North", var11);
|
|
+ var10.add("East", this.mapPanel);
|
|
+ var10.add("Center", var9);
|
|
+ this.bottom = var10;
|
|
+ this.renderCard = new CardLayout();
|
|
+ this.renderAndUniverse = new Panel(this.renderCard);
|
|
+ this.renderAndUniverse.add("render", this.render);
|
|
+ InsetPanel var20 = new InsetPanel(new BorderLayout(), 3, 3, 0, 0);
|
|
+ var20.add("Center", this.renderAndUniverse);
|
|
+ int var21 = IniFile.override().getIniInt("uiBackground3Red", 0);
|
|
+ int var22 = IniFile.override().getIniInt("uiBackground3Green", 0);
|
|
+ int var23 = IniFile.override().getIniInt("uiBackground3Blue", 0);
|
|
+ var14 = new ColorFiller(97, 1);
|
|
+ var14.setBackground(new Color(var21, var22, var23));
|
|
+ Panel var24 = new Panel(new QuantizedStackedLayout(var14));
|
|
+ String var25 = IniFile.override().getIniString("rtPanel", Console.message("rtpanel.gif"));
|
|
+ this.addPart(this.menuButtons = new ImageButtons(var25, 97, menuButtonHeights, this));
|
|
+ var24.add(var14);
|
|
+ var24.add(this.menuButtons);
|
|
+ var24.add(this.friends);
|
|
+ var20.add("East", var24);
|
|
+ this.top = var20;
|
|
+ }
|
|
+
|
|
+ public void relayoutMap() {
|
|
+ this.mapPanel.invalidate();
|
|
+ this.mapPanel.validate();
|
|
+ this.mapPanel.doLayout();
|
|
+ this.mapPanel.repaint();
|
|
+ }
|
|
+
|
|
+ public void startDrive() {
|
|
+ this.statusMessage = Console.message("Drag-mouse");
|
|
+ doDrive = true;
|
|
+ Window.makeJavaReleaseCapture();
|
|
+ }
|
|
+
|
|
+ public void setOnlineState(boolean var1, boolean var2) {
|
|
+ synchronized(this) {
|
|
+ if (this.serverItem != null) {
|
|
+ this.serverItem.setEnabled(var1);
|
|
+ if (!var1) {
|
|
+ Galaxy var4 = this.getGalaxy();
|
|
+ if (var4 != null && !var4.isAnonymous()) {
|
|
+ this.serverItem.setLabel(signingIn);
|
|
+ } else {
|
|
+ this.serverItem.setLabel(noMultiUser);
|
|
+ }
|
|
+ } else if (var2) {
|
|
+ this.serverItem.setLabel(signOut);
|
|
+ } else {
|
|
+ this.serverItem.setLabel(signIn);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleNametagsItem() {
|
|
+ if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 0) {
|
|
+ IniFile.gamma().setIniInt("SHOWNAMETAGS", 1);
|
|
+ this.nametagItem.setLabel(hideTags);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("SHOWNAMETAGS", 0);
|
|
+ this.nametagItem.setLabel(showTags);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ private void handleGraphicsItem() {
|
|
+ if (IniFile.gamma().getIniInt("UserEnabled3DHardware", 0) == 0) {
|
|
+ IniFile.gamma().setIniInt("UserEnabled3DHardware", 1);
|
|
+ this.graphicsItem.setLabel(disable3D);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("UserEnabled3DHardware", 0);
|
|
+ this.graphicsItem.setLabel(enable3D);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ private void handleChatBoxItem() {
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 0) {
|
|
+ IniFile.gamma().setIniInt("classicChatBox", 1);
|
|
+ this.chatBoxItem.setLabel(disableClassicChat);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("classicChatBox", 0);
|
|
+ this.chatBoxItem.setLabel(enableClassicChat);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ public AvMenu getAvatarMenu() {
|
|
+ return this.avatarMenu;
|
|
+ }
|
|
+
|
|
+ public void inventoryChanged() {
|
|
+ super.inventoryChanged();
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.buildSpecialGuestMenu();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setMenusWRTVIP() {
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.setEnabled(this.getVIP());
|
|
+ this.avatarMenu.customize.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.savedAvs != null) {
|
|
+ this.savedAvs.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.chatLogMenu != null) {
|
|
+ this.chatLogMenu.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.toggleVoiceChatItem != null) {
|
|
+ this.toggleVoiceChatItem.setLabel(this.getVIP() && VoiceChat.voiceChatEnabled ? Console.message("Reject-Voice") : Console.message("Accept-Voice"));
|
|
+ this.toggleVoiceChatItem.setEnabled(this.getVIP() && VoiceChat.voiceChatAvailable());
|
|
+ }
|
|
+
|
|
+ if (this.becomeVIPItem != null) {
|
|
+ this.becomeVIPItem.setLabel(vip > 0 ? (vip > 1 ? Console.message("Youre-a-VIP") : Console.message("Become-full-VIP")) : Console.message("Become-VIP"));
|
|
+ }
|
|
+
|
|
+ if (this.numVisItem != null) {
|
|
+ this.numVisItem.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void addBroadcastMenu() {
|
|
+ if (this.bootSomeone == null) {
|
|
+ if (IniFile.gamma().getIniInt("Broadcast", 0) != 0) {
|
|
+ Menu var1 = new Menu(Console.message("Broadcast"));
|
|
+ var1.add(this.broadcastToRoom = new MenuItem(Console.message("Users")));
|
|
+ var1.add(this.broadcastToAll = new MenuItem(Console.message("All-users")));
|
|
+ this.addMenuItem(var1, "Options");
|
|
+ }
|
|
+
|
|
+ this.bootSomeone = new MenuItem(Console.message("Boot-user"));
|
|
+ this.addMenuItem(this.bootSomeone, "Options");
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private Menu updateChatLogMenu() {
|
|
+ if (this.chatLogMenu == null) {
|
|
+ this.chatLogMenu = new Menu(Console.message("View-Chat"));
|
|
+ } else {
|
|
+ this.chatLogMenu.removeAll();
|
|
+ }
|
|
+
|
|
+ ActionListener var1 = new ActionListener() {
|
|
+ public void actionPerformed(ActionEvent var1) {
|
|
+ (new SendURLAction("file:" + var1.getActionCommand())).startBrowser();
|
|
+ }
|
|
+ };
|
|
+ String[] var2 = this.logList();
|
|
+ MenuItem var3 = null;
|
|
+
|
|
+ for(int var4 = 0; var4 < var2.length; ++var4) {
|
|
+ int var5 = var2[var4].indexOf(".glog.html");
|
|
+ if (var5 > 6) {
|
|
+ Object[] var6 = new Object[]{new String(var2[var4].substring(5, var5))};
|
|
+ var3 = new MenuItem(MessageFormat.format(Console.message("Chat-with"), var6));
|
|
} else {
|
|
- var22 = lNames[var39].lastIndexOf(46);
|
|
- if (var22 < 0) {
|
|
- var22 = 0;
|
|
- }
|
|
-
|
|
- lCodes[var39][0] = lNames[var39].substring(var40 + 1, var40 + 3);
|
|
- if (var22 > var40 + 4) {
|
|
- lCodes[var39][1] = lNames[var39].substring(var40 + 4, var22);
|
|
- } else {
|
|
- lCodes[var39][1] = lCodes[var39][0].toUpperCase();
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- String[] var41 = new String[lLength];
|
|
-
|
|
- for(var22 = 0; var22 < lLength; ++var22) {
|
|
- newLocale[var22] = new Locale(lCodes[var22][0], lCodes[var22][1]);
|
|
- if (var22 > 0) {
|
|
- Locale var27 = new Locale(lCodes[var22 - 1][0], lCodes[var22 - 1][1]);
|
|
- var24 = var27.getDisplayName();
|
|
+ if (var5 <= 0) {
|
|
+ continue;
|
|
+ }
|
|
+
|
|
+ var3 = new MenuItem(Console.message("General-chat"));
|
|
+ }
|
|
+
|
|
+ var3.setActionCommand(var2[var4]);
|
|
+ var3.addActionListener(var1);
|
|
+ this.chatLogMenu.add(var3);
|
|
+ }
|
|
+
|
|
+ return this.chatLogMenu;
|
|
+ }
|
|
+
|
|
+ private String[] logList() {
|
|
+ File var1 = new File(".");
|
|
+ FilenameFilter var2 = new FilenameFilter() {
|
|
+ public boolean accept(File var1, String var2) {
|
|
+ return var2.startsWith("chat.") && var2.endsWith(".glog.html");
|
|
+ }
|
|
+ };
|
|
+ return var1.list(var2);
|
|
+ }
|
|
+
|
|
+ private static String[] lpList() {
|
|
+ File var0 = new File(".");
|
|
+ FilenameFilter var1 = new FilenameFilter() {
|
|
+ public boolean accept(File var1, String var2) {
|
|
+ return var2.startsWith("MessagesBundle") && var2.endsWith(".properties");
|
|
+ }
|
|
+ };
|
|
+ String[] var2 = var0.list(var1);
|
|
+ Collator var3 = Collator.getInstance();
|
|
+ sortStrings(var3, var2);
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ private int dpList(Vector var1, Vector var2, int[] var3) {
|
|
+ String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "languages.lst"), var1, var2, var3);
|
|
+ if (var4 != null) {
|
|
+ System.out.println(var4);
|
|
+ return 0;
|
|
+ } else {
|
|
+ return var1.size();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private int fpList(Vector var1, Vector var2, int[] var3) {
|
|
+ String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "fonts.lst"), var1, var2, var3);
|
|
+ if (var4 != null) {
|
|
+ System.out.println(var4);
|
|
+ return 0;
|
|
+ } else {
|
|
+ return var1.size();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1, Locale[] var2, String[][] var3) {
|
|
+ for(int var8 = 0; var8 < var1.length; ++var8) {
|
|
+ for(int var9 = var8 + 1; var9 < var1.length; ++var9) {
|
|
+ if (var0.compare(var1[var8], var1[var9]) > 0) {
|
|
+ String var4 = var1[var8];
|
|
+ Locale var5 = var2[var8];
|
|
+ String var6 = var3[var8][0];
|
|
+ String var7 = var3[var8][1];
|
|
+ var1[var8] = var1[var9];
|
|
+ var2[var8] = var2[var9];
|
|
+ var3[var8][0] = var3[var9][0];
|
|
+ var3[var8][1] = var3[var9][1];
|
|
+ var1[var9] = var4;
|
|
+ var2[var9] = var5;
|
|
+ var3[var9][0] = var6;
|
|
+ var3[var9][1] = var7;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1, Locale[] var2, Vector var3, Vector var4) {
|
|
+ for(int var9 = 0; var9 < var1.length; ++var9) {
|
|
+ for(int var10 = var9 + 1; var10 < var1.length; ++var10) {
|
|
+ if (var0.compare(var1[var9], var1[var10]) > 0) {
|
|
+ String var5 = var1[var9];
|
|
+ Locale var6 = var2[var9];
|
|
+ String var7 = (String)var3.elementAt(var9);
|
|
+ String var8 = (String)var4.elementAt(var9);
|
|
+ var1[var9] = var1[var10];
|
|
+ var2[var9] = var2[var10];
|
|
+ var3.setElementAt(var3.elementAt(var10), var9);
|
|
+ var4.setElementAt(var4.elementAt(var10), var9);
|
|
+ var1[var10] = var5;
|
|
+ var2[var10] = var6;
|
|
+ var3.setElementAt(var7, var10);
|
|
+ var4.setElementAt(var8, var10);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1) {
|
|
+ for(int var3 = 0; var3 < var1.length; ++var3) {
|
|
+ for(int var4 = var3 + 1; var4 < var1.length; ++var4) {
|
|
+ if (var0.compare(var1[var3], var1[var4]) > 0) {
|
|
+ String var2 = var1[var3];
|
|
+ var1[var3] = var1[var4];
|
|
+ var1[var4] = var2;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void activate(Container var1) {
|
|
+ super.activate(var1);
|
|
+ var1.setBackground(Color.black);
|
|
+ var1.setForeground(Color.white);
|
|
+ var1.setLayout(new BorderLayout());
|
|
+ var1.add("Center", this.top);
|
|
+ var1.add("South", this.bottom);
|
|
+ this.chat.line.setBackground(Color.white);
|
|
+ this.chat.line.setForeground(Color.black);
|
|
+ boolean var2 = Gamma.getShaper() != null;
|
|
+ if (var2) {
|
|
+ this.shaperHelpItem = this.addMenuItem(Console.message("using-shaper"), "Help");
|
|
+ }
|
|
+
|
|
+ if (NetUpdate.getInfoURL() != null) {
|
|
+ this.helpItem = this.addMenuItem(Console.message("Help-Contents"), "Help");
|
|
+ this.infoItem = this.addMenuItem(Console.message("Latest-info"), "Help");
|
|
+ }
|
|
+
|
|
+ Object[] var3 = new Object[]{new String(Std.getProductName())};
|
|
+ this.aboutItem = this.addMenuItem(MessageFormat.format(Console.message("About-product"), var3), "Help");
|
|
+ int var4 = IniFile.gamma().getIniInt("CAM_MODE", 7);
|
|
+ int var5 = IniFile.gamma().getIniInt("CAM_SPEED", 4);
|
|
+
|
|
+ this.pilot.setOutsideCameraMode(var4, var5);
|
|
+ Menu var6 = new Menu(Console.message("Change-View"));
|
|
+ this.addMenuItem(var6, "Options");
|
|
+ MenuItem var7 = new MenuItem(Console.message("CAMERA-VIEW"));
|
|
+ var7.setFont(mfont);
|
|
+ var6.add(var7);
|
|
+ this.viewItems = new Vector();
|
|
+
|
|
+ for(int var8 = 0; var8 < this.viewNames.size(); ++var8) {
|
|
+ DefaultConsole.CameraView var9 = (DefaultConsole.CameraView)this.viewNames.elementAt(var8);
|
|
+ CheckboxMenuItem var10 = new CheckboxMenuItem(" " + Console.message(var9.viewName), var4 == var9.viewID);
|
|
+ if (var4 == var9.viewID) {
|
|
+ this.currentViewItem = var10;
|
|
+ }
|
|
+
|
|
+ var10.setFont(mfont);
|
|
+ var6.add(var10);
|
|
+ this.viewItems.addElement(var10);
|
|
+ }
|
|
+
|
|
+ var6.addSeparator();
|
|
+ MenuItem var25 = new MenuItem(Console.message("CAMERA-SPEED"));
|
|
+ var25.setFont(mfont);
|
|
+ var6.add(var25);
|
|
+ this.camSpeedItems = new Vector();
|
|
+
|
|
+ for(int var26 = 0; var26 < this.speedNames.size(); ++var26) {
|
|
+ DefaultConsole.CameraSpeed var28 = (DefaultConsole.CameraSpeed)this.speedNames.elementAt(var26);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.speedName), var28.speedID == var5);
|
|
+ if (var28.speedID == var5) {
|
|
+ this.currentCamSpeedItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ var6.add(var11);
|
|
+ this.camSpeedItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ Menu privacyMenu = new Menu(Console.message("privacy-settings"));
|
|
+ this.addMenuItem(privacyMenu, "Options");
|
|
+ int whisperP = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ int teleportP = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ int whisperShow = IniFile.modPrivacy().getIniInt("WhisperFeedback", 1);
|
|
+ int teleportShow = IniFile.modPrivacy().getIniInt("TeleportFeedback", 0);
|
|
+ int whisperSend = IniFile.modPrivacy().getIniInt("WhisperResponse", 1);
|
|
+ int teleportSend = IniFile.modPrivacy().getIniInt("TeleportResponse", 0);
|
|
+
|
|
+ Menu whisperMenu = new Menu(Console.message("whisper-settings"));
|
|
+ MenuItem whMenu = new MenuItem(Console.message("WHISPER-SETTINGS"));
|
|
+ whisperMenu.setFont(mfont);
|
|
+ whisperMenu.add(whMenu);
|
|
+ this.whisperItems = new Vector();
|
|
+ privacyMenu.add(whisperMenu);
|
|
+
|
|
+ for(int wi = 0; wi < this.whisperNames.size(); ++wi) {
|
|
+ DefaultConsole.WhisperPrivacy var28 = (DefaultConsole.WhisperPrivacy)this.whisperNames.elementAt(wi);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.whisperName), var28.whisperID == whisperP);
|
|
+ if (var28.whisperID == whisperP) {
|
|
+ this.currentWhisperItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ whisperMenu.add(var11);
|
|
+ this.whisperItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ whisperMenu.addSeparator();
|
|
+ this.showWhispers = new CheckboxMenuItem(Console.message("reject-menu"), whisperShow == 1);
|
|
+ this.respondWhispers = new CheckboxMenuItem(Console.message("response-menu"), whisperSend == 1);
|
|
+ whisperMenu.add(this.showWhispers);
|
|
+ whisperMenu.add(respondWhispers);
|
|
+
|
|
+ Menu teleportMenu = new Menu(Console.message("teleport-settings"));
|
|
+ MenuItem tpMenu = new MenuItem(Console.message("TELEPORT-SETTINGS"));
|
|
+ teleportMenu.setFont(mfont);
|
|
+ teleportMenu.add(tpMenu);
|
|
+ this.teleportItems = new Vector();
|
|
+ privacyMenu.add(teleportMenu);
|
|
+
|
|
+ for(int ti = 0; ti < this.teleportNames.size(); ++ti) {
|
|
+ DefaultConsole.TeleportPrivacy var28 = (DefaultConsole.TeleportPrivacy)this.teleportNames.elementAt(ti);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.teleportName), var28.teleportID == teleportP);
|
|
+ if (var28.teleportID == teleportP) {
|
|
+ this.currentTeleportItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ teleportMenu.add(var11);
|
|
+ this.teleportItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ teleportMenu.addSeparator();
|
|
+ this.showTeleports = new CheckboxMenuItem(Console.message("reject-menu"), teleportShow == 1);
|
|
+ this.respondTeleports = new CheckboxMenuItem(Console.message("response-menu"), teleportSend == 1);
|
|
+ teleportMenu.add(this.showTeleports);
|
|
+ teleportMenu.add(respondTeleports);
|
|
+
|
|
+
|
|
+ this.becomeVIPItem = this.addMenuItem(vip == 1 ? Console.message("Become-full-VIP") : Console.message("Become-VIP"), "VIP");
|
|
+ this.addMenuItem(this.avatarMenu = new AvMenu(this, this.lastPilotRequested), "VIP");
|
|
+ this.addMenuItem(this.savedAvs, "VIP");
|
|
+ this.addMenuItem(this.avatarMenu.customize, "VIP");
|
|
+ this.toggleVoiceChatItem = this.addMenuItem(Console.message("Enable-Voice"), "VIP");
|
|
+ this.toggleVoiceChatItem.setEnabled(false);
|
|
+ this.numVisItem = this.addMenuItem(Console.message("Num-Visible"), "VIP");
|
|
+ this.chatLogMenu = new Menu("Chat Log");
|
|
+ if (NetUpdate.isInternalVersion()) {
|
|
+ this.inventoryItem = this.addMenuItem("Check Inventory", "VIP");
|
|
+ }
|
|
+
|
|
+ this.setMenusWRTVIP();
|
|
+ this.proxyServerItem = this.addMenuItem(Console.message("Proxy-Server"), "Options");
|
|
+ this.checkAccountItem = this.addMenuItem(Console.message("Account-Info"), "Options");
|
|
+ if (var2) {
|
|
+ this.statisticsItem = this.addMenuItem(Console.message("Display-Stat"), "Options");
|
|
+ }
|
|
+
|
|
+ this.upgradeItem = this.addMenuItem(Console.message("Upgrade-Now"), "Options");
|
|
+ if (var2) {
|
|
+ this.channelItem = this.addMenuItem(Console.message("Dimension-Sel"), "Options");
|
|
+ }
|
|
+
|
|
+ this.serverItem = this.addMenuItem(signIn, "Options");
|
|
+ this.setOnlineState(this.galaxy.getOnlineEnabled(), this.galaxy.getOnline());
|
|
+ Menu var27;
|
|
+ if (IniFile.gamma().getIniInt("recorderEnabled", 1) == 1) {
|
|
+ var27 = new Menu(Console.message("Recorder"));
|
|
+ this.recorderRecItem = new MenuItem(Console.message("Record"));
|
|
+ var27.add(this.recorderRecItem);
|
|
+ this.recorderStopItem = new MenuItem(Console.message("Stop"));
|
|
+ var27.add(this.recorderStopItem);
|
|
+ this.recorderPlayItem = new MenuItem(Console.message("Play"));
|
|
+ var27.add(this.recorderPlayItem);
|
|
+ }
|
|
+
|
|
+ if (NetUpdate.isInternalVersion()) {
|
|
+ var27 = new Menu(Console.message("Languages"));
|
|
+ this.addMenuItem(var27, "Options");
|
|
+ Menu var29 = new Menu(Console.message("Download-Font"));
|
|
+ var27.add(var29);
|
|
+ var29.setFont(mfont);
|
|
+ this.fontItems = new Vector();
|
|
+
|
|
+ for(int var30 = 0; var30 < this.fLength; ++var30) {
|
|
+ if (this.flList.elementAt(var30) != null) {
|
|
+ String var12;
|
|
+ if (this.fsList.elementAt(var30) != null) {
|
|
+ this.newfLocale[var30] = new Locale((String)this.flList.elementAt(var30), (String)this.fsList.elementAt(var30));
|
|
+ var12 = (String)this.flList.elementAt(var30) + "_" + (String)this.fsList.elementAt(var30);
|
|
+ if (var12.equals(Console.message(var12))) {
|
|
+ this.dFonts[var30] = new MenuItem(this.newfLocale[var30].getDisplayName());
|
|
+ } else {
|
|
+ this.dFonts[var30] = new MenuItem(Console.message(var12));
|
|
+ }
|
|
+ } else {
|
|
+ var12 = (String)this.flList.elementAt(var30);
|
|
+ if (var12.equals(Console.message(var12))) {
|
|
+ this.dFonts[var30] = new MenuItem((String)this.flList.elementAt(var30));
|
|
+ } else {
|
|
+ this.dFonts[var30] = new MenuItem(Console.message(var12));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.dFonts[var30].setFont(mfont);
|
|
+ var29.add(this.dFonts[var30]);
|
|
+ this.fontItems.addElement(this.dFonts[var30]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Menu var31 = new Menu(Console.message("Download-Language"));
|
|
+ var27.add(var31);
|
|
+ var31.setFont(mfont);
|
|
+ this.downItems = new Vector();
|
|
+ String[] var32 = new String[this.dLength];
|
|
+
|
|
+ String var17;
|
|
+ for(int var13 = 0; var13 < this.dLength; ++var13) {
|
|
+ if (this.lList.elementAt(var13) != null) {
|
|
+ this.newdLocale[var13] = new Locale((String)this.lList.elementAt(var13), (String)this.sList.elementAt(var13));
|
|
+ String var15;
|
|
+ if (var13 > 0) {
|
|
+ Locale var18 = new Locale((String)this.lList.elementAt(var13 - 1), (String)this.sList.elementAt(var13 - 1));
|
|
+ var15 = var18.getDisplayName();
|
|
+ } else {
|
|
+ var15 = this.newdLocale[var13].getDisplayName();
|
|
+ }
|
|
+
|
|
+ String var16 = this.newdLocale[var13].getDisplayName();
|
|
+ var16 = var16.substring(0, var16.indexOf(40) - 1);
|
|
+ String var14;
|
|
+ if (var13 < this.dLength - 1) {
|
|
+ Locale var20 = new Locale((String)this.lList.elementAt(var13 + 1), (String)this.sList.elementAt(var13 + 1));
|
|
+ var17 = var20.getDisplayName();
|
|
+ var17 = var17.substring(0, var17.indexOf(40) - 1);
|
|
+ if (var17.equals(var16)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+ } else if (var13 == this.dLength - 1) {
|
|
+ var15 = var15.substring(0, var15.indexOf(40) - 1);
|
|
+ if (var16.equals(var15)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+ } else if (var32[var13 - 1].equals(var16)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+
|
|
+ String var21 = (String)this.lList.elementAt(var13) + "_" + (String)this.sList.elementAt(var13);
|
|
+ if (var21.equals(Console.message(var21))) {
|
|
+ var32[var13] = var14;
|
|
+ } else {
|
|
+ var32[var13] = Console.message(var21);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Collator var33 = Collator.getInstance();
|
|
+ sortStrings(var33, var32, this.newdLocale, this.lList, this.sList);
|
|
+
|
|
+ for(int var34 = 0; var34 < this.dLength; ++var34) {
|
|
+ this.dLangs[var34] = new MenuItem(var32[var34]);
|
|
+ this.dLangs[var34].setFont(mfont);
|
|
+ var31.add(this.dLangs[var34]);
|
|
+ this.downItems.addElement(this.dLangs[var34]);
|
|
+ }
|
|
+
|
|
+ Menu var37 = new Menu(Console.message("Switch-Language"));
|
|
+ var27.add(var37);
|
|
+ var37.setFont(mfont);
|
|
+ this.langItems = new Vector();
|
|
+
|
|
+ int var36;
|
|
+ for(int var35 = 0; var35 < lLength; ++var35) {
|
|
+ var36 = lNames[var35].indexOf(95);
|
|
+ if (var36 < 0) {
|
|
+ lCodes[var35][0] = "en";
|
|
+ lCodes[var35][1] = "US";
|
|
+ } else {
|
|
+ int var39 = lNames[var35].lastIndexOf(46);
|
|
+ if (var39 < 0) {
|
|
+ var39 = 0;
|
|
+ }
|
|
+
|
|
+ lCodes[var35][0] = lNames[var35].substring(var36 + 1, var36 + 3);
|
|
+ if (var39 > var36 + 4) {
|
|
+ lCodes[var35][1] = lNames[var35].substring(var36 + 4, var39);
|
|
+ } else {
|
|
+ lCodes[var35][1] = lCodes[var35][0].toUpperCase();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ String[] var38 = new String[lLength];
|
|
+
|
|
+ for(var36 = 0; var36 < lLength; ++var36) {
|
|
+ newLocale[var36] = new Locale(lCodes[var36][0], lCodes[var36][1]);
|
|
+ String var40;
|
|
+ if (var36 > 0) {
|
|
+ Locale var42 = new Locale(lCodes[var36 - 1][0], lCodes[var36 - 1][1]);
|
|
+ var40 = var42.getDisplayName();
|
|
+ } else {
|
|
+ var40 = newLocale[var36].getDisplayName();
|
|
+ }
|
|
+
|
|
+ String var19 = newLocale[var36].getDisplayName();
|
|
+ var19 = var19.substring(0, var19.indexOf(40) - 1);
|
|
+ if (var36 < lLength - 1) {
|
|
+ Locale var23 = new Locale(lCodes[var36 + 1][0], lCodes[var36 + 1][1]);
|
|
+ String var41 = var23.getDisplayName();
|
|
+ var41 = var41.substring(0, var41.indexOf(40) - 1);
|
|
+ if (var41.equals(var19)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+ } else if (var36 == lLength - 1) {
|
|
+ var40 = var40.substring(0, var40.indexOf(40) - 1);
|
|
+ if (var19.equals(var40)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+ } else if (var38[var36 - 1].equals(var19)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+
|
|
+ String var24 = lCodes[var36][0] + "_" + lCodes[var36][1];
|
|
+ if (var24.equals(Console.message(var24))) {
|
|
+ var38[var36] = var17;
|
|
+ } else {
|
|
+ var38[var36] = Console.message(var24);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ sortStrings(var33, var38, newLocale, lCodes);
|
|
+
|
|
+ for(var36 = 0; var36 < lLength; ++var36) {
|
|
+ lLangs[var36] = new MenuItem(var38[var36]);
|
|
+ lLangs[var36].setFont(mfont);
|
|
+ var37.add(lLangs[var36]);
|
|
+ this.langItems.addElement(lLangs[var36]);
|
|
+ }
|
|
+
|
|
+ this.currentLang = new MenuItem(Console.message("Current-Language"));
|
|
+ var27.add(this.currentLang);
|
|
+ this.currentLang.setFont(mfont);
|
|
+ }
|
|
+
|
|
+ if (var2) {
|
|
+ this.condenseItem = this.addMenuItem(Console.message("Condense-Files"), "Options");
|
|
+ this.expandItem = this.addMenuItem(Console.message("Expand-Files"), "Options");
|
|
+ this.musicManItem = this.addMenuItem(Console.message("Music-Manager"), "Options");
|
|
+ this.i18nTest = this.addMenuItem(Console.message("I18N-Test"), "Options");
|
|
+ }
|
|
+
|
|
+ this.cdPlayerItem = this.addMenuItem(Console.message("MusicM"), "Options");
|
|
+ this.volumeItem = this.addMenuItem(Console.message("Volume-control"), "Options");
|
|
+ if (RenderWare.get3DHardwareAvailable()) {
|
|
+ if (RenderWare.get3DHardwareInUse()) {
|
|
+ this.graphicsItem = this.addMenuItem(disable3D, "Options");
|
|
} else {
|
|
- var24 = newLocale[var22].getDisplayName();
|
|
+ this.graphicsItem = this.addMenuItem(enable3D, "Options");
|
|
}
|
|
+ }
|
|
|
|
- String var25 = newLocale[var22].getDisplayName();
|
|
- var25 = var25.substring(0, var25.indexOf(40) - 1);
|
|
- String var42;
|
|
- if (var22 < lLength - 1) {
|
|
- Locale var29 = new Locale(lCodes[var22 + 1][0], lCodes[var22 + 1][1]);
|
|
- String var26 = var29.getDisplayName();
|
|
- var26 = var26.substring(0, var26.indexOf(40) - 1);
|
|
- if (var26.equals(var25)) {
|
|
- var42 = newLocale[var22].getDisplayName();
|
|
- } else {
|
|
- var42 = var25;
|
|
- }
|
|
- } else if (var22 == lLength - 1) {
|
|
- var24 = var24.substring(0, var24.indexOf(40) - 1);
|
|
- if (var25.equals(var24)) {
|
|
- var42 = newLocale[var22].getDisplayName();
|
|
- } else {
|
|
- var42 = var25;
|
|
- }
|
|
- } else if (var41[var22 - 1].equals(var25)) {
|
|
- var42 = newLocale[var22].getDisplayName();
|
|
+ if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1) {
|
|
+ this.nametagItem = this.addMenuItem(hideTags, "Options");
|
|
+ } else {
|
|
+ this.nametagItem = this.addMenuItem(showTags, "Options");
|
|
+ }
|
|
+
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
|
|
+ this.chatBoxItem = this.addMenuItem(disableClassicChat, "Options");
|
|
+ } else {
|
|
+ this.chatBoxItem = this.addMenuItem(enableClassicChat, "Options");
|
|
+ }
|
|
+
|
|
+ if (Gamma.loadProgress != null) {
|
|
+ Gamma.loadProgress.setMessage("Preloading avatars...");
|
|
+ Gamma.loadProgress.advance();
|
|
+ }
|
|
+
|
|
+ this.menuDone();
|
|
+ getFrame().activate();
|
|
+ LogFile.mailLogIfPresent(this.getSmtpServer());
|
|
+ this.render.requestFocus();
|
|
+ this.setMenusWRTVIP();
|
|
+ this.bootSomeone = null;
|
|
+ if (this.broadcastEnabled()) {
|
|
+ this.addBroadcastMenu();
|
|
+ }
|
|
+
|
|
+ this.universeMode = false;
|
|
+ }
|
|
+
|
|
+ public void setVIP(boolean var1) {
|
|
+ super.setVIP(var1);
|
|
+ this.setMenusWRTVIP();
|
|
+ this.setNameStr();
|
|
+ }
|
|
+
|
|
+ public void checkCourtesyVIP() {
|
|
+ super.checkCourtesyVIP();
|
|
+ this.setMenusWRTVIP();
|
|
+ this.setNameStr();
|
|
+ }
|
|
+
|
|
+ public void setNameStr() {
|
|
+ String var1 = this.galaxy.getUsernameU();
|
|
+ boolean var2 = this.galaxy.getOnline();
|
|
+ if (!var2) {
|
|
+ this.yourName.setText(Console.message("Off-line"));
|
|
+ } else {
|
|
+ if (var1.length() > 0) {
|
|
+ if (var1.regionMatches(true, 0, "VIP ", 0, 4)) {
|
|
+ var1 = var1.substring(4);
|
|
+ }
|
|
+
|
|
+ if (vip > 0) {
|
|
+ if (vip > 1) {
|
|
+ var1 = Console.message("VIP") + " " + var1;
|
|
+ } else {
|
|
+ var1 = Console.message("vip") + " " + var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(var1));
|
|
+ this.yourName.setText(Console.parseUnicode(var1));
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void enableBroadcast(boolean var1) {
|
|
+ super.enableBroadcast(var1);
|
|
+ if (var1) {
|
|
+ this.addBroadcastMenu();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ super.deactivate();
|
|
+ this.universeMode = false;
|
|
+ }
|
|
+
|
|
+ protected void setSleepMode(String var1) {
|
|
+ super.setSleepMode(var1);
|
|
+ if (var1 != null && var1.equals(Console.message("asleep"))) {
|
|
+ this.statusMessage = sleepStatus;
|
|
+ } else if (this.statusMessage == sleepStatus) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void relogin() {
|
|
+ if (this.serverItem.getLabel().equals(signOut)) {
|
|
+ this.reloginDialog = new OkCancelDialog(getFrame(), this, Console.message("Re-login"), Console.message("Cancel"), Console.message("OK"), Console.message("auto-sign-out"), true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void toggleWhisperRejects() {
|
|
+ int mainVal = IniFile.modPrivacy().getIniInt("WhisperFeedback", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modPrivacy().setIniInt("WhisperFeedback", newVal ? 0 : 1);
|
|
+ this.showWhispers.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleWhisperResponse() {
|
|
+ int mainVal = IniFile.modPrivacy().getIniInt("WhisperResponse", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modPrivacy().setIniInt("WhisperResponse", newVal ? 0 : 1);
|
|
+ this.respondWhispers.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleTeleportRejects() {
|
|
+ int mainVal = IniFile.modPrivacy().getIniInt("TeleportFeedback", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modPrivacy().setIniInt("TeleportFeedback", newVal ? 0 : 1);
|
|
+ this.showTeleports.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleTeleportResponse() {
|
|
+ int mainVal = IniFile.modPrivacy().getIniInt("TeleportResponse", 0);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modPrivacy().setIniInt("TeleportResponse", mainVal == 1 ? 0 : 1);
|
|
+ this.respondTeleports.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if (var1.target == this.aboutItem) {
|
|
+ new AboutDialog(Std.getProductName(), getFrame());
|
|
+ } else if (var1.target == this.statisticsItem && this.statisticsItem != null) {
|
|
+ new StatisticsWindow(getFrame());
|
|
+ } else if (this.viewItems.contains(var1.target)) {
|
|
+ this.changeView((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.camSpeedItems.contains(var1.target)) {
|
|
+ this.changeCamSpeed((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.whisperItems.contains(var1.target)) {
|
|
+ this.changeWhispers((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.teleportItems.contains(var1.target)) {
|
|
+ this.changeTeleport((CheckboxMenuItem)var1.target);
|
|
+ } else if (var1.target == this.showWhispers) {
|
|
+ toggleWhisperRejects();
|
|
+ } else if (var1.target == this.respondWhispers) {
|
|
+ toggleWhisperResponse();
|
|
+ } else if (var1.target == this.showTeleports) {
|
|
+ toggleTeleportRejects();
|
|
+ } else if (var1.target == this.respondTeleports) {
|
|
+ toggleTeleportResponse();
|
|
+ } else if (var1.target == this.gettingStartedItem) {
|
|
+ (new SendURLAction(this.getHelpGettingStarted())).startBrowser();
|
|
+ } else {
|
|
+ String var4;
|
|
+ String var15;
|
|
+ if (var1.target == this.shaperHelpItem) {
|
|
+ var15 = IniFile.override().getIniString("ShaperHelp", this.getScriptServer() + "shaperhelp.pl") + "?u=";
|
|
+ var4 = IniFile.gamma().getIniString("lastchatname", "");
|
|
+ if (!var4.equals("")) {
|
|
+ if (var4.startsWith("VIP ")) {
|
|
+ var4 = var4.substring(4);
|
|
+ }
|
|
+
|
|
+ var15 = var15 + var4;
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(WebControlImp.processURL(var15))).startBrowser();
|
|
+ } else if (var1.target == this.helpItem) {
|
|
+ var15 = NetUpdate.getUpgradeServerURL();
|
|
+ var4 = IniFile.override().getIniString("HelpDirectory", "help");
|
|
+ String var18 = IniFile.override().getIniString("HelpPage", Std.getVersion() + Console.message(".html"));
|
|
+ if (wasHttpNoSuchFile(var15 + var4 + "/" + var18)) {
|
|
+ var18 = IniFile.override().getIniString("HelpPage", Std.getVersion() + ".html");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(var15 + var4 + "/" + var18)).startBrowser();
|
|
+ } else if (var1.target == this.infoItem) {
|
|
+ var15 = IniFile.override().getIniString("infoOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ NetUpdate.showInfo();
|
|
+ } else {
|
|
+ (new SendURLAction(var15)).startBrowser();
|
|
+ }
|
|
+ } else if (var1.target == this.i18nTest) {
|
|
+ Locale var23 = Locale.getDefault();
|
|
+ Console.println("Default = " + var23.getDisplayName());
|
|
+ DateFormat var24 = DateFormat.getDateTimeInstance(1, 1);
|
|
+ Date var17 = new Date();
|
|
+ Console.println("Today = " + var24.format(var17));
|
|
+ Locale[] var19 = DateFormat.getAvailableLocales();
|
|
+ Console.println("Avaliable Locales are:");
|
|
+
|
|
+ for(int var7 = 0; var7 < var19.length; ++var7) {
|
|
+ Locale.setDefault(var19[var7]);
|
|
+ Console.println(var19[var7].getDisplayName() + " " + var19[var7]);
|
|
+ }
|
|
+
|
|
+ new Locale("en", "US");
|
|
+ Locale var8 = new Locale("fr", "FR");
|
|
+ Locale var9 = new Locale("de", "DE");
|
|
+ Locale var10 = new Locale("ja", "JP");
|
|
+ Locale var11 = new Locale("zh", "CN");
|
|
+ Locale var12 = new Locale("th", "TH");
|
|
+ Locale var13 = new Locale("ru", "RU");
|
|
+ Locale var14 = new Locale("iw", "IL");
|
|
+ Console.println("file.encoding = " + System.getProperty("file.encoding"));
|
|
+ Console.println(this.message("test-language", var8));
|
|
+ Console.println(this.message("test-language", var9));
|
|
+ Console.println(this.message("test-language", var10));
|
|
+ Console.println(this.message("test-language", var11));
|
|
+ Console.println(this.message("test-language", var12));
|
|
+ Console.println(this.message("test-language", var13));
|
|
+ Console.println(this.message("test-language", var14));
|
|
+ Console.println(this.message("test-language", var23));
|
|
+ } else if (var1.target == this.checkAccountItem) {
|
|
+ var15 = IniFile.override().getIniString("accountOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ var4 = IniFile.override().getIniString("accountInfoPage", "account" + Console.message(".pl"));
|
|
+ if (wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
+ var4 = IniFile.override().getIniString("accountInfoPage", "account.pl");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
+ } else {
|
|
+ (new SendURLAction(var15)).startBrowser();
|
|
+ }
|
|
+
|
|
+ this.relogin();
|
|
+ } else if (var1.target == this.upgradeItem) {
|
|
+ NetUpdate.doUpdate(true);
|
|
+ } else if (var1.target == this.channelItem && this.channelItem != null) {
|
|
+ Galaxy var22 = this.getGalaxy();
|
|
+ var4 = "";
|
|
+ Debug.dAssert(var22 != null);
|
|
+ if (var22 != null) {
|
|
+ var4 = var22.getChannel();
|
|
+ }
|
|
+
|
|
+ new ChannelDialog(getFrame(), this, Console.message("Dimension-Sel"), var4);
|
|
+ } else if (var1.target == this.becomeVIPItem) {
|
|
+ var15 = IniFile.override().getIniString("vipOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ var4 = IniFile.override().getIniString("vipPage", "vip" + Console.message(".pl"));
|
|
+ if (wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
+ var4 = IniFile.override().getIniString("vipPage", "vip.pl");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
+ } else {
|
|
+ (new SendURLAction(var15, false)).startBrowser();
|
|
+ }
|
|
+
|
|
+ this.relogin();
|
|
+ } else if (var1.target == this.numVisItem) {
|
|
+ new SetNumVisibleAvs();
|
|
+ } else if (var1.target == this.inventoryItem) {
|
|
+ EquipAction var21 = new EquipAction();
|
|
+ var21.trigger((NET.worlds.scape.Event)null, (Persister)null);
|
|
+ } else if (var1.target == this.proxyServerItem) {
|
|
+ System.out.println("Triggering the Proxy Server dialog.");
|
|
+ ProxyServerDialog var20 = new ProxyServerDialog();
|
|
+ var20.show();
|
|
+ } else if (var1.target == this.toggleVoiceChatItem) {
|
|
+ VoiceChat.setVoiceChatEnabled(!VoiceChat.voiceChatEnabled);
|
|
+ this.setMenusWRTVIP();
|
|
+ } else if (var1.target == this.serverItem) {
|
|
+ this.handleServerItem();
|
|
+ } else if (var1.target == this.condenseItem) {
|
|
+ new ArchiveMaker(true);
|
|
+ } else if (var1.target == this.expandItem) {
|
|
+ new ArchiveMaker(false);
|
|
+ } else if (var1.target == this.musicManItem) {
|
|
+ MusicManager.showDialog();
|
|
+ } else if (var1.target == this.cdPlayerItem) {
|
|
+ if (this.cdcontrol == null) {
|
|
+ this.playedCD = true;
|
|
+ this.cdcontrol = new CDControl(getFrame(), this);
|
|
+ }
|
|
+ } else if (var1.target == this.volumeItem) {
|
|
+ if (!CDPlayerAction.launchVolumeControlApp()) {
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("No-Volume"), (String)null, Console.message("OK"), Console.message("Cannot-locate"), true);
|
|
+ }
|
|
+ } else if (var1.target == this.graphicsItem) {
|
|
+ this.handleGraphicsItem();
|
|
+ } else if (var1.target == this.nametagItem) {
|
|
+ this.handleNametagsItem();
|
|
+ } else if (var1.target == this.chatBoxItem) {
|
|
+ this.handleChatBoxItem();
|
|
+ } else if (var1.target == this.bootSomeone) {
|
|
+ new BootDialog(getFrame(), this, Console.message("Boot-user"));
|
|
+ } else if (var1.target == this.broadcastToRoom) {
|
|
+ startWhispering("room");
|
|
+ } else if (var1.target == this.broadcastToAll) {
|
|
+ startWhispering("world");
|
|
+ } else if (var1.target == this.currentLang) {
|
|
+ var15 = Locale.getDefault().toString();
|
|
+ if (var15 == Console.message(var15)) {
|
|
+ Console.println(Console.message("Current-Language") + " = " + Locale.getDefault().getDisplayName());
|
|
+ } else {
|
|
+ Console.println(Console.message("Current-Language") + " = " + Console.message(var15));
|
|
+ }
|
|
+ } else if (var1.target == this.recorderPlayItem) {
|
|
+ println(Console.message("BlackBoxPlay"));
|
|
+ BlackBox.getInstance().play();
|
|
+ } else if (var1.target == this.recorderRecItem) {
|
|
+ println(Console.message("BlackBoxRec"));
|
|
+ BlackBox.getInstance().record();
|
|
+ } else if (var1.target == this.recorderStopItem) {
|
|
+ println(Console.message("BlackBoxStop"));
|
|
+ BlackBox.getInstance().stop();
|
|
} else {
|
|
- var42 = var25;
|
|
- }
|
|
-
|
|
- String var30 = lCodes[var22][0] + "_" + lCodes[var22][1];
|
|
- if (var30.equals(Console.message(var30))) {
|
|
- var41[var22] = var42;
|
|
+ int var5;
|
|
+ String var6;
|
|
+ int var16;
|
|
+ if (this.fontItems != null && this.fontItems.contains(var1.target)) {
|
|
+ var15 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/font_";
|
|
+
|
|
+ for(var16 = 0; var16 < this.fLength; ++var16) {
|
|
+ if (var1.target == this.fontItems.elementAt(var16)) {
|
|
+ if (this.fsList.elementAt(var16) != null) {
|
|
+ var15 = var15 + this.flList.elementAt(var16) + "_" + this.fsList.elementAt(var16) + ".EXE";
|
|
+ } else {
|
|
+ var15 = var15 + this.flList.elementAt(var16) + ".EXE";
|
|
+ }
|
|
+
|
|
+ var5 = this.fSizes[var16];
|
|
+ var6 = var15.substring(var15.lastIndexOf(47) + 1, var15.length());
|
|
+ LanguageManager.handle(var15, var5, var6);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.downItems != null && this.downItems.contains(var1.target)) {
|
|
+ var15 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/language_";
|
|
+
|
|
+ for(var16 = 0; var16 < this.dLength; ++var16) {
|
|
+ if (var1.target == this.downItems.elementAt(var16)) {
|
|
+ if (this.sList.elementAt(var16) != null) {
|
|
+ var15 = var15 + this.lList.elementAt(var16) + "_" + this.sList.elementAt(var16) + ".zip";
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var16) + "_" + this.sList.elementAt(var16));
|
|
+ } else {
|
|
+ var15 = var15 + this.lList.elementAt(var16) + ".zip";
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var16));
|
|
+ }
|
|
+
|
|
+ var5 = this.lSizes[var16];
|
|
+ var6 = var15.substring(var15.lastIndexOf(47) + 1, var15.length());
|
|
+ LanguageManager.handle(var15, var5, var6);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.langItems != null && this.langItems.contains(var1.target)) {
|
|
+ for(int var3 = 0; var3 < lLength; ++var3) {
|
|
+ if (var1.target == this.langItems.elementAt(var3)) {
|
|
+ Locale.setDefault(newLocale[var3]);
|
|
+ var4 = newLocale[var3].toString();
|
|
+ if (var4 == Console.message(var4)) {
|
|
+ Console.println(message("Setting-to") + " " + newLocale[var3].getDisplayName());
|
|
+ } else {
|
|
+ Console.println(message("Setting-to") + " " + Console.message(var4));
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", lCodes[var3][0] + "_" + lCodes[var3][1]);
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.avatarMenu == null || !this.avatarMenu.action(var1, var2)) {
|
|
+ return super.action(var1, var2);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public void setCurrentAvatarItem(CheckboxMenuItem var1) {
|
|
+ if (this.curAvatarItem != null) {
|
|
+ this.curAvatarItem.setState(false);
|
|
+ }
|
|
+
|
|
+ this.curAvatarItem = var1;
|
|
+ if (this.curAvatarItem != null) {
|
|
+ this.curAvatarItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public CheckboxMenuItem getCurrentAvatarItem() {
|
|
+ return this.curAvatarItem;
|
|
+ }
|
|
+
|
|
+ public void deletedSavedAvatar(CheckboxMenuItem var1) {
|
|
+ if (this.curAvatarItem == var1) {
|
|
+ this.findAvatarMenuItem(this.getDefaultAvatarURL());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setNextAvatar(URL var1, CheckboxMenuItem var2) {
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ this.nextAvatar = var1;
|
|
+ this.nextAvatarItem = var2;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void findAvatarMenuItem(URL var1) {
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ if (this.nextAvatarItem == null) {
|
|
+ Object var3;
|
|
+ if ((this.savedAvs == null || (var3 = this.savedAvs.findMenuItem(var1)) == null) && (this.avatarMenu == null || (var3 = this.avatarMenu.findMenuItem(var1)) == null)) {
|
|
+ this.setCurrentAvatarItem((CheckboxMenuItem)null);
|
|
+ } else {
|
|
+ this.setCurrentAvatarItem((CheckboxMenuItem)var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private URL getHelpGettingStarted() {
|
|
+ IniFile var1 = new IniFile("InstalledWorlds");
|
|
+ String var2 = Console.message("Getting-started");
|
|
+ String var3 = var1.getIniString("InstalledWorld0", "");
|
|
+ if (!var3.equals("")) {
|
|
+ URL var4 = URL.make("home:" + var3 + "/" + var2);
|
|
+ File var5 = new File(var4.unalias());
|
|
+ if (var5.exists()) {
|
|
+ return var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return URL.make("home:" + var2);
|
|
+ }
|
|
+
|
|
+ private void changeView(CheckboxMenuItem var1) {
|
|
+ this.chooseView = this.viewItems.indexOf(var1);
|
|
+ if (var1 != this.currentViewItem) {
|
|
+ this.currentViewItem.setState(false);
|
|
+ this.currentViewItem = var1;
|
|
+ this.currentViewItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private int getView() {
|
|
+ return this.viewItems.indexOf(this.currentViewItem);
|
|
+ }
|
|
+
|
|
+ private void setView(int var1) {
|
|
+ this.changeView((CheckboxMenuItem)this.viewItems.elementAt(var1));
|
|
+ }
|
|
+
|
|
+ private void changeCamSpeed(CheckboxMenuItem var1) {
|
|
+ this.chooseCamSpeed = this.camSpeedItems.indexOf(var1);
|
|
+ if (var1 != this.currentCamSpeedItem) {
|
|
+ this.currentCamSpeedItem.setState(false);
|
|
+ this.currentCamSpeedItem = var1;
|
|
+ this.currentCamSpeedItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void changeWhispers(CheckboxMenuItem var1) {
|
|
+ this.chooseWhisper = this.whisperItems.indexOf(var1);
|
|
+ if (var1 != this.currentWhisperItem) {
|
|
+ this.currentWhisperItem.setState(false);
|
|
+ this.currentWhisperItem = var1;
|
|
+ this.currentWhisperItem.setState(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void changeTeleport(CheckboxMenuItem var1) {
|
|
+ this.chooseTeleport = this.teleportItems.indexOf(var1);
|
|
+ if (var1 != this.currentTeleportItem) {
|
|
+ this.currentTeleportItem.setState(false);
|
|
+ this.currentTeleportItem = var1;
|
|
+ this.currentTeleportItem.setState(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void resetCamera() {
|
|
+ if (this.viewItems != null && this.camSpeedItems != null) {
|
|
+ this.chooseView = this.viewItems.indexOf(this.currentViewItem);
|
|
+ this.chooseCamSpeed = this.camSpeedItems.indexOf(this.currentCamSpeedItem);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleServerItem() {
|
|
+ if (!this.serverItem.getLabel().equals(signIn)) {
|
|
+ Galaxy.forceOffline(false);
|
|
+ } else {
|
|
+ this.getGalaxy().localForceOnline();
|
|
+ this.getGalaxy().waitForConnection(this);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public UniversePanel getUniverse() {
|
|
+ return this.universeMode ? this.universe : null;
|
|
+ }
|
|
+
|
|
+ public synchronized void setUniverseMode(boolean var1) {
|
|
+ if (var1 != this.universeMode) {
|
|
+ this.universeMode = var1;
|
|
+ if (this.universeMode) {
|
|
+ if (this.universe == null) {
|
|
+ this.universe = new UniversePanel(this);
|
|
+ this.renderAndUniverse.add("universe", this.universe);
|
|
+ }
|
|
+
|
|
+ this.renderCard.show(this.renderAndUniverse, "universe");
|
|
+ this.universe.startWatch();
|
|
+ this.render.requestFocus();
|
|
} else {
|
|
- var41[var22] = Console.message(var30);
|
|
- }
|
|
- }
|
|
-
|
|
- sortStrings(var36, var41, newLocale, lCodes);
|
|
-
|
|
- for(int var43 = 0; var43 < lLength; ++var43) {
|
|
- lLangs[var43] = new MenuItem(var41[var43]);
|
|
- lLangs[var43].setFont(mfont);
|
|
- var38.add(lLangs[var43]);
|
|
- this.langItems.addElement(lLangs[var43]);
|
|
- }
|
|
-
|
|
- this.currentLang = new MenuItem(Console.message("Current-Language"));
|
|
- var33.add(this.currentLang);
|
|
- this.currentLang.setFont(mfont);
|
|
- }
|
|
-
|
|
- if (var2) {
|
|
- this.condenseItem = this.addMenuItem(Console.message("Condense-Files"), "Options");
|
|
- this.expandItem = this.addMenuItem(Console.message("Expand-Files"), "Options");
|
|
- this.musicManItem = this.addMenuItem(Console.message("Music-Manager"), "Options");
|
|
- this.i18nTest = this.addMenuItem(Console.message("I18N-Test"), "Options");
|
|
- }
|
|
-
|
|
- this.cdPlayerItem = this.addMenuItem(Console.message("MusicM"), "Options");
|
|
- this.volumeItem = this.addMenuItem(Console.message("Volume-control"), "Options");
|
|
- if (RenderWare.get3DHardwareAvailable()) {
|
|
- if (RenderWare.get3DHardwareInUse()) {
|
|
- this.graphicsItem = this.addMenuItem(disable3D, "Options");
|
|
- } else {
|
|
- this.graphicsItem = this.addMenuItem(enable3D, "Options");
|
|
- }
|
|
- }
|
|
-
|
|
- if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1) {
|
|
- this.nametagItem = this.addMenuItem(hideTags, "Options");
|
|
- } else {
|
|
- this.nametagItem = this.addMenuItem(showTags, "Options");
|
|
- }
|
|
-
|
|
- if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
|
|
- this.chatBoxItem = this.addMenuItem(disableClassicChat, "Options");
|
|
- } else {
|
|
- this.chatBoxItem = this.addMenuItem(enableClassicChat, "Options");
|
|
- }
|
|
-
|
|
- if (Gamma.loadProgress != null) {
|
|
- Gamma.loadProgress.setMessage("Preloading avatars...");
|
|
- Gamma.loadProgress.advance();
|
|
- }
|
|
-
|
|
- this.menuDone();
|
|
- Console.getFrame().activate();
|
|
- LogFile.mailLogIfPresent(this.getSmtpServer());
|
|
- this.render.requestFocus();
|
|
- this.setMenusWRTVIP();
|
|
- this.bootSomeone = null;
|
|
- if (this.broadcastEnabled()) {
|
|
- this.addBroadcastMenu();
|
|
- }
|
|
-
|
|
- this.universeMode = false;
|
|
- }
|
|
-
|
|
- public void setVIP(boolean var1) {
|
|
- super.setVIP(var1);
|
|
- this.setMenusWRTVIP();
|
|
- this.setNameStr();
|
|
- }
|
|
-
|
|
- public void checkCourtesyVIP() {
|
|
- super.checkCourtesyVIP();
|
|
- this.setMenusWRTVIP();
|
|
- this.setNameStr();
|
|
- }
|
|
-
|
|
- public void setNameStr() {
|
|
- String var1 = super.galaxy.getUsernameU();
|
|
- boolean var2 = super.galaxy.getOnline();
|
|
- if (!var2) {
|
|
- this.yourName.setText(Console.message("Off-line"));
|
|
- } else {
|
|
- if (var1.length() > 0) {
|
|
- if (var1.regionMatches(true, 0, "VIP ", 0, 4)) {
|
|
- var1 = var1.substring(4);
|
|
- }
|
|
-
|
|
- if (Console.vip > 0) {
|
|
- if (Console.vip > 1) {
|
|
- var1 = Console.message("VIP") + " " + var1;
|
|
- } else {
|
|
- var1 = Console.message("vip") + " " + var1;
|
|
- }
|
|
- }
|
|
-
|
|
- IniFile.gamma().setIniString("LASTCHATNAME", Console.parseExtended(var1));
|
|
- this.yourName.setText(Console.parseUnicode(var1));
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void enableBroadcast(boolean var1) {
|
|
- super.enableBroadcast(var1);
|
|
- if (var1) {
|
|
- this.addBroadcastMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- super.deactivate();
|
|
- this.universeMode = false;
|
|
- }
|
|
-
|
|
- protected void setSleepMode(String var1) {
|
|
- super.setSleepMode(var1);
|
|
- if (var1 != null && var1.equals(Console.message("asleep"))) {
|
|
- this.statusMessage = sleepStatus;
|
|
- } else if (this.statusMessage == sleepStatus) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void relogin() {
|
|
- if (this.serverItem.getLabel().equals(signOut)) {
|
|
- this.reloginDialog = new OkCancelDialog(Console.getFrame(), this, Console.message("Re-login"), Console.message("Cancel"), Console.message("OK"), Console.message("auto-sign-out"), true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- if (var1.target == this.aboutItem) {
|
|
- new AboutDialog(Std.getProductName(), Console.getFrame());
|
|
- } else if (var1.target == this.statisticsItem && this.statisticsItem != null) {
|
|
- new StatisticsWindow(Console.getFrame());
|
|
- } else if (this.viewItems.contains(var1.target)) {
|
|
- this.changeView((CheckboxMenuItem)var1.target);
|
|
- } else if (this.camSpeedItems.contains(var1.target)) {
|
|
- this.changeCamSpeed((CheckboxMenuItem)var1.target);
|
|
- } else if (var1.target == this.gettingStartedItem) {
|
|
- (new SendURLAction(this.getHelpGettingStarted())).startBrowser();
|
|
- } else {
|
|
- String var4;
|
|
- String var16;
|
|
- if (var1.target == this.shaperHelpItem) {
|
|
- var16 = IniFile.override().getIniString("ShaperHelp", this.getScriptServer() + "shaperhelp.pl") + "?u=";
|
|
- var4 = IniFile.gamma().getIniString("lastchatname", "");
|
|
- if (!var4.equals("")) {
|
|
- if (var4.startsWith("VIP ")) {
|
|
- var4 = var4.substring(4);
|
|
- }
|
|
-
|
|
- var16 = var16 + var4;
|
|
- }
|
|
-
|
|
- (new SendURLAction(WebControlImp.processURL(var16))).startBrowser();
|
|
- } else if (var1.target == this.helpItem) {
|
|
- var16 = NetUpdate.getUpgradeServerURL();
|
|
- var4 = IniFile.override().getIniString("HelpDirectory", "help");
|
|
- String var19 = IniFile.override().getIniString("HelpPage", Std.getVersion() + Console.message(".html"));
|
|
- if (Console.wasHttpNoSuchFile(var16 + var4 + "/" + var19)) {
|
|
- var19 = IniFile.override().getIniString("HelpPage", Std.getVersion() + ".html");
|
|
- }
|
|
-
|
|
- (new SendURLAction(var16 + var4 + "/" + var19)).startBrowser();
|
|
- } else if (var1.target == this.infoItem) {
|
|
- var16 = IniFile.override().getIniString("infoOverride", "");
|
|
- if (var16.equals("")) {
|
|
- NetUpdate.showInfo();
|
|
+ this.renderCard.show(this.renderAndUniverse, "render");
|
|
+ if (physMem < 64000000) {
|
|
+ this.renderAndUniverse.remove(this.universe);
|
|
+ this.universe.stopWatch();
|
|
+ this.universe.flushImage();
|
|
+ this.universe = null;
|
|
+ }
|
|
+
|
|
+ this.renderAndUniverse.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void toggleUniverseMode() {
|
|
+ this.setUniverseMode(!this.universeMode);
|
|
+ }
|
|
+
|
|
+ public boolean isUniverseMode() {
|
|
+ return this.universeMode;
|
|
+ }
|
|
+
|
|
+ public Object imageButtonsCallback(Component var1, int var2) {
|
|
+ if (var1 != this.driveButton) {
|
|
+ if (var1 == this.quitButton) {
|
|
+ maybeQuit();
|
|
+ } else if (var1 == this.exploreButton) {
|
|
+ this.toggleUniverseMode();
|
|
+ } else if (var1 == this.menuButtons) {
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ return this.getMenu("Help");
|
|
+ case 1:
|
|
+ return this.getMenu("Options");
|
|
+ case 2:
|
|
+ String var3 = IniFile.override().getIniString("ProductName", "");
|
|
+ if (!var3.equalsIgnoreCase("RedLightWorld")) {
|
|
+ EMailPart.showMessage(this);
|
|
+ }
|
|
+ break;
|
|
+ case 3:
|
|
+ return (PopupMenu)this.marks.getMenu();
|
|
+ case 4:
|
|
+ return (PopupMenu)this.marks.getLetsMenu();
|
|
+ case 5:
|
|
+ this.actions.present();
|
|
+ break;
|
|
+ case 6:
|
|
+ return this.getMenu("VIP");
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public RenderCanvas getRender() {
|
|
+ return this.render;
|
|
+ }
|
|
+
|
|
+ public FriendsListPart getFriends() {
|
|
+ return this.friends;
|
|
+ }
|
|
+
|
|
+ public MuteListPart getMutes() {
|
|
+ return this.mutes;
|
|
+ }
|
|
+
|
|
+ public TarListPart getTars() {
|
|
+ return this.tars;
|
|
+ }
|
|
+
|
|
+ public void generateFrameEvents(FrameEvent var1) {
|
|
+ if (Window.getWindowState(Window.getFrameHandle()) == 1) {
|
|
+ this.goToSleep();
|
|
+ }
|
|
+
|
|
+ if (doDrive) {
|
|
+ doDrive = false;
|
|
+ this.render.drive();
|
|
+ wasDelta = true;
|
|
+ }
|
|
+
|
|
+ super.generateFrameEvents(var1);
|
|
+ Pilot var2 = Pilot.getActive();
|
|
+ GammaFrame var3 = getFrame();
|
|
+ String var4 = var3.getTitle();
|
|
+ String var5 = "";
|
|
+ if (var2 != null) {
|
|
+ World var6 = var2.getWorld();
|
|
+ if (var6 != null) {
|
|
+ String var7 = var6.getName();
|
|
+ if (var7 != null) {
|
|
+ var5 = var7;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!lastWorldName.equals(var5)) {
|
|
+ lastWorldName = var5;
|
|
+ String var14 = GammaFrame.getDefaultTitle();
|
|
+ if (var5.length() != 0) {
|
|
+ var14 = var14 + " - " + var5;
|
|
+ if (!this.playedCD) {
|
|
+ CDAudio.startupPlay();
|
|
+ this.playedCD = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var3.setTitle(var14);
|
|
+ }
|
|
+
|
|
+ if (var2 != null) {
|
|
+ if (this.chooseView != -1 || this.chooseCamSpeed != -1) {
|
|
+ int var15 = var2.getOutsideCameraMode();
|
|
+ int var16 = var2.getOutsideCameraSpeed();
|
|
+ int var8 = var15;
|
|
+ int var9 = var16;
|
|
+ if (this.chooseView != -1) {
|
|
+ var8 = ((DefaultConsole.CameraView)this.viewNames.elementAt(this.chooseView)).viewID;
|
|
+ }
|
|
+
|
|
+ if (this.chooseCamSpeed != -1) {
|
|
+ var9 = ((DefaultConsole.CameraSpeed)this.speedNames.elementAt(this.chooseCamSpeed)).speedID;
|
|
+ }
|
|
+
|
|
+ var2.setOutsideCameraMode(var8, var9);
|
|
+ if (var8 != 99) {
|
|
+ IniFile.gamma().setIniInt("CAM_MODE", var8);
|
|
+ IniFile.gamma().setIniInt("CAM_SPEED", var9);
|
|
+ }
|
|
+
|
|
+ this.chooseView = -1;
|
|
+ this.chooseCamSpeed = -1;
|
|
+ }
|
|
+
|
|
+ if (this.wasTeleporting != this.marks.isTeleporting()) {
|
|
+ this.wasTeleporting = this.marks.isTeleporting();
|
|
+ if (this.wasTeleporting) {
|
|
+ this.statusMessage = loadingString;
|
|
+ } else if (this.statusMessage == loadingString) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.checkVMWarning();
|
|
+ if (wasDelta && !this.render.getDeltaMode()) {
|
|
+ this.statusMessage = arrowKeyMsg;
|
|
+ wasDelta = false;
|
|
+ this.driveButton.drawCursed();
|
|
+ }
|
|
+
|
|
+ if (this.chooseWhisper != -1 || this.chooseTeleport != -1) {
|
|
+
|
|
+ int whisperValue = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ int teleportValue = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+
|
|
+ if (this.chooseWhisper != -1) {
|
|
+ whisperValue = ((WhisperPrivacy) this.whisperNames.elementAt(chooseWhisper)).whisperID;
|
|
+ }
|
|
+
|
|
+ if (this.chooseTeleport != -1) {
|
|
+ teleportValue = ((TeleportPrivacy) this.teleportNames.elementAt(chooseTeleport)).teleportID;
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniInt("WhisperPrivacy", whisperValue);
|
|
+ IniFile.gamma().setIniInt("TeleportPrivacy", teleportValue);
|
|
+
|
|
+ this.chooseWhisper = -1;
|
|
+ this.chooseTeleport = -1;
|
|
+ }
|
|
+
|
|
+ synchronized(this.status) {
|
|
+ if (this.statusMessage != this.lastStatus && this.overrideMessage == null) {
|
|
+ this.lastStatus = this.statusMessage;
|
|
+ this.status.setText(this.statusMessage);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ if (this.nextAvatar != null) {
|
|
+ this.setAvatar(this.nextAvatar);
|
|
+ this.nextAvatar = null;
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.notifyOfChange();
|
|
+ }
|
|
+
|
|
+ if (this.nextAvatarItem != null) {
|
|
+ this.setCurrentAvatarItem(this.nextAvatarItem);
|
|
+ this.nextAvatarItem = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void checkVMWarning() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ if (var1 > this.lastVMCheck + 10000) {
|
|
+ StatMemNode var2 = StatMemNode.getNode();
|
|
+ var2.updateMemoryStatus();
|
|
+ if (var2._availPageMem < 0) {
|
|
+ var2._availPageMem = 2000000000;
|
|
+ }
|
|
+
|
|
+ if (var2._totPhysMem < 0) {
|
|
+ var2._totPhysMem = 2000000000;
|
|
+ }
|
|
+
|
|
+ physMem = var2._totPhysMem;
|
|
+ if (var2._availPageMem >= 4194304) {
|
|
+ if (var2._availPageMem > 5242880 && this.lastVMBigWarning != 0) {
|
|
+ if (var2._availPageMem > 10485760) {
|
|
+ Console.println(Console.message("plenty-virt"));
|
|
+ this.lastVMBigWarning = 0;
|
|
+ } else if (!this.showedMidWarn) {
|
|
+ Console.println(Console.message("plenty-virt-mem"));
|
|
+ this.showedMidWarn = true;
|
|
+ }
|
|
+
|
|
+ if (this.statusMessage == lowVMMsg) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+ }
|
|
} else {
|
|
- (new SendURLAction(var16)).startBrowser();
|
|
- }
|
|
- } else if (var1.target == this.i18nTest) {
|
|
- Locale var24 = Locale.getDefault();
|
|
- Console.println("Default = " + var24.getDisplayName());
|
|
- DateFormat var25 = DateFormat.getDateTimeInstance(1, 1);
|
|
- Date var18 = new Date();
|
|
- Console.println("Today = " + var25.format(var18));
|
|
- Locale[] var20 = DateFormat.getAvailableLocales();
|
|
- Console.println("Avaliable Locales are:");
|
|
-
|
|
- for(int var7 = 0; var7 < var20.length; ++var7) {
|
|
- Locale.setDefault(var20[var7]);
|
|
- Console.println(var20[var7].getDisplayName() + " " + var20[var7]);
|
|
- }
|
|
-
|
|
- new Locale("en", "US");
|
|
- Locale var9 = new Locale("fr", "FR");
|
|
- Locale var10 = new Locale("de", "DE");
|
|
- Locale var11 = new Locale("ja", "JP");
|
|
- Locale var12 = new Locale("zh", "CN");
|
|
- Locale var13 = new Locale("th", "TH");
|
|
- Locale var14 = new Locale("ru", "RU");
|
|
- Locale var15 = new Locale("iw", "IL");
|
|
- Console.println("file.encoding = " + System.getProperty("file.encoding"));
|
|
- Console.println(this.message("test-language", var9));
|
|
- Console.println(this.message("test-language", var10));
|
|
- Console.println(this.message("test-language", var11));
|
|
- Console.println(this.message("test-language", var12));
|
|
- Console.println(this.message("test-language", var13));
|
|
- Console.println(this.message("test-language", var14));
|
|
- Console.println(this.message("test-language", var15));
|
|
- Console.println(this.message("test-language", var24));
|
|
- } else if (var1.target == this.checkAccountItem) {
|
|
- var16 = IniFile.override().getIniString("accountOverride", "");
|
|
- if (var16.equals("")) {
|
|
- var4 = IniFile.override().getIniString("accountInfoPage", "account" + Console.message(".pl"));
|
|
- if (Console.wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
- var4 = IniFile.override().getIniString("accountInfoPage", "account.pl");
|
|
- }
|
|
+ if (this.lastVMBigWarning == 0 || this.showedMidWarn || var1 > this.lastVMBigWarning + 300000) {
|
|
+ Console.println(Console.message("Low-virt-mem"));
|
|
+ this.lastVMBigWarning = var1;
|
|
+ this.showedMidWarn = false;
|
|
+ }
|
|
|
|
- (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
- } else {
|
|
- (new SendURLAction(var16)).startBrowser();
|
|
+ this.statusMessage = lowVMMsg;
|
|
}
|
|
|
|
- this.relogin();
|
|
- } else if (var1.target == this.upgradeItem) {
|
|
- NetUpdate.doUpdate(true);
|
|
- } else if (var1.target == this.channelItem && this.channelItem != null) {
|
|
- Galaxy var23 = this.getGalaxy();
|
|
- var4 = "";
|
|
- Debug.dAssert(var23 != null);
|
|
- if (var23 != null) {
|
|
- var4 = var23.getChannel();
|
|
- }
|
|
-
|
|
- new ChannelDialog(Console.getFrame(), this, Console.message("Dimension-Sel"), var4);
|
|
- } else if (var1.target == this.becomeVIPItem) {
|
|
- var16 = IniFile.override().getIniString("vipOverride", "");
|
|
- if (var16.equals("")) {
|
|
- var4 = IniFile.override().getIniString("vipPage", "vip" + Console.message(".pl"));
|
|
- if (Console.wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
- var4 = IniFile.override().getIniString("vipPage", "vip.pl");
|
|
- }
|
|
+ Object[] var3 = new Object[]{new String(Std.getProductName()), new Integer(24)};
|
|
+ if (startupMemCheck) {
|
|
+ if (var2._totPhysMem < 24000000) {
|
|
+ String var4 = MessageFormat.format(Console.message("Mem-detected"), var3);
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Too-Little-RAM"), (String)null, Console.message("OK"), var4, true);
|
|
+ }
|
|
|
|
- (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
- } else {
|
|
- (new SendURLAction(var16, false)).startBrowser();
|
|
+ startupMemCheck = false;
|
|
+ System.out.println("System has " + var2._totPhysMem + " bytes of physical RAM");
|
|
}
|
|
|
|
- this.relogin();
|
|
- } else if (var1.target == this.numVisItem) {
|
|
- new SetNumVisibleAvs();
|
|
- } else if (var1.target == this.inventoryItem) {
|
|
- EquipAction var22 = new EquipAction();
|
|
- var22.trigger((NET.worlds.scape.Event)null, (Persister)null);
|
|
- } else if (var1.target == this.proxyServerItem) {
|
|
- System.out.println("Triggering the Proxy Server dialog.");
|
|
- ProxyServerDialog var21 = new ProxyServerDialog();
|
|
- var21.show();
|
|
- } else if (var1.target == this.toggleVoiceChatItem) {
|
|
- VoiceChat.setVoiceChatEnabled(!VoiceChat.voiceChatEnabled);
|
|
- this.setMenusWRTVIP();
|
|
- } else if (var1.target == this.serverItem) {
|
|
- this.handleServerItem();
|
|
- } else if (var1.target == this.condenseItem) {
|
|
- new ArchiveMaker(true);
|
|
- } else if (var1.target == this.expandItem) {
|
|
- new ArchiveMaker(false);
|
|
- } else if (var1.target == this.musicManItem) {
|
|
- MusicManager.showDialog();
|
|
- } else if (var1.target == this.cdPlayerItem) {
|
|
- if (this.cdcontrol == null) {
|
|
- this.playedCD = true;
|
|
- this.cdcontrol = new CDControl(Console.getFrame(), this);
|
|
- }
|
|
- } else if (var1.target == this.volumeItem) {
|
|
- if (!CDPlayerAction.launchVolumeControlApp()) {
|
|
- new OkCancelDialog(Console.getFrame(), (DialogReceiver)null, Console.message("No-Volume"), (String)null, Console.message("OK"), Console.message("Cannot-locate"), true);
|
|
- }
|
|
- } else if (var1.target == this.graphicsItem) {
|
|
- this.handleGraphicsItem();
|
|
- } else if (var1.target == this.nametagItem) {
|
|
- this.handleNametagsItem();
|
|
- } else if (var1.target == this.chatBoxItem) {
|
|
- this.handleChatBoxItem();
|
|
- } else if (var1.target == this.bootSomeone) {
|
|
- new BootDialog(Console.getFrame(), this, Console.message("Boot-user"));
|
|
- } else if (var1.target == this.broadcastToRoom) {
|
|
- Console.startWhispering("room");
|
|
- } else if (var1.target == this.broadcastToAll) {
|
|
- Console.startWhispering("world");
|
|
- } else if (var1.target == this.currentLang) {
|
|
- var16 = Locale.getDefault().toString();
|
|
- if (var16 == Console.message(var16)) {
|
|
- Console.println(Console.message("Current-Language") + " = " + Locale.getDefault().getDisplayName());
|
|
- } else {
|
|
- Console.println(Console.message("Current-Language") + " = " + Console.message(var16));
|
|
- }
|
|
- } else if (var1.target == this.recorderPlayItem) {
|
|
- Console.println(Console.message("BlackBoxPlay"));
|
|
- BlackBox.getInstance().play();
|
|
- } else if (var1.target == this.recorderRecItem) {
|
|
- Console.println(Console.message("BlackBoxRec"));
|
|
- BlackBox.getInstance().record();
|
|
- } else if (var1.target == this.recorderStopItem) {
|
|
- Console.println(Console.message("BlackBoxStop"));
|
|
- BlackBox.getInstance().stop();
|
|
- } else {
|
|
- int var5;
|
|
- String var6;
|
|
- int var17;
|
|
- if (this.fontItems != null && this.fontItems.contains(var1.target)) {
|
|
- var16 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/font_";
|
|
-
|
|
- for(var17 = 0; var17 < this.fLength; ++var17) {
|
|
- if (var1.target == this.fontItems.elementAt(var17)) {
|
|
- if (this.fsList.elementAt(var17) != null) {
|
|
- var16 = var16 + this.flList.elementAt(var17) + "_" + this.fsList.elementAt(var17) + ".EXE";
|
|
- } else {
|
|
- var16 = var16 + this.flList.elementAt(var17) + ".EXE";
|
|
- }
|
|
-
|
|
- var5 = this.fSizes[var17];
|
|
- var6 = var16.substring(var16.lastIndexOf(47) + 1, var16.length());
|
|
- LanguageManager.handle(var16, var5, var6);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.downItems != null && this.downItems.contains(var1.target)) {
|
|
- var16 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/language_";
|
|
-
|
|
- for(var17 = 0; var17 < this.dLength; ++var17) {
|
|
- if (var1.target == this.downItems.elementAt(var17)) {
|
|
- if (this.sList.elementAt(var17) != null) {
|
|
- var16 = var16 + this.lList.elementAt(var17) + "_" + this.sList.elementAt(var17) + ".zip";
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var17) + "_" + this.sList.elementAt(var17));
|
|
- } else {
|
|
- var16 = var16 + this.lList.elementAt(var17) + ".zip";
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var17));
|
|
- }
|
|
-
|
|
- var5 = this.lSizes[var17];
|
|
- var6 = var16.substring(var16.lastIndexOf(47) + 1, var16.length());
|
|
- LanguageManager.handle(var16, var5, var6);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.langItems != null && this.langItems.contains(var1.target)) {
|
|
- for(int var3 = 0; var3 < lLength; ++var3) {
|
|
- if (var1.target == this.langItems.elementAt(var3)) {
|
|
- Locale.setDefault(newLocale[var3]);
|
|
- var4 = newLocale[var3].toString();
|
|
- if (var4 == Console.message(var4)) {
|
|
- Console.println(Console.message("Setting-to") + " " + newLocale[var3].getDisplayName());
|
|
- } else {
|
|
- Console.println(Console.message("Setting-to") + " " + Console.message(var4));
|
|
- }
|
|
-
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", lCodes[var3][0] + "_" + lCodes[var3][1]);
|
|
- new OkCancelDialog(Console.getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.avatarMenu == null || !this.avatarMenu.action(var1, var2)) {
|
|
- return super.action(var1, var2);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public void setCurrentAvatarItem(CheckboxMenuItem var1) {
|
|
- if (this.curAvatarItem != null) {
|
|
- this.curAvatarItem.setState(false);
|
|
- }
|
|
-
|
|
- this.curAvatarItem = var1;
|
|
- if (this.curAvatarItem != null) {
|
|
- this.curAvatarItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public CheckboxMenuItem getCurrentAvatarItem() {
|
|
- return this.curAvatarItem;
|
|
- }
|
|
-
|
|
- public void deletedSavedAvatar(CheckboxMenuItem var1) {
|
|
- if (this.curAvatarItem == var1) {
|
|
- this.findAvatarMenuItem(this.getDefaultAvatarURL());
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setNextAvatar(URL var1, CheckboxMenuItem var2) {
|
|
- Object var3 = this.nextAvatarMutex;
|
|
- synchronized(var3) {
|
|
- this.nextAvatar = var1;
|
|
- this.nextAvatarItem = var2;
|
|
- }
|
|
- }
|
|
-
|
|
- private void findAvatarMenuItem(URL var1) {
|
|
- Object var2 = this.nextAvatarMutex;
|
|
- synchronized(var2) {
|
|
- if (this.nextAvatarItem == null) {
|
|
- Object var3;
|
|
- if ((this.savedAvs == null || (var3 = this.savedAvs.findMenuItem(var1)) == null) && (this.avatarMenu == null || (var3 = this.avatarMenu.findMenuItem(var1)) == null)) {
|
|
- this.setCurrentAvatarItem((CheckboxMenuItem)null);
|
|
- } else {
|
|
- this.setCurrentAvatarItem((CheckboxMenuItem)var3);
|
|
- }
|
|
- }
|
|
+ this.lastVMCheck = var1;
|
|
+ }
|
|
|
|
- }
|
|
- }
|
|
+ }
|
|
|
|
- private URL getHelpGettingStarted() {
|
|
- IniFile var1 = new IniFile("InstalledWorlds");
|
|
- String var2 = Console.message("Getting-started");
|
|
- String var3 = var1.getIniString("InstalledWorld0", "");
|
|
- if (!var3.equals("")) {
|
|
- URL var4 = URL.make("home:" + var3 + "/" + var2);
|
|
- File var5 = new File(var4.unalias());
|
|
- if (var5.exists()) {
|
|
- return var4;
|
|
- }
|
|
- }
|
|
-
|
|
- return URL.make("home:" + var2);
|
|
- }
|
|
-
|
|
- private void changeView(CheckboxMenuItem var1) {
|
|
- this.chooseView = this.viewItems.indexOf(var1);
|
|
- if (var1 != this.currentViewItem) {
|
|
- this.currentViewItem.setState(false);
|
|
- this.currentViewItem = var1;
|
|
- this.currentViewItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private int getView() {
|
|
- return this.viewItems.indexOf(this.currentViewItem);
|
|
- }
|
|
-
|
|
- private void setView(int var1) {
|
|
- this.changeView((CheckboxMenuItem)this.viewItems.elementAt(var1));
|
|
- }
|
|
-
|
|
- private void changeCamSpeed(CheckboxMenuItem var1) {
|
|
- this.chooseCamSpeed = this.camSpeedItems.indexOf(var1);
|
|
- if (var1 != this.currentCamSpeedItem) {
|
|
- this.currentCamSpeedItem.setState(false);
|
|
- this.currentCamSpeedItem = var1;
|
|
- this.currentCamSpeedItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void resetCamera() {
|
|
- if (this.viewItems != null && this.camSpeedItems != null) {
|
|
- this.chooseView = this.viewItems.indexOf(this.currentViewItem);
|
|
- this.chooseCamSpeed = this.camSpeedItems.indexOf(this.currentCamSpeedItem);
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleServerItem() {
|
|
- if (!this.serverItem.getLabel().equals(signIn)) {
|
|
- Galaxy.forceOffline(false);
|
|
- } else {
|
|
- this.getGalaxy().localForceOnline();
|
|
- this.getGalaxy().waitForConnection(this);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public UniversePanel getUniverse() {
|
|
- return this.universeMode ? this.universe : null;
|
|
- }
|
|
-
|
|
- public synchronized void setUniverseMode(boolean var1) {
|
|
- if (var1 != this.universeMode) {
|
|
- this.universeMode = var1;
|
|
- if (this.universeMode) {
|
|
- if (this.universe == null) {
|
|
- this.universe = new UniversePanel(this);
|
|
- this.renderAndUniverse.add("universe", this.universe);
|
|
- }
|
|
-
|
|
- this.renderCard.show(this.renderAndUniverse, "universe");
|
|
- this.universe.startWatch();
|
|
- this.render.requestFocus();
|
|
- } else {
|
|
- this.renderCard.show(this.renderAndUniverse, "render");
|
|
- if (physMem < 64000000) {
|
|
- this.renderAndUniverse.remove(this.universe);
|
|
- this.universe.stopWatch();
|
|
- this.universe.flushImage();
|
|
- this.universe = null;
|
|
- }
|
|
-
|
|
- this.renderAndUniverse.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void toggleUniverseMode() {
|
|
- this.setUniverseMode(!this.universeMode);
|
|
- }
|
|
-
|
|
- public boolean isUniverseMode() {
|
|
- return this.universeMode;
|
|
- }
|
|
-
|
|
- public Object imageButtonsCallback(Component var1, int var2) {
|
|
- if (var1 != this.driveButton) {
|
|
- if (var1 == this.quitButton) {
|
|
- Console.maybeQuit();
|
|
- } else if (var1 == this.exploreButton) {
|
|
- this.toggleUniverseMode();
|
|
- } else if (var1 == this.menuButtons) {
|
|
- switch(var2) {
|
|
- case 0:
|
|
- return this.getMenu("Help");
|
|
- case 1:
|
|
- return this.getMenu("Options");
|
|
- case 2:
|
|
- EMailPart.showMessage(this);
|
|
- break;
|
|
- case 3:
|
|
- return (PopupMenu)this.marks.getMenu();
|
|
- case 4:
|
|
- return (PopupMenu)this.marks.getLetsMenu();
|
|
- case 5:
|
|
- this.actions.present();
|
|
- break;
|
|
- case 6:
|
|
- return this.getMenu("VIP");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public RenderCanvas getRender() {
|
|
- return this.render;
|
|
- }
|
|
-
|
|
- public FriendsListPart getFriends() {
|
|
- return this.friends;
|
|
- }
|
|
-
|
|
- public MuteListPart getMutes() {
|
|
- return this.mutes;
|
|
- }
|
|
-
|
|
- public void generateFrameEvents(FrameEvent var1) {
|
|
- if (Window.getWindowState(Window.getFrameHandle()) == 1) {
|
|
- this.goToSleep();
|
|
- }
|
|
-
|
|
- if (doDrive) {
|
|
- doDrive = false;
|
|
- this.render.drive();
|
|
- wasDelta = true;
|
|
- }
|
|
-
|
|
- super.generateFrameEvents(var1);
|
|
- Pilot var2 = Pilot.getActive();
|
|
- GammaFrame var3 = Console.getFrame();
|
|
- String var4 = var3.getTitle();
|
|
- String var5 = "";
|
|
- if (var2 != null) {
|
|
- World var6 = var2.getWorld();
|
|
- if (var6 != null) {
|
|
- String var7 = var6.getName();
|
|
- if (var7 != null) {
|
|
- var5 = var7;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (!lastWorldName.equals(var5)) {
|
|
- lastWorldName = var5;
|
|
- String var14 = GammaFrame.getDefaultTitle();
|
|
- if (var5.length() != 0) {
|
|
- var14 = var14 + " - " + var5;
|
|
- if (!this.playedCD) {
|
|
- CDAudio.startupPlay();
|
|
- this.playedCD = true;
|
|
- }
|
|
- }
|
|
-
|
|
- var3.setTitle(var14);
|
|
- }
|
|
-
|
|
- if (var2 != null) {
|
|
- if (this.chooseView != -1 || this.chooseCamSpeed != -1) {
|
|
- int var15 = var2.getOutsideCameraMode();
|
|
- int var16 = var2.getOutsideCameraSpeed();
|
|
- int var8 = var15;
|
|
- int var9 = var16;
|
|
- if (this.chooseView != -1) {
|
|
- var8 = ((DefaultConsole.CameraView)this.viewNames.elementAt(this.chooseView)).viewID;
|
|
- }
|
|
-
|
|
- if (this.chooseCamSpeed != -1) {
|
|
- var9 = ((DefaultConsole.CameraSpeed)this.speedNames.elementAt(this.chooseCamSpeed)).speedID;
|
|
- }
|
|
-
|
|
- var2.setOutsideCameraMode(var8, var9);
|
|
- if (var8 != 99) {
|
|
- IniFile.gamma().setIniInt("CAM_MODE", var8);
|
|
- IniFile.gamma().setIniInt("CAM_SPEED", var9);
|
|
- }
|
|
-
|
|
- this.chooseView = -1;
|
|
- this.chooseCamSpeed = -1;
|
|
- }
|
|
-
|
|
- if (this.wasTeleporting != this.marks.isTeleporting()) {
|
|
- this.wasTeleporting = this.marks.isTeleporting();
|
|
- if (this.wasTeleporting) {
|
|
- this.statusMessage = loadingString;
|
|
- } else if (this.statusMessage == loadingString) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
- }
|
|
-
|
|
- this.checkVMWarning();
|
|
- if (wasDelta && !this.render.getDeltaMode()) {
|
|
- this.statusMessage = arrowKeyMsg;
|
|
- wasDelta = false;
|
|
- this.driveButton.drawCursed();
|
|
- }
|
|
-
|
|
- Label var17 = this.status;
|
|
- synchronized(var17) {
|
|
- if (this.statusMessage != this.lastStatus && this.overrideMessage == null) {
|
|
- this.lastStatus = this.statusMessage;
|
|
- this.status.setText(this.statusMessage);
|
|
- }
|
|
- }
|
|
-
|
|
- Object var10 = this.nextAvatarMutex;
|
|
- synchronized(var10) {
|
|
- if (this.nextAvatar != null) {
|
|
- this.setAvatar(this.nextAvatar);
|
|
- this.nextAvatar = null;
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.notifyOfChange();
|
|
- }
|
|
-
|
|
- if (this.nextAvatarItem != null) {
|
|
- this.setCurrentAvatarItem(this.nextAvatarItem);
|
|
- this.nextAvatarItem = null;
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- private void checkVMWarning() {
|
|
- int var1 = Std.getFastTime();
|
|
- if (var1 > this.lastVMCheck + 10000) {
|
|
- StatMemNode var2 = StatMemNode.getNode();
|
|
- var2.updateMemoryStatus();
|
|
- if (var2._availPageMem < 0) {
|
|
- var2._availPageMem = 2000000000;
|
|
- }
|
|
-
|
|
- if (var2._totPhysMem < 0) {
|
|
- var2._totPhysMem = 2000000000;
|
|
- }
|
|
-
|
|
- physMem = var2._totPhysMem;
|
|
- if (var2._availPageMem >= 4194304) {
|
|
- if (var2._availPageMem > 5242880 && this.lastVMBigWarning != 0) {
|
|
- if (var2._availPageMem > 10485760) {
|
|
- Console.println(Console.message("plenty-virt"));
|
|
- this.lastVMBigWarning = 0;
|
|
- } else if (!this.showedMidWarn) {
|
|
- Console.println(Console.message("plenty-virt-mem"));
|
|
- this.showedMidWarn = true;
|
|
- }
|
|
-
|
|
- if (this.statusMessage == lowVMMsg) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
- }
|
|
- } else {
|
|
- if (this.lastVMBigWarning == 0 || this.showedMidWarn || var1 > this.lastVMBigWarning + 300000) {
|
|
- Console.println(Console.message("Low-virt-mem"));
|
|
- this.lastVMBigWarning = var1;
|
|
- this.showedMidWarn = false;
|
|
- }
|
|
-
|
|
- this.statusMessage = lowVMMsg;
|
|
- }
|
|
-
|
|
- Object[] var3 = new Object[]{new String(Std.getProductName()), new Integer(24)};
|
|
- if (startupMemCheck) {
|
|
- if (var2._totPhysMem < 24000000) {
|
|
- String var4 = MessageFormat.format(Console.message("Mem-detected"), var3);
|
|
- new OkCancelDialog(Console.getFrame(), (DialogReceiver)null, Console.message("Too-Little-RAM"), (String)null, Console.message("OK"), var4, true);
|
|
- }
|
|
-
|
|
- startupMemCheck = false;
|
|
- System.out.println("System has " + var2._totPhysMem + " bytes of physical RAM");
|
|
- }
|
|
-
|
|
- this.lastVMCheck = var1;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public URL getAvatarName() {
|
|
- return this.avatarURL;
|
|
- }
|
|
-
|
|
- public void setServerURL(URL var1) {
|
|
- super.setServerURL(var1);
|
|
- }
|
|
-
|
|
- public void dialogDone(Object var1, boolean var2) {
|
|
- if (var1 instanceof QuitDialog) {
|
|
- if (var2) {
|
|
- Console.quit();
|
|
- }
|
|
- } else {
|
|
- String var4;
|
|
- if (var1 instanceof BootDialog) {
|
|
+ public URL getAvatarName() {
|
|
+ return this.avatarURL;
|
|
+ }
|
|
+
|
|
+ public void setServerURL(URL var1) {
|
|
+ super.setServerURL(var1);
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var1 instanceof QuitDialog) {
|
|
if (var2) {
|
|
- BootDialog var3 = (BootDialog)var1;
|
|
- var4 = var3.getBoot();
|
|
- if (!var4.equals("")) {
|
|
- Pilot.sendText("world", "!boot " + var4);
|
|
- }
|
|
+ Console.quit();
|
|
}
|
|
- } else if (var1 instanceof ChannelDialog) {
|
|
- if (var2) {
|
|
- ChannelDialog var9 = (ChannelDialog)var1;
|
|
- var4 = var9.getChannel();
|
|
- Pilot var5 = Pilot.getActive();
|
|
- String var6 = var5 != null ? var5.getURL() : null;
|
|
- if (var6 != null) {
|
|
- int var7 = var6.indexOf("<");
|
|
- int var8 = var6.indexOf(">");
|
|
- if (var7 >= 0 && var8 > var7) {
|
|
- TeleportAction.teleport(var6.substring(0, var7 + 1) + var4 + var6.substring(var8), (TeleportStatus)null);
|
|
- }
|
|
- } else {
|
|
- Console.println(Console.message("cant-determine"));
|
|
- }
|
|
- }
|
|
- } else if (var1 instanceof LoginWizard) {
|
|
- Debug.dAssert(false);
|
|
- } else if (var1 instanceof CDControl) {
|
|
- if (this.cdcontrol == var1) {
|
|
- this.cdcontrol = null;
|
|
- }
|
|
- } else if (var1 instanceof InternetConnectionDialog) {
|
|
- Debug.dAssert(false);
|
|
- } else if (var1 == this.reloginDialog) {
|
|
- if (var2) {
|
|
- Galaxy.forceOffline(true);
|
|
+ } else {
|
|
+ String var4;
|
|
+ if (var1 instanceof BootDialog) {
|
|
+ if (var2) {
|
|
+ BootDialog var3 = (BootDialog)var1;
|
|
+ var4 = var3.getBoot();
|
|
+ if (!var4.equals("")) {
|
|
+ Pilot.sendText("world", "!boot " + var4);
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 instanceof ChannelDialog) {
|
|
+ if (var2) {
|
|
+ ChannelDialog var9 = (ChannelDialog)var1;
|
|
+ var4 = var9.getChannel();
|
|
+ Pilot var5 = Pilot.getActive();
|
|
+ String var6 = var5 != null ? var5.getURL() : null;
|
|
+ if (var6 != null) {
|
|
+ int var7 = var6.indexOf("<");
|
|
+ int var8 = var6.indexOf(">");
|
|
+ if (var7 >= 0 && var8 > var7) {
|
|
+ TeleportAction.teleport(var6.substring(0, var7 + 1) + var4 + var6.substring(var8), (TeleportStatus)null);
|
|
+ }
|
|
+ } else {
|
|
+ Console.println(Console.message("cant-determine"));
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 instanceof LoginWizard) {
|
|
+ Debug.dAssert(false);
|
|
+ } else if (var1 instanceof CDControl) {
|
|
+ if (this.cdcontrol == var1) {
|
|
+ this.cdcontrol = null;
|
|
+ }
|
|
+ } else if (var1 instanceof InternetConnectionDialog) {
|
|
+ Debug.dAssert(false);
|
|
+ } else if (var1 == this.reloginDialog) {
|
|
+ if (var2) {
|
|
+ Galaxy.forceOffline(true);
|
|
+ }
|
|
+
|
|
+ this.reloginDialog = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setAvatar(URL var1) {
|
|
+ this.avatarURL = var1;
|
|
+ boolean var2 = var1.getInternal().toLowerCase().endsWith(".rwg");
|
|
+ boolean var3 = var1.equals(getDefaultURL()) && !this.getGalaxy().getOnline();
|
|
+ if (!this.getFullVIP() && var2 && !var3) {
|
|
+ Console.println(Console.message("Only-VIPs") + " '" + SelectAvatarAction.getPrettyAvatarName(var1.getBase()) + "'.");
|
|
+ } else if (VehicleShape.isVehicle(var1)) {
|
|
+ this.tempCarAvatar = var1.getAbsolute();
|
|
+ super.setAvatar(var1);
|
|
+ } else {
|
|
+ this.tempCarAvatar = "";
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.customize.setEnabled(!var1.getAbsolute().endsWith("mov"));
|
|
+ }
|
|
+
|
|
+ if (!var1.equals(this.getDefaultAvatarURL())) {
|
|
+ if (this.getFullVIP()) {
|
|
+ if (!var2) {
|
|
+ IniFile.gamma().setIniString("VIPAVATAR", "");
|
|
+ } else {
|
|
+ IniFile.gamma().setIniString("VIPAVATAR", var1.getAbsolute());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!var2) {
|
|
+ IniFile.gamma().setIniString("AVATAR", var1.getAbsolute());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.setAvatar(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private CheckboxMenuItem findAvatar(Vector var1, String var2) {
|
|
+ if (var1 != null) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ CheckboxMenuItem var5 = (CheckboxMenuItem)var1.elementAt(var4);
|
|
+ if (var5.getLabel().equals(var2)) {
|
|
+ return var5;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ protected void loadPilot(URL var1) {
|
|
+ super.loadPilot(var1);
|
|
+ this.findAvatarMenuItem(var1);
|
|
+ }
|
|
+
|
|
+ public void setChatname(String var1) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ if (var1.length() != 0) {
|
|
+ String var2 = (this.getVIP() ? (vip > 1 ? Console.message("VIP") + " " : Console.message("vip")) + " " : "") + "\"" + Console.parseUnicode(var1) + "\"";
|
|
+ this.yourName.setText(var2);
|
|
+ IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(var2));
|
|
+ } else {
|
|
+ this.yourName.setText(Console.message("Off-line"));
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void connectionCallback(Object var1, boolean var2) {
|
|
+ super.connectionCallback(var1, var2);
|
|
+ if (var1 instanceof Galaxy) {
|
|
+ if (var1 != this.galaxy) {
|
|
+ return;
|
|
}
|
|
|
|
- this.reloginDialog = null;
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setAvatar(URL var1) {
|
|
- this.avatarURL = var1;
|
|
- boolean var2 = var1.getInternal().toLowerCase().endsWith(".rwg");
|
|
- boolean var3 = var1.equals(Console.getDefaultURL()) && !this.getGalaxy().getOnline();
|
|
- if (!this.getVIP() && var2 && !var3) {
|
|
- Console.println(Console.message("Only-VIPs") + " '" + SelectAvatarAction.getPrettyAvatarName(var1.getBase()) + "'.");
|
|
- } else if (VehicleShape.isVehicle(var1)) {
|
|
- super.tempCarAvatar = var1.getAbsolute();
|
|
- super.setAvatar(var1);
|
|
- } else {
|
|
- super.tempCarAvatar = "";
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.customize.setEnabled(!var1.getAbsolute().endsWith("mov"));
|
|
- }
|
|
-
|
|
- if (!var1.equals(this.getDefaultAvatarURL())) {
|
|
- if (this.getVIP()) {
|
|
- if (!var2) {
|
|
- IniFile.gamma().setIniString("VIPAVATAR", "");
|
|
- } else {
|
|
- IniFile.gamma().setIniString("VIPAVATAR", var1.getAbsolute());
|
|
- }
|
|
- }
|
|
-
|
|
- if (!var2) {
|
|
- IniFile.gamma().setIniString("AVATAR", var1.getAbsolute());
|
|
- }
|
|
- }
|
|
-
|
|
- super.setAvatar(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- private CheckboxMenuItem findAvatar(Vector var1, String var2) {
|
|
- if (var1 != null) {
|
|
- int var3 = var1.size();
|
|
-
|
|
- for(int var4 = 0; var4 < var3; ++var4) {
|
|
- CheckboxMenuItem var5 = (CheckboxMenuItem)var1.elementAt(var4);
|
|
- if (var5.getLabel().equals(var2)) {
|
|
- return var5;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- protected void loadPilot(URL var1) {
|
|
- super.loadPilot(var1);
|
|
- this.findAvatarMenuItem(var1);
|
|
- }
|
|
-
|
|
- public void setChatname(String var1) {
|
|
- Debug.dAssert(var1 != null);
|
|
- if (var1.length() != 0) {
|
|
- String var2 = (this.getVIP() ? (Console.vip > 1 ? Console.message("VIP") + " " : Console.message("vip")) + " " : "") + "\"" + Console.parseUnicode(var1) + "\"";
|
|
- this.yourName.setText(var2);
|
|
- IniFile.gamma().setIniString("LASTCHATNAME", Console.parseExtended(var2));
|
|
- } else {
|
|
- this.yourName.setText(Console.message("Off-line"));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void connectionCallback(Object var1, boolean var2) {
|
|
- super.connectionCallback(var1, var2);
|
|
- if (var1 instanceof Galaxy) {
|
|
- if (var1 != super.galaxy) {
|
|
- return;
|
|
- }
|
|
-
|
|
- if (var2) {
|
|
- WorldServer var3 = this.getServerNew();
|
|
- this.friends.setServer(var3, this.getGalaxy().getIniSection());
|
|
- this.mutes.setServer(var3, this.getGalaxy().getIniSection());
|
|
- if (Console.vip < 2) {
|
|
- Console.println(Console.vip == 1 ? Console.message("Press-full-VIP") : Console.message("Press-VIP"));
|
|
- }
|
|
-
|
|
- PosableShape.downloadPermittedNames();
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void galaxyDisconnected() {
|
|
- super.galaxyDisconnected();
|
|
- this.getFriends().maybeServerDisconnect();
|
|
- }
|
|
-
|
|
- public boolean okToQuit() {
|
|
- int var1 = IniFile.override().getIniInt("QuitDialog", 1);
|
|
- if (var1 == 1) {
|
|
- new QuitDialog(Console.getFrame(), this);
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public Rectangle getBrowserPlacement() {
|
|
- String var1 = IniFile.gamma().getIniString("BROWSERWINDOW", "");
|
|
- if (var1.length() != 0) {
|
|
- StringTokenizer var2 = new StringTokenizer(var1, " ,");
|
|
-
|
|
- try {
|
|
- return new Rectangle(Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()));
|
|
- } catch (NumberFormatException var10) {
|
|
- } catch (NoSuchElementException var11) {
|
|
- }
|
|
- }
|
|
-
|
|
- Point var12 = this.menuButtons.getLocationOnScreen();
|
|
- int var3 = this.menuButtons.getLocationOnScreen().x - (int)((double)this.menuButtons.getSize().width * 0.7D);
|
|
- int var4 = Window.getSystemMetrics(32);
|
|
- int var5 = Toolkit.getDefaultToolkit().getScreenSize().width;
|
|
- int var6 = Math.min(var5, 640) + 2 * var4;
|
|
- int var7 = 0;
|
|
- if (var3 != var6) {
|
|
- if (var3 > var6) {
|
|
- var7 += var3 - var6;
|
|
- }
|
|
-
|
|
- var3 = var6;
|
|
- }
|
|
-
|
|
- if (var3 > var5) {
|
|
- var7 += -var4;
|
|
- }
|
|
-
|
|
- int var8 = this.chat.listen.getLocationOnScreen().y + this.chat.listen.getSize().height - this.chat.line.getSize().height;
|
|
- int var9 = 0;
|
|
- if (var8 > 540) {
|
|
- var9 += var8 - 540;
|
|
- var8 = 540;
|
|
- }
|
|
-
|
|
- return new Rectangle(var7, var9, var3, var8);
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = URLPropertyEditor.make(new Property(this, var1, "Avatar"), "rwg;mov");
|
|
- } else if (var3 == 1) {
|
|
- var5 = super.lastPilotRequested;
|
|
- } else if (var3 == 2) {
|
|
- this.setNextAvatar((URL)var4, (CheckboxMenuItem)null);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (var3 == 0) {
|
|
- var5 = BooleanPropertyEditor.make(new Property(this, var1, "Collect garbage"), "No", "Yes");
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Boolean(false);
|
|
- } else if (var3 == 2 && (Boolean)var4) {
|
|
- System.gc();
|
|
- System.runFinalization();
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(0, classCookie);
|
|
- super.saveState(var1);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- int var2 = var1.restoreVersion(classCookie);
|
|
- switch(var2) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- static {
|
|
- lLength = lNames.length;
|
|
- lLangs = new MenuItem[lLength];
|
|
- newLocale = new Locale[lLength];
|
|
- lCodes = new String[lLength][2];
|
|
- signIn = Console.message("Sign-In");
|
|
- signOut = Console.message("Sign-Out");
|
|
- signingIn = Console.message("Signing-In");
|
|
- noMultiUser = Console.message("Network");
|
|
- enable3D = Console.message("Enable3D");
|
|
- disable3D = Console.message("Disable3D");
|
|
- showTags = Console.message("ShowNametags");
|
|
- hideTags = Console.message("HideNametags");
|
|
- enableClassicChat = Console.message("EnableClassicChat");
|
|
- disableClassicChat = Console.message("DisableClassicChat");
|
|
- sleepStatus = Console.message("Sleeping");
|
|
- lastWorldName = "";
|
|
- lowVMMsg = Console.message("Low-virt");
|
|
- startupMemCheck = true;
|
|
- classCookie = new Object();
|
|
- }
|
|
-
|
|
- private class CameraSpeed {
|
|
- public String speedName;
|
|
- public int speedID;
|
|
-
|
|
- public CameraSpeed(String var2, int var3) {
|
|
- this.speedName = var2;
|
|
- this.speedID = var3;
|
|
- }
|
|
- }
|
|
-
|
|
- private class CameraView {
|
|
- public String viewName;
|
|
- public int viewID;
|
|
-
|
|
- public CameraView(String var2, int var3) {
|
|
- this.viewName = var2;
|
|
- this.viewID = var3;
|
|
- }
|
|
- }
|
|
+ if (var2) {
|
|
+ WorldServer var3 = this.getServerNew();
|
|
+ this.friends.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ this.mutes.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ this.tars.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ if (vip < 2) {
|
|
+ Console.println(vip == 1 ? Console.message("Press-full-VIP") : Console.message("Press-VIP"));
|
|
+ }
|
|
+
|
|
+ PosableShape.downloadPermittedNames();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void galaxyDisconnected() {
|
|
+ super.galaxyDisconnected();
|
|
+ this.getFriends().maybeServerDisconnect();
|
|
+ }
|
|
+
|
|
+ public boolean okToQuit() {
|
|
+ int var1 = IniFile.override().getIniInt("QuitDialog", 1);
|
|
+ if (var1 == 1) {
|
|
+ new QuitDialog(getFrame(), this);
|
|
+ return false;
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Rectangle getBrowserPlacement() {
|
|
+ String var1 = IniFile.gamma().getIniString("BROWSERWINDOW", "");
|
|
+ if (var1.length() != 0) {
|
|
+ StringTokenizer var2 = new StringTokenizer(var1, " ,");
|
|
+
|
|
+ try {
|
|
+ return new Rectangle(Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()));
|
|
+ } catch (NumberFormatException var10) {
|
|
+ } catch (NoSuchElementException var11) {
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Point var12 = this.menuButtons.getLocationOnScreen();
|
|
+ int var3 = this.menuButtons.getLocationOnScreen().x - (int)((double)this.menuButtons.getSize().width * 0.7D);
|
|
+ int var4 = Window.getSystemMetrics(32);
|
|
+ int var5 = Toolkit.getDefaultToolkit().getScreenSize().width;
|
|
+ int var6 = Math.min(var5, 640) + 2 * var4;
|
|
+ int var7 = 0;
|
|
+ if (var3 != var6) {
|
|
+ if (var3 > var6) {
|
|
+ var7 += var3 - var6;
|
|
+ }
|
|
+
|
|
+ var3 = var6;
|
|
+ }
|
|
+
|
|
+ if (var3 > var5) {
|
|
+ var7 += -var4;
|
|
+ }
|
|
+
|
|
+ int var8 = this.chat.listen.getLocationOnScreen().y + this.chat.listen.getSize().height - this.chat.line.getSize().height;
|
|
+ int var9 = 0;
|
|
+ if (var8 > 540) {
|
|
+ var9 += var8 - 540;
|
|
+ var8 = 540;
|
|
+ }
|
|
+
|
|
+ return new Rectangle(var7, var9, var3, var8);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make(new Property(this, var1, "Avatar"), "rwg;mov;rwx");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.lastPilotRequested;
|
|
+ } else if (var3 == 2) {
|
|
+ this.setNextAvatar((URL)var4, (CheckboxMenuItem)null);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Collect garbage"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(false);
|
|
+ } else if (var3 == 2 && ((Boolean)var4).booleanValue()) {
|
|
+ System.gc();
|
|
+ System.runFinalization();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ lLength = lNames.length;
|
|
+ lLangs = new MenuItem[lLength];
|
|
+ newLocale = new Locale[lLength];
|
|
+ lCodes = new String[lLength][2];
|
|
+ signIn = Console.message("Sign-In");
|
|
+ signOut = Console.message("Sign-Out");
|
|
+ signingIn = Console.message("Signing-In");
|
|
+ noMultiUser = Console.message("Network");
|
|
+ enable3D = Console.message("Enable3D");
|
|
+ disable3D = Console.message("Disable3D");
|
|
+ showTags = Console.message("ShowNametags");
|
|
+ hideTags = Console.message("HideNametags");
|
|
+ enableClassicChat = Console.message("EnableClassicChat");
|
|
+ disableClassicChat = Console.message("DisableClassicChat");
|
|
+ sleepStatus = Console.message("Sleeping");
|
|
+ lastWorldName = "";
|
|
+ lowVMMsg = Console.message("Low-virt");
|
|
+ startupMemCheck = true;
|
|
+ classCookie = new Object();
|
|
+ }
|
|
+
|
|
+ private class CameraSpeed {
|
|
+ public String speedName;
|
|
+ public int speedID;
|
|
+
|
|
+ public CameraSpeed(String var2, int var3) {
|
|
+ this.speedName = var2;
|
|
+ this.speedID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class CameraView {
|
|
+ public String viewName;
|
|
+ public int viewID;
|
|
+
|
|
+ public CameraView(String var2, int var3) {
|
|
+ this.viewName = var2;
|
|
+ this.viewID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class WhisperPrivacy {
|
|
+ public String whisperName;
|
|
+ public int whisperID;
|
|
+
|
|
+ public WhisperPrivacy(String var2, int var3) {
|
|
+ this.whisperName = var2;
|
|
+ this.whisperID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class TeleportPrivacy {
|
|
+ public String teleportName;
|
|
+ public int teleportID;
|
|
+
|
|
+ public TeleportPrivacy(String var2, int var3) {
|
|
+ this.teleportName = var2;
|
|
+ this.teleportID = var3;
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/console/FriendsListPart.java b/1890/NET/worlds/console/FriendsListPart.java
|
|
--- a/1890/NET/worlds/console/FriendsListPart.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/console/FriendsListPart.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -3,14 +3,7 @@
|
|
import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.Std;
|
|
-import NET.worlds.network.BuddyListUpdateCmd;
|
|
-import NET.worlds.network.Galaxy;
|
|
-import NET.worlds.network.InfiniteWaitException;
|
|
-import NET.worlds.network.NetUpdate;
|
|
-import NET.worlds.network.PacketTooLargeException;
|
|
-import NET.worlds.network.WorldServer;
|
|
-import NET.worlds.network.netPacket;
|
|
-import NET.worlds.network.whisperCmd;
|
|
+import NET.worlds.network.*;
|
|
import NET.worlds.scape.AnimatedActionManager;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.FrameEvent;
|
|
@@ -20,6 +13,7 @@
|
|
import NET.worlds.scape.PosableShape;
|
|
import NET.worlds.scape.TeleportAction;
|
|
import NET.worlds.scape.TeleportStatus;
|
|
+
|
|
import java.awt.Color;
|
|
import java.awt.Container;
|
|
import java.awt.Dimension;
|
|
@@ -30,6 +24,7 @@
|
|
import java.awt.Menu;
|
|
import java.awt.MenuItem;
|
|
import java.awt.PopupMenu;
|
|
+import java.awt.Window;
|
|
import java.awt.image.ImageObserver;
|
|
import java.io.IOException;
|
|
import java.text.MessageFormat;
|
|
@@ -38,943 +33,967 @@
|
|
import java.util.Vector;
|
|
|
|
public class FriendsListPart extends QuantizedCanvas implements FramePart, DialogReceiver, DialogDisabled, NameListOwner {
|
|
- private static final String oldIniItemName = "Friends";
|
|
- private static final String iniItemName = "Friend";
|
|
- private static int maxFriends = Gamma.shaperEnabled() ? 60 : 30;
|
|
- private static int absMaxFriends = 100;
|
|
- private static final String separator = ";";
|
|
- private static final String whereQuery = "&|+where?";
|
|
- private static final String whereResponse = "&|+where>";
|
|
- VoiceChat chatter = new VoiceChat();
|
|
- private static final int MOUSEMOVE = 0;
|
|
- private static final int MOUSEDRAG = 1;
|
|
- private static final int MOUSEDOWN = 2;
|
|
- private static final int MOUSEUP = 3;
|
|
- private static final int MOUSEENTER = 4;
|
|
- private static final int MOUSEEXIT = 5;
|
|
- private static final int BLANK = 0;
|
|
- private static final int NORMAL = 1;
|
|
- private static final int CURSED = 2;
|
|
- private static final int DOWN = 3;
|
|
- private static final int TELEPORT_IDLE = 0;
|
|
- private static final int TELEPORT_REQUEST_LOCATION = 1;
|
|
- private static final int TELEPORT_WAIT_FOR_LOCATION = 2;
|
|
- private static final int buttonWidth = 97;
|
|
- private static final int buttonHeight = 11;
|
|
- private static final int xText = 20;
|
|
- private static final int yText = 9;
|
|
- private static final int xTextClip = 94;
|
|
- private static Image friendsImage;
|
|
- private static Image moreFriendsImage;
|
|
- private static Font font;
|
|
- private static FriendsListPart active;
|
|
- private Vector friends = new Vector();
|
|
- private Vector onlineFriends = new Vector();
|
|
- private Vector mutedOnlineFriends = new Vector();
|
|
- private Vector serverUpdates = new Vector();
|
|
- private Object friendsMutex = new Object();
|
|
- private int cursedButton = -1;
|
|
- private int clickedButton = -1;
|
|
- private boolean clickedButtonDown;
|
|
- private PopupMenu menu;
|
|
- private MenuItem teleportItem = new MenuItem(Console.message("Go-There"));
|
|
- private MenuItem emailItem = new MenuItem(Console.message("E-Mail"));
|
|
- private MenuItem muteItem = new MenuItem(Console.message("Mute"));
|
|
- private MenuItem whisperItem = new MenuItem(Console.message("Whisper"));
|
|
- private MenuItem voiceChatItem = new MenuItem(Console.message("Voice-Chat"));
|
|
- private MenuItem infoItem = new MenuItem(Console.message("Personal-I"));
|
|
- private MenuItem tradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
- private PopupMenu droneMenu;
|
|
- private MenuItem droneAddItem = new MenuItem(Console.message("Add-2-friends"));
|
|
- private MenuItem droneEmailItem = new MenuItem(Console.message("E-Mail"));
|
|
- private MenuItem droneMuteItem = new MenuItem(Console.message("Mute"));
|
|
- private MenuItem droneWhisperItem = new MenuItem(Console.message("Whisper"));
|
|
- private MenuItem droneVoiceChatItem = new MenuItem(Console.message("Voice-Chat"));
|
|
- private MenuItem droneInfoItem = new MenuItem(Console.message("Personal-I"));
|
|
- private MenuItem droneTradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
- private String activeFriendName = "";
|
|
- private String teleportTarget;
|
|
- private int teleportState = 0;
|
|
- private int teleportWaitStartTime;
|
|
- private boolean teleportWaitSentMsg;
|
|
- private int friendsButtons;
|
|
- private int moreFriendsButton;
|
|
- private boolean moreFriendsActive;
|
|
- private MenuItem editItem;
|
|
- private Menu actionMenu;
|
|
- private MoreFriendsDialog moreFriendsDialog;
|
|
- private DefaultConsole console;
|
|
- private Galaxy galaxy;
|
|
- private IniFile serverSection;
|
|
- private boolean isDialogDisabled;
|
|
- private int showMenuY = -1;
|
|
- private static final String voiceChatWhisper = "&|+voicechat";
|
|
-
|
|
- public FriendsListPart() {
|
|
- AnimatedActionManager.get();
|
|
- if (font == null) {
|
|
- String var1 = IniFile.override().getIniString("friendsGif", "friends.gif");
|
|
- friendsImage = ImageCanvas.getSystemImage(var1, this);
|
|
- String var2 = IniFile.override().getIniString("moreFriendsGif", Console.message("mfriends.gif"));
|
|
- moreFriendsImage = ImageCanvas.getSystemImage(var2, this);
|
|
- int var3 = new Integer(Console.message("FriendsPointSize"));
|
|
- font = new Font(Console.message("FriendsFont"), 0, var3);
|
|
- }
|
|
-
|
|
- this.teleportItem.setFont(font);
|
|
- this.emailItem.setFont(font);
|
|
- this.muteItem.setFont(font);
|
|
- this.whisperItem.setFont(font);
|
|
- this.tradeItem.setFont(font);
|
|
- this.voiceChatItem.setFont(font);
|
|
- this.infoItem.setFont(font);
|
|
- this.menu = new PopupMenu();
|
|
- this.menu.add(this.teleportItem);
|
|
- this.menu.add(this.emailItem);
|
|
- this.menu.add(this.muteItem);
|
|
- this.menu.add(this.whisperItem);
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- this.menu.add(this.tradeItem);
|
|
- }
|
|
-
|
|
- this.menu.add(this.voiceChatItem);
|
|
- if (!VoiceChat.voiceChatAvailable()) {
|
|
- this.voiceChatItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.menu.add(this.infoItem);
|
|
- this.add(this.menu);
|
|
- this.droneAddItem.setFont(font);
|
|
- this.droneEmailItem.setFont(font);
|
|
- this.droneMuteItem.setFont(font);
|
|
- this.droneWhisperItem.setFont(font);
|
|
- this.droneTradeItem.setFont(font);
|
|
- this.droneVoiceChatItem.setFont(font);
|
|
- this.droneInfoItem.setFont(font);
|
|
- this.droneMenu = new PopupMenu();
|
|
- this.droneMenu.setFont(font);
|
|
- this.droneMenu.add(this.droneAddItem);
|
|
- this.droneMenu.add(this.droneEmailItem);
|
|
- this.droneMenu.add(this.droneMuteItem);
|
|
- this.droneMenu.add(this.droneWhisperItem);
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- this.droneMenu.add(this.droneTradeItem);
|
|
- }
|
|
-
|
|
- this.droneMenu.add(this.droneVoiceChatItem);
|
|
- if (!VoiceChat.voiceChatAvailable()) {
|
|
- this.droneVoiceChatItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.droneMenu.add(this.droneInfoItem);
|
|
- this.add(this.droneMenu);
|
|
- }
|
|
-
|
|
- public void update(Graphics var1) {
|
|
- this.paint(var1);
|
|
- }
|
|
-
|
|
- public void paint(Graphics var1) {
|
|
- int var2 = this.size().height;
|
|
- int var3 = var2 / 11;
|
|
- Object var4 = this.friendsMutex;
|
|
- synchronized(var4) {
|
|
- int var5 = this.onlineFriends.size();
|
|
- this.moreFriendsButton = var3 - 1;
|
|
- if (var5 >= var3) {
|
|
- this.friendsButtons = var3 - 1;
|
|
- this.moreFriendsActive = true;
|
|
- } else {
|
|
- this.friendsButtons = var5;
|
|
- this.moreFriendsActive = false;
|
|
- }
|
|
-
|
|
- int var6 = var3 * 11;
|
|
- int var7 = var2 - var6;
|
|
- if (var7 > 0) {
|
|
- var1.setColor(Color.black);
|
|
- var1.fillRect(0, 0, 97, var7);
|
|
- }
|
|
-
|
|
- for(int var8 = 0; var8 < var3; ++var8) {
|
|
- int var9 = 1;
|
|
- if (var8 >= this.friendsButtons && !this.isMoreFriendsButton(var8)) {
|
|
- var9 = 0;
|
|
- } else if (var8 == this.clickedButton) {
|
|
- var9 = this.clickedButtonDown ? 3 : 1;
|
|
- } else if (var8 == this.cursedButton) {
|
|
- var9 = 2;
|
|
- }
|
|
-
|
|
- this.drawButton(var1, var8, var9);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public int getRemainder(int var1) {
|
|
- int var2 = var1 / 11;
|
|
- int var3 = var2 * 11;
|
|
- return var1 - var3;
|
|
- }
|
|
-
|
|
- public Dimension preferredSize() {
|
|
- return new Dimension(97, 1);
|
|
- }
|
|
-
|
|
- public Dimension minimumSize() {
|
|
- return this.preferredSize();
|
|
- }
|
|
-
|
|
- public boolean mouseMove(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 0);
|
|
- }
|
|
-
|
|
- public boolean mouseDown(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 2);
|
|
- }
|
|
-
|
|
- public boolean mouseUp(Event var1, int var2, int var3) {
|
|
- if (this.buttonAction(var2, var3, 3)) {
|
|
- if (this.showMenuY != -1) {
|
|
- this.menu.show(this, 0, this.showMenuY);
|
|
- this.showMenuY = -1;
|
|
- }
|
|
-
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mouseDrag(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 1);
|
|
- }
|
|
-
|
|
- public boolean mouseEnter(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 4);
|
|
- }
|
|
-
|
|
- public boolean mouseExit(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 5);
|
|
- }
|
|
-
|
|
- public boolean handleEvent(Event var1) {
|
|
- return this.isDialogDisabled ? false : super.handleEvent(var1);
|
|
- }
|
|
-
|
|
- private void loadFriends() {
|
|
- if (this.friends.size() != 0) {
|
|
- this.friends.removeAllElements();
|
|
- }
|
|
-
|
|
- if (Console.getActive().broadcastEnabled()) {
|
|
- maxFriends = 100;
|
|
- }
|
|
-
|
|
- String var2;
|
|
- for(int var1 = 0; var1 < absMaxFriends; ++var1) {
|
|
- var2 = this.serverSection.getIniString("Friend" + var1, "");
|
|
- if (var2.length() == 0) {
|
|
- break;
|
|
- }
|
|
-
|
|
- if (isValidUserName(var2) && !icontains(this.friends, var2)) {
|
|
- this.friends.addElement(var2);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.friends.size() == 0) {
|
|
- var2 = this.serverSection.getIniString("Friends", "");
|
|
- StringTokenizer var3 = new StringTokenizer(var2, ";");
|
|
-
|
|
- while(var3.hasMoreTokens() && this.friends.size() < absMaxFriends) {
|
|
- String var4 = var3.nextToken();
|
|
- if (isValidUserName(var4) && !icontains(this.friends, var4)) {
|
|
- this.friends.addElement(var4);
|
|
- }
|
|
- }
|
|
|
|
- if (this.friends.size() != 0) {
|
|
- this.saveFriends();
|
|
- this.serverSection.setIniString("Friends", "");
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- void saveFriends() {
|
|
- if (this.serverSection != null) {
|
|
- int var1 = this.friends.size();
|
|
-
|
|
- for(int var2 = 0; var2 < var1; ++var2) {
|
|
- this.serverSection.setIniString("Friend" + var2, (String)this.friends.elementAt(var2));
|
|
- }
|
|
-
|
|
- this.serverSection.setIniString("Friend" + var1, "");
|
|
- }
|
|
- }
|
|
-
|
|
- private boolean isMoreFriendsButton(int var1) {
|
|
- return var1 == this.moreFriendsButton && this.moreFriendsActive;
|
|
- }
|
|
-
|
|
- private Graphics drawButton(Graphics var1, int var2, int var3) {
|
|
- Image var4 = var2 == this.moreFriendsButton ? moreFriendsImage : friendsImage;
|
|
- if (var1 != null || (var1 = this.getGraphics()) != null) {
|
|
- int var5 = var2 * 11;
|
|
- Graphics var6 = var1.create(0, var5, 97, 11);
|
|
- var6.drawImage(var4, -var3 * 97, 0, (ImageObserver)null);
|
|
- if (var2 >= 0 && var2 < this.friendsButtons && var2 < this.onlineFriends.size()) {
|
|
- var6.clipRect(0, 0, 94, 11);
|
|
- var6.setFont(font);
|
|
- var6.setColor(Color.white);
|
|
- var6.drawString((String)this.onlineFriends.elementAt(var2), 20, 9);
|
|
- }
|
|
-
|
|
- var6.dispose();
|
|
- }
|
|
-
|
|
- return var1;
|
|
- }
|
|
-
|
|
- private boolean buttonAction(int var1, int var2, int var3) {
|
|
- Object var4 = this.friendsMutex;
|
|
- synchronized(var4) {
|
|
- Graphics var5 = null;
|
|
- int var6 = var2 / 11;
|
|
- if ((var6 < 0 || var6 >= this.friendsButtons) && !this.isMoreFriendsButton(var6)) {
|
|
- var6 = -1;
|
|
- }
|
|
-
|
|
- if (var3 != 0 && var3 != 4) {
|
|
- if (var3 == 5) {
|
|
- if (this.cursedButton != -1) {
|
|
- var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
- this.cursedButton = -1;
|
|
- }
|
|
-
|
|
- if (this.clickedButton != -1 && this.clickedButtonDown) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
- } else if (var3 == 2) {
|
|
- if (this.clickedButton != -1) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
-
|
|
- if ((this.clickedButton = var6) != -1) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
- this.clickedButtonDown = true;
|
|
- }
|
|
- } else if (var3 == 1) {
|
|
- if (this.clickedButton != -1) {
|
|
- if (this.clickedButtonDown) {
|
|
- if (var6 != this.clickedButton) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
- } else if (var6 == this.clickedButton) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
- this.clickedButtonDown = true;
|
|
- }
|
|
- }
|
|
- } else if (var3 == 3) {
|
|
- this.cursedButton = var6;
|
|
- if (this.clickedButtonDown) {
|
|
- if (this.cursedButton == this.clickedButton) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 2);
|
|
- } else {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
- }
|
|
-
|
|
- if (this.clickedButton == this.moreFriendsButton) {
|
|
- if (this.moreFriendsDialog == null) {
|
|
- this.moreFriendsDialog = new MoreFriendsDialog(this, this.menu, this.onlineFriends);
|
|
- }
|
|
- } else if (this.clickedButton >= 0 && this.clickedButton < this.onlineFriends.size()) {
|
|
- this.activeFriendName = (String)this.onlineFriends.elementAt(this.clickedButton);
|
|
- Debug.assert(this.activeFriendName != null);
|
|
- this.showMenuY = (this.clickedButton + 1) * 11;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.cursedButton != this.clickedButton) {
|
|
- var5 = this.drawButton(var5, this.cursedButton, 2);
|
|
- }
|
|
-
|
|
- this.clickedButtonDown = false;
|
|
- this.clickedButton = -1;
|
|
- }
|
|
- } else if (var6 != this.cursedButton) {
|
|
- var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
- var5 = this.drawButton(var5, this.cursedButton = var6, 2);
|
|
- }
|
|
-
|
|
- if (var5 != null) {
|
|
- var5.dispose();
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- private static boolean sendMsg(WorldServer var0, netPacket var1) {
|
|
- try {
|
|
- var0.sendNetworkMsg(var1);
|
|
- return true;
|
|
- } catch (InfiniteWaitException var4) {
|
|
- } catch (PacketTooLargeException var5) {
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public void activate(Console var1, Container var2, Console var3) {
|
|
- active = this;
|
|
- this.console = (DefaultConsole)var1;
|
|
- this.editItem = var1.addMenuItem(Console.message("Edit-Friends"), "Options");
|
|
- this.editItem.setEnabled(this.friends != null);
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- active = null;
|
|
- this.editItem = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- if (var1.target == this.editItem) {
|
|
- new EditNamesDialog(this, Console.message("Edit-Friends2"), Console.message("Add-Friend"));
|
|
- return true;
|
|
- } else {
|
|
- return this.maybeFriendAction(var1.target);
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent var1) {
|
|
- Object var2 = this.friendsMutex;
|
|
- WorldServer var4;
|
|
- synchronized(var2) {
|
|
- int var3 = this.serverUpdates.size();
|
|
- if (var3 != 0) {
|
|
- var4 = this.console.getServerNew();
|
|
- if (var4 != null) {
|
|
- while(var3-- != 0 && sendMsg(var4, (netPacket)this.serverUpdates.elementAt(0))) {
|
|
- this.serverUpdates.removeElementAt(0);
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- synchronized(this) {
|
|
- if (this.teleportState == 1) {
|
|
- var4 = this.console.getServerNew();
|
|
- if (var4 != null) {
|
|
- sendMsg(var4, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
- this.teleportState = 2;
|
|
- this.teleportWaitStartTime = Std.getRealTime();
|
|
- this.teleportWaitSentMsg = false;
|
|
+ private static final String oldIniItemName = "Friends";
|
|
+ private static final String iniItemName = "Friend";
|
|
+ private static final String separator = ";";
|
|
+ private static final String whereQuery = "&|+where?";
|
|
+ private static final String whereResponse = "&|+where>";
|
|
+ VoiceChat chatter = new VoiceChat();
|
|
+ private static final int MOUSEMOVE = 0;
|
|
+ private static final int MOUSEDRAG = 1;
|
|
+ private static final int MOUSEDOWN = 2;
|
|
+ private static final int MOUSEUP = 3;
|
|
+ private static final int MOUSEENTER = 4;
|
|
+ private static final int MOUSEEXIT = 5;
|
|
+ private static final int BLANK = 0;
|
|
+ private static final int NORMAL = 1;
|
|
+ private static final int CURSED = 2;
|
|
+ private static final int DOWN = 3;
|
|
+ private static final int TELEPORT_IDLE = 0;
|
|
+ private static final int TELEPORT_REQUEST_LOCATION = 1;
|
|
+ private static final int TELEPORT_WAIT_FOR_LOCATION = 2;
|
|
+ private static final int buttonWidth = 97;
|
|
+ private static final int buttonHeight = 11;
|
|
+ private static final int xText = 20;
|
|
+ private static final int yText = 9;
|
|
+ private static final int xTextClip = 94;
|
|
+ private static Image friendsImage;
|
|
+ private static Image moreFriendsImage;
|
|
+ private static Font font;
|
|
+ public static FriendsListPart active;
|
|
+ public static Vector friends = new Vector();
|
|
+ private Vector onlineFriends = new Vector();
|
|
+ private Vector mutedOnlineFriends = new Vector();
|
|
+ private Vector serverUpdates = new Vector();
|
|
+ private Object friendsMutex = new Object();
|
|
+ private int cursedButton = -1;
|
|
+ private int clickedButton = -1;
|
|
+ private boolean clickedButtonDown;
|
|
+ private PopupMenu menu;
|
|
+ private MenuItem teleportItem = new MenuItem(Console.message("Go-There"));
|
|
+ private MenuItem fremoveItem = new MenuItem(Console.message("remove-friend"));
|
|
+ private MenuItem whereIsItem = new MenuItem(Console.message("where-is"));
|
|
+ private MenuItem emailItem = new MenuItem(Console.message("E-Mail"));
|
|
+ private MenuItem muteItem = new MenuItem(Console.message("Mute"));
|
|
+ private MenuItem whisperItem = new MenuItem(Console.message("Whisper"));
|
|
+ private MenuItem infoItem = new MenuItem(Console.message("Personal-I"));
|
|
+ private MenuItem tradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
+ private PopupMenu droneMenu;
|
|
+ private MenuItem droneAddItem = new MenuItem(Console.message("Add-2-friends"));
|
|
+ private MenuItem droneTarItem = new MenuItem(Console.message("disable-avatar"));
|
|
+ private MenuItem droneEmailItem = new MenuItem(Console.message("E-Mail"));
|
|
+ private MenuItem droneMuteItem = new MenuItem(Console.message("Mute"));
|
|
+ private MenuItem droneWhisperItem = new MenuItem(Console.message("Whisper"));
|
|
+ private MenuItem droneInfoItem = new MenuItem(Console.message("Personal-I"));
|
|
+ private MenuItem droneTradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
+ private String activeFriendName = "";
|
|
+ private String teleportTarget;
|
|
+ private int teleportState = 0;
|
|
+ private int teleportWaitStartTime;
|
|
+ private boolean teleportWaitSentMsg;
|
|
+ private int friendsButtons;
|
|
+ private int moreFriendsButton;
|
|
+ private boolean moreFriendsActive;
|
|
+ private MenuItem editItem;
|
|
+ private Menu actionMenu;
|
|
+ private MoreFriendsDialog moreFriendsDialog;
|
|
+ private DefaultConsole console;
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private boolean isDialogDisabled;
|
|
+ private int showMenuY = -1;
|
|
+
|
|
+
|
|
+ public FriendsListPart() {
|
|
+ AnimatedActionManager.get();
|
|
+ String var1;
|
|
+ if(font == null) {
|
|
+ var1 = IniFile.override().getIniString("friendsGif", "friends.gif");
|
|
+ friendsImage = ImageCanvas.getSystemImage(var1, this);
|
|
+ String var2 = IniFile.override().getIniString("moreFriendsGif", Console.message("mfriends.gif"));
|
|
+ moreFriendsImage = ImageCanvas.getSystemImage(var2, this);
|
|
+ int var3 = (new Integer(Console.message("FriendsPointSize"))).intValue();
|
|
+ font = new Font(Console.message("FriendsFont"), 0, var3);
|
|
+ }
|
|
+
|
|
+ this.teleportItem.setFont(font);
|
|
+ this.whereIsItem.setFont(font);
|
|
+ this.emailItem.setFont(font);
|
|
+ this.muteItem.setFont(font);
|
|
+ this.whisperItem.setFont(font);
|
|
+ this.tradeItem.setFont(font);
|
|
+ this.infoItem.setFont(font);
|
|
+ this.fremoveItem.setFont(font);
|
|
+ this.menu = new PopupMenu();
|
|
+ this.menu.add(this.teleportItem);
|
|
+ this.menu.add(this.whereIsItem);
|
|
+ this.menu.add(this.emailItem);
|
|
+ this.menu.add(this.muteItem);
|
|
+ this.menu.add(this.whisperItem);
|
|
+ if(NetUpdate.isInternalVersion()) {
|
|
+ this.menu.add(this.tradeItem);
|
|
+ }
|
|
+ this.menu.add(this.fremoveItem);
|
|
+
|
|
+ this.menu.add(this.infoItem);
|
|
+ this.add(this.menu);
|
|
+ this.droneAddItem.setFont(font);
|
|
+ this.droneTarItem.setFont(font);
|
|
+ this.droneEmailItem.setFont(font);
|
|
+ this.droneMuteItem.setFont(font);
|
|
+ this.droneWhisperItem.setFont(font);
|
|
+ this.droneTradeItem.setFont(font);
|
|
+ this.droneInfoItem.setFont(font);
|
|
+ this.droneMenu = new PopupMenu();
|
|
+ this.droneMenu.setFont(font);
|
|
+ this.droneMenu.add(this.droneAddItem);
|
|
+ this.droneMenu.add(this.droneTarItem);
|
|
+ this.droneMenu.add(this.droneEmailItem);
|
|
+ this.droneMenu.add(this.droneMuteItem);
|
|
+ this.droneMenu.add(this.droneWhisperItem);
|
|
+ this.droneMenu.add(this.droneTradeItem);
|
|
+ this.droneMenu.add(this.droneInfoItem);
|
|
+
|
|
+ this.add(this.droneMenu);
|
|
+ }
|
|
+
|
|
+ public void update(Graphics var1) {
|
|
+ this.paint(var1);
|
|
+ }
|
|
+
|
|
+ public void paint(Graphics var1) {
|
|
+ int var2 = this.size().height;
|
|
+ int var3 = var2 / 11;
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var5 = this.onlineFriends.size();
|
|
+ this.moreFriendsButton = var3 - 1;
|
|
+ if(var5 >= var3) {
|
|
+ this.friendsButtons = var3 - 1;
|
|
+ this.moreFriendsActive = true;
|
|
} else {
|
|
- Console.println(Console.message("Cant-go-there"));
|
|
- this.teleportState = 0;
|
|
+ this.friendsButtons = var5;
|
|
+ this.moreFriendsActive = false;
|
|
}
|
|
- }
|
|
|
|
- if (this.teleportState == 2) {
|
|
- int var9 = Std.getRealTime();
|
|
- if (var9 > this.teleportWaitStartTime + 5000) {
|
|
- Object[] var5;
|
|
- if (var9 > this.teleportWaitStartTime + 30000) {
|
|
- this.teleportState = 0;
|
|
- if (this.teleportWaitSentMsg) {
|
|
- var5 = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Cancel-teleport"), var5));
|
|
- }
|
|
- } else if (!this.teleportWaitSentMsg) {
|
|
- var5 = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Delay-locating"), var5));
|
|
- this.teleportWaitSentMsg = true;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void dialogDisable(boolean var1) {
|
|
- if (this.isDialogDisabled = var1) {
|
|
- this.cursedButton = -1;
|
|
- this.clickedButton = -1;
|
|
- this.clickedButtonDown = false;
|
|
- this.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setServer(WorldServer var1, IniFile var2) {
|
|
- this.serverSection = var2;
|
|
- this.galaxy = var1.getGalaxy();
|
|
- Debug.dAssert(var2 != null);
|
|
- Debug.dAssert(this.galaxy != null);
|
|
- this.loadFriends();
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(true);
|
|
- }
|
|
-
|
|
- this.sendAll(var1);
|
|
- }
|
|
-
|
|
- public void maybeServerDisconnect() {
|
|
- if (this.galaxy != null) {
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.clearAll();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean tryToRun(String var0) {
|
|
- try {
|
|
- Runtime.getRuntime().exec(var0);
|
|
- return true;
|
|
- } catch (IOException var2) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- private boolean maybeFriendAction(Object var1) {
|
|
- if (var1 != this.emailItem && var1 != this.droneEmailItem) {
|
|
- if (var1 != this.whisperItem && var1 != this.droneWhisperItem) {
|
|
- if (var1 != this.voiceChatItem && var1 != this.droneVoiceChatItem) {
|
|
- if (var1 == this.droneAddItem) {
|
|
- if (this.mayAddNameListName(Console.getFrame())) {
|
|
- this.addNameListName(this.activeFriendName);
|
|
- }
|
|
- } else if (var1 == this.teleportItem) {
|
|
- synchronized(this) {
|
|
- this.teleportTarget = this.activeFriendName;
|
|
- if (this.teleportState == 2 && this.teleportWaitSentMsg) {
|
|
- Console.println(Console.message("Cancel-new-tele"));
|
|
- }
|
|
-
|
|
- this.teleportState = 1;
|
|
- }
|
|
- } else if (var1 != this.muteItem && var1 != this.droneMuteItem) {
|
|
- if (var1 != this.infoItem && var1 != this.droneInfoItem) {
|
|
- if (var1 != this.tradeItem && var1 != this.droneTradeItem) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- WhisperManager.whisperManager().startToTrade(this.activeFriendName);
|
|
- } else {
|
|
- new PersonalInfoDownload(this.activeFriendName, this.console);
|
|
- }
|
|
- } else if (this.console.getMutes().mayAddNameListName(Console.getFrame())) {
|
|
- this.console.getMutes().addNameListName(this.activeFriendName);
|
|
- }
|
|
- } else {
|
|
- this.chatter.beginChat(this.activeFriendName, this.console);
|
|
+ int var6 = var3 * 11;
|
|
+ int var7 = var2 - var6;
|
|
+ if(var7 > 0) {
|
|
+ var1.setColor(Color.black);
|
|
+ var1.fillRect(0, 0, 97, var7);
|
|
}
|
|
- } else {
|
|
- Console.startWhispering(this.activeFriendName);
|
|
- }
|
|
- } else {
|
|
- EMailPart.showMessage(this.console, this.activeFriendName);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- private void clearAll() {
|
|
- if (this.galaxy != null) {
|
|
- Object var1 = this.friendsMutex;
|
|
- synchronized(var1) {
|
|
- this.onlineFriends.removeAllElements();
|
|
- this.mutedOnlineFriends.removeAllElements();
|
|
- }
|
|
|
|
- if (active == this) {
|
|
- this.repaint();
|
|
- }
|
|
+ for(int var8 = 0; var8 < var3; ++var8) {
|
|
+ int var9 = 1;
|
|
+ if(var8 >= this.friendsButtons && !this.isMoreFriendsButton(var8)) {
|
|
+ var9 = 0;
|
|
+ } else if(var8 == this.clickedButton) {
|
|
+ var9 = this.clickedButtonDown?3:1;
|
|
+ } else if(var8 == this.cursedButton) {
|
|
+ var9 = 2;
|
|
+ }
|
|
|
|
- this.galaxy.sentFriendsList(false);
|
|
- }
|
|
+ this.drawButton(var1, var8, var9);
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- private void sendAll(WorldServer var1) {
|
|
- if (!this.galaxy.sentFriendsList()) {
|
|
- Object var2 = this.friendsMutex;
|
|
- synchronized(var2) {
|
|
- int var3 = this.friends.size();
|
|
- int var4 = 0;
|
|
-
|
|
- while(true) {
|
|
- if (var4 >= var3) {
|
|
- break;
|
|
- }
|
|
-
|
|
- sendMsg(var1, new BuddyListUpdateCmd((String)this.friends.elementAt(var4), 1));
|
|
- ++var4;
|
|
- }
|
|
- }
|
|
-
|
|
- this.galaxy.sentFriendsList(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private static String getWorldName(String var0) {
|
|
- int var1 = var0.indexOf(".world#");
|
|
- int var2;
|
|
- return var1 == -1 || (var2 = var0.lastIndexOf(47, var1)) == -1 && (var2 = var0.lastIndexOf(58, var1)) == -1 ? null : var0.substring(var2 + 1, var1);
|
|
- }
|
|
-
|
|
- public static void processWhisper(WorldServer var0, String var1, String var2) {
|
|
- if (active != null && active.galaxy == var0.getGalaxy()) {
|
|
- active.instanceProcessWhisper(var0, var1, var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private synchronized void instanceProcessWhisper(WorldServer var1, String var2, String var3) {
|
|
- if (var3.startsWith("&|+where?")) {
|
|
- Pilot var4;
|
|
- String var5;
|
|
- if ((var4 = Pilot.getActive()) != null && (var5 = var4.getTeleportURL()) != null) {
|
|
- if (this.console.getSpecialGuest()) {
|
|
- int var6 = var5.indexOf(60);
|
|
- int var7 = var5.indexOf(62);
|
|
- var5 = var5.substring(0, var6) + var5.substring(var7 + 1);
|
|
- }
|
|
-
|
|
- if (Pilot.getActive().getRoom().getAllowTeleport()) {
|
|
- sendMsg(var1, new whisperCmd(var2, "&|+where>" + var5));
|
|
- }
|
|
- }
|
|
- } else if (var3.startsWith("&|+where>")) {
|
|
- if (this.teleportState == 2 && this.teleportTarget.equals(var2)) {
|
|
- String var9 = var3.substring("&|+where>".length());
|
|
- boolean var10 = false;
|
|
- String var11 = getWorldName(var9);
|
|
- String var8;
|
|
- if (!var9.startsWith("home:") && !var9.startsWith("http://")) {
|
|
- if (var11 != null && var11.length() > 0) {
|
|
- Pilot var12 = Pilot.getActive();
|
|
- if (var12 != null) {
|
|
- var8 = var12.getTeleportURL();
|
|
- if (var8 != null && var11.equals(getWorldName(var8))) {
|
|
- var10 = true;
|
|
- var9 = var8.substring(0, var8.lastIndexOf(35)) + var9.substring(var9.lastIndexOf(35));
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (!var10) {
|
|
- String var13 = WorldsMarkPart.findPackage(var11);
|
|
- if (var13 != null) {
|
|
- var10 = true;
|
|
- var9 = "home:" + var13 + "/" + var13 + ".world" + var9.substring(var9.lastIndexOf(35));
|
|
- }
|
|
- }
|
|
- } else {
|
|
- var10 = true;
|
|
+ public int getRemainder(int var1) {
|
|
+ int var2 = var1 / 11;
|
|
+ int var3 = var2 * 11;
|
|
+ return var1 - var3;
|
|
+ }
|
|
+
|
|
+ public Dimension preferredSize() {
|
|
+ return new Dimension(97, 1);
|
|
+ }
|
|
+
|
|
+ public Dimension minimumSize() {
|
|
+ return this.preferredSize();
|
|
+ }
|
|
+
|
|
+ public boolean mouseMove(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 0);
|
|
+ }
|
|
+
|
|
+ public boolean mouseDown(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 2);
|
|
+ }
|
|
+
|
|
+ public boolean mouseUp(Event var1, int var2, int var3) {
|
|
+ if(this.buttonAction(var2, var3, 3)) {
|
|
+ if(this.showMenuY != -1) {
|
|
+ this.menu.show(this, 0, this.showMenuY);
|
|
+ this.showMenuY = -1;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mouseDrag(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 1);
|
|
+ }
|
|
+
|
|
+ public boolean mouseEnter(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 4);
|
|
+ }
|
|
+
|
|
+ public boolean mouseExit(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 5);
|
|
+ }
|
|
+
|
|
+ public boolean handleEvent(Event var1) {
|
|
+ return this.isDialogDisabled?false:super.handleEvent(var1);
|
|
+ }
|
|
+
|
|
+ private void loadFriends() {
|
|
+ if(this.friends.size() != 0) {
|
|
+ this.friends.removeAllElements();
|
|
+ }
|
|
+
|
|
+ for(int var2 = 0; var2 < Integer.MAX_VALUE; ++var2) {
|
|
+ String var1 = this.serverSection.getIniString("Friend" + var2, "");
|
|
+ if(((String)var1).length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if(isValidUserName((String)var1) && !icontains(this.friends, (String)var1)) {
|
|
+ this.friends.addElement(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.friends.size() == 0) {
|
|
+ String var5 = this.serverSection.getIniString("Friends", "");
|
|
+ StringTokenizer var4 = new StringTokenizer(var5, ";");
|
|
+
|
|
+ while(((StringTokenizer)var4).hasMoreTokens()) {
|
|
+ String var3 = ((StringTokenizer)var4).nextToken();
|
|
+ if(isValidUserName(var3) && !icontains(this.friends, var3)) {
|
|
+ this.friends.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.friends.size() != 0) {
|
|
+ this.saveFriends();
|
|
+ this.serverSection.setIniString("Friends", "");
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ void saveFriends() {
|
|
+ if(this.serverSection != null) {
|
|
+ int var1 = this.friends.size();
|
|
+
|
|
+ for(int var2 = 0; var2 < var1; ++var2) {
|
|
+ this.serverSection.setIniString("Friend" + var2, (String)this.friends.elementAt(var2));
|
|
}
|
|
|
|
- Object[] var14;
|
|
- if (var10) {
|
|
- TeleportAction.teleport(var9, (TeleportStatus)null);
|
|
- if (this.teleportWaitSentMsg) {
|
|
- var14 = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Found-tele"), var14));
|
|
- }
|
|
+ this.serverSection.setIniString("Friend" + var1, "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private boolean isMoreFriendsButton(int var1) {
|
|
+ return var1 == this.moreFriendsButton && this.moreFriendsActive;
|
|
+ }
|
|
+
|
|
+ private Graphics drawButton(Graphics var1, int var2, int var3) {
|
|
+ Image var4 = var2 == this.moreFriendsButton?moreFriendsImage:friendsImage;
|
|
+ if(var1 != null || (var1 = this.getGraphics()) != null) {
|
|
+ int var5 = var2 * 11;
|
|
+ Graphics var6 = var1.create(0, var5, 97, 11);
|
|
+ var6.drawImage(var4, -var3 * 97, 0, (ImageObserver)null);
|
|
+ if(var2 >= 0 && var2 < this.friendsButtons && var2 < this.onlineFriends.size()) {
|
|
+ var6.clipRect(0, 0, 94, 11);
|
|
+ var6.setFont(font);
|
|
+ var6.setColor(Color.white);
|
|
+ var6.drawString((String)this.onlineFriends.elementAt(var2), 20, 9);
|
|
+ }
|
|
+
|
|
+ var6.dispose();
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ private boolean buttonAction(int var1, int var2, int var3) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ Graphics var5 = null;
|
|
+ int var6 = var2 / 11;
|
|
+ if((var6 < 0 || var6 >= this.friendsButtons) && !this.isMoreFriendsButton(var6)) {
|
|
+ var6 = -1;
|
|
+ }
|
|
+
|
|
+ if(var3 != 0 && var3 != 4) {
|
|
+ if(var3 == 5) {
|
|
+ if(this.cursedButton != -1) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
+ this.cursedButton = -1;
|
|
+ }
|
|
+
|
|
+ if(this.clickedButton != -1 && this.clickedButtonDown) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+ } else if(var3 == 2) {
|
|
+ if(this.clickedButton != -1) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+
|
|
+ if((this.clickedButton = var6) != -1) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
+ this.clickedButtonDown = true;
|
|
+ }
|
|
+ } else if(var3 == 1) {
|
|
+ if(this.clickedButton != -1) {
|
|
+ if(this.clickedButtonDown) {
|
|
+ if(var6 != this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+ } else if(var6 == this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
+ this.clickedButtonDown = true;
|
|
+ }
|
|
+ }
|
|
+ } else if(var3 == 3) {
|
|
+ this.cursedButton = var6;
|
|
+ if(this.clickedButtonDown) {
|
|
+ if(this.cursedButton == this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 2);
|
|
+ } else {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ }
|
|
+
|
|
+ if(this.clickedButton == this.moreFriendsButton) {
|
|
+ if(this.moreFriendsDialog == null) {
|
|
+ this.moreFriendsDialog = new MoreFriendsDialog(this, this.menu, this.onlineFriends);
|
|
+ }
|
|
+ } else if(this.clickedButton >= 0 && this.clickedButton < this.onlineFriends.size()) {
|
|
+ this.activeFriendName = (String)this.onlineFriends.elementAt(this.clickedButton);
|
|
+ this.showMenuY = (this.clickedButton + 1) * 11;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.cursedButton != this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 2);
|
|
+ }
|
|
+
|
|
+ this.clickedButtonDown = false;
|
|
+ this.clickedButton = -1;
|
|
+ }
|
|
+ } else if(var6 != this.cursedButton) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
+ var5 = this.drawButton(var5, this.cursedButton = var6, 2);
|
|
+ }
|
|
+
|
|
+ if(var5 != null) {
|
|
+ var5.dispose();
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private static boolean sendMsg(WorldServer var0, netPacket var1) {
|
|
+ try {
|
|
+ var0.sendNetworkMsg(var1);
|
|
+ return true;
|
|
+ } catch (InfiniteWaitException var3) {
|
|
+ } catch (PacketTooLargeException var4) {
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)var1;
|
|
+ this.editItem = var1.addMenuItem(Console.message("Edit-Friends"), "Options");
|
|
+ this.editItem.setEnabled(this.friends != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if(var1.target == this.editItem) {
|
|
+ new EditNamesDialog(this, Console.message("Edit-Friends2"), Console.message("Add-Friend"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return this.maybeFriendAction(var1.target);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ int var4;
|
|
+ synchronized(this.friendsMutex) {
|
|
+ var4 = this.serverUpdates.size();
|
|
+ if(var4 != 0) {
|
|
+ WorldServer var2 = this.console.getServerNew();
|
|
+ if(var2 != null) {
|
|
+ while(var4-- != 0 && sendMsg((WorldServer)var2, (netPacket)this.serverUpdates.elementAt(0))) {
|
|
+ this.serverUpdates.removeElementAt(0);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ synchronized(this) {
|
|
+ WorldServer var10;
|
|
+ if(this.teleportState == 1) {
|
|
+ var10 = this.console.getServerNew();
|
|
+ if(var10 != null) {
|
|
+ sendMsg(var10, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
+ this.teleportState = 2;
|
|
+ this.teleportWaitStartTime = Std.getRealTime();
|
|
+ this.teleportWaitSentMsg = false;
|
|
+ } else {
|
|
+ Console.println(Console.message("Cant-go-there"));
|
|
+ this.teleportState = 0;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.teleportState == 2) {
|
|
+ var4 = Std.getRealTime();
|
|
+ if(var4 > this.teleportWaitStartTime + 5000) {
|
|
+ Object[] var9;
|
|
+ if(var4 > this.teleportWaitStartTime + 30000) {
|
|
+ this.teleportState = 0;
|
|
+ if(this.teleportWaitSentMsg) {
|
|
+ var9 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Cancel-teleport"), (Object[])var9));
|
|
+ }
|
|
+ } else if(!this.teleportWaitSentMsg) {
|
|
+ var9 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Delay-locating"), (Object[])var9));
|
|
+ this.teleportWaitSentMsg = true;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.teleportState == -1) {
|
|
+ var10 = this.console.getServerNew();
|
|
+ if(var10 != null) {
|
|
+ sendMsg(var10, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
+ } else {
|
|
+ Console.println(Console.message("Cant-go-there"));
|
|
+ }
|
|
+
|
|
+ this.teleportState = -2;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void dialogDisable(boolean var1) {
|
|
+ if(this.isDialogDisabled = var1) {
|
|
+ this.cursedButton = -1;
|
|
+ this.clickedButton = -1;
|
|
+ this.clickedButtonDown = false;
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ Debug.dAssert(var2 != null);
|
|
+ Debug.dAssert(this.galaxy != null);
|
|
+ this.loadFriends();
|
|
+ if(this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ this.sendAll(var1);
|
|
+ }
|
|
+
|
|
+ public void maybeServerDisconnect() {
|
|
+ if(this.galaxy != null) {
|
|
+ if(this.editItem != null) {
|
|
+ this.editItem.setEnabled(false);
|
|
+ }
|
|
+
|
|
+ this.clearAll();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean tryToRun(String var0) {
|
|
+ try {
|
|
+ Runtime.getRuntime().exec(var0);
|
|
+ return true;
|
|
+ } catch (IOException var2) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private boolean maybeFriendAction(Object var1) {
|
|
+ if (var1 == this.fremoveItem || var1 == this.droneAddItem) {
|
|
+ if (this.mayAddNameListName(Console.getFrame())) {
|
|
+ if (!icontains(friends, this.activeFriendName)) {
|
|
+ this.addNameListName(this.activeFriendName);
|
|
+ Console.println(MessageFormat.format(Console.message("added-status"), new String[]{this.activeFriendName}));
|
|
+ } else {
|
|
+ this.removeNameListName(friends.indexOf(this.activeFriendName));
|
|
+ Console.println(MessageFormat.format(Console.message("removed-status"), new String[]{this.activeFriendName}));
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 == this.droneTarItem) {
|
|
+ if (this.console.getTars().mayAddNameListName(Console.getFrame())) {
|
|
+ if (!icontains(this.console.getTars().tars, this.activeFriendName)) {
|
|
+ this.console.getTars().addNameListName(this.activeFriendName);
|
|
+ } else {
|
|
+ this.console.getTars().removeNameListName(this.console.getTars().tars.indexOf(this.activeFriendName));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ } else if (var1 == this.whisperItem || var1 == this.droneWhisperItem) {
|
|
+ Console.startWhispering(this.activeFriendName);
|
|
+ } else if (var1 == this.emailItem || var1 == this.droneEmailItem) {
|
|
+ EMailPart.showMessage(this.console, this.activeFriendName);
|
|
+ } else if (var1 == this.teleportItem || var1 == this.whereIsItem) {
|
|
+ synchronized (this) {
|
|
+ this.teleportTarget = this.activeFriendName;
|
|
+ if (this.teleportState == 2 && this.teleportWaitSentMsg) {
|
|
+ Console.println(Console.message("Cancel-new-tele"));
|
|
+ }
|
|
+
|
|
+ this.teleportState = var1 == this.teleportItem ? 1 : -1;
|
|
+ }
|
|
+ } else if (var1 == this.muteItem || var1 == this.droneMuteItem) {
|
|
+ this.console.getMutes().addNameListName(this.activeFriendName);
|
|
+ } else if (var1 == this.infoItem || var1 == this.droneInfoItem) {
|
|
+ new PersonalInfoDownload(this.activeFriendName, this.console);
|
|
+ } else if (var1 == this.tradeItem || var1 == this.droneTradeItem) {
|
|
+ WhisperManager.whisperManager().startToTrade(this.activeFriendName);
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ private void clearAll() {
|
|
+ if(this.galaxy != null) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ this.onlineFriends.removeAllElements();
|
|
+ this.mutedOnlineFriends.removeAllElements();
|
|
+ }
|
|
+
|
|
+ if(active == this) {
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ this.galaxy.sentFriendsList(false);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void sendAll(WorldServer var1) {
|
|
+ if(!this.galaxy.sentFriendsList()) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var3 = this.friends.size();
|
|
+ int var4 = 0;
|
|
+
|
|
+ while(true) {
|
|
+ if(var4 >= var3) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ sendMsg(var1, new BuddyListUpdateCmd((String)this.friends.elementAt(var4), 1));
|
|
+ ++var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.galaxy.sentFriendsList(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private static String getWorldName(String var0) {
|
|
+ int var1 = var0.indexOf(".world#");
|
|
+ int var2;
|
|
+ return var1 != -1 && ((var2 = var0.lastIndexOf(47, var1)) != -1 || (var2 = var0.lastIndexOf(58, var1)) != -1)?var0.substring(var2 + 1, var1):null;
|
|
+ }
|
|
+
|
|
+ public static void processWhisper(WorldServer var0, String var1, String var2) {
|
|
+ if(active != null && active.galaxy == var0.getGalaxy()) {
|
|
+ active.instanceProcessWhisper(var0, var1, var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private boolean allowTeleport(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && icontains(friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ private void sendTeleportReject(String var1) {
|
|
+ Object[] var2 = new Object[]{"teleport", var1};
|
|
+ Console.println(MessageFormat.format(Console.message("rejected"), var2));
|
|
+ }
|
|
+
|
|
+ private synchronized void instanceProcessWhisper(WorldServer var1, String var2, String var3) {
|
|
+ if(var3.startsWith("&|+where?")) {
|
|
+ if (allowTeleport(var2)) {
|
|
+ Pilot var4;
|
|
+ String var5;
|
|
+ if ((var4 = Pilot.getActive()) != null && (var5 = ((Pilot) var4).getTeleportURL()) != null) {
|
|
+ if (this.console.getSpecialGuest()) {
|
|
+ int var6 = var5.indexOf(60);
|
|
+ int var7 = var5.indexOf(62);
|
|
+ var5 = var5.substring(0, var6) + var5.substring(var7 + 1);
|
|
+ }
|
|
+
|
|
+ if (Pilot.getActive().getRoom().getAllowTeleport()) {
|
|
+ sendMsg(var1, new whisperCmd(var2, "&|+where>" + var5));
|
|
+ }
|
|
+ }
|
|
} else {
|
|
- var14 = new Object[]{new String(this.teleportTarget), new String(var11)};
|
|
- var8 = MessageFormat.format(Console.message("Cant-go-world"), var14);
|
|
- Console.println(var8);
|
|
- }
|
|
-
|
|
- this.teleportState = 0;
|
|
- this.teleportTarget = null;
|
|
- }
|
|
- } else if (var3.startsWith("&|+voicechat")) {
|
|
- this.chatter.handleChatWhisper(var2, var3, this.console);
|
|
- } else if (var3.startsWith(VoiceChat.VCdebugCommand)) {
|
|
- VoiceChat.setExtra(var3);
|
|
- } else if (var3.startsWith(VoiceChat.VCdebugCommandReset)) {
|
|
- VoiceChat.resetExtra();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public int getNameListCount() {
|
|
- return this.friends.size();
|
|
- }
|
|
-
|
|
- public String getNameListName(int var1) {
|
|
- return (String)this.friends.elementAt(var1);
|
|
- }
|
|
-
|
|
- public void removeNameListName(int var1) {
|
|
- Object var2 = this.friendsMutex;
|
|
- synchronized(var2) {
|
|
- String var3 = (String)this.friends.elementAt(var1);
|
|
- this.friends.removeElementAt(var1);
|
|
- this.saveFriends();
|
|
- if ((var1 = iindexOf(this.onlineFriends, var3)) != -1) {
|
|
- this.onlineFriends.removeElementAt(var1);
|
|
- if (active == this) {
|
|
- this.repaint();
|
|
- }
|
|
- }
|
|
-
|
|
- if ((var1 = iindexOf(this.mutedOnlineFriends, var3)) != -1) {
|
|
- this.mutedOnlineFriends.removeElementAt(var1);
|
|
- }
|
|
-
|
|
- this.serverUpdates.addElement(new BuddyListUpdateCmd(var3, 0));
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mayAddNameListName(java.awt.Window var1) {
|
|
- if (this.friends.size() < maxFriends) {
|
|
- return true;
|
|
- } else {
|
|
- Object[] var2 = new Object[]{new String("" + maxFriends)};
|
|
- new OkCancelDialog(var1, (DialogReceiver)null, Console.message("Too-many-names"), (String)null, Console.message("OK"), MessageFormat.format(Console.message("You-are-limitedF"), var2), true);
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public int addNameListName(String var1) {
|
|
- Object var2 = this.friendsMutex;
|
|
- synchronized(var2) {
|
|
- int var3 = iindexOf(this.friends, var1);
|
|
- if (var3 != -1) {
|
|
- return var3;
|
|
- } else {
|
|
- this.friends.addElement(var1);
|
|
+ if (IniFile.modPrivacy().getIniInt("TeleportFeedback", 0) == 1) sendTeleportReject(var2);
|
|
+ if (IniFile.modPrivacy().getIniInt("TeleportResponse", 0) == 1) sendMsg(var1, new whisperCmd(var2, Console.message("not-teleports")));
|
|
+ }
|
|
+ } else if(var3.startsWith("&|+where>")) {
|
|
+ boolean var11 = this.teleportState == 2 && this.teleportTarget.equals(var2);
|
|
+ if (var11 || this.teleportState == -2) {
|
|
+ String var10 = var3.substring("&|+where>".length());
|
|
+ boolean var12 = false;
|
|
+ String var13 = getWorldName((String) var10);
|
|
+ String var9;
|
|
+ if (!((String) var10).startsWith("home:") && !((String) var10).startsWith("http://")) {
|
|
+ if (var13 != null && var13.length() > 0) {
|
|
+ Pilot var8 = Pilot.getActive();
|
|
+ if (var8 != null) {
|
|
+ var9 = ((Pilot) var8).getTeleportURL();
|
|
+ if (var9 != null && var13.equals(getWorldName(var9))) {
|
|
+ var12 = true;
|
|
+ var10 = var9.substring(0, var9.lastIndexOf(35)) + ((String) var10).substring(((String) var10).lastIndexOf(35));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!var12) {
|
|
+ String var14 = WorldsMarkPart.findPackage(var13);
|
|
+ if (var14 != null) {
|
|
+ var12 = true;
|
|
+ var10 = "home:" + (String) var14 + "/" + (String) var14 + ".world" + ((String) var10).substring(((String) var10).lastIndexOf(35));
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ var12 = true;
|
|
+ }
|
|
+
|
|
+ Object[] var15;
|
|
+ if (var12) {
|
|
+ if (var11) {
|
|
+ TeleportAction.teleport((String) var10, (TeleportStatus) null);
|
|
+ } else {
|
|
+ Console.println(var2 + ": " + (String) var10);
|
|
+ }
|
|
+
|
|
+ if (this.teleportWaitSentMsg) {
|
|
+ var15 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Found-tele"), (Object[]) var15));
|
|
+ }
|
|
+ } else {
|
|
+ var15 = new Object[]{new String(this.teleportTarget), new String(var13)};
|
|
+ var9 = MessageFormat.format(Console.message("Cant-go-world"), (Object[]) var15);
|
|
+ Console.println(var9);
|
|
+ }
|
|
+
|
|
+ this.teleportState = 0;
|
|
+ this.teleportTarget = null;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.friends.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int var1) {
|
|
+ return (String)this.friends.elementAt(var1);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int var1) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ String var3 = (String)this.friends.elementAt(var1);
|
|
+ this.friends.removeElementAt(var1);
|
|
this.saveFriends();
|
|
- this.serverUpdates.addElement(new BuddyListUpdateCmd(var1, 1));
|
|
- int var5 = this.friends.size() - 1;
|
|
- return var5;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public static void droneClick(Drone var0, MouseDownEvent var1) {
|
|
- if (active != null) {
|
|
- active.instanceDroneClick(var0, var1);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void instanceDroneClick(Drone var1, MouseDownEvent var2) {
|
|
- String var3 = var1.getLongID();
|
|
- if (var3 != null) {
|
|
- this.activeFriendName = var3;
|
|
- Object[] var4 = new Object[]{new String(this.activeFriendName)};
|
|
- this.droneAddItem = new MenuItem(MessageFormat.format(Console.message("Add-to-friends"), var4));
|
|
- this.droneMenu.remove(0);
|
|
- this.droneAddItem.setFont(font);
|
|
- this.droneMenu.insert(this.droneAddItem, 0);
|
|
- this.droneAddItem.setEnabled(!icontains(this.friends, this.activeFriendName));
|
|
- if (this.actionMenu != null) {
|
|
- this.droneMenu.remove(this.actionMenu);
|
|
- }
|
|
-
|
|
- if (var1 instanceof PosableDrone) {
|
|
- PosableDrone var5 = (PosableDrone)var1;
|
|
- PosableShape var6 = var5.getInternalPosableShape();
|
|
- if (var6 != null) {
|
|
- this.actionMenu = new Menu(Console.message("Actions"));
|
|
- if (AnimatedActionManager.get().buildActionMenu(this.actionMenu, var6)) {
|
|
- this.droneMenu.add(this.actionMenu);
|
|
- this.actionMenu.addActionListener(AnimatedActionManager.get());
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- this.droneMenu.show(this.console.getRender(), var2.x, var2.y);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void processBuddyListNotify(WorldServer var0, String var1, int var2) {
|
|
- Galaxy var3 = var0.getGalaxy();
|
|
- Enumeration var4 = var3.getConsoles();
|
|
-
|
|
- Object var5;
|
|
- FriendsListPart var6;
|
|
- while(var4.hasMoreElements()) {
|
|
- var5 = var4.nextElement();
|
|
- if (var5 instanceof DefaultConsole) {
|
|
- var6 = ((DefaultConsole)var5).getFriends();
|
|
- if (var2 < 2) {
|
|
- boolean var7 = MuteListPart.isMuted(var0, var1);
|
|
- if (var2 == 1) {
|
|
- var6.addOnlineFriend(var1, var7);
|
|
- } else {
|
|
- var6.removeOnlineFriend(var1, var7);
|
|
- }
|
|
+ if((var1 = iindexOf(this.onlineFriends, var3)) != -1) {
|
|
+ this.onlineFriends.removeElementAt(var1);
|
|
+ if(active == this) {
|
|
+ this.repaint();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if((var1 = iindexOf(this.mutedOnlineFriends, var3)) != -1) {
|
|
+ this.mutedOnlineFriends.removeElementAt(var1);
|
|
+ }
|
|
+
|
|
+ this.serverUpdates.addElement(new BuddyListUpdateCmd(var3, 0));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window var1) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String var1) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var3 = iindexOf(this.friends, var1);
|
|
+ if(var3 != -1) {
|
|
+ return var3;
|
|
} else {
|
|
- Debug.dAssert(var1.length() == 0);
|
|
- var6.clearAll();
|
|
+ this.friends.addElement(var1);
|
|
+ this.saveFriends();
|
|
+ this.serverUpdates.addElement(new BuddyListUpdateCmd(var1, 1));
|
|
+ return this.friends.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static void droneClick(Drone var0, MouseDownEvent var1) {
|
|
+ if(active != null) {
|
|
+ active.instanceDroneClick(var0, var1);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private String parseVersion(int v) {
|
|
+ switch (v) {
|
|
+ case 2003110800:
|
|
+ return "1890";
|
|
+ case 2004081600:
|
|
+ return "1904";
|
|
+ case 2004111200:
|
|
+ return "1920a";
|
|
+ case 2012071402:
|
|
+ return "1920";
|
|
+ case 2020031200:
|
|
+ return "1922a10";
|
|
+ default:
|
|
+ return String.valueOf(v);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void instanceDroneClick(Drone var1, MouseDownEvent var2) {
|
|
+ String var3 = var1.getLongID();
|
|
+ if(var3 != null) {
|
|
+ this.activeFriendName = var3;
|
|
+ Object[] var4 = new Object[]{this.activeFriendName};
|
|
+ this.droneAddItem = new MenuItem(icontains(this.friends, this.activeFriendName) ? MessageFormat.format("Remove {0} from friends list", var4) : MessageFormat.format(Console.message("Add-to-friends"), var4));
|
|
+ this.droneTarItem = new MenuItem(this.console.getFriends().icontains(this.console.getTars().tars, this.activeFriendName) ? "Enable Avatar" : "Disable Avatar");
|
|
+
|
|
+ this.droneMenu.remove(0);
|
|
+ this.droneAddItem.setFont(font);
|
|
+ this.droneMenu.insert(this.droneAddItem, 0);
|
|
+
|
|
+ this.droneMenu.remove(1);
|
|
+ this.droneTarItem.setFont(font);
|
|
+ this.droneMenu.insert(this.droneTarItem, 1);
|
|
+
|
|
+ if(this.actionMenu != null) {
|
|
+ this.droneMenu.remove(this.actionMenu);
|
|
+ }
|
|
+
|
|
+ if(var1 instanceof PosableDrone) {
|
|
+ PosableDrone var5 = (PosableDrone)var1;
|
|
+ PosableShape var6 = var5.getInternalPosableShape();
|
|
+ if(var6 != null) {
|
|
+ this.actionMenu = new Menu(Console.message("Actions"));
|
|
+ if(AnimatedActionManager.get().buildActionMenu(this.actionMenu, var6)) {
|
|
+ this.droneMenu.add(this.actionMenu);
|
|
+ this.actionMenu.addActionListener(AnimatedActionManager.get());
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.droneMenu.show(this.console.getRender(), var2.x, var2.y);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void processBuddyListNotify(WorldServer var0, String var1, int var2) {
|
|
+ Galaxy var3 = var0.getGalaxy();
|
|
+ Enumeration var4 = var3.getConsoles();
|
|
+
|
|
+ Object var5;
|
|
+ NET.worlds.console.FriendsListPart var6;
|
|
+ while(var4.hasMoreElements()) {
|
|
+ var5 = var4.nextElement();
|
|
+ if(var5 instanceof DefaultConsole) {
|
|
+ var6 = ((DefaultConsole)var5).getFriends();
|
|
+ if(var2 < 2) {
|
|
+ boolean var7 = MuteListPart.isMuted(var0, var1);
|
|
+ if(var2 == 1) {
|
|
+ var6.addOnlineFriend(var1, var7);
|
|
+ } else {
|
|
+ var6.removeOnlineFriend(var1, var7);
|
|
+ }
|
|
+ } else {
|
|
+ Debug.dAssert(var1.length() == 0);
|
|
+ var6.clearAll();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(var2 == 2) {
|
|
+ var4 = var3.getConsoles();
|
|
+
|
|
+ while(var4.hasMoreElements()) {
|
|
+ var5 = var4.nextElement();
|
|
+ if(var5 instanceof DefaultConsole) {
|
|
+ var6 = ((DefaultConsole)var5).getFriends();
|
|
+ var6.sendAll(var0);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static String ilookup(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public static int iindexOf(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return -1;
|
|
+ }
|
|
+
|
|
+ public static boolean icontains(Vector var0, String var1) {
|
|
+ return iindexOf(var0, var1) != -1;
|
|
+ }
|
|
+
|
|
+ public void changeMuteState(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(icontains(this.friends, var1)) {
|
|
+ if(var2) {
|
|
+ var1 = ilookup(this.onlineFriends, var1);
|
|
+ if(var1 != null) {
|
|
+ this.removeOnlineFriend(var1, false);
|
|
+ this.addOnlineFriend(var1, true);
|
|
+ }
|
|
+ } else {
|
|
+ var1 = ilookup(this.mutedOnlineFriends, var1);
|
|
+ if(var1 != null) {
|
|
+ this.removeOnlineFriend(var1, true);
|
|
+ this.addOnlineFriend(var1, false);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void listChanged() {
|
|
+ this.cursedButton = -1;
|
|
+ this.clickedButton = -1;
|
|
+ this.clickedButtonDown = false;
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ private void addOnlineFriend(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(this.friends != null && icontains(this.friends, var1)) {
|
|
+ if(!var2 && !icontains(this.onlineFriends, var1)) {
|
|
+ this.onlineFriends.addElement(var1);
|
|
+ if(active == this) {
|
|
+ this.listChanged();
|
|
+ if(this.moreFriendsDialog != null) {
|
|
+ this.moreFriendsDialog.addName(var1);
|
|
+ }
|
|
+ if (IniFile.modPrivacy().getIniInt("ShowStatusUpdate", 0) == 1) Console.println(MessageFormat.format("{0} is now online.", new String[]{var1}));
|
|
+ }
|
|
+ } else if(var2 && !icontains(this.mutedOnlineFriends, var1)) {
|
|
+ this.mutedOnlineFriends.addElement(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void removeOnlineFriend(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(!var2) {
|
|
+ int var4 = this.onlineFriends.indexOf(var1);
|
|
+ if(var4 != -1) {
|
|
+ this.onlineFriends.removeElementAt(var4);
|
|
+ if(active == this) {
|
|
+ this.listChanged();
|
|
+ if(this.moreFriendsDialog != null) {
|
|
+ this.moreFriendsDialog.removeName(var4);
|
|
+ }
|
|
+ if (IniFile.modPrivacy().getIniInt("ShowStatusUpdate", 0) == 1) Console.println(MessageFormat.format("{0} quit.", new String[]{var1}));
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ this.mutedOnlineFriends.removeElement(var1);
|
|
}
|
|
- }
|
|
- }
|
|
|
|
- if (var2 == 2) {
|
|
- var4 = var3.getConsoles();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ System.out.println("TEST FRIEND");
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(var1 == this.moreFriendsDialog) {
|
|
+ this.moreFriendsDialog = null;
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isValidUserName(String var0) {
|
|
+ String var1 = "_-";
|
|
+ var0 = Console.parseUnicode(var0);
|
|
+ int var2 = var0.length();
|
|
+ if(var2 >= 2 && var2 <= 16) {
|
|
+ char[] var3 = var0.toCharArray();
|
|
+
|
|
+ for(int var4 = 0; var4 < var2; ++var4) {
|
|
+ if(!Character.isLetterOrDigit(var3[var4]) && var1.indexOf(var3[var4]) == -1) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ void moreFriendsAction(String var1, MenuItem var2) {
|
|
+ this.activeFriendName = var1;
|
|
+ this.maybeFriendAction(var2);
|
|
+ }
|
|
|
|
- while(var4.hasMoreElements()) {
|
|
- var5 = var4.nextElement();
|
|
- if (var5 instanceof DefaultConsole) {
|
|
- var6 = ((DefaultConsole)var5).getFriends();
|
|
- var6.sendAll(var0);
|
|
- break;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static String ilookup(Vector var0, String var1) {
|
|
- int var2 = var0.size();
|
|
-
|
|
- for(int var3 = 0; var3 < var2; ++var3) {
|
|
- String var4 = (String)var0.elementAt(var3);
|
|
- if (var4.equalsIgnoreCase(var1)) {
|
|
- return var4;
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public static int iindexOf(Vector var0, String var1) {
|
|
- int var2 = var0.size();
|
|
-
|
|
- for(int var3 = 0; var3 < var2; ++var3) {
|
|
- String var4 = (String)var0.elementAt(var3);
|
|
- if (var4.equalsIgnoreCase(var1)) {
|
|
- return var3;
|
|
- }
|
|
- }
|
|
-
|
|
- return -1;
|
|
- }
|
|
-
|
|
- public static boolean icontains(Vector var0, String var1) {
|
|
- return iindexOf(var0, var1) != -1;
|
|
- }
|
|
-
|
|
- public void changeMuteState(String var1, boolean var2) {
|
|
- Object var3 = this.friendsMutex;
|
|
- synchronized(var3) {
|
|
- if (icontains(this.friends, var1)) {
|
|
- if (var2) {
|
|
- var1 = ilookup(this.onlineFriends, var1);
|
|
- if (var1 != null) {
|
|
- this.removeOnlineFriend(var1, false);
|
|
- this.addOnlineFriend(var1, true);
|
|
- }
|
|
- } else {
|
|
- var1 = ilookup(this.mutedOnlineFriends, var1);
|
|
- if (var1 != null) {
|
|
- this.removeOnlineFriend(var1, true);
|
|
- this.addOnlineFriend(var1, false);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- private void listChanged() {
|
|
- this.cursedButton = -1;
|
|
- this.clickedButton = -1;
|
|
- this.clickedButtonDown = false;
|
|
- this.repaint();
|
|
- }
|
|
-
|
|
- private void addOnlineFriend(String var1, boolean var2) {
|
|
- Object var3 = this.friendsMutex;
|
|
- synchronized(var3) {
|
|
- if (this.friends != null && icontains(this.friends, var1)) {
|
|
- if (!var2 && !icontains(this.onlineFriends, var1)) {
|
|
- this.onlineFriends.addElement(var1);
|
|
- if (active == this) {
|
|
- this.listChanged();
|
|
- if (this.moreFriendsDialog != null) {
|
|
- this.moreFriendsDialog.addName(var1);
|
|
- }
|
|
- }
|
|
- } else if (var2 && !icontains(this.mutedOnlineFriends, var1)) {
|
|
- this.mutedOnlineFriends.addElement(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- private void removeOnlineFriend(String var1, boolean var2) {
|
|
- Object var3 = this.friendsMutex;
|
|
- synchronized(var3) {
|
|
- if (!var2) {
|
|
- int var4 = this.onlineFriends.indexOf(var1);
|
|
- if (var4 != -1) {
|
|
- this.onlineFriends.removeElementAt(var4);
|
|
- if (active == this) {
|
|
- this.listChanged();
|
|
- if (this.moreFriendsDialog != null) {
|
|
- this.moreFriendsDialog.removeName(var4);
|
|
- }
|
|
- }
|
|
- }
|
|
- } else {
|
|
- this.mutedOnlineFriends.removeElement(var1);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void dialogDone(Object var1, boolean var2) {
|
|
- Object var3 = this.friendsMutex;
|
|
- synchronized(var3) {
|
|
- if (var1 == this.moreFriendsDialog) {
|
|
- this.moreFriendsDialog = null;
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public static boolean isValidUserName(String var0) {
|
|
- String var1 = "_-";
|
|
- var0 = Console.parseUnicode(var0);
|
|
- int var2 = var0.length();
|
|
- if (var2 >= 2 && var2 <= 16) {
|
|
- char[] var3 = var0.toCharArray();
|
|
-
|
|
- for(int var4 = 0; var4 < var2; ++var4) {
|
|
- if (!Character.isLetterOrDigit(var3[var4]) && var1.indexOf(var3[var4]) == -1) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- void moreFriendsAction(String var1, MenuItem var2) {
|
|
- this.activeFriendName = var1;
|
|
- Debug.assert(this.activeFriendName != null);
|
|
- this.maybeFriendAction(var2);
|
|
- }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/console/GammaTextArea.java b/1890/NET/worlds/console/GammaTextArea.java
|
|
--- a/1890/NET/worlds/console/GammaTextArea.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/console/GammaTextArea.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -2,515 +2,811 @@
|
|
|
|
import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
-import java.awt.Color;
|
|
-import java.awt.Font;
|
|
-import java.awt.FontMetrics;
|
|
-import java.awt.Graphics;
|
|
-import java.awt.GridBagConstraints;
|
|
-import java.awt.GridBagLayout;
|
|
-import java.awt.Panel;
|
|
-import java.awt.Scrollbar;
|
|
-import java.awt.event.AdjustmentEvent;
|
|
-import java.awt.event.AdjustmentListener;
|
|
-import java.awt.event.FocusEvent;
|
|
-import java.awt.event.KeyEvent;
|
|
+import NET.worlds.scape.SendURLAction;
|
|
+import NET.worlds.scape.TeleportAction;
|
|
+import NET.worlds.scape.TeleportStatus;
|
|
+
|
|
+import java.awt.*;
|
|
+import java.awt.datatransfer.Clipboard;
|
|
+import java.awt.datatransfer.ClipboardOwner;
|
|
+import java.awt.datatransfer.StringSelection;
|
|
+import java.awt.event.*;
|
|
import java.util.StringTokenizer;
|
|
import java.util.Vector;
|
|
|
|
-public class GammaTextArea extends Panel implements AdjustmentListener {
|
|
- public static final int SCROLLBARS_BOTH = 1;
|
|
- public static final int SCROLLBARS_VERTICAL_ONLY = 2;
|
|
- public static final int SCROLLBARS_HORIZONTAL_ONLY = 3;
|
|
- public static final int SCROLLBARS_NONE = 4;
|
|
- protected static final int _margin = 2;
|
|
- private int _width;
|
|
- private int _height;
|
|
- private StyledTextCanvas _canvas;
|
|
- private String _string;
|
|
- private Font _font;
|
|
- private int _currentStyle;
|
|
- private String _currentFontName;
|
|
- private int _currentPointSize;
|
|
- private Color _currentColor;
|
|
- private GammaTextScrollbar _vertBar;
|
|
- private GammaTextScrollbar _horzBar;
|
|
- private int _numLines;
|
|
- private int _canvasLines;
|
|
- private int _scrollLine;
|
|
- private Vector _lines;
|
|
- private boolean _hasFocus;
|
|
- public static String boldStartTag = "<b>";
|
|
- public static String boldEndTag = "</b>";
|
|
- public static String italicStartTag = "<i>";
|
|
- public static String italicEndTag = "</i>";
|
|
- public static String colorStartMagentaTag = "<color=\"#FF00FF\">";
|
|
- public static String colorStartBlueTag = "<color=\"#0000FF\">";
|
|
- public static String colorStartRedTag = "<color=\"#FF0000\">";
|
|
- public static String colorStartGreenTag = "<color=\"#00FF00\">";
|
|
- public static String colorEndTag = "</color>";
|
|
- public static String colorMagenta2Tag = "<color=magenta>";
|
|
- public static String colorBlue2Tag = "<color=blue>";
|
|
- public static String colorRed2Tag = "<color=red>";
|
|
- public static String colorGreen2Tag = "<color=green>";
|
|
- public static String colorCyanTag = "<color=cyan>";
|
|
- public static String colorDarkGrayTag = "<color=darkgray>";
|
|
- public static String colorGrayTag = "<color=gray>";
|
|
- public static String colorOrangeTag = "<color=orange>";
|
|
- public static String colorPinkTag = "<color=pink>";
|
|
- public static String colorYellowTag = "<color=yellow>";
|
|
- public static String colorWhiteTag = "<color=white>";
|
|
- public static String colorLightGrayTag = "<color=lightgray>";
|
|
- protected static String[] tagList;
|
|
-
|
|
- public Font getFont() {
|
|
- return this._font;
|
|
- }
|
|
-
|
|
- public int getWidth() {
|
|
- return this._width;
|
|
- }
|
|
-
|
|
- public int getHeight() {
|
|
- return this._height;
|
|
- }
|
|
-
|
|
- public void setWidth(int var1) {
|
|
- this._width = var1 - 4;
|
|
- }
|
|
-
|
|
- public void setHeight(int var1) {
|
|
- this._height = var1 - 4;
|
|
- }
|
|
-
|
|
- public Vector getLines() {
|
|
- return this._lines;
|
|
- }
|
|
-
|
|
- public int getScrollLine() {
|
|
- return this._scrollLine;
|
|
- }
|
|
-
|
|
- public int getCanvasLines() {
|
|
- return this._canvasLines;
|
|
- }
|
|
-
|
|
- public int getNumLines() {
|
|
- return this._numLines;
|
|
- }
|
|
-
|
|
- public boolean getHasFocus() {
|
|
- return this._hasFocus;
|
|
- }
|
|
-
|
|
- public Scrollbar getVertScrollbar() {
|
|
- return this._vertBar;
|
|
- }
|
|
-
|
|
- static Color getBackgroundColor() {
|
|
- int var0 = IniFile.override().getIniInt("chatBgR", 255);
|
|
- int var1 = IniFile.override().getIniInt("chatBgG", 255);
|
|
- int var2 = IniFile.override().getIniInt("chatBgB", 203);
|
|
- return new Color(var0, var1, var2);
|
|
- }
|
|
-
|
|
- GammaTextArea(String var1, int var2, int var3, int var4) {
|
|
- this._string = var1;
|
|
- this._currentFontName = Console.message("GammaTextFont");
|
|
- this._currentStyle = 0;
|
|
- this._currentPointSize = 12;
|
|
- this._currentColor = Color.black;
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- this._canvas = new StyledTextCanvas();
|
|
- FontMetrics var5 = this._canvas.getFontMetrics(this._font);
|
|
- Debug.dAssert(var5 != null);
|
|
- int var6 = var5.getHeight();
|
|
- int var7 = var5.charWidth('M') * var3;
|
|
- int var8 = var5.getHeight() * var2;
|
|
- this._canvas.setSize(var7, var8);
|
|
- this.setWidth(var7);
|
|
- this.setHeight(var8);
|
|
- this._lines = new Vector();
|
|
- this._hasFocus = false;
|
|
- this._numLines = this._scrollLine = this._canvasLines = 0;
|
|
- switch(var4) {
|
|
- case 1:
|
|
- this._vertBar = new GammaTextScrollbar(1);
|
|
- this._horzBar = new GammaTextScrollbar(0);
|
|
- break;
|
|
- case 2:
|
|
- this._vertBar = new GammaTextScrollbar(1);
|
|
- this._horzBar = null;
|
|
- break;
|
|
- case 3:
|
|
- this._vertBar = null;
|
|
- this._horzBar = new GammaTextScrollbar(0);
|
|
- break;
|
|
- case 4:
|
|
- this._vertBar = this._horzBar = null;
|
|
- }
|
|
-
|
|
- GridBagLayout var9 = new GridBagLayout();
|
|
- this.setLayout(var9);
|
|
- GridBagConstraints var10 = new GridBagConstraints();
|
|
- var10.fill = 1;
|
|
- var10.weightx = 1.0D;
|
|
- var10.weighty = 1.0D;
|
|
- var9.setConstraints(this._canvas, var10);
|
|
- this.add(this._canvas);
|
|
- if (this._vertBar != null) {
|
|
- var10 = new GridBagConstraints();
|
|
- var10.fill = 3;
|
|
- var10.gridwidth = 0;
|
|
- var9.setConstraints(this._vertBar, var10);
|
|
- this.add(this._vertBar);
|
|
- this._vertBar.addAdjustmentListener(this);
|
|
- }
|
|
-
|
|
- if (this._horzBar != null) {
|
|
- var10 = new GridBagConstraints();
|
|
- var10.fill = 2;
|
|
- var10.gridwidth = 1;
|
|
- this.add(this._horzBar);
|
|
- this._horzBar.addAdjustmentListener(this);
|
|
- }
|
|
-
|
|
- this.enableEvents(31L);
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- public void update(Graphics var1) {
|
|
- this.paint(var1);
|
|
- }
|
|
-
|
|
- protected void processFocusEvent(FocusEvent var1) {
|
|
- if (var1.getID() == 1004) {
|
|
- this._hasFocus = true;
|
|
- } else if (var1.getID() == 1005) {
|
|
- this._hasFocus = false;
|
|
- }
|
|
-
|
|
- this._canvas.repaint();
|
|
- super.processFocusEvent(var1);
|
|
- }
|
|
-
|
|
- protected void processKeyEvent(KeyEvent var1) {
|
|
- this._canvas.dispatchEvent(var1);
|
|
- super.processKeyEvent(var1);
|
|
- }
|
|
-
|
|
- public void adjustmentValueChanged(AdjustmentEvent var1) {
|
|
- this._scrollLine = this._vertBar.getValue();
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- public void setEditable(boolean var1) {
|
|
- if (var1) {
|
|
- System.out.println("Can't set GammaTextArea to be editable.");
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public synchronized String getText() {
|
|
- return this._string;
|
|
- }
|
|
-
|
|
- public synchronized void setText(String var1) {
|
|
- this._string = var1;
|
|
- this.wordWrapAll();
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
- this._scrollLine = 0;
|
|
- }
|
|
-
|
|
- this.setScrollBounds();
|
|
- }
|
|
-
|
|
- public void repaint() {
|
|
- this._canvas.repaint();
|
|
- super.repaint();
|
|
- }
|
|
-
|
|
- protected synchronized void wordWrapAll() {
|
|
- this._lines.removeAllElements();
|
|
- this._numLines = 0;
|
|
- this.wordWrap(this._string);
|
|
- }
|
|
-
|
|
- protected boolean isLastLineVisible() {
|
|
- return this._scrollLine == this._numLines - this._canvasLines || this._numLines <= this._canvasLines;
|
|
- }
|
|
-
|
|
- protected boolean handleTag(String var1) {
|
|
- if (var1.charAt(0) != '<') {
|
|
- return false;
|
|
- } else {
|
|
- for(int var2 = 0; var2 < tagList.length; ++var2) {
|
|
- if (var1.equals(tagList[var2])) {
|
|
- switch(var2) {
|
|
- case 0:
|
|
- this._currentStyle |= 1;
|
|
- break;
|
|
- case 1:
|
|
- this._currentStyle &= -2;
|
|
- break;
|
|
- case 2:
|
|
- this._currentStyle |= 2;
|
|
- break;
|
|
- case 3:
|
|
- this._currentStyle &= -3;
|
|
- break;
|
|
- case 4:
|
|
- this._currentColor = Color.magenta;
|
|
- break;
|
|
- case 5:
|
|
- this._currentColor = Color.red;
|
|
- break;
|
|
- case 6:
|
|
- this._currentColor = Color.green;
|
|
- break;
|
|
- case 7:
|
|
- this._currentColor = Color.blue;
|
|
- break;
|
|
- case 8:
|
|
- this._currentColor = Color.black;
|
|
- break;
|
|
- case 9:
|
|
- this._currentColor = Color.magenta;
|
|
- break;
|
|
- case 10:
|
|
- this._currentColor = Color.blue;
|
|
- break;
|
|
- case 11:
|
|
- this._currentColor = Color.red;
|
|
- break;
|
|
- case 12:
|
|
- this._currentColor = Color.green;
|
|
- break;
|
|
- case 13:
|
|
- this._currentColor = Color.cyan;
|
|
- break;
|
|
- case 14:
|
|
- this._currentColor = Color.darkGray;
|
|
- break;
|
|
- case 15:
|
|
- this._currentColor = Color.gray;
|
|
- break;
|
|
- case 16:
|
|
- this._currentColor = Color.orange;
|
|
- break;
|
|
- case 17:
|
|
- this._currentColor = Color.pink;
|
|
- break;
|
|
- case 18:
|
|
- this._currentColor = Color.yellow;
|
|
- break;
|
|
- case 19:
|
|
- this._currentColor = Color.white;
|
|
- break;
|
|
- case 20:
|
|
- this._currentColor = Color.lightGray;
|
|
- }
|
|
-
|
|
- try {
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- } catch (IllegalArgumentException var4) {
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- protected void ClearTags(Graphics var1) {
|
|
- if (this._currentStyle != 0) {
|
|
- this._currentStyle = 0;
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- }
|
|
-
|
|
- if (this._currentColor != Color.black) {
|
|
- this._currentColor = Color.black;
|
|
- }
|
|
-
|
|
- var1.setFont(this._font);
|
|
- var1.setColor(this._currentColor);
|
|
- }
|
|
-
|
|
- protected synchronized void wordWrap(String var1) {
|
|
- int var2 = this._width;
|
|
- if (var2 > 0) {
|
|
- StringTokenizer var3 = new StringTokenizer(var1, "\n\r");
|
|
-
|
|
- label74:
|
|
- while(var3.hasMoreTokens()) {
|
|
- String var4 = var3.nextToken();
|
|
- StringTokenizer var5 = new StringTokenizer(var4, "\n\r\t -", true);
|
|
- int var6 = 0;
|
|
- String var7 = "";
|
|
- int var8 = 0;
|
|
- FontMetrics var9 = this._canvas.getFontMetrics(this._font);
|
|
- Debug.dAssert(var9 != null);
|
|
-
|
|
- while(true) {
|
|
- while(true) {
|
|
- String var10;
|
|
- do {
|
|
- do {
|
|
- if (!var5.hasMoreTokens()) {
|
|
- if (!var7.equals("")) {
|
|
- ++this._numLines;
|
|
- this._lines.addElement(var7.trim());
|
|
- }
|
|
- continue label74;
|
|
+public class GammaTextArea extends Panel implements AdjustmentListener, ActionListener {
|
|
+ public static final int SCROLLBARS_BOTH = 1;
|
|
+ public static final int SCROLLBARS_VERTICAL_ONLY = 2;
|
|
+ public static final int SCROLLBARS_HORIZONTAL_ONLY = 3;
|
|
+ public static final int SCROLLBARS_NONE = 4;
|
|
+ protected static final int _margin = 2;
|
|
+ private int _width;
|
|
+ private int _height;
|
|
+ private StyledTextCanvas _canvas;
|
|
+ private String _string;
|
|
+ private Font _font;
|
|
+ private int _currentStyle;
|
|
+ private String _currentFontName;
|
|
+ private int _currentPointSize;
|
|
+ private Color _currentColor;
|
|
+ private GammaTextScrollbar _vertBar;
|
|
+ private GammaTextScrollbar _horzBar;
|
|
+ private int _numLines;
|
|
+ private int _canvasLines;
|
|
+ private int _scrollLine;
|
|
+ private Vector _lines;
|
|
+ private Vector _pos;
|
|
+ private int _lastpos = 0;
|
|
+ protected int _curpos = 0;
|
|
+ private boolean _hasFocus;
|
|
+ protected int selectionStart = -1;
|
|
+ protected int selectionEnd = -1;
|
|
+ private static final Color skyblue = new Color(135, 206, 255);
|
|
+ private PopupMenu rightMenu;
|
|
+ private MenuItem textCopyItem = new MenuItem(Console.message("Copy"));
|
|
+ private MenuItem textCopyTextItem = new MenuItem(Console.message("Copy Text"));
|
|
+ private MenuItem textCopyAllItem = new MenuItem(Console.message("Copy All"));
|
|
+ private MenuItem textCopyAllTextItem = new MenuItem(Console.message("Copy All Text"));
|
|
+ private MenuItem textSaveItem = new MenuItem(Console.message("Save All Text"));
|
|
+ private MenuItem textOpenURLItem = new MenuItem(Console.message("Open URL"));
|
|
+ static Color bgColor = null;
|
|
+ private int _numColumns;
|
|
+ private int _numRows;
|
|
+ public static String boldStartTag = "<b>";
|
|
+ public static String boldEndTag = "</b>";
|
|
+ public static String italicStartTag = "<i>";
|
|
+ public static String italicEndTag = "</i>";
|
|
+ public static String colorStartMagentaTag = "<color=\"#FF00FF\">";
|
|
+ public static String colorStartBlueTag = "<color=\"#0000FF\">";
|
|
+ public static String colorStartRedTag = "<color=\"#FF0000\">";
|
|
+ public static String colorStartGreenTag = "<color=\"#00FF00\">";
|
|
+ public static String colorEndTag = "</color>";
|
|
+ public static String colorMagenta2Tag = "<color=magenta>";
|
|
+ public static String colorBlue2Tag = "<color=blue>";
|
|
+ public static String colorRed2Tag = "<color=red>";
|
|
+ public static String colorGreen2Tag = "<color=green>";
|
|
+ public static String colorCyanTag = "<color=cyan>";
|
|
+ public static String colorDarkGrayTag = "<color=darkgray>";
|
|
+ public static String colorGrayTag = "<color=gray>";
|
|
+ public static String colorOrangeTag = "<color=orange>";
|
|
+ public static String colorPinkTag = "<color=pink>";
|
|
+ public static String colorYellowTag = "<color=yellow>";
|
|
+ public static String colorWhiteTag = "<color=white>";
|
|
+ public static String colorLightGrayTag = "<color=lightgray>";
|
|
+ protected static String[] tagList;
|
|
+ private int lastWidth = 0;
|
|
+ protected boolean selectionConversion = false;
|
|
+ protected int _initialSelection = -1;
|
|
+
|
|
+ public Font getFont() {
|
|
+ return this._font;
|
|
+ }
|
|
+
|
|
+ public int getWidth() {
|
|
+ return this._width;
|
|
+ }
|
|
+
|
|
+ public int getHeight() {
|
|
+ return this._height;
|
|
+ }
|
|
+
|
|
+ public void setWidth(int var1) {
|
|
+ this._width = var1 - 4;
|
|
+ }
|
|
+
|
|
+ public void setHeight(int var1) {
|
|
+ this._height = var1 - 4;
|
|
+ }
|
|
+
|
|
+ public Vector getLines() {
|
|
+ return this._lines;
|
|
+ }
|
|
+
|
|
+ public int getScrollLine() {
|
|
+ return this._scrollLine;
|
|
+ }
|
|
+
|
|
+ public int getCanvasLines() {
|
|
+ return this._canvasLines;
|
|
+ }
|
|
+
|
|
+ public int getNumLines() {
|
|
+ return this._numLines;
|
|
+ }
|
|
+
|
|
+ public boolean getHasFocus() {
|
|
+ return this._hasFocus;
|
|
+ }
|
|
+
|
|
+ public Scrollbar getVertScrollbar() {
|
|
+ return this._vertBar;
|
|
+ }
|
|
+
|
|
+ static Color getBackgroundColor() {
|
|
+ if (bgColor == null) {
|
|
+ int bgR = IniFile.override().getIniInt("chatBgR", 255);
|
|
+ int bgG = IniFile.override().getIniInt("chatBgG", 255);
|
|
+ int bgB = IniFile.override().getIniInt("chatBgB", 203);
|
|
+ bgColor = new Color(bgR, bgG, bgB);
|
|
+ }
|
|
+
|
|
+ return bgColor;
|
|
+ }
|
|
+
|
|
+ GammaTextArea(String text, int rows, int columns, int scrollbars) {
|
|
+ this._string = text;
|
|
+ this._numColumns = columns;
|
|
+ this._numRows = rows;
|
|
+ this._currentFontName = Console.message("GammaTextFont");
|
|
+ this._currentStyle = 0;
|
|
+ this._currentPointSize = IniFile.gamma().getIniInt("ChatFontSize", 12);
|
|
+ this._currentColor = Color.black;
|
|
+ this._canvas = new StyledTextCanvas();
|
|
+ this.setFontSize(this._currentPointSize);
|
|
+ this._lines = new Vector();
|
|
+ this._pos = new Vector();
|
|
+ this._lastpos = 0;
|
|
+ this._hasFocus = false;
|
|
+ this._numLines = this._scrollLine = this._canvasLines = 0;
|
|
+ switch(scrollbars) {
|
|
+ case 1:
|
|
+ this._vertBar = new GammaTextScrollbar(1);
|
|
+ this._horzBar = new GammaTextScrollbar(0);
|
|
+ break;
|
|
+ case 2:
|
|
+ this._vertBar = new GammaTextScrollbar(1);
|
|
+ this._horzBar = null;
|
|
+ break;
|
|
+ case 3:
|
|
+ this._vertBar = null;
|
|
+ this._horzBar = new GammaTextScrollbar(0);
|
|
+ break;
|
|
+ case 4:
|
|
+ this._vertBar = this._horzBar = null;
|
|
+ }
|
|
+
|
|
+ GridBagLayout gridbag = new GridBagLayout();
|
|
+ this.setLayout(gridbag);
|
|
+ GridBagConstraints c = new GridBagConstraints();
|
|
+ c.fill = 1;
|
|
+ c.weightx = 1.0D;
|
|
+ c.weighty = 1.0D;
|
|
+ gridbag.setConstraints(this._canvas, c);
|
|
+ this.add(this._canvas);
|
|
+ if (this._vertBar != null) {
|
|
+ c = new GridBagConstraints();
|
|
+ c.fill = 3;
|
|
+ c.gridwidth = 0;
|
|
+ gridbag.setConstraints(this._vertBar, c);
|
|
+ this.add(this._vertBar);
|
|
+ this._vertBar.addAdjustmentListener(this);
|
|
+ }
|
|
+
|
|
+ if (this._horzBar != null) {
|
|
+ c = new GridBagConstraints();
|
|
+ c.fill = 2;
|
|
+ c.gridwidth = 1;
|
|
+ this.add(this._horzBar);
|
|
+ this._horzBar.addAdjustmentListener(this);
|
|
+ }
|
|
+
|
|
+ this.enableEvents(131231L);
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
+
|
|
+ public synchronized void setFontSize(int fontsize) {
|
|
+ this._currentPointSize = fontsize;
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ this.recalcSize();
|
|
+ }
|
|
+
|
|
+ public synchronized void recalcSize() {
|
|
+ FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new Error();
|
|
+
|
|
+ int w = fm.charWidth('M') * this._numColumns;
|
|
+ int h = fm.getHeight() * this._numRows;
|
|
+ this.setWidth(w);
|
|
+ this.setHeight(h);
|
|
+ this._canvas.setSize(w, h);
|
|
+ this.setWidth(w);
|
|
+ this.setHeight(h);
|
|
+ }
|
|
+
|
|
+ public void update(Graphics var1) {
|
|
+ this.paint(var1);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processMouseEvent(MouseEvent e) {
|
|
+ if (e.isPopupTrigger()) {
|
|
+ if (this.rightMenu != null && this.rightMenu.isEnabled()) {
|
|
+ this.hideRightMenu();
|
|
+ } else {
|
|
+ this.showRightMenu(e.getX(), e.getY());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.processMouseEvent(e);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processFocusEvent(FocusEvent e) {
|
|
+ if (e.getID() == 1004) {
|
|
+ this._hasFocus = true;
|
|
+ } else if (e.getID() == 1005) {
|
|
+ this._hasFocus = false;
|
|
+ }
|
|
+
|
|
+ this._canvas.repaint();
|
|
+ super.processFocusEvent(e);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processKeyEvent(KeyEvent e) {
|
|
+ this._canvas.dispatchEvent(e);
|
|
+ super.processKeyEvent(e);
|
|
+ }
|
|
+
|
|
+ public synchronized void adjustmentValueChanged(AdjustmentEvent e) {
|
|
+ this._scrollLine = this._vertBar.getValue();
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
+
|
|
+ public void setEditable(boolean var1) {
|
|
+ if (var1) {
|
|
+ System.out.println("Can't set GammaTextArea to be editable.");
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public synchronized String getText() {
|
|
+ return this._string;
|
|
+ }
|
|
+
|
|
+ public synchronized void setText(String s) {
|
|
+ this._string = s;
|
|
+ this.wordWrapAll();
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
+ this._scrollLine = 0;
|
|
+ }
|
|
+
|
|
+ this.setScrollBounds();
|
|
+ }
|
|
+
|
|
+ public synchronized void repaint() {
|
|
+ this._canvas.repaint();
|
|
+ super.repaint();
|
|
+ }
|
|
+
|
|
+ protected synchronized void wordWrapAll() {
|
|
+ this._lines.removeAllElements();
|
|
+ this._pos.removeAllElements();
|
|
+ this._numLines = 0;
|
|
+ this._lastpos = 0;
|
|
+ this.wordWrap(this._string);
|
|
+ }
|
|
+
|
|
+ protected synchronized boolean isLastLineVisible() {
|
|
+ if (!this._canvas.mouseActive && (this.selectionStart < 0 || this.selectionEnd <= this.selectionStart)) {
|
|
+ return this._scrollLine >= this._numLines - this._canvasLines || this._numLines <= this._canvasLines;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ protected synchronized boolean handleTag(Graphics g, String word, int x, int y) {
|
|
+ String lower = word.toLowerCase();
|
|
+ int color;
|
|
+ if (word.charAt(0) == '<') {
|
|
+ for (color = 0; color < tagList.length; ++color) {
|
|
+ if (lower.equals(tagList[color].toLowerCase())) {
|
|
+ switch (color) {
|
|
+ case 0:
|
|
+ this._currentStyle |= 1;
|
|
+ break;
|
|
+ case 1:
|
|
+ this._currentStyle &= -2;
|
|
+ break;
|
|
+ case 2:
|
|
+ this._currentStyle |= 2;
|
|
+ break;
|
|
+ case 3:
|
|
+ this._currentStyle &= -3;
|
|
+ break;
|
|
+ case 4:
|
|
+ this._currentColor = Color.magenta;
|
|
+ break;
|
|
+ case 5:
|
|
+ this._currentColor = Color.red;
|
|
+ break;
|
|
+ case 6:
|
|
+ this._currentColor = Color.green;
|
|
+ break;
|
|
+ case 7:
|
|
+ this._currentColor = Color.blue;
|
|
+ break;
|
|
+ case 8:
|
|
+ this._currentColor = Color.black;
|
|
+ break;
|
|
+ case 9:
|
|
+ this._currentColor = Color.magenta;
|
|
+ break;
|
|
+ case 10:
|
|
+ this._currentColor = Color.blue;
|
|
+ break;
|
|
+ case 11:
|
|
+ this._currentColor = Color.red;
|
|
+ break;
|
|
+ case 12:
|
|
+ this._currentColor = Color.green;
|
|
+ break;
|
|
+ case 13:
|
|
+ this._currentColor = Color.cyan;
|
|
+ break;
|
|
+ case 14:
|
|
+ this._currentColor = Color.darkGray;
|
|
+ break;
|
|
+ case 15:
|
|
+ this._currentColor = Color.gray;
|
|
+ break;
|
|
+ case 16:
|
|
+ this._currentColor = Color.orange;
|
|
+ break;
|
|
+ case 17:
|
|
+ this._currentColor = Color.pink;
|
|
+ break;
|
|
+ case 18:
|
|
+ this._currentColor = Color.yellow;
|
|
+ break;
|
|
+ case 19:
|
|
+ this._currentColor = Color.white;
|
|
+ break;
|
|
+ case 20:
|
|
+ this._currentColor = Color.lightGray;
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ } catch (IllegalArgumentException var4) {
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ } else return false;
|
|
+ }
|
|
+
|
|
+ protected void ClearTags(Graphics var1) {
|
|
+ if (this._currentStyle != 0) {
|
|
+ this._currentStyle = 0;
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ }
|
|
+
|
|
+ if (this._currentColor != Color.black) {
|
|
+ this._currentColor = Color.black;
|
|
+ }
|
|
+
|
|
+ var1.setFont(this._font);
|
|
+ var1.setColor(this._currentColor);
|
|
+ }
|
|
+
|
|
+ protected synchronized void wordWrap(String newText) {
|
|
+ int canvasWidth = this._width;
|
|
+ if (canvasWidth > 0) {
|
|
+ StringTokenizer rawLines = new StringTokenizer(newText, "\n\r");
|
|
+
|
|
+ label82:
|
|
+ while(rawLines.hasMoreTokens()) {
|
|
+ String rawLine = rawLines.nextToken();
|
|
+ StringTokenizer words = new StringTokenizer(rawLine, "\n\r\t -", true);
|
|
+ int lineWidth = 0;
|
|
+ String thisLine = "";
|
|
+ this.lastWidth = 0;
|
|
+ FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new Error();
|
|
+
|
|
+ while(true) {
|
|
+ while(true) {
|
|
+ String word;
|
|
+ do {
|
|
+ do {
|
|
+ if (!words.hasMoreTokens()) {
|
|
+ if (!thisLine.equals("")) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length() + 1;
|
|
+ ++this._numLines;
|
|
+ this._lines.addElement(thisLine.trim());
|
|
+ }
|
|
+ continue label82;
|
|
+ }
|
|
+
|
|
+ word = words.nextToken();
|
|
+ } while(word.equals("\n"));
|
|
+ } while(word.equals("\r"));
|
|
+
|
|
+ if (this.handleTag((Graphics)null, word, 0, 0)) {
|
|
+ lineWidth -= this.lastWidth;
|
|
+ thisLine = thisLine + word;
|
|
+ if (words.hasMoreTokens()) {
|
|
+ thisLine = thisLine + words.nextToken();
|
|
+ }
|
|
+
|
|
+ this.lastWidth = 0;
|
|
+ fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new Error();
|
|
+ } else {
|
|
+ this.lastWidth = fm.stringWidth(word);
|
|
+ if (this.lastWidth >= canvasWidth) {
|
|
+ if (!thisLine.equals("")) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length();
|
|
+ this._lines.addElement(thisLine.trim());
|
|
+ ++this._numLines;
|
|
+ lineWidth = 0;
|
|
+ }
|
|
+
|
|
+ while(this.lastWidth >= canvasWidth) {
|
|
+ word = this.breakWord(word, fm);
|
|
+ lineWidth = this.lastWidth = 0;
|
|
+ thisLine = "";
|
|
+ if (word != null && word.length() > 0) {
|
|
+ this.lastWidth = fm.stringWidth(word);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ lineWidth += this.lastWidth;
|
|
+ if (lineWidth > 0 && word != null && word.length() > 0) {
|
|
+ if (lineWidth >= canvasWidth) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length();
|
|
+ this._lines.addElement(thisLine.trim());
|
|
+ ++this._numLines;
|
|
+ lineWidth = this.lastWidth;
|
|
+ thisLine = "";
|
|
+ }
|
|
+
|
|
+ thisLine = thisLine + word;
|
|
+ }
|
|
}
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ protected String breakWord(String var1, FontMetrics var2) {
|
|
+ int var3 = 0;
|
|
+ String var4 = "";
|
|
+
|
|
+ for(int var5 = 0; var5 < var1.length(); ++var5) {
|
|
+ char var6 = var1.charAt(var5);
|
|
+ var3 += var2.charWidth(var6);
|
|
+ if (var3 >= this._width) {
|
|
+ this._lines.addElement(var4);
|
|
+ ++this._numLines;
|
|
+ return var1.substring(var5);
|
|
+ }
|
|
+
|
|
+ var4 = var4 + var6;
|
|
+ }
|
|
+
|
|
+ this._lines.addElement(var4);
|
|
+ ++this._numLines;
|
|
+ return "";
|
|
+ }
|
|
+
|
|
+ public synchronized void rewrap() {
|
|
+ if (this._width > 0 && this._height > 0) {
|
|
+ this.wordWrapAll();
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
+ this._scrollLine = 0;
|
|
+ }
|
|
+
|
|
+ this.setScrollBounds();
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private synchronized void setScrollBounds() {
|
|
+ FontMetrics var1 = this._canvas.getFontMetrics(this._font);
|
|
+ Debug.dAssert(var1 != null);
|
|
+ int var2 = var1.getHeight();
|
|
+ this._canvasLines = this._height / var2;
|
|
+ if (this._vertBar != null) {
|
|
+ if (this._numLines <= this._canvasLines) {
|
|
+ this._vertBar.setEnabled(false);
|
|
+ } else {
|
|
+ this._vertBar.setEnabled(true);
|
|
+ this._vertBar.setValues(this._scrollLine, this._canvasLines, 0, this._numLines);
|
|
+ this._vertBar.setBlockIncrement(this._canvasLines);
|
|
+ }
|
|
+ }
|
|
|
|
- var10 = var5.nextToken();
|
|
- } while(var10.equals("\n"));
|
|
- } while(var10.equals("\r"));
|
|
-
|
|
- if (this.handleTag(var10)) {
|
|
- var6 -= var8;
|
|
- var7 = var7 + var10;
|
|
- if (var5.hasMoreTokens()) {
|
|
- var7 = var7 + var5.nextToken();
|
|
- }
|
|
-
|
|
- var8 = 0;
|
|
- var9 = this._canvas.getFontMetrics(this._font);
|
|
- Debug.dAssert(var9 != null);
|
|
- } else {
|
|
- var8 = var9.stringWidth(var10);
|
|
- if (var8 >= var2) {
|
|
- if (!var7.equals("")) {
|
|
- this._lines.addElement(var7.trim());
|
|
- ++this._numLines;
|
|
- var6 = 0;
|
|
+ }
|
|
+
|
|
+ public synchronized void append(String var1) {
|
|
+ this._string = this._string + var1;
|
|
+ this.wordWrap(var1);
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
+ this._scrollLine = 0;
|
|
+ }
|
|
+
|
|
+ this.setScrollBounds();
|
|
+ }
|
|
+
|
|
+ public synchronized void replaceRange(String var1, int var2, int var3) {
|
|
+ String var4 = this._string.substring(0, var2) + var1 + this._string.substring(var3);
|
|
+ this._string = var4;
|
|
+ }
|
|
+
|
|
+ public synchronized void drawLine(Graphics g, int lineNum, int y) {
|
|
+ if (lineNum < this._pos.size()) {
|
|
+ String thisLine = (String)this._lines.elementAt(lineNum);
|
|
+
|
|
+ if (thisLine == null) throw new Error();
|
|
+
|
|
+ this._curpos = ((Integer)this._pos.elementAt(lineNum)).intValue();
|
|
+ StringTokenizer st = new StringTokenizer(thisLine, " \n\r", true);
|
|
+ int x = 0;
|
|
+ this.lastWidth = 0;
|
|
+
|
|
+ while(st.hasMoreTokens()) {
|
|
+ String word = st.nextToken();
|
|
+ if (!this.handleTag(g, word, 2 + x, y + 2)) {
|
|
+ this.drawString(g, word, 2 + x, y + 2);
|
|
+ this.lastWidth = g.getFontMetrics().stringWidth(word);
|
|
+ x += this.lastWidth;
|
|
+ } else {
|
|
+ x -= this.lastWidth;
|
|
+ if (st.hasMoreTokens()) {
|
|
+ this._curpos += st.nextToken().length();
|
|
+ }
|
|
+
|
|
+ this.lastWidth = 0;
|
|
+ g.setFont(this._font);
|
|
+ g.setColor(this._currentColor);
|
|
+ this._curpos += word.length();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.ClearTags(g);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void drawString(Graphics g, String text, int x, int y) {
|
|
+ FontMetrics fm = g.getFontMetrics();
|
|
+ int startdist;
|
|
+ int i;
|
|
+ if (this.selectionConversion) {
|
|
+ startdist = fm.getHeight();
|
|
+ int pos = -1;
|
|
+ if (y - startdist < this._canvas.mouseY) {
|
|
+ if (y < this._canvas.mouseY) {
|
|
+ if (y < this._canvas.mouseY) {
|
|
+ if (this.selectionStart >= 0) {
|
|
+ pos = this._curpos + text.length();
|
|
+ }
|
|
+ } else {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else if (x <= this._canvas.mouseX) {
|
|
+ if (this._canvas.mouseX > x + g.getFontMetrics().stringWidth(text)) {
|
|
+ if (this.selectionStart >= 0 && this._curpos >= this.selectionStart) {
|
|
+ pos = this._curpos + text.length();
|
|
}
|
|
+ } else {
|
|
+ if (this._canvas.mouseDoubleClick) {
|
|
+ this._canvas.mouseDoubleClick = false;
|
|
+ this.selectionStart = this._initialSelection = this._curpos;
|
|
+ this.selectionEnd = this._curpos + text.length();
|
|
+ pos = -1;
|
|
+ } else {
|
|
+ for(i = 0; i < text.length() - 1 && x + fm.stringWidth(text.substring(0, i + 1)) < this._canvas.mouseX; ++i) {
|
|
+ }
|
|
|
|
- while(var8 >= var2) {
|
|
- var10 = this.breakWord(var10, var9);
|
|
- var6 = 0;
|
|
- var7 = "";
|
|
- var8 = var9.stringWidth(var10);
|
|
+ pos = this._curpos + i;
|
|
}
|
|
- }
|
|
|
|
- var6 += var8;
|
|
- if (var6 >= var2) {
|
|
- this._lines.addElement(var7.trim());
|
|
- ++this._numLines;
|
|
- var6 = var8;
|
|
- var7 = "";
|
|
- }
|
|
-
|
|
- var7 = var7 + var10;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- protected String breakWord(String var1, FontMetrics var2) {
|
|
- int var3 = 0;
|
|
- String var4 = "";
|
|
-
|
|
- for(int var5 = 0; var5 < var1.length(); ++var5) {
|
|
- char var6 = var1.charAt(var5);
|
|
- var3 += var2.charWidth(var6);
|
|
- if (var3 >= this._width) {
|
|
- this._lines.addElement(var4);
|
|
- ++this._numLines;
|
|
- return var1.substring(var5);
|
|
- }
|
|
-
|
|
- var4 = var4 + var6;
|
|
- }
|
|
-
|
|
- this._lines.addElement(var4);
|
|
- ++this._numLines;
|
|
- return "";
|
|
- }
|
|
-
|
|
- public synchronized void rewrap() {
|
|
- if (this._width > 0 && this._height > 0) {
|
|
- this.wordWrapAll();
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
- this._scrollLine = 0;
|
|
- }
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else if (this.selectionStart >= 0 && this._curpos >= this.selectionStart) {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+
|
|
+ if (pos >= 0) {
|
|
+ if (this.selectionStart < 0) {
|
|
+ this.selectionStart = this._initialSelection = pos;
|
|
+ this.selectionEnd = this.selectionStart + 1;
|
|
+ } else if (pos < this._initialSelection) {
|
|
+ this.selectionStart = pos;
|
|
+ this.selectionEnd = this._initialSelection + 1;
|
|
+ } else {
|
|
+ this.selectionStart = this._initialSelection;
|
|
+ this.selectionEnd = pos + 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ startdist = this.selectionStart - this._curpos;
|
|
+ if (startdist > 0) {
|
|
+ if (startdist < text.length()) {
|
|
+ i = text.length();
|
|
+ if (this._curpos + i >= this.selectionEnd) {
|
|
+ i = this.selectionEnd - this._curpos;
|
|
+ }
|
|
+
|
|
+ this.drawHighlight(g, text.substring(startdist, i), x + fm.stringWidth(text.substring(0, startdist)), y);
|
|
+ }
|
|
+ } else if (this.selectionEnd > this._curpos) {
|
|
+ if (this.selectionEnd - this._curpos < text.length()) {
|
|
+ this.drawHighlight(g, text.substring(0, this.selectionEnd - this._curpos), x, y);
|
|
+ } else {
|
|
+ this.drawHighlight(g, text, x, y);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ g.drawString(text, x, y);
|
|
+ this._curpos += text.length();
|
|
+ }
|
|
+
|
|
+ private void drawHighlight(Graphics g, String text, int x, int y) {
|
|
+ if (text != null && text.length() > 0) {
|
|
+ Color c = g.getColor();
|
|
+ g.setColor(skyblue);
|
|
+ int height = g.getFontMetrics().getHeight();
|
|
+ g.fillRect(x, y - (height - 2), g.getFontMetrics().stringWidth(text), height);
|
|
+ g.setColor(c);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public int getSelectionStart() {
|
|
+ return this.selectionStart;
|
|
+ }
|
|
+
|
|
+ public int getSelectionEnd() {
|
|
+ return this.selectionEnd;
|
|
+ }
|
|
+
|
|
+ public void setSelectionStart(int position) {
|
|
+ this.selectionStart = position;
|
|
+ }
|
|
+
|
|
+ public void setSelectionEnd(int position) {
|
|
+ this.selectionEnd = position;
|
|
+ }
|
|
+
|
|
+ public synchronized String getSelectionText() {
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ return this.getText().substring(this.selectionStart, this.selectionEnd);
|
|
+ } else {
|
|
+ return "";
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void initRightMenu() {
|
|
+ this.rightMenu = new PopupMenu();
|
|
+ this.rightMenu.add(this.textCopyItem);
|
|
+ this.rightMenu.add(this.textCopyTextItem);
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ this.textCopyItem.setEnabled(true);
|
|
+ this.textCopyTextItem.setEnabled(true);
|
|
+ } else {
|
|
+ this.textCopyItem.setEnabled(false);
|
|
+ this.textCopyTextItem.setEnabled(false);
|
|
+ }
|
|
+
|
|
+ this.rightMenu.add(this.textCopyAllItem);
|
|
+ this.rightMenu.add(this.textCopyAllTextItem);
|
|
+ this.rightMenu.add(this.textSaveItem);
|
|
+ this.rightMenu.add(this.textOpenURLItem);
|
|
+ this.rightMenu.addActionListener(this);
|
|
+ this.add(this.rightMenu);
|
|
+ }
|
|
+
|
|
+ private void showRightMenu(int x, int y) {
|
|
+ if (this.rightMenu == null) {
|
|
+ this.initRightMenu();
|
|
+ }
|
|
+
|
|
+ this.rightMenu.show(this, x, y);
|
|
+ }
|
|
+
|
|
+ private void hideRightMenu() {
|
|
+ this.remove(this.rightMenu);
|
|
+ this.rightMenu = null;
|
|
+ }
|
|
+
|
|
+ public synchronized void actionPerformed(ActionEvent e) {
|
|
+ String text = null;
|
|
+ boolean doClean = false;
|
|
+ if (e.getActionCommand() == this.textCopyItem.getActionCommand()) {
|
|
+ text = this.getSelectionText();
|
|
+ this.selectionStart = this.selectionEnd = -1;
|
|
+ this.repaint();
|
|
+ } else if (e.getActionCommand() == this.textCopyTextItem.getActionCommand()) {
|
|
+ text = this.getSelectionText();
|
|
+ doClean = true;
|
|
+ this.selectionStart = this.selectionEnd = -1;
|
|
+ this.repaint();
|
|
+ } else if (e.getActionCommand() == this.textCopyAllItem.getActionCommand()) {
|
|
+ text = this.getText();
|
|
+ } else if (e.getActionCommand() == this.textCopyAllTextItem.getActionCommand()) {
|
|
+ text = this.getText();
|
|
+ doClean = true;
|
|
+ } else if (e.getActionCommand() == this.textOpenURLItem.getActionCommand()) {
|
|
+ text = this.getSelectionText().trim();
|
|
+ if (text != null && text.length() > 5) {
|
|
+ if (!text.startsWith("http://") && !text.startsWith("https://") && !text.startsWith("world:")) {
|
|
+ text = "http://" + text;
|
|
+ }
|
|
+
|
|
+ if (text.startsWith("world:") || text.indexOf(".world#") != -1 || (text.startsWith("http") || text.startsWith("file:")) && text.endsWith(".world")) {
|
|
+ if (text.startsWith("world:")) {
|
|
+ text = text.substring(6);
|
|
+ }
|
|
+
|
|
+ TeleportAction.teleport(text, (TeleportStatus)null);
|
|
+ } else {
|
|
+ (new SendURLAction(text)).startBrowser();
|
|
+ }
|
|
+
|
|
+ this.selectionStart = this.selectionEnd = -1;
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ this.hideRightMenu();
|
|
+ return;
|
|
+ } else if (e.getActionCommand() == this.textSaveItem.getActionCommand()) {
|
|
+ new ChatSavePart(this._string);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ if (doClean) {
|
|
+ StringTokenizer st = new StringTokenizer(text, " \n\r", true);
|
|
+ String newText = "";
|
|
+
|
|
+ while(st.hasMoreTokens()) {
|
|
+ String word = st.nextToken();
|
|
+ if (!this.handleTag((Graphics)null, word, 0, 0)) {
|
|
+ newText = newText + word;
|
|
+ } else {
|
|
+ if (newText.length() > 0 && newText.substring(newText.length() - 1).toCharArray()[0] == ' ') {
|
|
+ newText = newText.substring(0, newText.length() - 1);
|
|
+ }
|
|
+
|
|
+ if (st.hasMoreTokens()) {
|
|
+ st.nextToken();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ text = newText;
|
|
+ }
|
|
|
|
- this.setScrollBounds();
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void setScrollBounds() {
|
|
- FontMetrics var1 = this._canvas.getFontMetrics(this._font);
|
|
- Debug.dAssert(var1 != null);
|
|
- int var2 = var1.getHeight();
|
|
- this._canvasLines = this._height / var2;
|
|
- if (this._vertBar != null) {
|
|
- if (this._numLines <= this._canvasLines) {
|
|
- this._vertBar.setEnabled(false);
|
|
- } else {
|
|
- this._vertBar.setEnabled(true);
|
|
- this._vertBar.setValues(this._scrollLine, this._canvasLines, 0, this._numLines);
|
|
- this._vertBar.setBlockIncrement(this._canvasLines);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void append(String var1) {
|
|
- this._string = this._string + var1;
|
|
- this.wordWrap(var1);
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
- this._scrollLine = 0;
|
|
- }
|
|
-
|
|
- this.setScrollBounds();
|
|
- }
|
|
-
|
|
- public void replaceRange(String var1, int var2, int var3) {
|
|
- String var4 = this._string.substring(0, var2) + var1 + this._string.substring(var3);
|
|
- this._string = var4;
|
|
- }
|
|
-
|
|
- public void drawLine(Graphics var1, int var2, int var3) {
|
|
- String var4 = (String)this._lines.elementAt(var2);
|
|
- Debug.dAssert(var4 != null);
|
|
- StringTokenizer var5 = new StringTokenizer(var4, " \n\r", true);
|
|
- int var6 = 0;
|
|
- int var7 = 0;
|
|
-
|
|
- while(var5.hasMoreTokens()) {
|
|
- String var8 = var5.nextToken();
|
|
- if (!this.handleTag(var8)) {
|
|
- var1.drawString(var8, 2 + var6, var3 + 2);
|
|
- var7 = var1.getFontMetrics().stringWidth(var8);
|
|
- var6 += var7;
|
|
- } else {
|
|
- var6 -= var7;
|
|
- if (var5.hasMoreTokens()) {
|
|
- var5.nextToken();
|
|
- }
|
|
-
|
|
- var7 = 0;
|
|
- var1.setFont(this._font);
|
|
- var1.setColor(this._currentColor);
|
|
- }
|
|
- }
|
|
-
|
|
- this.ClearTags(var1);
|
|
- }
|
|
-
|
|
- static {
|
|
- tagList = new String[]{boldStartTag, boldEndTag, italicStartTag, italicEndTag, colorStartMagentaTag, colorStartRedTag, colorStartGreenTag, colorStartBlueTag, colorEndTag, colorMagenta2Tag, colorBlue2Tag, colorRed2Tag, colorGreen2Tag, colorCyanTag, colorDarkGrayTag, colorGrayTag, colorOrangeTag, colorPinkTag, colorYellowTag, colorWhiteTag, colorLightGrayTag};
|
|
- }
|
|
+ if (text != null && text.length() > 0) {
|
|
+ Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
|
+ clipboard.setContents(new StringSelection(text), (ClipboardOwner)null);
|
|
+ }
|
|
+
|
|
+ this.hideRightMenu();
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ tagList = new String[]{boldStartTag, boldEndTag, italicStartTag, italicEndTag, colorStartMagentaTag, colorStartRedTag, colorStartGreenTag, colorStartBlueTag, colorEndTag, colorMagenta2Tag, colorBlue2Tag, colorRed2Tag, colorGreen2Tag, colorCyanTag, colorDarkGrayTag, colorGrayTag, colorOrangeTag, colorPinkTag, colorYellowTag, colorWhiteTag, colorLightGrayTag};
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/console/HiddenDrone.java b/1890/NET/worlds/console/HiddenDrone.java
|
|
--- a/1890/NET/worlds/console/HiddenDrone.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worlds/console/HiddenDrone.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,4 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+public interface HiddenDrone {
|
|
+}
|
|
diff -ruN a/1890/NET/worlds/console/MuteListPart.java b/1890/NET/worlds/console/MuteListPart.java
|
|
--- a/1890/NET/worlds/console/MuteListPart.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/console/MuteListPart.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -7,242 +7,284 @@
|
|
import NET.worlds.network.WorldServer;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.FrameEvent;
|
|
-import java.awt.Container;
|
|
-import java.awt.Event;
|
|
-import java.awt.MenuItem;
|
|
-import java.text.MessageFormat;
|
|
+
|
|
+import java.awt.*;
|
|
+import java.awt.Window;
|
|
import java.util.Enumeration;
|
|
import java.util.StringTokenizer;
|
|
import java.util.Vector;
|
|
|
|
public class MuteListPart implements FramePart, NameListOwner {
|
|
- private static final String oldIniItemName = "Mutes";
|
|
- private static final String iniItemName = "Mute";
|
|
- private static final int maxMutes = 50;
|
|
- private static final String separator = ";";
|
|
- private static MuteListPart active;
|
|
- private Vector mutes;
|
|
- private Vector syncMutes = new Vector();
|
|
- private MenuItem editItem;
|
|
- private MenuItem disableWhisperItem;
|
|
- private boolean rejectWhispers;
|
|
- private DefaultConsole console;
|
|
- private Galaxy galaxy;
|
|
- private IniFile serverSection;
|
|
- private Object mutesMutex = new Object();
|
|
- private Vector updates = new Vector();
|
|
-
|
|
- private void loadMutes() {
|
|
- this.mutes = new Vector();
|
|
-
|
|
- String var2;
|
|
- for(int var1 = 0; var1 < 50; ++var1) {
|
|
- var2 = this.serverSection.getIniString("Mute" + var1, "");
|
|
- if (var2.length() == 0) {
|
|
- break;
|
|
- }
|
|
-
|
|
- if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.mutes, var2)) {
|
|
- this.mutes.addElement(var2);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.mutes.size() == 0) {
|
|
- var2 = this.serverSection.getIniString("Mutes", "");
|
|
- StringTokenizer var3 = new StringTokenizer(var2, ";");
|
|
-
|
|
- while(var3.hasMoreTokens() && this.mutes.size() < 50) {
|
|
- String var4 = var3.nextToken();
|
|
- if (FriendsListPart.isValidUserName(var4) && !FriendsListPart.icontains(this.mutes, var4)) {
|
|
- this.mutes.addElement(var4);
|
|
+ private static final String oldIniItemName = "Mutes";
|
|
+ private static final String iniItemName = "Mute";
|
|
+ private static final String separator = ";";
|
|
+ private static MuteListPart active;
|
|
+ private Vector mutes;
|
|
+ private Vector tars;
|
|
+ private Vector syncMutes = new Vector();
|
|
+ private MenuItem editItem;
|
|
+ private boolean rejectWhispers;
|
|
+ private boolean rejectTeleports;
|
|
+ private DefaultConsole console;
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private Object mutesMutex = new Object();
|
|
+ private Object tarMutex = new Object();
|
|
+ private Vector updates = new Vector();
|
|
+ public static RejectHandler rej = new RejectHandler();
|
|
+
|
|
+ public MuteListPart() {
|
|
+ System.out.println("Mutes Loaded");
|
|
+ }
|
|
+
|
|
+ private void loadMutes() {
|
|
+ this.mutes = new Vector();
|
|
+ this.tars = new Vector();
|
|
+
|
|
+ for(int var1 = 0; var1 < Integer.MAX_VALUE; ++var1) {
|
|
+ String var2 = this.serverSection.getIniString("Mute" + var1, "");
|
|
+ if (var2.length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.mutes, var2)) {
|
|
+ this.mutes.addElement(var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ for(int var1 = 0; var1 < Integer.MAX_VALUE; ++var1) {
|
|
+ String var2 = this.serverSection.getIniString("Tar" + var1, "");
|
|
+ if (var2.length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.tars, var2)) {
|
|
+ this.tars.addElement(var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.mutes.size() == 0) {
|
|
+ String var4 = this.serverSection.getIniString("Mutes", "");
|
|
+ StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
+
|
|
+ while(var5.hasMoreTokens() && this.mutes.size() < 50) {
|
|
+ String var3 = var5.nextToken();
|
|
+ if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.mutes, var3)) {
|
|
+ this.mutes.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.mutes.size() != 0) {
|
|
+ this.saveMutes();
|
|
+ this.serverSection.setIniString("Mutes", "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() == 0) {
|
|
+ String var4 = this.serverSection.getIniString("Tars", "");
|
|
+ StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
+
|
|
+ while(var5.hasMoreTokens() && this.tars.size() < 50) {
|
|
+ String var3 = var5.nextToken();
|
|
+ if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.tars, var3)) {
|
|
+ this.tars.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() != 0) {
|
|
+ this.saveTars();
|
|
+ this.serverSection.setIniString("Tars", "");
|
|
}
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- if (this.mutes.size() != 0) {
|
|
+ void saveMutes() {
|
|
+ int var2 = this.mutes.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ this.serverSection.setIniString("Mute" + var3, (String)this.mutes.elementAt(var3));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Mute" + var2, "");
|
|
+ }
|
|
+
|
|
+ void saveTars() {
|
|
+ int var2 = this.tars.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ this.serverSection.setIniString("Tar" + var3, (String)this.tars.elementAt(var3));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Tar" + var2, "");
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)var1;
|
|
+ this.editItem = var1.addMenuItem(Console.message("Edit-Mute-List"), "Options");
|
|
+ this.editItem.setEnabled(this.mutes != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if (var1.target == this.editItem) {
|
|
+ new EditNamesDialog(this, Console.message("Edit-Mute-List"), Console.message("Add-Mute-List"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ int var3 = this.updates.size();
|
|
+ if (var3 != 0) {
|
|
+ WorldServer var4 = this.console.getServerNew();
|
|
+ if (var4 != null) {
|
|
+ for(int var5 = 0; var5 < var3; ++var5) {
|
|
+ String var6 = (String)this.updates.elementAt(var5);
|
|
+ boolean var7 = this.mutes.contains(var6);
|
|
+ NetworkObject var8 = var4.getObject(new ObjID(var6));
|
|
+ if (var8 instanceof Drone) {
|
|
+ Drone var9 = (Drone)var8;
|
|
+ var9.muteStateChanged();
|
|
+ }
|
|
+
|
|
+ this.console.getFriends().changeMuteState(var6, var7);
|
|
+ }
|
|
+
|
|
+ this.updates.removeAllElements();
|
|
+ this.syncMutes = (Vector)this.mutes.clone();
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ this.loadMutes();
|
|
+ if (this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean isMuted(WorldServer var0, String var1) {
|
|
+ if (var0 != null && var1 != null) {
|
|
+ Galaxy var2 = var0.getGalaxy();
|
|
+ Enumeration var3 = var2.getConsoles();
|
|
+
|
|
+ while(var3.hasMoreElements()) {
|
|
+ Object var4 = var3.nextElement();
|
|
+ if (var4 instanceof DefaultConsole) {
|
|
+ NET.worlds.console.MuteListPart var5 = ((DefaultConsole)var4).getMutes();
|
|
+ if (var5.mutes != null) {
|
|
+ return FriendsListPart.icontains(var5.mutes, var1);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static boolean isRejecting(WorldServer var0, String var5) {
|
|
+ if (var0 != null) {
|
|
+ Galaxy var1 = var0.getGalaxy();
|
|
+ Enumeration var2 = var1.getConsoles();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof DefaultConsole) {
|
|
+ MuteListPart var4 = ((DefaultConsole)var3).getMutes();
|
|
+ return var4.rejectWhispers || !allowWhisper(var5);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static boolean isRejectingTele(WorldServer var0, String var5) {
|
|
+ if (var0 != null) {
|
|
+ Galaxy var1 = var0.getGalaxy();
|
|
+ Enumeration var2 = var1.getConsoles();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof DefaultConsole) {
|
|
+ MuteListPart var4 = ((DefaultConsole)var3).getMutes();
|
|
+ return var4.rejectTeleports || !allowTeleport(var5);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ private static boolean allowWhisper(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && FriendsListPart.icontains(FriendsListPart.friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ private static boolean allowTeleport(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && FriendsListPart.icontains(FriendsListPart.friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.mutes.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int var1) {
|
|
+ return (String)this.mutes.elementAt(var1);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ String var3 = (String)this.mutes.elementAt(var1);
|
|
+ this.mutes.removeElementAt(var1);
|
|
this.saveMutes();
|
|
- this.serverSection.setIniString("Mutes", "");
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- void saveMutes() {
|
|
- String var1 = "";
|
|
- int var2 = this.mutes.size();
|
|
-
|
|
- for(int var3 = 0; var3 < var2; ++var3) {
|
|
- this.serverSection.setIniString("Mute" + var3, (String)this.mutes.elementAt(var3));
|
|
- }
|
|
-
|
|
- this.serverSection.setIniString("Mute" + var2, "");
|
|
- }
|
|
-
|
|
- private void setDisableWhisper() {
|
|
- this.rejectWhispers = IniFile.gamma().getIniInt("RejectWhispers", 0) == 1;
|
|
- if (this.rejectWhispers) {
|
|
- this.disableWhisperItem.setLabel(Console.message("Accept-Whispers"));
|
|
- } else {
|
|
- this.disableWhisperItem.setLabel(Console.message("Reject-Whispers"));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void activate(Console var1, Container var2, Console var3) {
|
|
- active = this;
|
|
- this.console = (DefaultConsole)var1;
|
|
- this.editItem = var1.addMenuItem(Console.message("Edit-Mute-List"), "Options");
|
|
- this.editItem.setEnabled(this.mutes != null);
|
|
- this.disableWhisperItem = var1.addMenuItem(Console.message("Reject-Whispers"), "Options");
|
|
- this.setDisableWhisper();
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- active = null;
|
|
- this.editItem = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- if (var1.target == this.editItem) {
|
|
- new EditNamesDialog(this, Console.message("Edit-Mute-List"), Console.message("Add-Mute-List"));
|
|
- return true;
|
|
- } else {
|
|
- if (var1.target == this.disableWhisperItem) {
|
|
- IniFile.gamma().setIniInt("RejectWhispers", this.rejectWhispers ? 0 : 1);
|
|
- this.setDisableWhisper();
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent var1) {
|
|
- Object var2 = this.mutesMutex;
|
|
- synchronized(var2) {
|
|
- int var3 = this.updates.size();
|
|
- if (var3 != 0) {
|
|
- WorldServer var4 = this.console.getServerNew();
|
|
- if (var4 != null) {
|
|
- for(int var5 = 0; var5 < var3; ++var5) {
|
|
- String var6 = (String)this.updates.elementAt(var5);
|
|
- boolean var7 = this.mutes.contains(var6);
|
|
- NetworkObject var8 = var4.getObject(new ObjID(var6));
|
|
- if (var8 instanceof Drone) {
|
|
- Drone var9 = (Drone)var8;
|
|
- var9.muteStateChanged();
|
|
- }
|
|
-
|
|
- this.console.getFriends().changeMuteState(var6, var7);
|
|
- }
|
|
-
|
|
- this.updates.removeAllElements();
|
|
- this.syncMutes = (Vector)this.mutes.clone();
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void setServer(WorldServer var1, IniFile var2) {
|
|
- this.serverSection = var2;
|
|
- this.galaxy = var1.getGalaxy();
|
|
- this.loadMutes();
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isMuted(WorldServer var0, String var1) {
|
|
- if (var0 != null && var1 != null) {
|
|
- Galaxy var2 = var0.getGalaxy();
|
|
- Enumeration var3 = var2.getConsoles();
|
|
-
|
|
- while(var3.hasMoreElements()) {
|
|
- Object var4 = var3.nextElement();
|
|
- if (var4 instanceof DefaultConsole) {
|
|
- MuteListPart var5 = ((DefaultConsole)var4).getMutes();
|
|
- if (var5.mutes != null) {
|
|
- return FriendsListPart.icontains(var5.mutes, var1);
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public static boolean isRejecting(WorldServer var0) {
|
|
- if (var0 != null) {
|
|
- Galaxy var1 = var0.getGalaxy();
|
|
- Enumeration var2 = var1.getConsoles();
|
|
-
|
|
- while(var2.hasMoreElements()) {
|
|
- Object var3 = var2.nextElement();
|
|
- if (var3 instanceof DefaultConsole) {
|
|
- MuteListPart var4 = ((DefaultConsole)var3).getMutes();
|
|
- if (var4.rejectWhispers) {
|
|
- return true;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public int getNameListCount() {
|
|
- return this.mutes.size();
|
|
- }
|
|
-
|
|
- public String getNameListName(int var1) {
|
|
- return (String)this.mutes.elementAt(var1);
|
|
- }
|
|
-
|
|
- public void removeNameListName(int var1) {
|
|
- Object var2 = this.mutesMutex;
|
|
- synchronized(var2) {
|
|
- String var3 = (String)this.mutes.elementAt(var1);
|
|
- this.mutes.removeElementAt(var1);
|
|
- this.saveMutes();
|
|
- if (!this.updates.contains(var3)) {
|
|
- this.updates.addElement(var3);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mayAddNameListName(java.awt.Window var1) {
|
|
- if (this.mutes.size() < 50) {
|
|
- return true;
|
|
- } else {
|
|
- Object[] var2 = new Object[]{new String("50")};
|
|
- new OkCancelDialog(var1, (DialogReceiver)null, Console.message("Too-many-names"), (String)null, Console.message("OK"), MessageFormat.format(Console.message("You-are-limitedM"), var2), true);
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public int addNameListName(String var1) {
|
|
- Object var2 = this.mutesMutex;
|
|
- synchronized(var2) {
|
|
- if (var1.toLowerCase().startsWith("host")) {
|
|
- byte var3 = -1;
|
|
- return var3;
|
|
- } else {
|
|
- int var4 = FriendsListPart.iindexOf(this.mutes, var1);
|
|
- if (var4 != -1) {
|
|
- return var4;
|
|
+ if (!this.updates.contains(var3)) {
|
|
+ this.updates.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window var1) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ if (var1.toLowerCase().startsWith("host")) {
|
|
+ return -1;
|
|
} else {
|
|
- this.mutes.addElement(var1);
|
|
- this.saveMutes();
|
|
- if (!this.updates.contains(var1)) {
|
|
- this.updates.addElement(var1);
|
|
- }
|
|
-
|
|
- int var6 = this.mutes.size() - 1;
|
|
- return var6;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
+ int var3 = FriendsListPart.iindexOf(this.mutes, var1);
|
|
+ if (var3 != -1) {
|
|
+ return var3;
|
|
+ } else {
|
|
+ this.mutes.addElement(var1);
|
|
+ this.saveMutes();
|
|
+ if (!this.updates.contains(var1)) {
|
|
+ this.updates.addElement(var1);
|
|
+ }
|
|
+
|
|
+ return this.mutes.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/console/OpenWhisperDialog.java b/1890/NET/worlds/console/OpenWhisperDialog.java
|
|
--- a/1890/NET/worlds/console/OpenWhisperDialog.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worlds/console/OpenWhisperDialog.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,83 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by FernFlower decompiler)
|
|
+//
|
|
+
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.awt.Button;
|
|
+import java.awt.Event;
|
|
+import java.awt.Font;
|
|
+import java.awt.GridBagConstraints;
|
|
+import java.awt.GridBagLayout;
|
|
+import java.awt.Label;
|
|
+import java.awt.Panel;
|
|
+import java.awt.TextField;
|
|
+import java.awt.Window;
|
|
+
|
|
+public class OpenWhisperDialog extends PolledDialog {
|
|
+ private Button okButton = new Button(Console.message("OK"));
|
|
+ private Button cancelButton = new Button(Console.message("Cancel"));
|
|
+ private static Font font = new Font(Console.message("MenuFont"), 0, 12);
|
|
+ private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
+ private TextField userField = new TextField("");
|
|
+
|
|
+ public OpenWhisperDialog(Window var1, DialogReceiver var2, String var3) {
|
|
+ super(var1, var2, var3, true);
|
|
+ this.ready();
|
|
+ }
|
|
+
|
|
+ public String getUser() {
|
|
+ return this.userField.getText();
|
|
+ }
|
|
+
|
|
+ protected void build() {
|
|
+ this.userField = new TextField("", 40);
|
|
+ this.userField.setFont(font);
|
|
+ GridBagLayout var1 = new GridBagLayout();
|
|
+ this.setLayout(var1);
|
|
+ GridBagConstraints var2 = new GridBagConstraints();
|
|
+ var2.fill = 0;
|
|
+ var2.weightx = 1.0D;
|
|
+ var2.weighty = 1.0D;
|
|
+ var2.gridwidth = 2;
|
|
+ var2.gridheight = 1;
|
|
+ this.add(var1, new Label(Console.message("Name")), var2);
|
|
+ var2.gridwidth = 0;
|
|
+ var2.fill = 2;
|
|
+ this.add(var1, this.userField, var2);
|
|
+ Panel var3 = new Panel();
|
|
+ this.okButton.setFont(font);
|
|
+ this.cancelButton.setFont(font);
|
|
+ var3.add(this.okButton);
|
|
+ var3.add(this.cancelButton);
|
|
+ var2.gridwidth = 0;
|
|
+ var2.fill = 0;
|
|
+ this.add(var1, var3, var2);
|
|
+ }
|
|
+
|
|
+ public void show() {
|
|
+ super.show();
|
|
+ this.userField.requestFocus();
|
|
+ this.userField.selectAll();
|
|
+ }
|
|
+
|
|
+ public boolean handleEvent(Event var1) {
|
|
+ return var1.id == 201 ? this.done(false) : super.handleEvent(var1);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ Object var3 = var1.target;
|
|
+ if (var3 == this.cancelButton) {
|
|
+ this.done(false);
|
|
+ } else if (var3 == this.okButton) {
|
|
+ this.done(true);
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public boolean keyDown(Event var1, int var2) {
|
|
+ return var2 == 27 ? this.done(false) : super.keyDown(var1, var2);
|
|
+ }
|
|
+}
|
|
diff -ruN a/1890/NET/worlds/console/RejectHandler.java b/1890/NET/worlds/console/RejectHandler.java
|
|
--- a/1890/NET/worlds/console/RejectHandler.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worlds/console/RejectHandler.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,37 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.util.ArrayList;
|
|
+import java.util.List;
|
|
+
|
|
+public class RejectHandler {
|
|
+
|
|
+ List whisperRej = null;
|
|
+ List teleportRej = null;
|
|
+
|
|
+ public RejectHandler () {
|
|
+ if (whisperRej == null) {
|
|
+ whisperRej = new ArrayList();
|
|
+ whisperRej.add("WORLDSMASTER");
|
|
+ }
|
|
+ if (teleportRej == null) {
|
|
+ teleportRej = new ArrayList();
|
|
+ teleportRej.add("WORLDSMASTER");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean rejectTeleport(String var1) {
|
|
+ return teleportRej.contains(var1);
|
|
+ }
|
|
+
|
|
+ public void addTeleportUser(String var1) {
|
|
+ teleportRej.add(var1);
|
|
+ }
|
|
+
|
|
+ public boolean rejectWhisper(String var1) {
|
|
+ return whisperRej.contains(var1);
|
|
+ }
|
|
+
|
|
+ public void addWhisperUser(String var1) {
|
|
+ whisperRej.add(var1);
|
|
+ }
|
|
+}
|
|
diff -ruN a/1890/NET/worlds/console/Shaper.java b/1890/NET/worlds/console/Shaper.java
|
|
--- a/1890/NET/worlds/console/Shaper.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/console/Shaper.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,5 +1,6 @@
|
|
package NET.worlds.console;
|
|
|
|
+import NET.worlds.core.IniFile;
|
|
import NET.worlds.network.URL;
|
|
import NET.worlds.scape.LoadedURLSelf;
|
|
import NET.worlds.scape.Manifest;
|
|
@@ -9,271 +10,340 @@
|
|
import NET.worlds.scape.TeleportStatus;
|
|
import NET.worlds.scape.URLSelf;
|
|
import NET.worlds.scape.World;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
import java.awt.Container;
|
|
import java.awt.Event;
|
|
import java.awt.Menu;
|
|
import java.awt.MenuItem;
|
|
+import java.awt.event.ActionEvent;
|
|
+import java.awt.event.ActionListener;
|
|
+import java.io.FileWriter;
|
|
import java.io.IOException;
|
|
import java.util.Enumeration;
|
|
|
|
public class Shaper implements MainCallback, DialogReceiver, LoadedURLSelf {
|
|
- MenuItem newItem;
|
|
- MenuItem openItem;
|
|
- MenuItem saveItem;
|
|
- MenuItem propItem;
|
|
- MenuItem consolePropItem;
|
|
- MenuItem pilotPropItem;
|
|
- MenuItem undoItem;
|
|
- MenuItem cutItem;
|
|
- MenuItem copyItem;
|
|
- MenuItem pasteItem;
|
|
- MenuItem sortAttributesItem;
|
|
- MenuItem snapToolItem;
|
|
- MenuItem newLibraryItem;
|
|
- MenuItem newLibraryEntryItem;
|
|
- MenuItem iconsVisibleLibraryItem;
|
|
- Menu worldsMenu;
|
|
- MenuItem shaperVisibleItem;
|
|
- private World newWorldTemplate;
|
|
- private boolean makeNew = true;
|
|
- private static URL newworld = URL.make("home:NewWorld.world");
|
|
- private boolean quitFlag;
|
|
- private FileSaver fileSaver;
|
|
- private boolean worldListHasChanged = false;
|
|
-
|
|
- public Shaper() {
|
|
- Main.register(this);
|
|
- }
|
|
-
|
|
- public void activate(Console var1, Container var2, Console var3) {
|
|
- this.newItem = var1.addMenuItem(Console.message("New"), "File", 78, false);
|
|
- this.openItem = var1.addMenuItem(Console.message("Open"), "File", 79, false);
|
|
- this.saveItem = var1.addMenuItem(Console.message("Save"), "File", 83, false);
|
|
- this.propItem = var1.addMenuItem(Console.message("World-Prop"), "File");
|
|
- this.consolePropItem = var1.addMenuItem(Console.message("Console-Prop"), "File");
|
|
- this.pilotPropItem = var1.addMenuItem(Console.message("Pilot-Prop"), "File");
|
|
- this.undoItem = var1.addMenuItem(Console.message("Undo"), "Edit", 90, false);
|
|
- var1.getMenu("Edit").addSeparator();
|
|
- this.cutItem = var1.addMenuItem(Console.message("Cut"), "Edit", 88, false);
|
|
- this.copyItem = var1.addMenuItem(Console.message("Copy"), "Edit", 67, false);
|
|
- this.pasteItem = var1.addMenuItem(Console.message("Paste"), "Edit", 86, false);
|
|
- this.sortAttributesItem = var1.addMenuItem(Console.message("Sort-Attributes"), "Edit");
|
|
- this.snapToolItem = var1.addMenuItem(Console.message("Snap-Tool-Settings"), "Edit");
|
|
- this.newLibraryItem = var1.addMenuItem(Console.message("New-Library"), "Libraries");
|
|
- this.newLibraryEntryItem = var1.addMenuItem(Console.message("New-Library-Entry"), "Libraries");
|
|
- this.iconsVisibleLibraryItem = var1.addMenuItem(Console.message("Icons-On-Off"), "Libraries", 73, false);
|
|
- this.worldsMenu = var1.getMenu("Worlds");
|
|
- this.worldListChange();
|
|
- this.shaperVisibleItem = var1.addMenuItem(Console.message("Shaper-On-Off"), "Options");
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- this.worldsMenu = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- GammaFrame var3 = Console.getFrame();
|
|
- if (var1.target == this.newItem) {
|
|
- this.makeNew = true;
|
|
- } else if (var1.target == this.openItem) {
|
|
- new FileSysDialog(var3, this, Console.message("Open-World"), 0, "World Save Files|*.world|World Class Files|*.class|World Files|*.class;*.world", "", true);
|
|
- } else if (var1.target == this.saveItem) {
|
|
- new FileSysDialog(var3, this, Console.message("Save-World"), 1, "World Save Files|*.world|World Manifest (text) Files|*.mft", this.getSaveName(), true);
|
|
- } else if (var1.target == this.propItem) {
|
|
- if (Pilot.getActiveRoom() != null) {
|
|
- var3.getEditTile().viewProperties(Pilot.getActiveWorld());
|
|
- }
|
|
- } else if (var1.target == this.consolePropItem) {
|
|
- var3.getEditTile().viewProperties(Console.getActive());
|
|
- } else if (var1.target == this.pilotPropItem) {
|
|
- var3.getEditTile().viewProperties(Pilot.getActive());
|
|
- } else if (var1.target == this.sortAttributesItem) {
|
|
- new AttributeSortPanel(var3);
|
|
- } else if (var1.target == this.snapToolItem) {
|
|
- new SnapToolPanel(var3);
|
|
- } else if (var1.target == this.undoItem) {
|
|
- var3.getEditTile().undo();
|
|
- } else if (var1.target == this.cutItem) {
|
|
- var3.getEditTile().cut();
|
|
- } else if (var1.target == this.copyItem) {
|
|
- var3.getEditTile().copy();
|
|
- } else if (var1.target == this.pasteItem) {
|
|
- var3.getEditTile().paste();
|
|
- } else if (var1.target == this.newLibraryItem) {
|
|
- var3.getLibrariesTile().addLibrary();
|
|
- } else if (var1.target == this.newLibraryEntryItem) {
|
|
- var3.getLibrariesTile().addElement();
|
|
- } else if (var1.target == this.iconsVisibleLibraryItem) {
|
|
- var3.getLibrariesTile().setIconsVisible(!var3.getLibrariesTile().isIconsVisible());
|
|
- } else if (var1.target == this.shaperVisibleItem) {
|
|
- var3.setShaperVisible(!var3.isShaperVisible());
|
|
- } else {
|
|
- int var4 = this.worldsMenu.countItems();
|
|
-
|
|
- do {
|
|
- --var4;
|
|
- } while(var4 >= 0 && this.worldsMenu.getItem(var4) != var1.target);
|
|
-
|
|
- if (var4 < 0) {
|
|
+ MenuItem newItem;
|
|
+ MenuItem openItem;
|
|
+ MenuItem saveItem;
|
|
+ MenuItem propItem;
|
|
+ MenuItem consolePropItem;
|
|
+ MenuItem pilotPropItem;
|
|
+ MenuItem undoItem;
|
|
+ MenuItem cutItem;
|
|
+ MenuItem copyItem;
|
|
+ MenuItem pasteItem;
|
|
+ MenuItem sortAttributesItem;
|
|
+ MenuItem snapToolItem;
|
|
+ MenuItem newLibraryItem;
|
|
+ MenuItem newLibraryEntryItem;
|
|
+ MenuItem iconsVisibleLibraryItem;
|
|
+ Menu worldsMenu;
|
|
+ Menu whisperMenu;
|
|
+ MenuItem openWhisperItem;
|
|
+ MenuItem shaperVisibleItem;
|
|
+ private World newWorldTemplate;
|
|
+ private boolean makeNew = true;
|
|
+ private static URL newworld = URL.make("home:NewWorld.world");
|
|
+ private boolean quitFlag;
|
|
+ private FileSaver fileSaver;
|
|
+ private boolean worldListHasChanged = false;
|
|
+ private boolean whisperListHasChanged = false;
|
|
+
|
|
+ public Shaper() {
|
|
+ Main.register(this);
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ this.newItem = var1.addMenuItem(Console.message("New"), "File", 78, false);
|
|
+ this.openItem = var1.addMenuItem(Console.message("Open"), "File", 79, false);
|
|
+ this.saveItem = var1.addMenuItem(Console.message("Save"), "File", 83, false);
|
|
+ this.propItem = var1.addMenuItem(Console.message("World-Prop"), "File");
|
|
+ this.consolePropItem = var1.addMenuItem(Console.message("Console-Prop"), "File");
|
|
+ this.pilotPropItem = var1.addMenuItem(Console.message("Pilot-Prop"), "File");
|
|
+ this.undoItem = var1.addMenuItem(Console.message("Undo"), "Edit", 90, false);
|
|
+ var1.getMenu("Edit").addSeparator();
|
|
+ this.cutItem = var1.addMenuItem(Console.message("Cut"), "Edit", 88, false);
|
|
+ this.copyItem = var1.addMenuItem(Console.message("Copy"), "Edit", 67, false);
|
|
+ this.pasteItem = var1.addMenuItem(Console.message("Paste"), "Edit", 86, false);
|
|
+ this.sortAttributesItem = var1.addMenuItem(Console.message("Sort-Attributes"), "Edit");
|
|
+ this.snapToolItem = var1.addMenuItem(Console.message("Snap-Tool-Settings"), "Edit");
|
|
+ this.newLibraryItem = var1.addMenuItem(Console.message("New-Library"), "Libraries");
|
|
+ this.newLibraryEntryItem = var1.addMenuItem(Console.message("New-Library-Entry"), "Libraries");
|
|
+ this.iconsVisibleLibraryItem = var1.addMenuItem(Console.message("Icons-On-Off"), "Libraries", 73, false);
|
|
+ this.worldsMenu = var1.getMenu("Worlds");
|
|
+ this.whisperMenu = var1.getMenu("Whispers");
|
|
+ this.openWhisperItem = var1.addMenuItem(Console.message("Open Whisper"), "Whispers");
|
|
+ this.whisperMenu.addSeparator();
|
|
+
|
|
+ this.worldListChange();
|
|
+ this.whisperListChanged();
|
|
+
|
|
+ this.shaperVisibleItem = var1.addMenuItem(Console.message("Shaper-On-Off"), "Options");
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ this.worldsMenu = null;
|
|
+ this.whisperMenu = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ GammaFrame var3 = Console.getFrame();
|
|
+ if (var1.target == this.newItem) {
|
|
+ this.makeNew = true;
|
|
+ } else if (var1.target == this.openItem) {
|
|
+ new FileSysDialog(var3, this, Console.message("Open-World"), 0, "World Save Files|*.world|World Class Files|*.class|World Files|*.class;*.world", "", true);
|
|
+ } else if (var1.target == this.saveItem) {
|
|
+ new FileSysDialog(var3, this, Console.message("Save-World"), 1, "World Save Files|*.world|World Manifest (text) Files|*.mft", this.getSaveName(), true);
|
|
+ } else if (var1.target == this.propItem) {
|
|
+ if (Pilot.getActiveRoom() != null) {
|
|
+ var3.getEditTile().viewProperties(Pilot.getActiveWorld());
|
|
+ }
|
|
+ } else if (var1.target == this.consolePropItem) {
|
|
+ var3.getEditTile().viewProperties(Console.getActive());
|
|
+ } else if (var1.target == this.pilotPropItem) {
|
|
+ var3.getEditTile().viewProperties(Pilot.getActive());
|
|
+ } else if (var1.target == this.sortAttributesItem) {
|
|
+ new AttributeSortPanel(var3);
|
|
+ } else if (var1.target == this.snapToolItem) {
|
|
+ new SnapToolPanel(var3);
|
|
+ } else if (var1.target == this.undoItem) {
|
|
+ var3.getEditTile().undo();
|
|
+ } else if (var1.target == this.cutItem) {
|
|
+ var3.getEditTile().cut();
|
|
+ } else if (var1.target == this.copyItem) {
|
|
+ var3.getEditTile().copy();
|
|
+ } else if (var1.target == this.pasteItem) {
|
|
+ var3.getEditTile().paste();
|
|
+ } else if (var1.target == this.newLibraryItem) {
|
|
+ var3.getLibrariesTile().addLibrary();
|
|
+ } else if (var1.target == this.newLibraryEntryItem) {
|
|
+ var3.getLibrariesTile().addElement();
|
|
+ } else if (var1.target == this.iconsVisibleLibraryItem) {
|
|
+ var3.getLibrariesTile().setIconsVisible(!var3.getLibrariesTile().isIconsVisible());
|
|
+ } else if (var1.target == this.openWhisperItem) {
|
|
+ new OpenWhisperDialog(var3, this, Console.message("open-whisper"));
|
|
+ } else if (var1.target == this.shaperVisibleItem) {
|
|
+ var3.setShaperVisible(!var3.isShaperVisible());
|
|
+ } else {
|
|
return false;
|
|
- }
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public String getSaveName() {
|
|
+ return getSaveName(Pilot.getActive().getWorld());
|
|
+ }
|
|
+
|
|
+ public static String getSaveName(World var0) {
|
|
+ URL var1 = var0.getSourceURL();
|
|
+ String var2 = var1.unalias();
|
|
+ int var3 = var2.indexOf(58);
|
|
+ return var3 != -1 && var3 != 1 ? var1.getBase() : var2.replace('/', '\\');
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var2) {
|
|
+ if (var1 instanceof FileSysDialog) {
|
|
+ FileSysDialog var3 = (FileSysDialog) var1;
|
|
+ String var4 = var3.fileName();
|
|
+ if (var3.getMode() == 0) {
|
|
+ TeleportAction.teleport(var4, (TeleportStatus) null, true);
|
|
+ } else {
|
|
+ this.doSave(var4);
|
|
+ }
|
|
+ } else if (var1 instanceof OpenWhisperDialog) {
|
|
+ Console.startWhispering(((OpenWhisperDialog)var1).getUser());
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
+ this.newWorldTemplate = (World)var1;
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ if (this.quitFlag) {
|
|
+ if (this.fileSaver == null) {
|
|
+ this.fileSaver = new FileSaver();
|
|
+ }
|
|
+
|
|
+ switch(this.fileSaver.getState()) {
|
|
+ case 0:
|
|
+ GammaFrameState.saveBorder();
|
|
+ Main.end();
|
|
+ break;
|
|
+ case 2:
|
|
+ this.quitFlag = false;
|
|
+ this.fileSaver = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.newWorldTemplate != null) {
|
|
+ this.newWorldTemplate.incRef();
|
|
+ }
|
|
+
|
|
+ if (this.makeNew) {
|
|
+ this.makeNew = false;
|
|
+ if (this.newWorldTemplate == null) {
|
|
+ World.load(newworld, this, true);
|
|
+ } else {
|
|
+ World var1 = (World)this.newWorldTemplate.clone();
|
|
+ var1.setEdited(true);
|
|
+ TeleportAction.teleport(var1.getSourceURL().getAbsolute(), (TeleportStatus)null);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.worldListHasChanged) {
|
|
+ this.worldListHasChanged = false;
|
|
+ this.rebuildWorldsMenu();
|
|
+ }
|
|
+
|
|
+ if (this.whisperListHasChanged) {
|
|
+ this.whisperListHasChanged = false;
|
|
+ this.rebuildWhisperMenu();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void maybeQuit() {
|
|
+ this.quitFlag = true;
|
|
+ }
|
|
+
|
|
+ public void worldListChange() {
|
|
+ this.worldListHasChanged = true;
|
|
+ }
|
|
+
|
|
+ private void rebuildWorldsMenu() {
|
|
+ if (this.worldsMenu != null) {
|
|
+ while(this.worldsMenu.getItemCount() > 0) {
|
|
+ this.worldsMenu.remove(0);
|
|
+ }
|
|
+
|
|
+ Enumeration var1 = World.getWorlds();
|
|
+
|
|
+ while(true) {
|
|
+ World var2;
|
|
+ URL var3;
|
|
+ String var4;
|
|
+ do {
|
|
+ if (!var1.hasMoreElements()) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ var2 = (World)var1.nextElement();
|
|
+ var3 = var2.getSourceURL();
|
|
+ if (var3 == null) {
|
|
+ var4 = var2.getName();
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ var4 = var3.getAbsolute();
|
|
+ } while(var3.equals(newworld));
|
|
+
|
|
+ if (var2.getEdited()) {
|
|
+ var4 = var4 + " (changed)";
|
|
+ }
|
|
+
|
|
+ MenuItem newItem = new MenuItem(var4);
|
|
+ newItem.addActionListener(new ActionListener() {
|
|
+
|
|
+ public void actionPerformed(ActionEvent actionEvent) {
|
|
+ String var5 = ((MenuItem)actionEvent.getSource()).getLabel();
|
|
+ if (var5.endsWith(" (changed)")) {
|
|
+ var5 = var5.substring(0, var5.length() - 10);
|
|
+ }
|
|
+
|
|
+ TeleportAction.teleport(var5, (TeleportStatus) null);
|
|
+ }
|
|
+ });
|
|
+
|
|
+ this.worldsMenu.add(newItem);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void whisperListChanged() {
|
|
+ this.whisperListHasChanged = true;
|
|
+ }
|
|
+
|
|
+ private void rebuildWhisperMenu() {
|
|
+ if (this.whisperMenu != null) {
|
|
+ while(this.whisperMenu.getItemCount() - 2 > 0) {
|
|
+ this.whisperMenu.remove(2);
|
|
+ }
|
|
+
|
|
+ Enumeration var1 = WhisperManager.whisperManager().dialogs().elements();
|
|
+
|
|
+
|
|
+ while(true) {
|
|
+ WhisperDialog var2;
|
|
+ String var4;
|
|
+
|
|
+ do {
|
|
+ if (!var1.hasMoreElements()) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ var2 = (WhisperDialog) var1.nextElement();
|
|
+ var4 = var2.partner;
|
|
+ } while (var4 == null);
|
|
+
|
|
+ MenuItem newItem = new MenuItem(var4);
|
|
+ newItem.addActionListener(new ActionListener() {
|
|
+
|
|
+ public void actionPerformed(ActionEvent actionEvent) {
|
|
+ Console.startWhispering(((MenuItem)actionEvent.getSource()).getLabel());
|
|
+ }
|
|
+ });
|
|
+
|
|
+ this.whisperMenu.add(newItem);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void doSave(String var1) {
|
|
+ doSave(var1, Pilot.getActive().getWorld(), true);
|
|
+ }
|
|
+
|
|
+ public static boolean doSave(String var0, World var1, boolean var2) {
|
|
+ if (var2 && var0.endsWith(".mft")) {
|
|
+ try {
|
|
+ Manifest var6 = new Manifest(var0);
|
|
+ var6.saveProps(var1);
|
|
+ var6.done();
|
|
+ return true;
|
|
+ } catch (IOException var4) {
|
|
+ Console.println(Console.message("Error-manifest") + var4.toString());
|
|
+ }
|
|
+ } else {
|
|
+ if (var0.toLowerCase().endsWith(".wor")) {
|
|
+ var0 = var0.substring(0, var0.length() - 4);
|
|
+ }
|
|
+
|
|
+ if (!var0.toLowerCase().endsWith(".world")) {
|
|
+ var0 = var0 + ".world";
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ Saver var3 = new Saver(new URL(URL.getCurDir(), var0));
|
|
+ var3.save(var1);
|
|
+ var3.done();
|
|
+ var1.setEdited(false);
|
|
+ return true;
|
|
+ } catch (IOException var5) {
|
|
+ Console.println(Console.message("Error-saving") + var5.toString());
|
|
+ }
|
|
+ }
|
|
|
|
- String var5 = (String)var2;
|
|
- if (var5.endsWith(" (changed)")) {
|
|
- var5 = var5.substring(0, var5.length() - 10);
|
|
- }
|
|
-
|
|
- TeleportAction.teleport(var5, (TeleportStatus)null);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public String getSaveName() {
|
|
- return getSaveName(Pilot.getActive().getWorld());
|
|
- }
|
|
-
|
|
- public static String getSaveName(World var0) {
|
|
- URL var1 = var0.getSourceURL();
|
|
- String var2 = var1.unalias();
|
|
- int var3 = var2.indexOf(58);
|
|
- return var3 != -1 && var3 != 1 ? var1.getBase() : var2.replace('/', '\\');
|
|
- }
|
|
-
|
|
- public void dialogDone(Object var1, boolean var2) {
|
|
- if (var2) {
|
|
- FileSysDialog var3 = (FileSysDialog)var1;
|
|
- String var4 = var3.fileName();
|
|
- if (var3.getMode() == 0) {
|
|
- TeleportAction.teleport(var4, (TeleportStatus)null, true);
|
|
- } else {
|
|
- this.doSave(var4);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
- this.newWorldTemplate = (World)var1;
|
|
- }
|
|
-
|
|
- public void mainCallback() {
|
|
- if (this.quitFlag) {
|
|
- if (this.fileSaver == null) {
|
|
- this.fileSaver = new FileSaver();
|
|
- }
|
|
-
|
|
- switch(this.fileSaver.getState()) {
|
|
- case 0:
|
|
- GammaFrameState.saveBorder();
|
|
- Main.end();
|
|
- break;
|
|
- case 2:
|
|
- this.quitFlag = false;
|
|
- this.fileSaver = null;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.newWorldTemplate != null) {
|
|
- this.newWorldTemplate.incRef();
|
|
- }
|
|
-
|
|
- if (this.makeNew) {
|
|
- this.makeNew = false;
|
|
- if (this.newWorldTemplate == null) {
|
|
- World.load(newworld, this, true);
|
|
- } else {
|
|
- World var1 = (World)this.newWorldTemplate.clone();
|
|
- var1.setEdited(true);
|
|
- TeleportAction.teleport(var1.getSourceURL().getAbsolute(), (TeleportStatus)null);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.worldListHasChanged) {
|
|
- this.worldListHasChanged = false;
|
|
- this.rebuildWorldsMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void maybeQuit() {
|
|
- this.quitFlag = true;
|
|
- }
|
|
-
|
|
- public void worldListChange() {
|
|
- this.worldListHasChanged = true;
|
|
- }
|
|
-
|
|
- private void rebuildWorldsMenu() {
|
|
- if (this.worldsMenu != null) {
|
|
- while(this.worldsMenu.countItems() > 0) {
|
|
- this.worldsMenu.remove(0);
|
|
- }
|
|
-
|
|
- Enumeration var1 = World.getWorlds();
|
|
-
|
|
- while(true) {
|
|
- World var2;
|
|
- URL var3;
|
|
- String var4;
|
|
- do {
|
|
- if (!var1.hasMoreElements()) {
|
|
- return;
|
|
- }
|
|
-
|
|
- var2 = (World)var1.nextElement();
|
|
- var3 = var2.getSourceURL();
|
|
- if (var3 == null) {
|
|
- var4 = var2.getName();
|
|
- break;
|
|
- }
|
|
-
|
|
- var4 = var3.getAbsolute();
|
|
- } while(var3.equals(newworld));
|
|
-
|
|
- if (var2.getEdited()) {
|
|
- var4 = var4 + " (changed)";
|
|
- }
|
|
-
|
|
- this.worldsMenu.add(new MenuItem(var4));
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void doSave(String var1) {
|
|
- doSave(var1, Pilot.getActive().getWorld(), true);
|
|
- }
|
|
-
|
|
- public static boolean doSave(String var0, World var1, boolean var2) {
|
|
- if (var2 && var0.endsWith(".mft")) {
|
|
- try {
|
|
- Manifest var6 = new Manifest(var0);
|
|
- var6.saveProps(var1);
|
|
- var6.done();
|
|
- return true;
|
|
- } catch (IOException var4) {
|
|
- Console.println(Console.message("Error-manifest") + var4.toString());
|
|
- }
|
|
- } else {
|
|
- if (var0.toLowerCase().endsWith(".wor")) {
|
|
- var0 = var0.substring(0, var0.length() - 4);
|
|
- }
|
|
-
|
|
- if (!var0.toLowerCase().endsWith(".world")) {
|
|
- var0 = var0 + ".world";
|
|
- }
|
|
-
|
|
- try {
|
|
- Saver var3 = new Saver(new URL(URL.getCurDir(), var0));
|
|
- var3.save(var1);
|
|
- var3.done();
|
|
- var1.setEdited(false);
|
|
- return true;
|
|
- } catch (IOException var5) {
|
|
- Console.println(Console.message("Error-saving") + var5.toString());
|
|
- }
|
|
- }
|
|
+ return false;
|
|
+ }
|
|
|
|
- return false;
|
|
- }
|
|
+ private boolean containsItem(Menu menu, MenuItem item) {
|
|
+ for (int e = 0; e < menu.getItemCount(); e++) {
|
|
+ MenuItem curItem = menu.getItem(e);
|
|
+ System.out.println(curItem + " / " + item);
|
|
+ if (curItem == item) return true;
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/console/StyledTextCanvas.java b/1890/NET/worlds/console/StyledTextCanvas.java
|
|
--- a/1890/NET/worlds/console/StyledTextCanvas.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/console/StyledTextCanvas.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,5 +1,6 @@
|
|
package NET.worlds.console;
|
|
|
|
+import NET.worlds.core.IniFile;
|
|
import java.awt.Canvas;
|
|
import java.awt.Color;
|
|
import java.awt.FontMetrics;
|
|
@@ -11,88 +12,196 @@
|
|
import java.awt.event.MouseEvent;
|
|
|
|
class StyledTextCanvas extends Canvas {
|
|
- public StyledTextCanvas() {
|
|
- this.enableEvents(29L);
|
|
- this.setEnabled(true);
|
|
- }
|
|
-
|
|
- public void setBounds(int var1, int var2, int var3, int var4) {
|
|
- if (this.getParent() instanceof GammaTextArea) {
|
|
- GammaTextArea var5 = (GammaTextArea)this.getParent();
|
|
- var5.setWidth(var3);
|
|
- var5.setHeight(var4);
|
|
- var5.rewrap();
|
|
- }
|
|
-
|
|
- super.setBounds(var1, var2, var3, var4);
|
|
- }
|
|
-
|
|
- protected void processMouseEvent(MouseEvent var1) {
|
|
- if (var1.getID() == 500) {
|
|
- this.getParent().requestFocus();
|
|
- }
|
|
-
|
|
- super.processMouseEvent(var1);
|
|
- }
|
|
-
|
|
- protected void processKeyEvent(KeyEvent var1) {
|
|
- if (var1.getID() == 401) {
|
|
- Scrollbar var2 = null;
|
|
- if (this.getParent() instanceof GammaTextArea) {
|
|
- GammaTextArea var3 = (GammaTextArea)this.getParent();
|
|
- var2 = var3.getVertScrollbar();
|
|
- }
|
|
-
|
|
- if (var1.getKeyCode() == 33) {
|
|
- if (var2 != null && var2.isEnabled()) {
|
|
- var2.dispatchEvent(var1);
|
|
+ private static final long serialVersionUID = -2680423246934436331L;
|
|
+ private MouseEvent delayedMouseEvent = null;
|
|
+ protected int mouseX = -1;
|
|
+ protected int mouseY = -1;
|
|
+ protected int startX = -1;
|
|
+ protected int startY = -1;
|
|
+ protected int endX = -1;
|
|
+ protected int endY = -1;
|
|
+ protected long mouseWhen = 0L;
|
|
+ protected boolean mouseActive = false;
|
|
+ protected boolean mouseDoubleClick = false;
|
|
+ protected static long doubleClickSpeed = (long)IniFile.override().getIniInt("DoubleClickSpeed", 300);
|
|
+
|
|
+ public StyledTextCanvas() {
|
|
+ this.enableEvents(61L);
|
|
+ this.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ public void sendDelayedMouseEvent(MouseEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ this.delayedMouseEvent = e;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void setBounds(int x, int y, int w, int h) {
|
|
+ if (this.getParent() != null && w >= 0 && h >= 0) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (this.getParent() instanceof GammaTextArea) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ gta.setWidth(w);
|
|
+ gta.setHeight(h);
|
|
+ gta.rewrap();
|
|
+ }
|
|
+
|
|
+ super.setBounds(x, y, w, h);
|
|
}
|
|
- } else if (var1.getKeyCode() == 34 && var2 != null && var2.isEnabled()) {
|
|
- var2.dispatchEvent(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- super.processKeyEvent(var1);
|
|
- }
|
|
-
|
|
- public void update(Graphics var1) {
|
|
- this.paint(var1);
|
|
- }
|
|
-
|
|
- public void paint(Graphics var1) {
|
|
- if (this.getParent().isEnabled()) {
|
|
- GammaTextArea var2 = (GammaTextArea)this.getParent();
|
|
- Rectangle var3 = this.getBounds();
|
|
- Image var4 = this.createImage(var3.width, var3.height);
|
|
- Graphics var5 = var4.getGraphics();
|
|
- var5.setColor(GammaTextArea.getBackgroundColor());
|
|
- var5.fillRect(var3.x, var3.y, var3.width, var3.height);
|
|
- var5.setColor(Color.black);
|
|
- if (var2.getHasFocus()) {
|
|
- var5.setColor(Color.blue);
|
|
- var5.drawRect(var3.x, var3.y, var3.width - 1, var3.height - 1);
|
|
- var5.drawRect(var3.x + 1, var3.y + 1, var3.width - 2, var3.height - 2);
|
|
- var5.setColor(Color.black);
|
|
- }
|
|
-
|
|
- var5.setFont(var2.getFont());
|
|
- FontMetrics var6 = var5.getFontMetrics(var2.getFont());
|
|
- int var7;
|
|
- if (var2.getNumLines() <= var2.getCanvasLines()) {
|
|
- for(var7 = 0; var7 < var2.getNumLines(); ++var7) {
|
|
- var2.drawLine(var5, var7, (var7 + 1) * var6.getHeight());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ protected void processMouseMotionEvent(MouseEvent e) {
|
|
+ if (e.getID() == 506 && this.mouseActive) {
|
|
+ this.processMouseEvent(e);
|
|
+ }
|
|
+
|
|
+ super.processMouseMotionEvent(e);
|
|
+ }
|
|
+
|
|
+ protected void processMouseEvent(MouseEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (e.getID() == 500) {
|
|
+ if (this.mouseWhen > 0L && e.getWhen() - this.mouseWhen <= doubleClickSpeed) {
|
|
+ this.mouseDoubleClick = true;
|
|
+ this.mouseWhen = 0L;
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ this.getParent().repaint();
|
|
+ } else {
|
|
+ this.mouseDoubleClick = false;
|
|
+ this.mouseWhen = e.getWhen();
|
|
+ if (e.getButton() == 1 && !this.mouseActive && (e.getModifiers() & 1) == 0) {
|
|
+ ((GammaTextArea)this.getParent()).selectionStart = -1;
|
|
+ ((GammaTextArea)this.getParent()).selectionEnd = -1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ } else if (e.getID() == 501) {
|
|
+ if (e.getButton() == 1) {
|
|
+ if ((e.getModifiers() & 1) == 0) {
|
|
+ if (((GammaTextArea)this.getParent()).selectionStart >= 0 && ((GammaTextArea)this.getParent()).selectionEnd > ((GammaTextArea)this.getParent()).selectionStart) {
|
|
+ ((GammaTextArea)this.getParent()).selectionStart = -1;
|
|
+ ((GammaTextArea)this.getParent()).selectionEnd = -1;
|
|
+ } else {
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ this.mouseActive = true;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ }
|
|
+ } else {
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ this.mouseActive = true;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ }
|
|
+
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ } else if (!this.mouseActive || e.getID() != 506 && e.getID() != 507 && e.getID() != 507) {
|
|
+ if (e.getID() == 502) {
|
|
+ if (e.getButton() == 1 && this.mouseActive) {
|
|
+ this.mouseX = this.endX = e.getX();
|
|
+ this.mouseY = this.endY = e.getY();
|
|
+ this.mouseActive = false;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = false;
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ }
|
|
+ } else {
|
|
+ if ((e.getModifiers() & 16) != 0) {
|
|
+ this.mouseX = this.endX = e.getX();
|
|
+ this.mouseY = this.endY = e.getY();
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
}
|
|
- } else {
|
|
- var7 = var2.getScrollLine();
|
|
|
|
- for(int var8 = 1; var7 < var2.getNumLines(); ++var8) {
|
|
- var2.drawLine(var5, var7, var8 * var6.getHeight());
|
|
- ++var7;
|
|
+ ((GammaTextArea)this.getParent()).processMouseEvent(e);
|
|
+ super.processMouseEvent(e);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void update(Graphics g) {
|
|
+ this.paint(g);
|
|
+ }
|
|
+
|
|
+ protected void processKeyEvent(KeyEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (e.getID() == 401) {
|
|
+ Scrollbar s = null;
|
|
+ if (this.getParent() instanceof GammaTextArea) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ s = gta.getVertScrollbar();
|
|
+ }
|
|
+
|
|
+ if (e.getKeyCode() == 33) {
|
|
+ if (s != null && s.isEnabled()) {
|
|
+ s.dispatchEvent(e);
|
|
+ }
|
|
+ } else if (e.getKeyCode() == 34 && s != null && s.isEnabled()) {
|
|
+ s.dispatchEvent(e);
|
|
+ }
|
|
}
|
|
- }
|
|
|
|
- var1.drawImage(var4, 0, 0, this);
|
|
- }
|
|
+ super.processKeyEvent(e);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void paint(Graphics g) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (this.getParent().isEnabled()) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ Rectangle r = this.getBounds();
|
|
+ if (r.width <= 0 || r.height <= 0) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ Image offImage = this.createImage(r.width, r.height);
|
|
+ Graphics offGraphic = offImage.getGraphics();
|
|
+ offGraphic.setColor(GammaTextArea.getBackgroundColor());
|
|
+ offGraphic.fillRect(r.x, r.y, r.width, r.height);
|
|
+ offGraphic.setColor(Color.black);
|
|
+ if (gta.getHasFocus()) {
|
|
+ offGraphic.setColor(Color.blue);
|
|
+ offGraphic.drawRect(r.x, r.y, r.width - 1, r.height - 1);
|
|
+ offGraphic.drawRect(r.x + 1, r.y + 1, r.width - 2, r.height - 2);
|
|
+ offGraphic.setColor(Color.black);
|
|
+ }
|
|
+
|
|
+ offGraphic.setFont(gta.getFont());
|
|
+ FontMetrics fm = offGraphic.getFontMetrics(gta.getFont());
|
|
+ gta._curpos = 0;
|
|
+ int i;
|
|
+ if (gta.getNumLines() <= gta.getCanvasLines()) {
|
|
+ for(i = 0; i < gta.getNumLines(); ++i) {
|
|
+ gta.drawLine(offGraphic, i, (i + 1) * fm.getHeight() - fm.getDescent());
|
|
+ }
|
|
+ } else {
|
|
+ i = gta.getScrollLine();
|
|
+
|
|
+ for(int j = 1; i < gta.getNumLines(); ++j) {
|
|
+ gta.drawLine(offGraphic, i, j * fm.getHeight() - fm.getDescent());
|
|
+ ++i;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ g.drawImage(offImage, 0, 0, this);
|
|
+ if (this.delayedMouseEvent != null) {
|
|
+ this.processMouseEvent(this.delayedMouseEvent);
|
|
+ this.delayedMouseEvent = null;
|
|
+ }
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/console/TarListPart.java b/1890/NET/worlds/console/TarListPart.java
|
|
--- a/1890/NET/worlds/console/TarListPart.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worlds/console/TarListPart.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,204 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import NET.worlds.core.IniFile;
|
|
+import NET.worlds.network.Galaxy;
|
|
+import NET.worlds.network.NetworkObject;
|
|
+import NET.worlds.network.ObjID;
|
|
+import NET.worlds.network.WorldServer;
|
|
+import NET.worlds.scape.Drone;
|
|
+import NET.worlds.scape.FrameEvent;
|
|
+
|
|
+import java.awt.Window;
|
|
+import java.awt.*;
|
|
+import java.util.Enumeration;
|
|
+import java.util.StringTokenizer;
|
|
+import java.util.Vector;
|
|
+
|
|
+public class TarListPart implements FramePart, NameListOwner{
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private final String name = Console.message("edit-tar-list");
|
|
+ private static TarListPart active;
|
|
+ private DefaultConsole console;
|
|
+ private MenuItem editItem;
|
|
+ private Vector syncTars = new Vector();
|
|
+ public Vector tars;
|
|
+ private Object tarMutex = new Object();
|
|
+ private Vector updates = new Vector();
|
|
+
|
|
+ public void activate(Console console, Container container, Console console1) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)console;
|
|
+ this.editItem = console.addMenuItem(name, "Options");
|
|
+ this.editItem.setEnabled(this.tars != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event event, Object o) {
|
|
+ if (event.target == this.editItem) {
|
|
+ new EditNamesDialog(this, name, Console.message("add-to-tar"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent frameEvent) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ int var3 = this.updates.size();
|
|
+ if (var3 != 0) {
|
|
+ WorldServer var4 = this.console.getServerNew();
|
|
+ if (var4 != null) {
|
|
+ for(int var5 = 0; var5 < var3; ++var5) {
|
|
+ String var6 = (String)this.updates.elementAt(var5);
|
|
+ boolean var7 = this.tars.contains(var6);
|
|
+ NetworkObject var8 = var4.getObject(new ObjID(var6));
|
|
+ if (var8 instanceof Drone) {
|
|
+ Drone var9 = (Drone)var8;
|
|
+ var9.avtStateChanged();
|
|
+ }
|
|
+
|
|
+ this.console.getFriends().changeMuteState(var6, var7);
|
|
+ }
|
|
+
|
|
+ this.updates.removeAllElements();
|
|
+ this.syncTars = (Vector)this.tars.clone();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.tars.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int i) {
|
|
+ return (String)this.tars.elementAt(i);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int i) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ String var3 = (String)this.tars.elementAt(i);
|
|
+ this.tars.removeElementAt(i);
|
|
+ this.saveTars();
|
|
+ if (!this.updates.contains(var3)) {
|
|
+ this.updates.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window window) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String s) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ int var3 = TarListPart.iindexOf(this.tars, s);
|
|
+ if (var3 != -1) {
|
|
+ return var3;
|
|
+ } else {
|
|
+ this.tars.addElement(s);
|
|
+ this.saveTars();
|
|
+ if (!this.updates.contains(s)) {
|
|
+ this.updates.addElement(s);
|
|
+ }
|
|
+
|
|
+ return this.tars.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void loadTars() {
|
|
+ this.tars = new Vector();
|
|
+
|
|
+ for(int var1 = 0; var1 < 50; ++var1) {
|
|
+ String var2 = this.serverSection.getIniString("Tar" + var1, "");
|
|
+ if (var2.length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.tars, var2)) {
|
|
+ this.tars.addElement(var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() == 0) {
|
|
+ String var4 = this.serverSection.getIniString("Tars", "");
|
|
+ StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
+
|
|
+ while(var5.hasMoreTokens() && this.tars.size() < 50) {
|
|
+ String var3 = var5.nextToken();
|
|
+ if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.tars, var3)) {
|
|
+ this.tars.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() != 0) {
|
|
+ this.saveTars();
|
|
+ this.serverSection.setIniString("Tars", "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ void saveTars() {
|
|
+ String var1 = "";
|
|
+ int var2 = this.tars.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ this.serverSection.setIniString("Tar" + var3, (String)this.tars.elementAt(var3));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Tar" + var2, "");
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ this.loadTars();
|
|
+ if (this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isTarred(WorldServer ws, String s) {
|
|
+ if (ws != null && s != null) {
|
|
+ Galaxy var2 = ws.getGalaxy();
|
|
+ Enumeration var3 = var2.getConsoles();
|
|
+
|
|
+ while(var3.hasMoreElements()) {
|
|
+ Object var4 = var3.nextElement();
|
|
+ if (var4 instanceof DefaultConsole) {
|
|
+ TarListPart var5 = ((DefaultConsole)var4).getTars();
|
|
+ if (var5.tars != null) {
|
|
+ return TarListPart.icontains(var5.tars, s);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static int iindexOf(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return -1;
|
|
+ }
|
|
+
|
|
+ public static boolean icontains(Vector var0, String var1) {
|
|
+ return iindexOf(var0, var1) != -1;
|
|
+ }
|
|
+}
|
|
diff -ruN a/1890/NET/worlds/console/WhisperManager.java b/1890/NET/worlds/console/WhisperManager.java
|
|
--- a/1890/NET/worlds/console/WhisperManager.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/console/WhisperManager.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,7 +1,11 @@
|
|
package NET.worlds.console;
|
|
|
|
-import NET.worlds.network.NetUpdate;
|
|
import NET.worlds.scape.InventoryManager;
|
|
+import NET.worlds.scape.Pilot;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
+import java.awt.Window;
|
|
+import java.io.IOException;
|
|
import java.util.Enumeration;
|
|
import java.util.Hashtable;
|
|
|
|
@@ -9,102 +13,129 @@
|
|
private static WhisperManager manager_;
|
|
private Hashtable dialogs_ = new Hashtable();
|
|
private Hashtable tradeDialogs_ = new Hashtable();
|
|
- private java.awt.Window parent;
|
|
+ private Window parent;
|
|
private String inventory = "";
|
|
final String tradeServerName = "TRADE";
|
|
- static GiftDialog outstandingGift;
|
|
|
|
- private WhisperManager() {
|
|
+
|
|
+ private WhisperManager()
|
|
+ {
|
|
+ this.dialogs_ = new Hashtable();
|
|
+ this.tradeDialogs_ = new Hashtable();
|
|
}
|
|
|
|
- public static WhisperManager whisperManager() {
|
|
+ public static WhisperManager whisperManager()
|
|
+ {
|
|
if (manager_ == null) {
|
|
manager_ = new WhisperManager();
|
|
}
|
|
-
|
|
return manager_;
|
|
}
|
|
|
|
- void setParent(java.awt.Window var1) {
|
|
- this.parent = var1;
|
|
+ void setParent(Window p)
|
|
+ {
|
|
+ this.parent = p;
|
|
}
|
|
|
|
- public Hashtable dialogs() {
|
|
+ public Hashtable dialogs()
|
|
+ {
|
|
return this.dialogs_;
|
|
}
|
|
|
|
- public Hashtable tradeDialogs() {
|
|
+ public Hashtable tradeDialogs()
|
|
+ {
|
|
return this.tradeDialogs_;
|
|
}
|
|
|
|
- private WhisperDialog findWhisperDialog(String var1) {
|
|
- return !this.dialogs_.containsKey(var1) ? null : (WhisperDialog)this.dialogs_.get(var1);
|
|
+ private WhisperDialog findWhisperDialog(String to)
|
|
+ {
|
|
+ if (!this.dialogs_.containsKey(to)) {
|
|
+ return null;
|
|
+ }
|
|
+ return (WhisperDialog)this.dialogs_.get(to);
|
|
}
|
|
|
|
- private TradeDialog findTradeDialog(String var1) {
|
|
- return !this.tradeDialogs_.containsKey(var1) ? null : (TradeDialog)this.tradeDialogs_.get(var1);
|
|
+ private TradeDialog findTradeDialog(String to)
|
|
+ {
|
|
+ if (!this.tradeDialogs_.containsKey(to)) {
|
|
+ return null;
|
|
+ }
|
|
+ return (TradeDialog)this.tradeDialogs_.get(to);
|
|
}
|
|
|
|
- private WhisperDialog start(String var1, boolean var2) {
|
|
- WhisperDialog var3 = this.findWhisperDialog(var1);
|
|
- if (var3 == null) {
|
|
- this.dialogs_.put(var1, var3 = new WhisperDialog(this.parent, var1));
|
|
+ private WhisperDialog start(String to, boolean takeFocus)
|
|
+ {
|
|
+ WhisperDialog wd = findWhisperDialog(to);
|
|
+ if (wd == null) {
|
|
+ this.dialogs_.put(to, wd = new WhisperDialog(this.parent, to));
|
|
}
|
|
-
|
|
- if (var2) {
|
|
- var3.takeFocus();
|
|
+ if (takeFocus) {
|
|
+ wd.takeFocus();
|
|
}
|
|
-
|
|
- var3.ready();
|
|
- return var3;
|
|
+ wd.ready();
|
|
+ if (Gamma.shaperEnabled()) Gamma.shaper.whisperListChanged();
|
|
+ return wd;
|
|
}
|
|
|
|
- public void remove(String var1) {
|
|
- this.dialogs_.remove(var1);
|
|
+ public void remove(String name)
|
|
+ {
|
|
+ this.dialogs_.remove(name);
|
|
}
|
|
|
|
- public void startTo(String var1) {
|
|
- this.start(var1, true);
|
|
+ public void startTo(String to)
|
|
+ {
|
|
+ WhisperDialog wd = start(to, true);
|
|
}
|
|
|
|
- public TradeDialog startToTrade(String var1) {
|
|
- TradeDialog var2 = this.findTradeDialog(var1);
|
|
- if (var2 == null) {
|
|
- this.tradeDialogs_.put(var1, var2 = new TradeDialog(this.parent, var1));
|
|
+ public TradeDialog startToTrade(String to) {
|
|
+ TradeDialog wd = findTradeDialog(to);
|
|
+ if (wd == null) {
|
|
+ this.tradeDialogs_.put(to, wd = new TradeDialog(this.parent, to));
|
|
}
|
|
+ wd.takeFocus();
|
|
+ wd.ready();
|
|
+ wd.setTrading(true);
|
|
+ wd.whisperPart.println(Console.message("trade-start"));
|
|
|
|
- var2.takeFocus();
|
|
- var2.ready();
|
|
- var2.setTrading(true);
|
|
- var2.whisperPart.println(Console.message("trade-start"));
|
|
- return var2;
|
|
+ return wd;
|
|
}
|
|
|
|
- public void printFrom(String var1, String var2) {
|
|
- if (var2.startsWith("&|+")) {
|
|
- if (var2.startsWith("&|+gift>") && var1.equalsIgnoreCase("TRADE")) {
|
|
- maybeQueryGift(var2.substring(8));
|
|
- } else if (var2.startsWith("&|+inv>") && var1.equalsIgnoreCase("TRADE")) {
|
|
- this.tradeMsg(var2.substring(7));
|
|
- } else if (var2.startsWith("&|+trade>")) {
|
|
- TradeDialog var4 = this.findTradeDialog(var1);
|
|
- if (var2.equals("&|+trade>cancel") && (var4 == null || !var4.isActive() || !var4.isTrading)) {
|
|
- return;
|
|
- }
|
|
-
|
|
- var4 = this.startToTrade(var1);
|
|
- var4.print(var2);
|
|
+ public void printFrom(String from, String msg) {
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveWhisper(from, Console.getActive().getLongID(), msg);
|
|
+ } catch (IOException e) {
|
|
+ e.printStackTrace();
|
|
+ }
|
|
+ if (!msg.startsWith("&|+"))
|
|
+ {
|
|
+ WhisperDialog it = findWhisperDialog(from);
|
|
+ if ((msg.equals("&|+trade>cancel")) && (
|
|
+ (it == null) || (!it.isActive()) || (!it.isTrading))) {
|
|
+ return;
|
|
}
|
|
- } else {
|
|
- WhisperDialog var3 = this.findWhisperDialog(var1);
|
|
- if (var2.equals("&|+trade>cancel") && (var3 == null || !var3.isActive() || !var3.isTrading)) {
|
|
+ it = start(from, false);
|
|
+ it.print(msg);
|
|
+ }
|
|
+ else if ((msg.startsWith("&|+gift>")) &&
|
|
+ (from.equalsIgnoreCase("TRADE")))
|
|
+ {
|
|
+ maybeQueryGift(msg.substring(8));
|
|
+ }
|
|
+ else if ((msg.startsWith("&|+inv>")) &&
|
|
+ (from.equalsIgnoreCase("TRADE")))
|
|
+ {
|
|
+ tradeMsg(msg.substring(7));
|
|
+ }
|
|
+ else if (msg.startsWith("&|+trade>"))
|
|
+ {
|
|
+ TradeDialog it = findTradeDialog(from);
|
|
+ if ((msg.equals("&|+trade>cancel")) && (
|
|
+ (it == null) || (!it.isActive()) || (!it.isTrading))) {
|
|
return;
|
|
}
|
|
-
|
|
- var3 = this.start(var1, false);
|
|
- var3.print(var2);
|
|
+ it = startToTrade(from);
|
|
+ it.print(msg);
|
|
}
|
|
-
|
|
}
|
|
|
|
public void tradeMsg(String var1) {
|
|
@@ -122,26 +153,23 @@
|
|
}
|
|
|
|
public void printTo(String var1, String var2) {
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveWhisper(Console.getActive().getLongID(), var1, var2);
|
|
+ } catch (IOException e) {
|
|
+ e.printStackTrace();
|
|
+ }
|
|
if (!var1.equals("world") && !var1.equals("TRADE")) {
|
|
if (!var2.startsWith("&|+") || var2.startsWith("&|+trade>")) {
|
|
WhisperDialog var3 = this.start(var1, false);
|
|
var3.send(var2);
|
|
}
|
|
-
|
|
}
|
|
}
|
|
|
|
- public void giftDialogDone() {
|
|
- outstandingGift = null;
|
|
- }
|
|
-
|
|
- public static void maybeQueryGift(String var0) {
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- Console var1 = Console.getActive();
|
|
- if (var1 != null && outstandingGift == null && !var1.isSleeping()) {
|
|
- outstandingGift = new GiftDialog(var0, 3000000);
|
|
- }
|
|
-
|
|
+ public static void maybeQueryGift(String inv) {
|
|
+ Console c = Console.getActive();
|
|
+ if ((c != null)) {
|
|
+ TradeDialog.sendTradeMessage("&|+deal>TRADE ," + inv);
|
|
}
|
|
}
|
|
}
|
|
diff -ruN a/1890/NET/worlds/core/IniFile.java b/1890/NET/worlds/core/IniFile.java
|
|
--- a/1890/NET/worlds/core/IniFile.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/core/IniFile.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -4,7 +4,7 @@
|
|
String file;
|
|
String section;
|
|
static boolean initialized = false;
|
|
- private static IniFile gamma_ = null;
|
|
+ private static final IniFile gamma_ = null;
|
|
private static IniFile override_ = null;
|
|
|
|
public IniFile(String var1) {
|
|
@@ -17,17 +17,37 @@
|
|
this.section = var2;
|
|
}
|
|
|
|
- public static IniFile gamma() {
|
|
- if (gamma_ == null) {
|
|
- gamma_ = new IniFile("Gamma");
|
|
+ public static IniFile ini(String name) {
|
|
+ return ini(gamma_, name);
|
|
+ }
|
|
+
|
|
+ public static IniFile ini(IniFile ini, String name) {
|
|
+ if (!initialized) {
|
|
+ nativeInit();
|
|
+ initialized = true;
|
|
+ }
|
|
+
|
|
+ if (ini == null) {
|
|
+ ini = new IniFile(name);
|
|
}
|
|
+ return ini;
|
|
+ }
|
|
+
|
|
+ public static IniFile modPlus() { return ini("WorldsPlus"); }
|
|
+
|
|
+ public static IniFile modColorfulTags() { return ini("ColorfulTags"); }
|
|
|
|
+ public static IniFile modChatLog() { return ini("ChatLog"); }
|
|
+
|
|
+ public static IniFile modPrivacy() { return ini("Privacy"); }
|
|
+
|
|
+ public static IniFile gamma() {
|
|
if (!initialized) {
|
|
nativeInit();
|
|
initialized = true;
|
|
}
|
|
|
|
- return gamma_;
|
|
+ return ini(gamma_, "Gamma");
|
|
}
|
|
|
|
public static IniFile override() {
|
|
diff -ruN a/1890/NET/worlds/network/textCmd.java b/1890/NET/worlds/network/textCmd.java
|
|
--- a/1890/NET/worlds/network/textCmd.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/network/textCmd.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,14 +1,12 @@
|
|
package NET.worlds.network;
|
|
|
|
-import NET.worlds.console.BBChatCommand;
|
|
-import NET.worlds.console.BlackBox;
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.GammaTextArea;
|
|
-import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.console.*;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.Pilot;
|
|
import NET.worlds.scape.PosableDrone;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
import java.io.IOException;
|
|
|
|
public class textCmd extends receivedNetPacket {
|
|
@@ -17,13 +15,14 @@
|
|
protected String _text;
|
|
|
|
public textCmd() {
|
|
- super._commandType = 14;
|
|
+ this._commandType = 14;
|
|
}
|
|
|
|
public textCmd(String var1) {
|
|
super((ObjID)null, 14);
|
|
this._senderID = new ObjID("");
|
|
this._text = var1;
|
|
+
|
|
}
|
|
|
|
void parseNetData(ServerInputStream var1) throws IOException {
|
|
@@ -53,8 +52,13 @@
|
|
}
|
|
}
|
|
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveRoom(this._senderID.longID(), this._text);
|
|
+ } catch (IOException e) {
|
|
+ e.printStackTrace();
|
|
+ }
|
|
handleActionText(var1, this._text, var2, this._senderID);
|
|
- if (!this._text.startsWith("&|+")) {
|
|
+ if (!this._text.startsWith("&|+") || (IniFile.gamma().getIniInt("DisableAction2", 1) == 1 && this._text.startsWith("&|+action2>"))) {
|
|
this.displayText(var2, this._text);
|
|
}
|
|
|
|
@@ -108,7 +112,7 @@
|
|
((PosableDrone)var4).animate(var5);
|
|
}
|
|
|
|
- if (var1.startsWith("&|+action2>")) {
|
|
+ if (var1.startsWith("&|+action2>") && IniFile.gamma().getIniInt("DisableAction2", 1) == 0) {
|
|
int var9 = var1.indexOf("|sender|");
|
|
var5 = null;
|
|
String var6 = null;
|
|
diff -ruN a/1890/NET/worlds/network/whisperCmd.java b/1890/NET/worlds/network/whisperCmd.java
|
|
--- a/1890/NET/worlds/network/whisperCmd.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/network/whisperCmd.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -3,63 +3,84 @@
|
|
import NET.worlds.console.Console;
|
|
import NET.worlds.console.FriendsListPart;
|
|
import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.core.IniFile;
|
|
import NET.worlds.scape.WorldScriptManager;
|
|
+import NET.worlds.console.RejectHandler;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
+import java.io.IOException;
|
|
import java.text.MessageFormat;
|
|
|
|
public class whisperCmd extends textCmd {
|
|
- public static final byte WHISPERCMD = 17;
|
|
- private static String rejectMsg = Console.message("not-whispers");
|
|
+ public static final byte WHISPERCMD = 17;
|
|
+ private static String whisperRejMSG = Console.message("not-whispers");
|
|
+ private static String teleportRejMSG = Console.message("not-teleports");
|
|
+ private static String reject = Console.message("rejected");
|
|
+ RejectHandler rej = MuteListPart.rej;
|
|
+
|
|
+ public whisperCmd() {
|
|
+ this._commandType = 17;
|
|
+ }
|
|
+
|
|
+ public whisperCmd(String var1, String msg) {
|
|
+ super(msg);
|
|
+ WorldScriptManager.getInstance().onConversation(var1, msg);
|
|
+ this._commandType = 17;
|
|
+ this._objID = new ObjID(var1);
|
|
+ }
|
|
+
|
|
+ void process(WorldServer var1) {
|
|
+ String var2;
|
|
+ Object[] var3;
|
|
+ if (this._senderID.longID() == null) {
|
|
+ var3 = new Object[]{new String(String.valueOf(this._senderID.shortID()))};
|
|
+ var2 = MessageFormat.format(Console.message("Unknown-Name"), var3);
|
|
+ } else {
|
|
+ var2 = this._senderID.longID();
|
|
+ if (MuteListPart.isMuted(var1, var2)) {
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveWhisper(var2, Console.getActive().getLongID(), this._text);
|
|
+ var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, Console.message("have-you-muted")));
|
|
+ } catch (InfiniteWaitException var4) { } catch (PacketTooLargeException var5) { } catch (IOException var6) { }
|
|
|
|
- public whisperCmd() {
|
|
- super._commandType = 17;
|
|
- }
|
|
-
|
|
- public whisperCmd(String var1, String var2) {
|
|
- super(var2);
|
|
- WorldScriptManager.getInstance().onConversation(var1, var2);
|
|
- super._commandType = 17;
|
|
- super._objID = new ObjID(var1);
|
|
- }
|
|
-
|
|
- void process(WorldServer var1) throws Exception {
|
|
- String var2;
|
|
- Object[] var3;
|
|
- if (super._senderID.longID() == null) {
|
|
- var3 = new Object[]{new String(String.valueOf(super._senderID.shortID()))};
|
|
- var2 = MessageFormat.format(Console.message("Unknown-Name"), var3);
|
|
- } else {
|
|
- var2 = super._senderID.longID();
|
|
- if (MuteListPart.isMuted(var1, var2)) {
|
|
- try {
|
|
- var1.sendNetworkMsg(new whisperCmd(var2, Console.message("have-you-muted")));
|
|
- } catch (InfiniteWaitException var5) {
|
|
- } catch (PacketTooLargeException var6) {
|
|
+ return;
|
|
}
|
|
|
|
- return;
|
|
- }
|
|
+ if (!this._text.startsWith("&|+") && MuteListPart.isRejecting(var1, var2)) {
|
|
+ try {
|
|
+ if (!this._text.equals(whisperRejMSG)) {
|
|
+ var3 = new Object[]{"whisper", var2};
|
|
+ if (IniFile.modPrivacy().getIniInt("WhisperFeedback", 1) == 1) Console.println(MessageFormat.format(Console.message("rejected"), var3));
|
|
+ if (!rej.rejectWhisper(var2)) {
|
|
+ if (IniFile.modPrivacy().getIniInt("WhisperResponse", 1) == 1) var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, whisperRejMSG));
|
|
+ rej.addWhisperUser(var2);
|
|
+ }
|
|
+ }
|
|
+ } catch (InfiniteWaitException var6) { } catch (PacketTooLargeException var7) { } catch (IOException var6) { }
|
|
+ return;
|
|
+ }
|
|
|
|
- if (!super._text.startsWith("&|+") && MuteListPart.isRejecting(var1)) {
|
|
- try {
|
|
- if (!super._text.equals(rejectMsg)) {
|
|
- var3 = new Object[]{new String(var2)};
|
|
- Console.println(MessageFormat.format(Console.message("You-rejected"), var3));
|
|
- var1.sendNetworkMsg(new whisperCmd(var2, rejectMsg));
|
|
- }
|
|
- } catch (InfiniteWaitException var7) {
|
|
- } catch (PacketTooLargeException var8) {
|
|
+ if (this._text.startsWith("&|+where?") && MuteListPart.isRejectingTele(var1, var2)) {
|
|
+ try {
|
|
+ if (!this._text.equals(teleportRejMSG)) {
|
|
+ var3 = new Object[]{"teleport", var2};
|
|
+ if (IniFile.modPrivacy().getIniInt("TeleportFeedback", 1) == 1) Console.println(MessageFormat.format(Console.message("rejected"), var3));
|
|
+ if (!rej.rejectTeleport(var2)) {
|
|
+ if (IniFile.modPrivacy().getIniInt("TeleportResponse", 0) == 1) var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, teleportRejMSG));
|
|
+ rej.addTeleportUser(var2);
|
|
+ }
|
|
+ }
|
|
+ } catch (InfiniteWaitException var6) { } catch (PacketTooLargeException var7) { }
|
|
+ return;
|
|
}
|
|
+ }
|
|
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- FriendsListPart.processWhisper(var1, var2, super._text);
|
|
- textCmd.handleActionText(var1, super._text, var2, super._senderID);
|
|
- Console.printWhisper(var2, FilthFilter.get().filter(super._text));
|
|
- }
|
|
-
|
|
- public String toString(WorldServer var1) {
|
|
- return Console.message("WHISPER") + " " + super._senderID.toString(var1) + " --> " + super._objID.toString(var1) + ": " + super._text;
|
|
- }
|
|
+ FriendsListPart.processWhisper(var1, var2, this._text);
|
|
+ handleActionText(var1, this._text, var2, this._senderID);
|
|
+ Console.printWhisper(var2, FilthFilter.get().filter(this._text));
|
|
+ }
|
|
+
|
|
+ public String toString(WorldServer var1) {
|
|
+ return Console.message("WHISPER") + " " + this._senderID.toString(var1) + " --> " + this._objID.toString(var1) + ": " + this._text;
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/scape/Drone.java b/1890/NET/worlds/scape/Drone.java
|
|
--- a/1890/NET/worlds/scape/Drone.java 2023-09-22 14:36:46.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/Drone.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,866 +1,975 @@
|
|
package NET.worlds.scape;
|
|
|
|
-import NET.worlds.console.BBAppearDroneCommand;
|
|
-import NET.worlds.console.BBDisappearDroneCommand;
|
|
-import NET.worlds.console.BBDroneBitmapCommand;
|
|
-import NET.worlds.console.BBDroneDeltaPosCommand;
|
|
-import NET.worlds.console.BBMoveDroneCommand;
|
|
-import NET.worlds.console.BlackBox;
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.FriendsListPart;
|
|
-import NET.worlds.console.Main;
|
|
-import NET.worlds.console.MainCallback;
|
|
-import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.console.*;
|
|
import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.ServerTableManager;
|
|
import NET.worlds.core.Std;
|
|
-import NET.worlds.network.FilthFilter;
|
|
-import NET.worlds.network.Galaxy;
|
|
-import NET.worlds.network.InfiniteWaitException;
|
|
-import NET.worlds.network.NetworkObject;
|
|
-import NET.worlds.network.ObjID;
|
|
-import NET.worlds.network.OldPropertyList;
|
|
-import NET.worlds.network.PacketTooLargeException;
|
|
-import NET.worlds.network.PropertyList;
|
|
-import NET.worlds.network.URL;
|
|
-import NET.worlds.network.WorldServer;
|
|
-import NET.worlds.network.net2Property;
|
|
-import NET.worlds.network.netProperty;
|
|
-import NET.worlds.network.propReqCmd;
|
|
-import java.awt.Color;
|
|
+import NET.worlds.network.*;
|
|
+
|
|
+import java.awt.*;
|
|
import java.io.IOException;
|
|
import java.net.MalformedURLException;
|
|
import java.util.Enumeration;
|
|
import java.util.Hashtable;
|
|
+import java.util.Random;
|
|
import java.util.Vector;
|
|
|
|
public abstract class Drone extends WObject implements NetworkObject, WobLoaded, MouseDownHandler, FrameHandler {
|
|
- private int _last_FrameTime;
|
|
- private int _last_PosTime;
|
|
- private int _vel_x;
|
|
- private int _vel_y;
|
|
- private int _vel_z;
|
|
- private int _vel_yaw;
|
|
- private int _last_x;
|
|
- private int _last_y;
|
|
- private int _last_z;
|
|
- private int _last_yaw;
|
|
- private int _x;
|
|
- private int _y;
|
|
- private int _z;
|
|
- private int _yaw;
|
|
- private boolean inited = false;
|
|
- protected WObject tag;
|
|
- protected WObject tagbg;
|
|
- private Console console;
|
|
- private float tagHeight;
|
|
- private Shape sleepBox;
|
|
- static boolean showNametags;
|
|
- private static String[] employeeAccounts;
|
|
- private static Hashtable employeeHash;
|
|
- public static Vector usableDrones;
|
|
- private int lastUsed;
|
|
- protected WorldServer _server;
|
|
- private String sleepMode;
|
|
- private static Object classCookie;
|
|
- private static Object classCookieInterpolatedDrone;
|
|
-
|
|
- public Drone(ObjID var1, WorldServer var2) {
|
|
- if (var2 != null) {
|
|
- Debug.dAssert(var1 != null);
|
|
- this.attachToServer(var2.getLongID(var1), var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- protected Drone(String var1, WorldServer var2) {
|
|
- Debug.dAssert(var1 != null);
|
|
- if (var2 != null) {
|
|
- this.attachToServer(var1, var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void attachToServer(String var1, WorldServer var2) {
|
|
- if (var2 != null) {
|
|
- Debug.dAssert(Main.isMainThread());
|
|
- String var3 = null;
|
|
- if (this.tag != null) {
|
|
- var3 = this.getLongID();
|
|
- }
|
|
-
|
|
- this.getSharer().createDynamicFromNet();
|
|
- this.setName(var1);
|
|
- String var4 = this.getLongID();
|
|
- this._server = var2;
|
|
- this._server.incRefCnt(this);
|
|
- this._server.regObject((String)var4, this);
|
|
-
|
|
- try {
|
|
- this._server.sendNetworkMsg(new propReqCmd(new ObjID(this.getLongID())));
|
|
- } catch (InfiniteWaitException var7) {
|
|
- } catch (PacketTooLargeException var8) {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- if (var4.equals(var3)) {
|
|
- this.avatarHeightChangedTo(189.0F);
|
|
- } else {
|
|
- this.makeTag(false);
|
|
- }
|
|
-
|
|
- Main.register(new Drone.MakeSleepBox());
|
|
- }
|
|
- }
|
|
-
|
|
- private static void flushUnusedDrones() {
|
|
- Vector var0 = usableDrones;
|
|
- synchronized(var0) {
|
|
- int var1 = Std.getFastTime();
|
|
- int var2 = usableDrones.size();
|
|
-
|
|
- while(true) {
|
|
- --var2;
|
|
- if (var2 < 0) {
|
|
- return;
|
|
- }
|
|
-
|
|
- Drone var3 = (Drone)usableDrones.elementAt(var2);
|
|
- if (var1 > var3.lastUsed + 2000) {
|
|
- usableDrones.removeElementAt(var2);
|
|
- var3.discard();
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public static boolean isEmployeeAccount(String var0) {
|
|
- if (employeeHash == null) {
|
|
- employeeHash = new Hashtable();
|
|
-
|
|
- for(int var1 = 0; var1 < employeeAccounts.length; ++var1) {
|
|
- employeeHash.put(employeeAccounts[var1], employeeAccounts[var1]);
|
|
- }
|
|
- }
|
|
-
|
|
- return employeeHash.get(var0) != null;
|
|
- }
|
|
-
|
|
- public void makeTag(boolean var1) {
|
|
- this.tagHeight = 195.0F;
|
|
- if (this.tag != null) {
|
|
- this.tagHeight = this.tag.getZ();
|
|
- this.tag.detach();
|
|
- this.tag = null;
|
|
- }
|
|
-
|
|
- if (this.tagbg != null) {
|
|
- this.tagbg.detach();
|
|
- this.tagbg = null;
|
|
- }
|
|
-
|
|
- if ((this._server != null || var1) && !(this instanceof MutedDrone) && showNametags) {
|
|
- String var2 = this.getLongID();
|
|
- String var3 = FilthFilter.get().filterName(var2);
|
|
- if (var3 != null && !var3.equals("")) {
|
|
- Texture[] var4 = new Texture[1];
|
|
- boolean var6 = RenderWare.get3DHardwareInUse();
|
|
- boolean var7 = var3.toLowerCase().startsWith(Console.message("host")) || var3.toLowerCase().startsWith("host");
|
|
- if (var7) {
|
|
- var3 = Console.message("host-upper") + var3.substring(4);
|
|
- }
|
|
-
|
|
- boolean var8 = var3.toLowerCase().startsWith(Console.message("guest-")) || var3.toLowerCase().startsWith("guest-");
|
|
- if (var8) {
|
|
- var3 = Console.message("guest-upper") + var3.substring(5);
|
|
- }
|
|
-
|
|
- boolean var9 = isEmployeeAccount(var3);
|
|
- Color var10;
|
|
- if (var8) {
|
|
- var10 = Color.pink;
|
|
- } else if (var7) {
|
|
- var10 = Color.yellow;
|
|
- } else if (var9) {
|
|
- var10 = Color.cyan;
|
|
- } else {
|
|
- var10 = Color.lightGray;
|
|
+ private int _last_FrameTime;
|
|
+ private int _last_PosTime;
|
|
+ private int _vel_x;
|
|
+ private int _vel_y;
|
|
+ private int _vel_z;
|
|
+ private int _vel_yaw;
|
|
+ private int _last_x;
|
|
+ private int _last_y;
|
|
+ private int _last_z;
|
|
+ private int _last_yaw;
|
|
+ private int _x;
|
|
+ private int _y;
|
|
+ private int _z;
|
|
+ private int _yaw;
|
|
+ private boolean inited = false;
|
|
+ protected WObject tag;
|
|
+ protected WObject tagbg;
|
|
+ private Console console;
|
|
+ private float tagHeight;
|
|
+ private Shape sleepBox;
|
|
+ static boolean showNametags;
|
|
+ private static final String[] employeeAccounts;
|
|
+ private static Hashtable employeeHash;
|
|
+ public static final Vector usableDrones;
|
|
+ private int lastUsed;
|
|
+ protected WorldServer _server;
|
|
+ private String sleepMode;
|
|
+ private static final Object classCookie;
|
|
+ private static final Object classCookieInterpolatedDrone;
|
|
+
|
|
+ public Drone(ObjID var1, WorldServer var2) {
|
|
+ if (var2 != null) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ this.attachToServer(var2.getLongID(var1), var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ protected Drone(String var1, WorldServer var2) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ if (var2 != null) {
|
|
+ this.attachToServer(var1, var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void attachToServer(String var1, WorldServer var2) {
|
|
+ if (var2 != null) {
|
|
+ Debug.dAssert(Main.isMainThread());
|
|
+ String var3 = null;
|
|
+ if (this.tag != null) {
|
|
+ var3 = this.getLongID();
|
|
+ }
|
|
+
|
|
+ this.getSharer().createDynamicFromNet();
|
|
+ this.setName(var1);
|
|
+ String var4 = this.getLongID();
|
|
+ this._server = var2;
|
|
+ this._server.incRefCnt(this);
|
|
+ this._server.regObject(var4, this);
|
|
+
|
|
+ try {
|
|
+ this._server.sendNetworkMsg(new propReqCmd(new ObjID(this.getLongID())));
|
|
+ } catch (InfiniteWaitException ignored) {
|
|
+ } catch (PacketTooLargeException ignored) {
|
|
}
|
|
|
|
- var4[0] = new StringTexture(var3, Console.message("TagFont"), 48, Color.black, var6 ? new Color(254, 254, 254) : var10);
|
|
- byte var5 = 14;
|
|
- int var11 = var3.length() * 10;
|
|
- Hologram var12 = new Hologram((float)var11, (float)var5, var4);
|
|
- var12.setViewplaneAligned(true);
|
|
- var12.raise(this.tagHeight);
|
|
- var12.setScaleDist(300.0F);
|
|
- this.tag = var12;
|
|
- this.tag.setVisible(true);
|
|
- this.tag.setBumpable(false);
|
|
- this.tag.setLocalShadowed(false);
|
|
- this.tag.setShadowedLocally(true);
|
|
- this.add(this.tag);
|
|
- if (var6) {
|
|
- Texture[] var13 = new Texture[]{new StringTexture(var3, Console.message("TagFont"), 48, Color.black, var10)};
|
|
- Hologram var14 = new Hologram((float)var11, (float)var5, var13);
|
|
- var14.setViewplaneAligned(true);
|
|
- var14.raise(this.tagHeight);
|
|
- var14.setScaleDist(300.0F);
|
|
- var14.setMaterial(new Material(0.75F, 0.0F, 0.0F, Color.white, (Texture)null, 0.5F, false, false));
|
|
- this.tagbg = var14;
|
|
- this.tagbg.setVisible(true);
|
|
- this.tagbg.setBumpable(false);
|
|
- this.tagbg.setLocalShadowed(false);
|
|
- this.tagbg.setShadowedLocally(true);
|
|
- this.add(this.tagbg);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- protected void avatarHeightChangedTo(float var1) {
|
|
- if (this.tag != null) {
|
|
- this.tag.raise(var1 + 1.0F + 5.0F - this.tag.getZ());
|
|
- }
|
|
-
|
|
- if (this.tagbg != null) {
|
|
- this.tagbg.raise(var1 + 1.0F + 5.0F - this.tagbg.getZ());
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void detachFromServer(boolean var1) {
|
|
- Debug.dAssert(Main.isMainThread());
|
|
- if (this._server != null) {
|
|
- this._server.delObject(new ObjID(this.getLongID()));
|
|
- this._server.decRefCnt(this);
|
|
- this._server = null;
|
|
- }
|
|
-
|
|
- if (var1) {
|
|
- this.lastUsed = Std.getFastTime();
|
|
- Vector var2 = usableDrones;
|
|
- synchronized(var2) {
|
|
- usableDrones.addElement(this);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static Drone make(ObjID var0, WorldServer var1) {
|
|
- Vector var2 = usableDrones;
|
|
- synchronized(var2) {
|
|
- if (!usableDrones.isEmpty() && var0 != null && var1 != null) {
|
|
- String var4 = "!" + var1.getLongID(var0);
|
|
-
|
|
- int var5;
|
|
- Drone var6;
|
|
- for(var5 = usableDrones.size() - 1; var5 > 0; --var5) {
|
|
- var6 = (Drone)usableDrones.elementAt(var5);
|
|
- if (var6.getName().equals(var4)) {
|
|
- break;
|
|
- }
|
|
- }
|
|
-
|
|
- var6 = (Drone)usableDrones.elementAt(var5);
|
|
- if (!var6.getName().equals(var4) && usableDrones.size() < 5) {
|
|
- HoloDrone var7 = new HoloDrone(var0, var1);
|
|
- return var7;
|
|
+ if (var4.equals(var3)) {
|
|
+ this.avatarHeightChangedTo(189.0F);
|
|
} else {
|
|
- usableDrones.removeElementAt(var5);
|
|
- var6.attachToServer(var1.getLongID(var0), var1);
|
|
- return var6;
|
|
- }
|
|
- } else {
|
|
- HoloDrone var3 = new HoloDrone(var0, var1);
|
|
- return var3;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Drone() {
|
|
- }
|
|
-
|
|
- public boolean handle(MouseDownEvent var1) {
|
|
- if (this._server != null && (var1.key & 1) == 1) {
|
|
- FriendsListPart.droneClick(this, var1);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public float animate(String var1) {
|
|
- if (var1.equalsIgnoreCase("_hdb")) {
|
|
- new Drone.BounceNametag();
|
|
- }
|
|
-
|
|
- return 0.0F;
|
|
- }
|
|
-
|
|
- public Vector getAnimationList() {
|
|
- return new Vector();
|
|
- }
|
|
-
|
|
- public void muteStateChanged() {
|
|
- this.setAvatarNow(this.getCurrentURL());
|
|
- }
|
|
-
|
|
- public boolean shouldBeMuted() {
|
|
- return MuteListPart.isMuted(this._server, this.getLongID());
|
|
- }
|
|
-
|
|
- private World getOwnerWorld() {
|
|
- WObject var1 = (WObject)this.getOwner();
|
|
- Room var2 = var1 == null ? null : var1.getRoom();
|
|
- World var3 = var2 == null ? null : var2.getWorld();
|
|
- return var3;
|
|
- }
|
|
-
|
|
- public boolean shouldBeForcedHuman() {
|
|
- World var1 = this.getOwnerWorld();
|
|
- return var1 != null && var1.getForceHuman();
|
|
- }
|
|
-
|
|
- public URL getCurrentURL() {
|
|
- return this instanceof PosableDrone ? ((PosableDrone)this).getPosableShapeURL() : this.getSourceURL();
|
|
- }
|
|
-
|
|
- public Drone setAvatarNow(URL var1) {
|
|
- if (var1 == null) {
|
|
- return this;
|
|
- } else {
|
|
- if (this.shouldBeForcedHuman()) {
|
|
- var1 = PosableShape.getHuman(var1);
|
|
- if (Console.getActive() != null) {
|
|
- Console.getActive().pendingPilot = var1.toString();
|
|
- }
|
|
- }
|
|
-
|
|
- var1 = PosableShape.getPermitted(var1, this.getWorld());
|
|
- boolean var2 = this.shouldBeMuted();
|
|
- if (var1.equals(this.getCurrentURL()) && var2 == (this instanceof MutedDrone)) {
|
|
- return this;
|
|
- } else if (!var1.endsWith(".rwx") && !var1.endsWith(".rwg") && !var1.endsWith(".mov")) {
|
|
- String var7 = var1.getInternal();
|
|
- if (var7.endsWith(".pilot")) {
|
|
- var7 = var7.substring(0, var7.length() - 6) + ".drone";
|
|
- } else if (!var7.endsWith(".drone")) {
|
|
- var7 = var7 + ".drone";
|
|
+ this.makeTag(false);
|
|
}
|
|
|
|
- var1 = URL.make(var7);
|
|
- if (var1.equals(this.getSourceURL())) {
|
|
- return this;
|
|
+ Main.register(new Drone$MakeSleepBox(this));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private static void flushUnusedDrones() {
|
|
+ synchronized(usableDrones) {
|
|
+ int var1 = Std.getFastTime();
|
|
+ int var2 = usableDrones.size();
|
|
+
|
|
+ while(true) {
|
|
+ --var2;
|
|
+ if (var2 < 0) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ Drone var3 = (Drone)usableDrones.elementAt(var2);
|
|
+ if (var1 > var3.lastUsed + 2000) {
|
|
+ usableDrones.removeElementAt(var2);
|
|
+ var3.discard();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isEmployeeAccount(String var0) {
|
|
+ if (employeeHash == null) {
|
|
+ employeeHash = new Hashtable();
|
|
+
|
|
+ for(int var1 = 0; var1 < employeeAccounts.length; ++var1) {
|
|
+ employeeHash.put(employeeAccounts[var1], employeeAccounts[var1]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return employeeHash.get(var0) != null;
|
|
+ }
|
|
+
|
|
+ public void makeTag(boolean var1) {
|
|
+ this.tagHeight = 195.0F;
|
|
+ if (this.tag != null) {
|
|
+ this.tagHeight = this.tag.getZ();
|
|
+ this.tag.detach();
|
|
+ this.tag = null;
|
|
+ }
|
|
+
|
|
+ if (this.tagbg != null) {
|
|
+ this.tagbg.detach();
|
|
+ this.tagbg = null;
|
|
+ }
|
|
+
|
|
+ if ((this._server != null || var1) && !(this instanceof MutedDrone) && showNametags) {
|
|
+ String var2 = this.getLongID();
|
|
+ String var3 = FilthFilter.get().filterName(var2);
|
|
+ if (var3 != null && !var3.equals("")) {
|
|
+ Texture[] var4 = new Texture[1];
|
|
+ boolean isHost = var3.toLowerCase().startsWith(Console.message("host")) || var3.toLowerCase().startsWith("host");
|
|
+ if (isHost) {
|
|
+ var3 = Console.message("host-upper") + var3.substring(4);
|
|
+ }
|
|
+
|
|
+ boolean isGuest = var3.toLowerCase().startsWith(Console.message("guest-")) || var3.toLowerCase().startsWith("guest-");
|
|
+ if (isGuest) {
|
|
+ var3 = Console.message("guest-upper") + var3.substring(5);
|
|
+ }
|
|
+
|
|
+ boolean colorfulMod = IniFile.gamma().getIniInt("ColorfulTags", 0) == 1;
|
|
+ boolean randomizeTag = false, underline = false;
|
|
+ boolean transparent = IniFile.modColorfulTags().getIniInt("Transparent", 0) == 1;
|
|
+ boolean isTar = TarListPart.isTarred(_server, var3);
|
|
+ Color userTextColor, employeeTextColor, hostTextColor, guestTextColor, tarTextColor;
|
|
+ Color userTagColor, employeeTagColor, hostTagColor, guestTagColor, tarTagColor;
|
|
+ try {
|
|
+ if (colorfulMod) {
|
|
+ randomizeTag = IniFile.modColorfulTags().getIniInt("RandomizeColors", 0) == 1;
|
|
+ underline = IniFile.modColorfulTags().getIniInt("UnderlineStaff", 1) == 1;
|
|
+
|
|
+ /*
|
|
+ * Color Parsing
|
|
+ *
|
|
+ * This is setup like this so we don't have 3 values for each tag type. Keeps the INI clean.
|
|
+ * If the value isn't valid, given we are parsing a string into 3 ints, we should just use the default.
|
|
+ */
|
|
+
|
|
+ userTagColor = parseColor(IniFile.modColorfulTags().getIniString("UserTagColor", "192,192,192"));
|
|
+ userTextColor = parseColor(IniFile.modColorfulTags().getIniString("UserTextColor", "0,0,0"));
|
|
+
|
|
+ employeeTagColor = parseColor(IniFile.modColorfulTags().getIniString("EmployeeTagColor", "0,255,255"));
|
|
+ employeeTextColor = parseColor(IniFile.modColorfulTags().getIniString("EmployeeTextColor", "0,0,0"));
|
|
+
|
|
+ hostTagColor = parseColor(IniFile.modColorfulTags().getIniString("HostTagColor", "255,255,0"));
|
|
+ hostTextColor = parseColor(IniFile.modColorfulTags().getIniString("HostTextColor", "0,0,0"));
|
|
+
|
|
+ guestTagColor = parseColor(IniFile.modColorfulTags().getIniString("GuestTagColor", "255,192,203"));
|
|
+ guestTextColor = parseColor(IniFile.modColorfulTags().getIniString("GuestTextColor", "0,0,0"));
|
|
+
|
|
+ tarTagColor = parseColor(IniFile.modColorfulTags().getIniString("TarTagColor", "192,192,192"));
|
|
+ tarTextColor = parseColor(IniFile.modColorfulTags().getIniString("TarTextColor", "0,0,0"));
|
|
+ } else {
|
|
+ throw new Exception();
|
|
+ }
|
|
+ } catch (Exception e1) {
|
|
+ userTagColor = new Color(192,192,192);
|
|
+ userTextColor = new Color(0,0,0);
|
|
+ employeeTagColor = new Color(0,255,255);
|
|
+ employeeTextColor = new Color(0,0,0);
|
|
+ hostTagColor = new Color(255,255,0);
|
|
+ hostTextColor = new Color(0,0,0);
|
|
+ guestTagColor = new Color(255,192,203);
|
|
+ guestTextColor = new Color(0,0,0);
|
|
+ tarTagColor = new Color(192, 192, 192);
|
|
+ tarTextColor = new Color(0,0,0);
|
|
+ }
|
|
+ boolean isEmployee = isEmployeeAccount(var3);
|
|
+ Color curTextColor, curTagColor;
|
|
+ if (isGuest) {
|
|
+ curTagColor = guestTagColor;
|
|
+ curTextColor = guestTextColor;
|
|
+ } else if (isHost) {
|
|
+ curTagColor = hostTagColor;
|
|
+ curTextColor = hostTextColor;
|
|
+ } else if (isEmployee) {
|
|
+ curTagColor = employeeTagColor;
|
|
+ curTextColor = employeeTextColor;
|
|
+ } else if (isTar) {
|
|
+ curTagColor = tarTagColor;
|
|
+ curTextColor = tarTextColor;
|
|
+ } else {
|
|
+ curTagColor = userTagColor;
|
|
+ curTextColor = userTextColor;
|
|
+ }
|
|
+
|
|
+ if (randomizeTag && (!isEmployee && !isGuest && !isHost && !isTar)) {
|
|
+ Random rand = new Random();
|
|
+ Color randomized = new Color(
|
|
+ rand.nextInt((255) + 1),
|
|
+ rand.nextInt((255) + 1),
|
|
+ rand.nextInt((255) + 1)).brighter();
|
|
+ curTextColor = transparent ? randomized : userTextColor;
|
|
+ curTagColor = transparent ? userTagColor : randomized;
|
|
+ }
|
|
+
|
|
+ if (transparent) {
|
|
+ if (isEmployee || isGuest || isHost || isTar) curTextColor = curTagColor;
|
|
+ curTagColor = new Color(254,254,254);
|
|
+ }
|
|
+
|
|
+ boolean isSpecial = (isHost || isGuest || isEmployee);
|
|
+
|
|
+ var4[0] = new StringTexture(var3, Console.message("TagFont"), IniFile.modColorfulTags().getIniInt("Fontsize", 48), curTextColor, curTagColor);
|
|
+ byte var5 = 18;
|
|
+ int var11 = var3.length() * 12;
|
|
+ Hologram var12 = new Hologram((float)var11, (float)var5, var4);
|
|
+ var12.setViewplaneAligned(true);
|
|
+ var12.raise(this.tagHeight);
|
|
+ var12.setScaleDist(300.0F);
|
|
+ this.tag = var12;
|
|
+ this.tag.setVisible(true);
|
|
+ this.tag.setBumpable(false);
|
|
+ this.tag.setLocalShadowed(true);
|
|
+ this.tag.setShadowedLocally(true);
|
|
+ this.add(this.tag);
|
|
+ if (colorfulMod && isSpecial && underline && transparent) {
|
|
+ StringBuffer underscore = new StringBuffer();
|
|
+ for (int i = 0; i < var3.length(); i++) {
|
|
+ underscore.append("_");
|
|
+ }
|
|
+ Texture[] var13 = new Texture[]{new StringTexture(underscore.toString(), Console.message("TagFont"), 48, curTextColor, curTagColor)};
|
|
+ Hologram var14 = new Hologram((float) var11, (float) var5, var13);
|
|
+ var14.setViewplaneAligned(true);
|
|
+ var14.raise(this.tagHeight);
|
|
+ var14.setScaleDist(300.0F);
|
|
+ this.tagbg = var14;
|
|
+ this.tagbg.setVisible(true);
|
|
+ this.tagbg.setBumpable(false);
|
|
+ this.tagbg.setLocalShadowed(false);
|
|
+ this.tagbg.setShadowedLocally(true);
|
|
+ this.add(this.tagbg);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private Color parseColor(String tag) {
|
|
+ String[] spl = tag.split(",");
|
|
+ return new Color(Integer.parseInt(spl[0]), Integer.parseInt(spl[1]), Integer.parseInt(spl[2]));
|
|
+ }
|
|
+
|
|
+ protected void avatarHeightChangedTo(float var1) {
|
|
+ if (this.tag != null) {
|
|
+ this.tag.raise(var1 + 1.0F + 5.0F - this.tag.getZ());
|
|
+ }
|
|
+
|
|
+ if (this.tagbg != null) {
|
|
+ this.tagbg.raise(var1 + 1.0F + 5.0F - this.tagbg.getZ());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void detachFromServer(boolean var1) {
|
|
+ Debug.dAssert(Main.isMainThread());
|
|
+ if (this._server != null) {
|
|
+ this._server.delObject(new ObjID(this.getLongID()));
|
|
+ this._server.decRefCnt(this);
|
|
+ this._server = null;
|
|
+ }
|
|
+
|
|
+ if (var1) {
|
|
+ this.lastUsed = Std.getFastTime();
|
|
+ synchronized(usableDrones) {
|
|
+ usableDrones.addElement(this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static Drone make(ObjID var0, WorldServer var1) {
|
|
+ synchronized(usableDrones) {
|
|
+ if (!usableDrones.isEmpty() && var0 != null && var1 != null) {
|
|
+ String var3 = "!" + var1.getLongID(var0);
|
|
+
|
|
+ int var4;
|
|
+ Drone var5;
|
|
+ for(var4 = usableDrones.size() - 1; var4 > 0; --var4) {
|
|
+ var5 = (Drone)usableDrones.elementAt(var4);
|
|
+ if (var5.getName().equals(var3)) {
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var5 = (Drone)usableDrones.elementAt(var4);
|
|
+ if (!var5.getName().equals(var3) && usableDrones.size() < 5) {
|
|
+ return new HoloDrone(var0, var1);
|
|
+ } else {
|
|
+ usableDrones.removeElementAt(var4);
|
|
+ var5.attachToServer(var1.getLongID(var0), var1);
|
|
+ return var5;
|
|
+ }
|
|
} else {
|
|
- new WobLoader(var1, this);
|
|
- return this;
|
|
+ return new HoloDrone(var0, var1);
|
|
}
|
|
- } else {
|
|
- WObject var3 = (WObject)this.getOwner();
|
|
- if (var3 == null) {
|
|
- return this;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Drone() {
|
|
+ }
|
|
+
|
|
+ public boolean handle(MouseDownEvent var1) {
|
|
+ if (this._server != null && (var1.key & 1) == 1) {
|
|
+ FriendsListPart.droneClick(this, var1);
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public float animate(String var1) {
|
|
+ if (var1.equalsIgnoreCase("_hdb")) {
|
|
+ new Drone$BounceNametag(this);
|
|
+ }
|
|
+
|
|
+ return 0.0F;
|
|
+ }
|
|
+
|
|
+ public Vector getAnimationList() {
|
|
+ return new Vector();
|
|
+ }
|
|
+
|
|
+ public void muteStateChanged() {
|
|
+ this.setAvatarNow(this.getCurrentURL());
|
|
+ }
|
|
+
|
|
+ public void tarStateChanged() {
|
|
+ this.setAvatarNow(this.getCurrentURL());
|
|
+ }
|
|
+
|
|
+ public void avtStateChanged() {
|
|
+ this.setAvatarNow(URL.make("avatar:holden.mov"));
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeMuted() {
|
|
+ return MuteListPart.isMuted(this._server, this.getLongID());
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeTarred() {
|
|
+ return TarListPart.isTarred(this._server, this.getLongID());
|
|
+ }
|
|
+
|
|
+ private World getOwnerWorld() {
|
|
+ WObject var1 = (WObject)this.getOwner();
|
|
+ Room var2 = var1 == null ? null : var1.getRoom();
|
|
+ World var3 = var2 == null ? null : var2.getWorld();
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeForcedHuman() {
|
|
+ return (this.getOwnerWorld() != null && this.getOwnerWorld().getForceHuman());
|
|
+ }
|
|
+
|
|
+ public URL getCurrentURL() {
|
|
+ return this instanceof PosableDrone ? ((PosableDrone)this).getPosableShapeURL() : this.getSourceURL();
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (var1 == null) {
|
|
+ return this;
|
|
+ } else {
|
|
+ if (this.shouldBeForcedHuman()) {
|
|
+ var1 = PosableShape.getHuman(var1);
|
|
+ if (Console.getActive() != null) {
|
|
+ Console.getActive().pendingPilot = var1.toString();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var1 = PosableShape.getPermitted(var1, this.getWorld());
|
|
+ boolean var2 = this.shouldBeMuted();
|
|
+ boolean var12 = this.shouldBeTarred();
|
|
+ if (var1.equals(this.getCurrentURL()) && (var2 == (this instanceof MutedDrone))) {
|
|
+ return this;
|
|
+ } else if (!var1.endsWith(".rwx") && !var1.endsWith(".rwg") && !var1.endsWith(".mov")) {
|
|
+ String var7 = var1.getInternal();
|
|
+ if (var7.endsWith(".pilot")) {
|
|
+ var7 = var7.substring(0, var7.length() - 6) + ".drone";
|
|
+ } else if (!var7.endsWith(".drone")) {
|
|
+ var7 = var7 + ".drone";
|
|
+ }
|
|
+
|
|
+ var1 = URL.make(var7);
|
|
+ if (var1.equals(this.getSourceURL())) {
|
|
+ return this;
|
|
+ } else {
|
|
+ new WobLoader(var1, this);
|
|
+ return this;
|
|
+ }
|
|
} else {
|
|
- WorldServer var4 = this._server;
|
|
- String var5 = this.getLongID();
|
|
- this.detachFromServer(false);
|
|
- this.detach();
|
|
- Object var6;
|
|
- if (var2) {
|
|
- var6 = new MutedDrone(new ObjID(var5), var4, var1);
|
|
- } else if (var1.endsWith(".mov")) {
|
|
- var6 = new HoloDrone(new ObjID(var5), var4);
|
|
- ((Drone)var6).setAvatarNow(var1);
|
|
- } else {
|
|
- var6 = new PosableDrone(new ObjID(var5), var4, var1);
|
|
- }
|
|
-
|
|
- if (var4 != null) {
|
|
- ((Drone)var6).transferFrom(this);
|
|
- ((Drone)var6).addTo(var3.getRoom());
|
|
- } else {
|
|
- ((Transform)var6).makeIdentity().post(this);
|
|
- ((WObject)var6).setName(this.getLongID());
|
|
- var3.add((WObject)var6);
|
|
- }
|
|
-
|
|
- return (Drone)var6;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void wobLoaded(WobLoader var1, SuperRoot var2) {
|
|
- if (var2 instanceof Drone) {
|
|
- Debug.dAssert(var2 != null);
|
|
- Drone var3 = (Drone)var2;
|
|
- var3.setName(this.getLongID());
|
|
- if (this._server == null) {
|
|
- WObject var7 = (WObject)this.getOwner();
|
|
- this.detach();
|
|
- var3.makeIdentity().post(this);
|
|
- var7.add(var3);
|
|
- } else {
|
|
- WorldServer var4 = this._server;
|
|
- String var5 = this.getLongID();
|
|
- this.detachFromServer(false);
|
|
- Room var6 = this.getRoom();
|
|
- this.detach();
|
|
- var3.addTo(var6);
|
|
- var3.attachToServer(var5, var4);
|
|
- var3.transferFrom(this);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void addTo(Room var1) {
|
|
- if (var1 != null) {
|
|
- Console var2 = var1.getWorld().getConsole();
|
|
- if (this.console == null) {
|
|
- this.console = var2;
|
|
- if (var2 != null) {
|
|
- Pilot.copySoul(var2.getDroneSoulTemplate(), this);
|
|
- }
|
|
- }
|
|
-
|
|
- var1.add(this);
|
|
- }
|
|
- }
|
|
-
|
|
- public void add(WObject var1) {
|
|
- super.add(var1);
|
|
- }
|
|
-
|
|
- protected void noteUnadding(SuperRoot var1) {
|
|
- if (var1 instanceof WObject) {
|
|
- WObject var2 = (WObject)var1;
|
|
- if (var2.isDynamic()) {
|
|
- var2.setVisible(true);
|
|
- }
|
|
- }
|
|
-
|
|
- super.noteUnadding(var1);
|
|
- }
|
|
-
|
|
- public void setSleepMode(String var1) {
|
|
- if (!var1.equals(this.sleepMode)) {
|
|
- this.sleepMode = var1;
|
|
- Main.register(new Drone.MakeSleepBox());
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleVAR_ASLEEP(String var1) {
|
|
- if (var1 != null && var1.length() > 2 && var1.charAt(0) == 0) {
|
|
- var1 = var1.substring(2);
|
|
- }
|
|
-
|
|
- this.setSleepMode(var1);
|
|
- }
|
|
-
|
|
- public Drone handleVAR_BITMAP(String var1) {
|
|
- if (var1.equals("")) {
|
|
- return this;
|
|
- } else {
|
|
- BlackBox.getInstance().submitEvent(new BBDroneBitmapCommand(this.getName(), var1));
|
|
- if (var1.charAt(0) == 0) {
|
|
+ WObject var3 = (WObject)this.getOwner();
|
|
+ if (var3 == null) {
|
|
+ return this;
|
|
+ } else {
|
|
+ WorldServer var4 = this._server;
|
|
+ String var5 = this.getLongID();
|
|
+ this.detachFromServer(false);
|
|
+ this.detach();
|
|
+ Drone var6;
|
|
+ if (var2) {
|
|
+ var6 = new MutedDrone(new ObjID(var5), var4, var1);
|
|
+ } else if (var12) {
|
|
+ var6 = new TarredDrone(new ObjID(var5), var4, var1);
|
|
+ } else if (var1.endsWith(".mov")) {
|
|
+ var6 = new HoloDrone(new ObjID(var5), var4);
|
|
+ var6.setAvatarNow(var1);
|
|
+ } else {
|
|
+ if (IniFile.gamma().getIniInt("AllowAvatarRWX", 1) == 0 && var1.endsWith(".rwx")) {
|
|
+ var6 = new HoloDrone(new ObjID(var5), var4);
|
|
+ } else {
|
|
+ var6 = new PosableDrone(new ObjID(var5), var4, var1);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ if (var4 != null) {
|
|
+ var6.transferFrom(this);
|
|
+ var6.addTo(var3.getRoom());
|
|
+ } else {
|
|
+ var6.makeIdentity().post(this);
|
|
+ var6.setName(this.getLongID());
|
|
+ var3.add(var6);
|
|
+ }
|
|
+
|
|
+ return var6;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void wobLoaded(WobLoader var1, SuperRoot var2) {
|
|
+ if (var2 instanceof Drone) {
|
|
+ Debug.dAssert(var2 != null);
|
|
+ Drone var3 = (Drone)var2;
|
|
+ var3.setName(this.getLongID());
|
|
+ if (this._server == null) {
|
|
+ WObject var7 = (WObject)this.getOwner();
|
|
+ this.detach();
|
|
+ var3.makeIdentity().post(this);
|
|
+ var7.add(var3);
|
|
+ } else {
|
|
+ WorldServer var4 = this._server;
|
|
+ String var5 = this.getLongID();
|
|
+ this.detachFromServer(false);
|
|
+ Room var6 = this.getRoom();
|
|
+ this.detach();
|
|
+ var3.addTo(var6);
|
|
+ var3.attachToServer(var5, var4);
|
|
+ var3.transferFrom(this);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void addTo(Room var1) {
|
|
+ if (var1 != null) {
|
|
+ Console var2 = var1.getWorld().getConsole();
|
|
+ if (this.console == null) {
|
|
+ this.console = var2;
|
|
+ if (var2 != null) {
|
|
+ Pilot.copySoul(var2.getDroneSoulTemplate(), this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var1.add(this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void add(WObject var1) {
|
|
+ super.add(var1);
|
|
+ }
|
|
+
|
|
+ protected void noteUnadding(SuperRoot var1) {
|
|
+ if (var1 instanceof WObject) {
|
|
+ WObject var2 = (WObject)var1;
|
|
+ if (var2.isDynamic()) {
|
|
+ var2.setVisible(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.noteUnadding(var1);
|
|
+ }
|
|
+
|
|
+ public void setSleepMode(String var1) {
|
|
+ if (!var1.equals(this.sleepMode)) {
|
|
+ this.sleepMode = var1;
|
|
+ Main.register(new Drone$MakeSleepBox(this));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleVAR_ASLEEP(String var1) {
|
|
+ if (var1 != null && var1.length() > 2 && var1.charAt(0) == 0) {
|
|
var1 = var1.substring(2);
|
|
- }
|
|
+ }
|
|
+
|
|
+ this.setSleepMode(var1);
|
|
+ }
|
|
|
|
- try {
|
|
- return this.setAvatarNow(new URL(URL.getAvatar(), var1));
|
|
- } catch (MalformedURLException var3) {
|
|
- Console.println(Console.message("Invalid-av") + var1);
|
|
+ public Drone handleVAR_BITMAP(String var1) {
|
|
+ if (var1.equals("")) {
|
|
return this;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Point3Temp getVelocity() {
|
|
- return Point3Temp.make((float)this._vel_x, (float)this._vel_y, (float)this._vel_z);
|
|
- }
|
|
-
|
|
- public int getYawRate() {
|
|
- return this._vel_yaw;
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent var1) {
|
|
- if (this._server == null) {
|
|
- return true;
|
|
- } else {
|
|
- int var2 = var1.time;
|
|
- this.interpolate(var2, this._server.getUpdateTime(), this);
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void interpolate(int var1, int var2, Transform var3) {
|
|
- if (this.inited) {
|
|
- if (var1 - this._last_PosTime > var2) {
|
|
- this._last_PosTime = var1;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = this._last_z - this._z;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
- Debug.dAssert(this._vel_yaw >= 0);
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
- }
|
|
-
|
|
- double var4 = (double)(var1 - this._last_FrameTime) / (double)var2;
|
|
- if (var1 - this._last_FrameTime > var2) {
|
|
- var4 = 0.0D;
|
|
- }
|
|
-
|
|
- this._x += (int)(var4 * (double)this._vel_x);
|
|
- this._y += (int)(var4 * (double)this._vel_y);
|
|
- this._z += (int)(var4 * (double)this._vel_z);
|
|
- this._yaw += (int)(var4 * (double)this._vel_yaw) % 360;
|
|
- var3.makeIdentity().moveBy((float)this._x, (float)this._y, (float)this._z).yaw((float)this._yaw);
|
|
- this._last_FrameTime = var1;
|
|
- }
|
|
- }
|
|
-
|
|
- public void reset(short var1, short var2, short var3, short var4) {
|
|
- this._x = var1;
|
|
- this._y = var2;
|
|
- this._z = var3;
|
|
- this._yaw = var4;
|
|
- this._vel_x = this._vel_y = this._vel_z = 0;
|
|
- this._vel_yaw = 0;
|
|
- this._last_x = this._x;
|
|
- this._last_y = this._y;
|
|
- this._last_z = this._z;
|
|
- this._last_yaw = this._yaw;
|
|
- this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- protected void transferFrom(Drone var1) {
|
|
- this.makeIdentity().post(var1);
|
|
- this._x = var1._x;
|
|
- this._y = var1._y;
|
|
- this._z = var1._z;
|
|
- this._yaw = var1._yaw;
|
|
- this._vel_x = var1._vel_x;
|
|
- this._vel_y = var1._vel_y;
|
|
- this._vel_z = var1._vel_z;
|
|
- this._vel_yaw = var1._vel_yaw;
|
|
- this._last_x = var1._last_x;
|
|
- this._last_y = var1._last_y;
|
|
- this._last_z = var1._last_z;
|
|
- this._last_yaw = var1._last_yaw;
|
|
- this._last_PosTime = var1._last_PosTime;
|
|
- this._last_FrameTime = var1._last_FrameTime;
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void appear(Room var1, short var2, short var3, short var4, short var5) {
|
|
- Debug.dAssert(var1 != null);
|
|
- BlackBox.getInstance().submitEvent(new BBAppearDroneCommand(var1.toString(), this.getName(), var2, var3, var4, var5));
|
|
- if (this.getRoom() != var1) {
|
|
- this.detach();
|
|
- var1.add(this);
|
|
- }
|
|
-
|
|
- this.makeIdentity().moveBy((float)var2, (float)var3, (float)var4).yaw((float)var5);
|
|
- this._x = var2;
|
|
- this._y = var3;
|
|
- this._z = var4;
|
|
- this._yaw = var5;
|
|
- this._vel_x = this._vel_y = this._vel_z = 0;
|
|
- this._vel_yaw = 0;
|
|
- this._last_x = var2;
|
|
- this._last_y = var3;
|
|
- this._last_z = var4;
|
|
- this._last_yaw = var5;
|
|
- this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
- URL var6 = this.getCurrentURL();
|
|
- if (var6 != null) {
|
|
- this.setAvatarNow(var6);
|
|
- }
|
|
-
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void disappear() {
|
|
- BlackBox.getInstance().submitEvent(new BBDisappearDroneCommand(this.getName()));
|
|
- this.detachFromServer(true);
|
|
- this.detach();
|
|
- }
|
|
-
|
|
- public void longLoc(short var1, short var2, short var3, short var4) {
|
|
- if (!(this.getOwner() instanceof Pilot)) {
|
|
- BlackBox.getInstance().submitEvent(new BBMoveDroneCommand(this.getName(), var1, var2, var3, var4));
|
|
- }
|
|
-
|
|
- this._last_x = var1;
|
|
- this._last_y = var2;
|
|
- this._last_z = var3;
|
|
- this._last_yaw = var4;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = this._last_z - this._z;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
- Debug.dAssert(this._vel_yaw >= 0);
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
-
|
|
- this._last_PosTime = Std.getRealTime();
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void property(OldPropertyList var1) {
|
|
- int var3 = var1.size();
|
|
-
|
|
- for(int var4 = 0; var4 < var3; ++var4) {
|
|
- netProperty var2 = var1.elementAt(var4);
|
|
- switch(var2.property()) {
|
|
- case 5:
|
|
- this.handleVAR_BITMAP(var2.value());
|
|
- break;
|
|
- case 23:
|
|
- this.handleVAR_ASLEEP(var2.value());
|
|
- break;
|
|
- default:
|
|
- byte[] var5 = new byte[var2.value().length()];
|
|
- var2.value().getBytes(0, var2.value().length(), var5, 0);
|
|
- this.getSharer().setFromNetData(var2.property(), var5);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void propertyUpdate(PropertyList var1) {
|
|
- int var3 = var1.size();
|
|
-
|
|
- for(int var4 = 0; var4 < var3; ++var4) {
|
|
- net2Property var2 = var1.elementAt(var4);
|
|
- switch(var2.property()) {
|
|
- case 5:
|
|
- this.handleVAR_BITMAP(var2.value());
|
|
- break;
|
|
- case 23:
|
|
- this.handleVAR_ASLEEP(var2.value());
|
|
- break;
|
|
- default:
|
|
- this.getSharer().setFromNetData(var2.property(), var2.data());
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void roomChange(Room var1, short var2, short var3, short var4, short var5) {
|
|
- this.detach();
|
|
- if (var1 != null) {
|
|
- this.appear(var1, var2, var3, var4, var5);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void shortLoc(byte var1, byte var2, byte var3) {
|
|
- if (!(this.getOwner() instanceof Pilot)) {
|
|
- BlackBox.getInstance().submitEvent(new BBDroneDeltaPosCommand(this.getName(), var1, var2, var3));
|
|
- }
|
|
-
|
|
- this._last_x += var1;
|
|
- this._last_y += var2;
|
|
- this._last_yaw += var3;
|
|
- this._last_yaw %= 360;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = 0;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
- Debug.dAssert(this._vel_yaw >= 0);
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
-
|
|
- this._last_PosTime = Std.getRealTime();
|
|
- }
|
|
-
|
|
- public void teleport(WorldServer var1, byte var2, byte var3, Room var4, short var5, short var6, short var7, short var8) {
|
|
- Debug.dAssert(var1.getObject(new ObjID(this.getLongID())) == this);
|
|
- Room var9 = this.getRoom();
|
|
- switch(var2) {
|
|
- default:
|
|
- if (var9 != null) {
|
|
- Debug.dAssert(var9 != null);
|
|
- this.detach();
|
|
- }
|
|
- case 0:
|
|
- switch(var3) {
|
|
- case 0:
|
|
- this.detachFromServer(true);
|
|
+ } else {
|
|
+ BlackBox.getInstance().submitEvent(new BBDroneBitmapCommand(this.getName(), var1));
|
|
+ if (var1.charAt(0) == 0) {
|
|
+ var1 = var1.substring(2);
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ return this.setAvatarNow(new URL(URL.getAvatar(), var1));
|
|
+ } catch (MalformedURLException var3) {
|
|
+ Console.println(Console.message("Invalid-av") + var1);
|
|
+ return this;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Point3Temp getVelocity() {
|
|
+ return Point3Temp.make((float)this._vel_x, (float)this._vel_y, (float)this._vel_z);
|
|
+ }
|
|
+
|
|
+ public int getYawRate() {
|
|
+ return this._vel_yaw;
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ if (this._server == null) {
|
|
+ return true;
|
|
+ } else {
|
|
+ int var2 = var1.time;
|
|
+ this.interpolate(var2, this._server.getUpdateTime(), this);
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void interpolate(int var1, int var2, Transform var3) {
|
|
+ if (this.inited) {
|
|
+ if (var1 - this._last_PosTime > var2) {
|
|
+ this._last_PosTime = var1;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = this._last_z - this._z;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ Debug.dAssert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ double var4 = (double)(var1 - this._last_FrameTime) / (double)var2;
|
|
+ if (var1 - this._last_FrameTime > var2) {
|
|
+ var4 = 0.0D;
|
|
+ }
|
|
+
|
|
+ this._x += (int)(var4 * (double)this._vel_x);
|
|
+ this._y += (int)(var4 * (double)this._vel_y);
|
|
+ this._z += (int)(var4 * (double)this._vel_z);
|
|
+ this._yaw += (int)(var4 * (double)this._vel_yaw) % 360;
|
|
+ var3.makeIdentity().moveBy((float)this._x, (float)this._y, (float)this._z).yaw((float)this._yaw);
|
|
+ this._last_FrameTime = var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void reset(short var1, short var2, short var3, short var4) {
|
|
+ this._x = var1;
|
|
+ this._y = var2;
|
|
+ this._z = var3;
|
|
+ this._yaw = var4;
|
|
+ this._vel_x = this._vel_y = this._vel_z = 0;
|
|
+ this._vel_yaw = 0;
|
|
+ this._last_x = this._x;
|
|
+ this._last_y = this._y;
|
|
+ this._last_z = this._z;
|
|
+ this._last_yaw = this._yaw;
|
|
+ this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ protected void transferFrom(Drone var1) {
|
|
+ this.makeIdentity().post(var1);
|
|
+ this._x = var1._x;
|
|
+ this._y = var1._y;
|
|
+ this._z = var1._z;
|
|
+ this._yaw = var1._yaw;
|
|
+ this._vel_x = var1._vel_x;
|
|
+ this._vel_y = var1._vel_y;
|
|
+ this._vel_z = var1._vel_z;
|
|
+ this._vel_yaw = var1._vel_yaw;
|
|
+ this._last_x = var1._last_x;
|
|
+ this._last_y = var1._last_y;
|
|
+ this._last_z = var1._last_z;
|
|
+ this._last_yaw = var1._last_yaw;
|
|
+ this._last_PosTime = var1._last_PosTime;
|
|
+ this._last_FrameTime = var1._last_FrameTime;
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void appear(Room var1, short var2, short var3, short var4, short var5) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ BlackBox.getInstance().submitEvent(new BBAppearDroneCommand(var1.toString(), this.getName(), var2, var3, var4, var5));
|
|
+ if (this.getRoom() != var1) {
|
|
this.detach();
|
|
- break;
|
|
- default:
|
|
- if (var4 == null) {
|
|
- this.detach();
|
|
- } else {
|
|
- Debug.dAssert(var4 != null);
|
|
- this.appear(var4, var5, var6, var7, var8);
|
|
- }
|
|
- }
|
|
+ var1.add(this);
|
|
+ }
|
|
+
|
|
+ this.makeIdentity().moveBy((float)var2, (float)var3, (float)var4).yaw((float)var5);
|
|
+ this._x = var2;
|
|
+ this._y = var3;
|
|
+ this._z = var4;
|
|
+ this._yaw = var5;
|
|
+ this._vel_x = this._vel_y = this._vel_z = 0;
|
|
+ this._vel_yaw = 0;
|
|
+ this._last_x = var2;
|
|
+ this._last_y = var3;
|
|
+ this._last_z = var4;
|
|
+ this._last_yaw = var5;
|
|
+ this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
+ URL var6 = this.getCurrentURL();
|
|
+ if (var6 != null) {
|
|
+ this.setAvatarNow(var6);
|
|
+ }
|
|
+
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void disappear() {
|
|
+ BlackBox.getInstance().submitEvent(new BBDisappearDroneCommand(this.getName()));
|
|
+ this.detachFromServer(true);
|
|
+ this.detach();
|
|
+ }
|
|
+
|
|
+ public void longLoc(short var1, short var2, short var3, short var4) {
|
|
+ if (!(this.getOwner() instanceof Pilot)) {
|
|
+ BlackBox.getInstance().submitEvent(new BBMoveDroneCommand(this.getName(), var1, var2, var3, var4));
|
|
+ }
|
|
+
|
|
+ this._last_x = var1;
|
|
+ this._last_y = var2;
|
|
+ this._last_z = var3;
|
|
+ this._last_yaw = var4;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = this._last_z - this._z;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ Debug.dAssert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+
|
|
+ this._last_PosTime = Std.getRealTime();
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void property(OldPropertyList var1) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ netProperty var2 = var1.elementAt(var4);
|
|
+ switch(var2.property()) {
|
|
+ case 5:
|
|
+ this.handleVAR_BITMAP(var2.value());
|
|
+ break;
|
|
+ case 23:
|
|
+ this.handleVAR_ASLEEP(var2.value());
|
|
+ break;
|
|
+ default:
|
|
+ byte[] var5 = new byte[var2.value().length()];
|
|
+ var2.value().getBytes(0, var2.value().length(), var5, 0);
|
|
+ this.getSharer().setFromNetData(var2.property(), var5);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void propertyUpdate(PropertyList var1) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ net2Property var2 = var1.elementAt(var4);
|
|
+ switch(var2.property()) {
|
|
+ case 5:
|
|
+ this.handleVAR_BITMAP(var2.value());
|
|
+ break;
|
|
+ case 23:
|
|
+ this.handleVAR_ASLEEP(var2.value());
|
|
+ break;
|
|
+ default:
|
|
+ this.getSharer().setFromNetData(var2.property(), var2.data());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void roomChange(Room var1, short var2, short var3, short var4, short var5) {
|
|
+ this.detach();
|
|
+ if (var1 != null) {
|
|
+ this.appear(var1, var2, var3, var4, var5);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void shortLoc(byte var1, byte var2, byte var3) {
|
|
+ if (!(this.getOwner() instanceof Pilot)) {
|
|
+ BlackBox.getInstance().submitEvent(new BBDroneDeltaPosCommand(this.getName(), var1, var2, var3));
|
|
+ }
|
|
+
|
|
+ this._last_x += var1;
|
|
+ this._last_y += var2;
|
|
+ this._last_yaw += var3;
|
|
+ this._last_yaw %= 360;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = 0;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ Debug.dAssert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+
|
|
+ this._last_PosTime = Std.getRealTime();
|
|
+ }
|
|
+
|
|
+ public void teleport(WorldServer var1, byte var2, byte var3, Room var4, short var5, short var6, short var7, short var8) {
|
|
+ Debug.dAssert(var1.getObject(new ObjID(this.getLongID())) == this);
|
|
+ Room var9 = this.getRoom();
|
|
+ switch(var2) {
|
|
+ default:
|
|
+ if (var9 != null) {
|
|
+ Debug.dAssert(var9 != null);
|
|
+ this.detach();
|
|
+ }
|
|
+ case 0:
|
|
+ switch(var3) {
|
|
+ case 0:
|
|
+ this.detachFromServer(true);
|
|
+ this.detach();
|
|
+ break;
|
|
+ default:
|
|
+ if (var4 == null) {
|
|
+ this.detach();
|
|
+ } else {
|
|
+ Debug.dAssert(var4 != null);
|
|
+ this.appear(var4, var5, var6, var7, var8);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public WorldServer getServer() {
|
|
+ return this._server;
|
|
+ }
|
|
+
|
|
+ public String getLongID() {
|
|
+ String var1 = this.getName();
|
|
+ if (var1.startsWith("!")) {
|
|
+ var1 = var1.substring(1);
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ public void register() {
|
|
+ Debug.dAssert(false);
|
|
+ }
|
|
+
|
|
+ public void galaxyDisconnected() {
|
|
+ Debug.dAssert(false);
|
|
+ }
|
|
+
|
|
+ public void reacquireServer(WorldServer var1) {
|
|
+ Debug.dAssert(false);
|
|
+ }
|
|
+
|
|
+ public void changeChannel(Galaxy var1, String var2, String var3) {
|
|
+ Debug.dAssert(false);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 0, var3, var4);
|
|
+ return var5;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ if (this.console != null) {
|
|
+ System.out.println("Warning: saving drone " + this.getName() + " WITH soul, which won't restore correctly!");
|
|
+ }
|
|
+
|
|
+ var1.saveVersion(0, classCookieInterpolatedDrone);
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreStateDrone(Restorer var1) throws IOException, TooNewException {
|
|
+ var1.restoreVersion(classCookieInterpolatedDrone);
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ Enumeration var2 = this.getContents();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ WObject var3 = (WObject)var2.nextElement();
|
|
+ if (var3 instanceof Hologram) {
|
|
+ Hologram var4 = (Hologram)var3;
|
|
+ if (var4.getMovieName() == null) {
|
|
+ this.tag = var4;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ this.restoreStateDrone(var1);
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static String access$000(Drone var0) {
|
|
+ return var0.sleepMode;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static Shape access$100(Drone var0) {
|
|
+ return var0.sleepBox;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static Shape access$102(Drone var0, Shape var1) {
|
|
+ return var0.sleepBox = var1;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static void access$200() {
|
|
+ flushUnusedDrones();
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static float access$300(Drone var0) {
|
|
+ return var0.tagHeight;
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ Main.register(new Drone$Flusher());
|
|
+ showNametags = IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1;
|
|
+ employeeAccounts = ServerTableManager.instance().getTable("employeeAccounts");
|
|
+ employeeHash = null;
|
|
+ usableDrones = new Vector();
|
|
+ classCookie = new Object();
|
|
+ classCookieInterpolatedDrone = new Object();
|
|
+ }
|
|
+}
|
|
+
|
|
+class Drone$MakeSleepBox implements MainCallback {
|
|
+
|
|
+ private final Drone this$0;
|
|
|
|
- }
|
|
- }
|
|
|
|
- public WorldServer getServer() {
|
|
- return this._server;
|
|
- }
|
|
-
|
|
- public String getLongID() {
|
|
- String var1 = this.getName();
|
|
- if (var1.startsWith("!")) {
|
|
- var1 = var1.substring(1);
|
|
- }
|
|
-
|
|
- return var1;
|
|
- }
|
|
-
|
|
- public void register() {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- public void galaxyDisconnected() {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- public void reacquireServer(WorldServer var1) {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- public void changeChannel(Galaxy var1, String var2, String var3) {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 0, var3, var4);
|
|
- return var5;
|
|
- }
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- if (this.console != null) {
|
|
- System.out.println("Warning: saving drone " + this.getName() + " WITH soul, which won't restore correctly!");
|
|
- }
|
|
-
|
|
- var1.saveVersion(0, classCookieInterpolatedDrone);
|
|
- var1.saveVersion(0, classCookie);
|
|
- super.saveState(var1);
|
|
- }
|
|
-
|
|
- public void restoreStateDrone(Restorer var1) throws IOException, TooNewException {
|
|
- var1.restoreVersion(classCookieInterpolatedDrone);
|
|
- switch(var1.restoreVersion(classCookie)) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- Enumeration var2 = this.getContents();
|
|
-
|
|
- while(var2.hasMoreElements()) {
|
|
- WObject var3 = (WObject)var2.nextElement();
|
|
- if (var3 instanceof Hologram) {
|
|
- Hologram var4 = (Hologram)var3;
|
|
- if (var4.getMovieName() == null) {
|
|
- this.tag = var4;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- this.restoreStateDrone(var1);
|
|
- }
|
|
-
|
|
- static {
|
|
- Main.register(new Drone.Flusher());
|
|
- showNametags = IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1;
|
|
- employeeAccounts = ServerTableManager.instance().getTable("employeeAccounts");
|
|
- employeeHash = null;
|
|
- usableDrones = new Vector();
|
|
- classCookie = new Object();
|
|
- classCookieInterpolatedDrone = new Object();
|
|
- }
|
|
-
|
|
- class BounceNametag implements MainCallback {
|
|
- int start;
|
|
- WObject origTag;
|
|
- WObject origTagbg;
|
|
+ Drone$MakeSleepBox(Drone var1) {
|
|
+ this.this$0 = var1;
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ if(Drone.access$000(this.this$0) != null && Drone.access$000(this.this$0).equals(Console.message("asleep")) && (!(this.this$0 instanceof MutedDrone))) {
|
|
+ if(Drone.access$100(this.this$0) == null) {
|
|
+ Drone.access$102(this.this$0, new Shape());
|
|
+ Drone.access$100(this.this$0).setURL(URL.make("home:idle.rwg"));
|
|
+ Drone.access$100(this.this$0).setBumpable(false);
|
|
+ Drone.access$100(this.this$0).scale(100.0F);
|
|
+ Drone.access$100(this.this$0).spin(0.0F, 1.0F, 1.0F, 180.0F);
|
|
+ Drone.access$100(this.this$0).raise(189.0F);
|
|
+ this.this$0.add(Drone.access$100(this.this$0));
|
|
+ }
|
|
+ } else if(Drone.access$100(this.this$0) != null) {
|
|
+ Drone.access$100(this.this$0).detach();
|
|
+ Drone.access$102(this.this$0, (Shape)null);
|
|
+ }
|
|
|
|
- BounceNametag() {
|
|
- if (Drone.this.tag != null) {
|
|
+ Main.unregister(this);
|
|
+ }
|
|
+}
|
|
+
|
|
+class Drone$Flusher implements MainCallback {
|
|
+
|
|
+ int lastTime;
|
|
+
|
|
+
|
|
+ public void mainCallback() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ if(var1 > this.lastTime + 1000) {
|
|
+ Drone.access$200();
|
|
+ this.lastTime = var1;
|
|
+ }
|
|
+
|
|
+ }
|
|
+}
|
|
+
|
|
+class Drone$BounceNametag implements MainCallback {
|
|
+
|
|
+ int start;
|
|
+ WObject origTag;
|
|
+ WObject origTagbg;
|
|
+ private final Drone this$0;
|
|
+
|
|
+
|
|
+ Drone$BounceNametag(Drone var1) {
|
|
+ this.this$0 = var1;
|
|
+ if(var1.tag != null) {
|
|
this.start = Std.getFastTime();
|
|
- this.origTag = Drone.this.tag;
|
|
- this.origTagbg = Drone.this.tagbg;
|
|
+ this.origTag = var1.tag;
|
|
+ this.origTagbg = var1.tagbg;
|
|
Main.register(this);
|
|
- }
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
|
|
- public void mainCallback() {
|
|
- int var1 = Std.getFastTime();
|
|
- float var2 = Drone.this.tagHeight;
|
|
- if (var1 <= this.start + 6000 && this.origTag == Drone.this.tag && this.origTagbg == Drone.this.tagbg) {
|
|
- if (var1 < this.start + 1500) {
|
|
- var2 = Drone.this.tagHeight + 200.0F * ((float)(var1 - this.start) / 1500.0F);
|
|
+ public void mainCallback() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ float var2 = Drone.access$300(this.this$0);
|
|
+ if(var1 <= this.start + 6000 && this.origTag == this.this$0.tag && this.origTagbg == this.this$0.tagbg) {
|
|
+ if(var1 < this.start + 1500) {
|
|
+ var2 = Drone.access$300(this.this$0) + 200.0F * ((float)(var1 - this.start) / 1500.0F);
|
|
} else {
|
|
- float var3 = (float)(var1 - this.start) / 1500.0F;
|
|
- var2 = (float)(200.0D * Math.pow(1.4140000343322754D, (double)var3) * Math.cos((double)(var3 * 3.14159F)));
|
|
+ float var3 = (float)(var1 - this.start) / 1500.0F;
|
|
+ var2 = (float)(200.0D * Math.pow(1.4140000343322754D, (double)var3) * Math.cos((double)(var3 * 3.14159F)));
|
|
}
|
|
- } else {
|
|
+ } else {
|
|
Main.unregister(this);
|
|
- }
|
|
+ }
|
|
|
|
- this.origTag.setZ(var2);
|
|
- if (this.origTagbg != null) {
|
|
+ this.origTag.setZ(var2);
|
|
+ if(this.origTagbg != null) {
|
|
this.origTagbg.setZ(var2);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- static class Flusher implements MainCallback {
|
|
- int lastTime;
|
|
+ }
|
|
|
|
- public void mainCallback() {
|
|
- int var1 = Std.getFastTime();
|
|
- if (var1 > this.lastTime + 1000) {
|
|
- Drone.flushUnusedDrones();
|
|
- this.lastTime = var1;
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- class MakeSleepBox implements MainCallback {
|
|
- public void mainCallback() {
|
|
- if (Drone.this.sleepMode != null && Drone.this.sleepMode.equals(Console.message("asleep")) && !(Drone.this instanceof MutedDrone)) {
|
|
- if (Drone.this.sleepBox == null) {
|
|
- Drone.this.sleepBox = new Shape();
|
|
- Drone.this.sleepBox.setURL(URL.make("home:idle.rwg"));
|
|
- Drone.this.sleepBox.setBumpable(false);
|
|
- Drone.this.sleepBox.scale(100.0F);
|
|
- Drone.this.sleepBox.spin(0.0F, 1.0F, 1.0F, 180.0F);
|
|
- Drone.this.sleepBox.raise(189.0F);
|
|
- Drone.this.add(Drone.this.sleepBox);
|
|
- }
|
|
- } else if (Drone.this.sleepBox != null) {
|
|
- Drone.this.sleepBox.detach();
|
|
- Drone.this.sleepBox = null;
|
|
- }
|
|
-
|
|
- Main.unregister(this);
|
|
- }
|
|
- }
|
|
-}
|
|
+ }
|
|
+}
|
|
diff -ruN a/1890/NET/worlds/scape/HighJump.java b/1890/NET/worlds/scape/HighJump.java
|
|
--- a/1890/NET/worlds/scape/HighJump.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/HighJump.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -28,18 +28,20 @@
|
|
private SmoothDriver findSD(Pilot var1) {
|
|
Enumeration var2 = var1.getHandlers();
|
|
|
|
- while(var2.hasMoreElements()) {
|
|
- Object var3 = var2.nextElement();
|
|
- if (var3 instanceof SmoothDriver) {
|
|
- return (SmoothDriver)var3;
|
|
+ Object var3;
|
|
+ do {
|
|
+ if (!var2.hasMoreElements()) {
|
|
+ return null;
|
|
}
|
|
- }
|
|
|
|
- return null;
|
|
+ var3 = var2.nextElement();
|
|
+ } while(!(var3 instanceof SmoothDriver));
|
|
+
|
|
+ return (SmoothDriver)var3;
|
|
}
|
|
|
|
public boolean doAction() {
|
|
- if (super.itemQuantity_ > 0) {
|
|
+ if (this.itemQuantity_ > 0) {
|
|
Pilot var1 = Pilot.getActive();
|
|
if (var1 == null) {
|
|
return false;
|
|
@@ -51,7 +53,7 @@
|
|
if (this.sd != null) {
|
|
Main.register(this);
|
|
this.start = Std.getRealTime();
|
|
- --super.itemQuantity_;
|
|
+ --this.itemQuantity_;
|
|
}
|
|
|
|
return true;
|
|
diff -ruN a/1890/NET/worlds/scape/MutedDrone.java b/1890/NET/worlds/scape/MutedDrone.java
|
|
--- a/1890/NET/worlds/scape/MutedDrone.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/MutedDrone.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,43 +1,44 @@
|
|
package NET.worlds.scape;
|
|
|
|
+import NET.worlds.console.HiddenDrone;
|
|
import NET.worlds.network.ObjID;
|
|
import NET.worlds.network.URL;
|
|
import NET.worlds.network.WorldServer;
|
|
import java.io.IOException;
|
|
|
|
-public class MutedDrone extends Drone {
|
|
- private static Object classCookie = new Object();
|
|
+public class MutedDrone extends Drone implements HiddenDrone {
|
|
+ private static Object classCookie = new Object();
|
|
|
|
- public MutedDrone(ObjID var1, WorldServer var2, URL var3) {
|
|
- super(var1, var2);
|
|
- this.setSourceURL(var3);
|
|
- }
|
|
-
|
|
- public MutedDrone() {
|
|
- }
|
|
-
|
|
- public Drone setAvatarNow(URL var1) {
|
|
- if (this.shouldBeMuted()) {
|
|
- this.setSourceURL(var1);
|
|
- return this;
|
|
- } else {
|
|
- return super.setAvatarNow(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(1, classCookie);
|
|
- super.saveState(var1);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- int var2 = var1.restoreVersion(classCookie);
|
|
- switch(var2) {
|
|
- case 1:
|
|
- super.restoreState(var1);
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
+ public MutedDrone(ObjID var1, WorldServer var2, URL var3) {
|
|
+ super(var1, var2);
|
|
+ this.setSourceURL(var3);
|
|
+ }
|
|
+
|
|
+ public MutedDrone() {
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (this.shouldBeMuted()) {
|
|
+ this.setSourceURL(var1);
|
|
+ return this;
|
|
+ } else {
|
|
+ return super.setAvatarNow(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(1, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/scape/ParallelAction.java b/1890/NET/worlds/scape/ParallelAction.java
|
|
--- a/1890/NET/worlds/scape/ParallelAction.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/ParallelAction.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -6,130 +6,131 @@
|
|
import java.util.Vector;
|
|
|
|
public class ParallelAction extends Action implements RunningActionCallback {
|
|
- protected static final int NONE = 0;
|
|
- protected static final int FIRST = 1;
|
|
- protected static final int ALL = -1;
|
|
- protected Vector actions = new Vector();
|
|
- protected int waitState = -1;
|
|
- protected int waitingFor = 0;
|
|
- protected Object currentRun = null;
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- public Persister trigger(Event var1, Persister var2) {
|
|
- if (var2 == null) {
|
|
- if (this.waitingFor == 0) {
|
|
- this.currentRun = new Object();
|
|
- if (this.waitState == -1) {
|
|
- this.waitingFor = this.actions.size();
|
|
- var2 = this;
|
|
- } else if (this.waitState == 1) {
|
|
- this.waitingFor = 1;
|
|
- var2 = this;
|
|
- } else {
|
|
- this.waitingFor = 0;
|
|
- var2 = null;
|
|
- }
|
|
+ protected static final int NONE = 0;
|
|
+ protected static final int FIRST = 1;
|
|
+ protected static final int ALL = -1;
|
|
+ protected Vector actions = new Vector();
|
|
+ protected int waitState = -1;
|
|
+ protected int waitingFor = 0;
|
|
+ protected Object currentRun = null;
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public ParallelAction() {
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (var2 == null) {
|
|
+ if (this.waitingFor == 0) {
|
|
+ this.currentRun = new Object();
|
|
+ if (this.waitState == -1) {
|
|
+ this.waitingFor = this.actions.size();
|
|
+ var2 = this;
|
|
+ } else if (this.waitState == 1) {
|
|
+ this.waitingFor = 1;
|
|
+ var2 = this;
|
|
+ } else {
|
|
+ this.waitingFor = 0;
|
|
+ var2 = null;
|
|
+ }
|
|
|
|
- RunningActionHandler.trigger((Vector)this.actions, this.getWorld(), var1, this, this.currentRun);
|
|
- }
|
|
- } else if (this.waitingFor == 0) {
|
|
- var2 = null;
|
|
- }
|
|
-
|
|
- return (Persister)var2;
|
|
- }
|
|
-
|
|
- public void actionDone(Action var1, Event var2, Object var3) {
|
|
- if (this.waitingFor > 0 && var3 == this.currentRun) {
|
|
- --this.waitingFor;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setWaitForAll() {
|
|
- this.waitState = -1;
|
|
- }
|
|
-
|
|
- public void setWaitForFirst() {
|
|
- this.waitState = 1;
|
|
- }
|
|
-
|
|
- public void setWaitForNone() {
|
|
- this.waitState = 0;
|
|
- }
|
|
-
|
|
- public void addComponent(Action var1) {
|
|
- Debug.dAssert(var1 != null);
|
|
- this.actions.addElement(var1);
|
|
- }
|
|
-
|
|
- public void insertComponent(Action var1, int var2) {
|
|
- Debug.dAssert(var1 != null);
|
|
- this.actions.insertElementAt(var1, var2);
|
|
- }
|
|
-
|
|
- public boolean removeComponent(Action var1) {
|
|
- Debug.dAssert(var1 != null);
|
|
- return this.actions.removeElement(var1);
|
|
- }
|
|
-
|
|
- public Enumeration getComponents() {
|
|
- return this.actions.elements();
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = ObjectPropertyAdder.make(new VectorProperty(this, var1, "Components"), this.getRoot(), "NET.worlds.scape.Action");
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.actions.clone();
|
|
- } else if (var3 == 4) {
|
|
- this.actions.removeElement(var4);
|
|
- } else if (var3 == 3) {
|
|
- this.actions.addElement((Action)var4);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (var3 == 0) {
|
|
- String[] var6 = new String[]{"None", "First", "All"};
|
|
- int[] var7 = new int[]{0, 1, -1};
|
|
- var5 = EnumPropertyEditor.make(new Property(this, var1, "Wait for"), var6, var7);
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Integer(this.waitState);
|
|
- } else if (var3 == 2) {
|
|
- this.waitState = (Integer)var4;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(2, classCookie);
|
|
- super.saveState(var1);
|
|
- var1.saveVector(this.actions);
|
|
- var1.saveInt(this.waitState);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- switch(var1.restoreVersion(classCookie)) {
|
|
- case 1:
|
|
- super.restoreState(var1);
|
|
- this.actions = var1.restoreVector();
|
|
- break;
|
|
- case 2:
|
|
- super.restoreState(var1);
|
|
- this.actions = var1.restoreVector();
|
|
- this.waitState = var1.restoreInt();
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
+ RunningActionHandler.trigger(this.actions, this.getWorld(), var1, this, this.currentRun);
|
|
+ }
|
|
+ } else if (this.waitingFor == 0) {
|
|
+ var2 = null;
|
|
+ }
|
|
+
|
|
+ return (Persister)var2;
|
|
+ }
|
|
+
|
|
+ public void actionDone(Action var1, Event var2, Object var3) {
|
|
+ if (this.waitingFor > 0 && var3 == this.currentRun) {
|
|
+ --this.waitingFor;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setWaitForAll() {
|
|
+ this.waitState = -1;
|
|
+ }
|
|
+
|
|
+ public void setWaitForFirst() {
|
|
+ this.waitState = 1;
|
|
+ }
|
|
+
|
|
+ public void setWaitForNone() {
|
|
+ this.waitState = 0;
|
|
+ }
|
|
+
|
|
+ public void addComponent(Action var1) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ this.actions.addElement(var1);
|
|
+ }
|
|
+
|
|
+ public void insertComponent(Action var1, int var2) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ this.actions.insertElementAt(var1, var2);
|
|
+ }
|
|
+
|
|
+ public boolean removeComponent(Action var1) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ return this.actions.removeElement(var1);
|
|
+ }
|
|
+
|
|
+ public Enumeration getComponents() {
|
|
+ return this.actions.elements();
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = ObjectPropertyAdder.make(new VectorProperty(this, var1, "Components"), this.getRoot(), "NET.worlds.scape.Action");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.actions.clone();
|
|
+ } else if (var3 == 4) {
|
|
+ this.actions.removeElement(var4);
|
|
+ } else if (var3 == 3) {
|
|
+ this.actions.addElement((Action)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = IntegerPropertyEditor.make(new Property(this, var1, "Wait for"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Integer(this.waitState);
|
|
+ } else if (var3 == 2) {
|
|
+ this.waitState = ((Integer)var4).intValue();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(2, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.saveVector(this.actions);
|
|
+ var1.saveInt(this.waitState);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ this.actions = var1.restoreVector();
|
|
+ break;
|
|
+ case 2:
|
|
+ super.restoreState(var1);
|
|
+ this.actions = var1.restoreVector();
|
|
+ this.waitState = var1.restoreInt();
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/scape/PosableShape.java b/1890/NET/worlds/scape/PosableShape.java
|
|
--- a/1890/NET/worlds/scape/PosableShape.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/PosableShape.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -131,7 +131,7 @@
|
|
}
|
|
|
|
public Transform getObjectToWorldMatrix() {
|
|
- return super.clumpID != 0 ? this.getJointedObjectToWorldMatrix(Transform.make()) : super.getObjectToWorldMatrix();
|
|
+ return this.clumpID != 0 ? this.getJointedObjectToWorldMatrix(Transform.make()) : super.getObjectToWorldMatrix();
|
|
}
|
|
|
|
public static int getFigureType(URL var0) {
|
|
@@ -157,7 +157,7 @@
|
|
}
|
|
|
|
public synchronized void setURL(URL var1) {
|
|
- if (var1 != super.url && (var1 == null || !var1.equals(super.url))) {
|
|
+ if (var1 != this.url && (var1 == null || !var1.equals(this.url))) {
|
|
if (var1 == null || !var1.toString().startsWith("avatar:lod")) {
|
|
if (var1 != null) {
|
|
this.download(var1);
|
|
@@ -177,7 +177,7 @@
|
|
}
|
|
|
|
this.setBaseLODURL(var1);
|
|
- if (Shape.forceLODLevel != -1 && super.numDetailLevels > 0 && this.doLOD) {
|
|
+ if (forceLODLevel != -1 && this.numDetailLevels > 0 && this.doLOD) {
|
|
this.setLOD(0.0F);
|
|
return;
|
|
}
|
|
@@ -364,10 +364,10 @@
|
|
this.runPrepFigure = false;
|
|
}
|
|
|
|
- ((Transform)var10).scale(this.getScale(var22), this.getScale(var19), this.getScale(var20));
|
|
+ ((Shape)var10).scale(this.getScale(var22), this.getScale(var19), this.getScale(var20));
|
|
} else if (var17 != 'Q') {
|
|
if (var17 == 'C') {
|
|
- Debug.assert(false);
|
|
+ throw new AssertionError();
|
|
} else if (var17 == 'D') {
|
|
var13 += (int)(1000.0D * (Math.pow(1.0932D, (double)scanBase64(var1.charAt(this.scanPos++))) - 0.8999999761581421D));
|
|
} else if (var17 == 'A') {
|
|
@@ -379,7 +379,7 @@
|
|
break;
|
|
}
|
|
|
|
- System.out.println("Illegal av " + super.url);
|
|
+ System.out.println("Illegal av " + this.url);
|
|
}
|
|
}
|
|
} else {
|
|
@@ -793,56 +793,61 @@
|
|
return var0;
|
|
} else if (NetUpdate.isInternalVersion()) {
|
|
return var0;
|
|
- } else if (!gotServerAvatarList && !serverAvatarListError) {
|
|
- return var0;
|
|
- } else if (serverAvatarListError) {
|
|
- return validateAvatar(var0.getAbsolute()) ? var0 : getDefAv();
|
|
} else {
|
|
- Enumeration var2 = getComponentAvatars(var0);
|
|
-
|
|
- while(var2 != null && var2.hasMoreElements()) {
|
|
- String var3 = (String)var2.nextElement();
|
|
- String var4 = getBodyType(URL.make(var3));
|
|
- if (var4 == null) {
|
|
- return getDefAv();
|
|
- }
|
|
-
|
|
- Vector var5 = (Vector)worldHash.get(var4);
|
|
- if (var5 == null) {
|
|
- return getDefAv();
|
|
- }
|
|
-
|
|
- boolean var6 = false;
|
|
- Enumeration var7 = var5.elements();
|
|
+ boolean var2 = IniFile.override().getIniString("ProductName", "").equalsIgnoreCase("RedLightWorld");
|
|
+ if (var2) {
|
|
+ return var0;
|
|
+ } else if (!gotServerAvatarList && !serverAvatarListError) {
|
|
+ return var0;
|
|
+ } else if (serverAvatarListError) {
|
|
+ return validateAvatar(var0.getAbsolute()) ? var0 : getDefAv();
|
|
+ } else {
|
|
+ Enumeration var3 = getComponentAvatars(var0);
|
|
|
|
- while(var7.hasMoreElements()) {
|
|
- String var8 = (String)var7.nextElement();
|
|
- if (var8 == null) {
|
|
+ while(var3 != null && var3.hasMoreElements()) {
|
|
+ String var4 = (String)var3.nextElement();
|
|
+ String var5 = getBodyType(URL.make(var4));
|
|
+ if (var5 == null) {
|
|
return getDefAv();
|
|
}
|
|
|
|
- if (var8.equals("all")) {
|
|
- var6 = true;
|
|
- break;
|
|
+ Vector var6 = (Vector)worldHash.get(var5);
|
|
+ if (var6 == null) {
|
|
+ return getDefAv();
|
|
}
|
|
|
|
- var8 = var8.replace('_', ' ').toLowerCase().trim();
|
|
- if (var1 != null) {
|
|
- if (var8.equals(var1.toString().toLowerCase().trim())) {
|
|
- var6 = true;
|
|
+ boolean var7 = false;
|
|
+ Enumeration var8 = var6.elements();
|
|
+
|
|
+ while(var8.hasMoreElements()) {
|
|
+ String var9 = (String)var8.nextElement();
|
|
+ if (var9 == null) {
|
|
+ return getDefAv();
|
|
+ }
|
|
+
|
|
+ if (var9.equals("all")) {
|
|
+ var7 = true;
|
|
break;
|
|
}
|
|
- } else {
|
|
- var6 = true;
|
|
+
|
|
+ var9 = var9.replace('_', ' ').toLowerCase().trim();
|
|
+ if (var1 != null) {
|
|
+ if (var9.equals(var1.toString().toLowerCase().trim())) {
|
|
+ var7 = true;
|
|
+ break;
|
|
+ }
|
|
+ } else {
|
|
+ var7 = true;
|
|
+ }
|
|
}
|
|
- }
|
|
|
|
- if (!var6) {
|
|
- return getDefAv();
|
|
+ if (!var7) {
|
|
+ return getDefAv();
|
|
+ }
|
|
}
|
|
- }
|
|
|
|
- return var0;
|
|
+ return var0;
|
|
+ }
|
|
}
|
|
}
|
|
|
|
@@ -1221,7 +1226,8 @@
|
|
public boolean handle(FrameEvent var1) {
|
|
float var2 = this.closestView;
|
|
this.closestView = 10000.0F;
|
|
- if (this.animator != null && var2 <= 900.0F && this.hasClump()) {
|
|
+ float distance = IniFile.gamma().getIniInt("AnimationQualityDistance", 900);
|
|
+ if (this.animator != null && var2 <= distance && this.hasClump()) {
|
|
if (this.recomputeHeight) {
|
|
if (this.runPrepFigure) {
|
|
DroneAnimator.prepFigure(this, this.COG);
|
|
@@ -1275,7 +1281,7 @@
|
|
} else if (var3 == 1) {
|
|
var5 = new Boolean(this.COG);
|
|
} else if (var3 == 2) {
|
|
- this.COG = (Boolean)var4;
|
|
+ this.COG = ((Boolean)var4).booleanValue();
|
|
URL var6 = this.getURL();
|
|
this.setURL(defaultURL);
|
|
this.setURL(var6);
|
|
@@ -1338,12 +1344,12 @@
|
|
}
|
|
}
|
|
|
|
- for(int var1 = 1; var1 < humanList.length; var1 += 2) {
|
|
- humanHash.put(humanList[var1 - 1], humanList[var1]);
|
|
+ for(var0 = 1; var0 < humanList.length; var0 += 2) {
|
|
+ humanHash.put(humanList[var0 - 1], humanList[var0]);
|
|
}
|
|
|
|
- for(int var2 = 0; var2 < faceList.length; var2 += 2) {
|
|
- faceTextures.put(faceList[var2], faceList[var2 + 1]);
|
|
+ for(var0 = 0; var0 < faceList.length; var0 += 2) {
|
|
+ faceTextures.put(faceList[var0], faceList[var0 + 1]);
|
|
}
|
|
|
|
gotServerAvatarList = false;
|
|
diff -ruN a/1890/NET/worlds/scape/SelectAvatarAction.java b/1890/NET/worlds/scape/SelectAvatarAction.java
|
|
--- a/1890/NET/worlds/scape/SelectAvatarAction.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/SelectAvatarAction.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,3 +1,8 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by Fernflower decompiler)
|
|
+//
|
|
+
|
|
package NET.worlds.scape;
|
|
|
|
import NET.worlds.console.Console;
|
|
@@ -8,138 +13,141 @@
|
|
import java.io.IOException;
|
|
|
|
public class SelectAvatarAction extends DialogAction {
|
|
- URL url = null;
|
|
- String description;
|
|
- static String[] avatarAliases = ServerTableManager.instance().getTable("avatarAliases");
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- private URL getURLVal() {
|
|
- URL var1 = this.url;
|
|
- if (var1 == null) {
|
|
- SuperRoot var2 = this.getOwner();
|
|
- if (var2 instanceof Drone) {
|
|
- var1 = ((Drone)var2).getSourceURL();
|
|
- } else if (var2 instanceof PosableShape) {
|
|
- var1 = ((Shape)var2).getURL();
|
|
- } else if (var2 instanceof Hologram) {
|
|
- var1 = ((Hologram)var2).getMovieName();
|
|
- }
|
|
- }
|
|
-
|
|
- return var1;
|
|
- }
|
|
-
|
|
- public void doIt() {
|
|
- Console var1 = Console.getActive();
|
|
- URL var2 = this.getURLVal();
|
|
- if (var1 != null && var2 != null) {
|
|
- var1.setAvatar(var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public PolledDialog getDialog() {
|
|
- URL var1 = this.getURLVal();
|
|
- if (!Console.getActive().getVIP() && var1.getInternal().toLowerCase().endsWith(".rwg")) {
|
|
- return new OkCancelDialog(Console.getFrame(), this, Console.message("Cant-change-AV"), Console.message("OK"), (String)null, Console.message("Only-VIPs-change"), false);
|
|
- } else {
|
|
- String var2 = this.description;
|
|
- if (var2 == null || var2.length() == 0) {
|
|
- var2 = getPrettyAvatarName(var1.getBase());
|
|
- }
|
|
-
|
|
- return new ChangeAvatarDialog(Console.getFrame(), this, var2);
|
|
- }
|
|
- }
|
|
-
|
|
- public static String getPrettyAvatarName(String var0) {
|
|
- int var1 = var0.indexOf(46);
|
|
- if (var1 >= 0) {
|
|
- var0 = var0.substring(0, var1).toLowerCase();
|
|
- } else {
|
|
- var0 = var0.toLowerCase();
|
|
- }
|
|
-
|
|
- for(int var2 = 0; var2 < avatarAliases.length; var2 += 2) {
|
|
- if (avatarAliases[var2].equals(var0)) {
|
|
- return avatarAliases[var2 + 1];
|
|
- }
|
|
- }
|
|
-
|
|
- String var3 = var0.substring(0, 1).toUpperCase();
|
|
- if (var0.length() > 1) {
|
|
- var3 = var3 + var0.substring(1);
|
|
- }
|
|
-
|
|
- return var3;
|
|
- }
|
|
-
|
|
- public Persister trigger(Event var1, Persister var2) {
|
|
- URL var3 = this.getURLVal();
|
|
- return var3 == null ? null : super.trigger(var1, var2);
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = URLPropertyEditor.make((new Property(this, var1, "Avatar URL")).allowSetNull(), "pilot;drone;rwx;rwg;mov");
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.url;
|
|
- } else if (var3 == 2) {
|
|
- this.url = (URL)var4;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[url " + (this.url == null ? "null" : this.url.getRelativeTo((SuperRoot)this) + "]");
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(4, classCookie);
|
|
- super.saveState(var1);
|
|
- URL.save(var1, this.url);
|
|
- var1.saveString(this.description);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- int var2 = var1.restoreVersion(classCookie);
|
|
- switch(var2) {
|
|
- case 0:
|
|
- var1.setOldFlag();
|
|
- this.dialogActionSkipRestore(var1);
|
|
- this.url = URL.restore(var1, ".world");
|
|
- break;
|
|
- case 1:
|
|
- var1.setOldFlag();
|
|
- this.dialogActionSkipRestore(var1);
|
|
- this.url = URL.restore(var1, ".world");
|
|
- super.showDialog = var1.restoreBoolean();
|
|
- break;
|
|
- case 2:
|
|
- this.dialogActionSkipRestore(var1);
|
|
- this.url = URL.restore(var1, ".world");
|
|
- super.showDialog = var1.restoreBoolean();
|
|
- super.cancelOnly = var1.restoreBoolean();
|
|
- break;
|
|
- case 3:
|
|
- case 4:
|
|
- super.restoreState(var1);
|
|
- this.url = URL.restore(var1, ".world");
|
|
- if (var2 >= 4) {
|
|
- this.description = var1.restoreString();
|
|
- }
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
+ URL url = null;
|
|
+ String description;
|
|
+ static String[] avatarAliases = ServerTableManager.instance().getTable("avatarAliases");
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public SelectAvatarAction() {
|
|
+ }
|
|
+
|
|
+ private URL getURLVal() {
|
|
+ URL var1 = this.url;
|
|
+ if (var1 == null) {
|
|
+ SuperRoot var2 = this.getOwner();
|
|
+ if (var2 instanceof Drone) {
|
|
+ var1 = ((Drone)var2).getSourceURL();
|
|
+ } else if (var2 instanceof PosableShape) {
|
|
+ var1 = ((Shape)var2).getURL();
|
|
+ } else if (var2 instanceof Hologram) {
|
|
+ var1 = ((Hologram)var2).getMovieName();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ public void doIt() {
|
|
+ Console var1 = Console.getActive();
|
|
+ URL var2 = this.getURLVal();
|
|
+ if (var1 != null && var2 != null) {
|
|
+ var1.setAvatar(var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public PolledDialog getDialog() {
|
|
+ URL var1 = this.getURLVal();
|
|
+ if (!Console.getActive().getFullVIP() && var1.getInternal().toLowerCase().endsWith(".rwg")) {
|
|
+ return new OkCancelDialog(Console.getFrame(), this, Console.message("Cant-change-AV"), Console.message("OK"), (String)null, Console.message("Only-VIPs-change"), false);
|
|
+ } else {
|
|
+ String var2 = this.description;
|
|
+ if (var2 == null || var2.length() == 0) {
|
|
+ var2 = getPrettyAvatarName(var1.getBase());
|
|
+ }
|
|
+
|
|
+ return new ChangeAvatarDialog(Console.getFrame(), this, var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static String getPrettyAvatarName(String var0) {
|
|
+ int var1 = var0.indexOf(46);
|
|
+ if (var1 >= 1) {
|
|
+ var0 = var0.substring(0, var1).toLowerCase();
|
|
+ } else {
|
|
+ var0 = var0.toLowerCase();
|
|
+ }
|
|
+
|
|
+ for(int var2 = 0; var2 < avatarAliases.length; var2 += 2) {
|
|
+ if (avatarAliases[var2].equals(var0)) {
|
|
+ return avatarAliases[var2 + 1];
|
|
+ }
|
|
+ }
|
|
+
|
|
+ String var3 = var0.substring(0, 1).toUpperCase();
|
|
+ if (var0.length() > 1) {
|
|
+ var3 = var3 + var0.substring(1);
|
|
+ }
|
|
+
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ URL var3 = this.getURLVal();
|
|
+ return var3 == null ? null : super.trigger(var1, var2);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make((new Property(this, var1, "Avatar URL")).allowSetNull(), "pilot;drone;rwx;rwg;mov");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.url;
|
|
+ } else if (var3 == 2) {
|
|
+ this.url = (URL)var4;
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[url " + (this.url == null ? "null" : this.url.getRelativeTo(this) + "]");
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(4, classCookie);
|
|
+ super.saveState(var1);
|
|
+ URL.save(var1, this.url);
|
|
+ var1.saveString(this.description);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ var1.setOldFlag();
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ break;
|
|
+ case 1:
|
|
+ var1.setOldFlag();
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ this.showDialog = var1.restoreBoolean();
|
|
+ break;
|
|
+ case 2:
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ this.showDialog = var1.restoreBoolean();
|
|
+ this.cancelOnly = var1.restoreBoolean();
|
|
+ break;
|
|
+ case 3:
|
|
+ case 4:
|
|
+ super.restoreState(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ if (var2 >= 4) {
|
|
+ this.description = var1.restoreString();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/scape/SuperRoot.java b/1890/NET/worlds/scape/SuperRoot.java
|
|
--- a/1890/NET/worlds/scape/SuperRoot.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/SuperRoot.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -41,7 +41,7 @@
|
|
SuperRoot var4 = (SuperRoot)var3.nextElement();
|
|
if (var4.name != null && var4.name.startsWith(var2)) {
|
|
try {
|
|
- int var5 = Integer.valueOf(var4.name.substring(var2.length()));
|
|
+ int var5 = Integer.valueOf(var4.name.substring(var2.length())).intValue();
|
|
if (var5 > var1) {
|
|
var1 = var5;
|
|
}
|
|
@@ -71,16 +71,18 @@
|
|
}
|
|
|
|
public static SuperRoot nameSearch(Enumeration var0, String var1) {
|
|
- SuperRoot var2;
|
|
- do {
|
|
- if (!var0.hasMoreElements()) {
|
|
- return null;
|
|
- }
|
|
+ while(true) {
|
|
+ if (var0.hasMoreElements()) {
|
|
+ SuperRoot var2 = (SuperRoot)var0.nextElement();
|
|
+ if (!var1.equals(var2.name)) {
|
|
+ continue;
|
|
+ }
|
|
|
|
- var2 = (SuperRoot)var0.nextElement();
|
|
- } while(!var1.equals(var2.name));
|
|
+ return var2;
|
|
+ }
|
|
|
|
- return var2;
|
|
+ return null;
|
|
+ }
|
|
}
|
|
|
|
public URL getHelpURL() {
|
|
@@ -120,12 +122,7 @@
|
|
this.setName((String)null);
|
|
} else if (var3 == 2) {
|
|
String var6 = (String)var4;
|
|
- if (!var6.equals(this.name) && this.owner != null && nameSearch(this.getRoot().getDeepOwned(), var6) != null) {
|
|
- Object[] var7 = new Object[]{new String(var6), new String(this.getRoot().getName())};
|
|
- Console.println(MessageFormat.format(Console.message("Name-in-use"), var7));
|
|
- } else {
|
|
- this.setName((String)var4);
|
|
- }
|
|
+ this.setName((String)var4);
|
|
}
|
|
break;
|
|
case 1:
|
|
@@ -240,11 +237,11 @@
|
|
var3.done();
|
|
var4.setSourceURL(var1);
|
|
return var4;
|
|
- } catch (FileNotFoundException var8) {
|
|
- } catch (ClassCastException var9) {
|
|
- } catch (IOException var10) {
|
|
- } catch (TooNewException var11) {
|
|
- } catch (BadFormatException var12) {
|
|
+ } catch (FileNotFoundException var5) {
|
|
+ } catch (ClassCastException var6) {
|
|
+ } catch (IOException var7) {
|
|
+ } catch (TooNewException var8) {
|
|
+ } catch (BadFormatException var9) {
|
|
}
|
|
|
|
return null;
|
|
@@ -348,7 +345,7 @@
|
|
Integer var2 = (Integer)finalizedClasses.get(var1);
|
|
int var3 = 0;
|
|
if (var2 != null) {
|
|
- var3 = var2;
|
|
+ var3 = var2.intValue();
|
|
}
|
|
|
|
++var3;
|
|
@@ -368,7 +365,7 @@
|
|
Integer var3 = (Integer)classCounter.get(var2);
|
|
int var4 = 0;
|
|
if (var3 != null) {
|
|
- var4 = var3;
|
|
+ var4 = var3.intValue();
|
|
}
|
|
|
|
var4 += var1;
|
|
diff -ruN a/1890/NET/worlds/scape/TalkAction.java b/1890/NET/worlds/scape/TalkAction.java
|
|
--- a/1890/NET/worlds/scape/TalkAction.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/TalkAction.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,61 +1,64 @@
|
|
package NET.worlds.scape;
|
|
|
|
+import NET.worlds.console.Console;
|
|
+import NET.worlds.core.IniFile;
|
|
+
|
|
import java.io.IOException;
|
|
|
|
public class TalkAction extends Action {
|
|
- String txt = null;
|
|
- private static Object classCookie = new Object();
|
|
+ String txt = null;
|
|
+ private static final Object classCookie = new Object();
|
|
|
|
- public TalkAction() {
|
|
- }
|
|
+ public TalkAction() {
|
|
+ }
|
|
|
|
- public TalkAction(String var1) {
|
|
- this.txt = var1;
|
|
- }
|
|
-
|
|
- public Persister trigger(Event var1, Persister var2) {
|
|
- Pilot.getActive();
|
|
- Pilot.sendText(this.txt);
|
|
- return null;
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.txt;
|
|
- } else if (var3 == 2) {
|
|
- this.txt = (String)var4;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(0, classCookie);
|
|
- super.saveState(var1);
|
|
- var1.saveString(this.txt);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- switch(var1.restoreVersion(classCookie)) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- this.txt = var1.restoreString();
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[" + this.txt + "]";
|
|
- }
|
|
+ public TalkAction(String var1) {
|
|
+ this.txt = var1;
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (IniFile.gamma().getIniInt("DisableTalkAction", 1) == 1) {
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) Pilot.getActive().console.printLine(Console.getActive().getLongID() + ": " + this.txt);
|
|
+ else Pilot.getActive().console.printLine("<b> " + Console.getActive().getLongID() + ": </b> <color=darkgray> " + this.txt + " </color>");
|
|
+ } else {
|
|
+ Pilot.sendText(this.txt);
|
|
+ }
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ if (var1 - var2 == 0) {
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.txt;
|
|
+ } else if (var3 == 2) {
|
|
+ this.txt = (String) var4;
|
|
+ }
|
|
+ } else {
|
|
+ var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.saveString(this.txt);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ if (var1.restoreVersion(classCookie) == 0) {
|
|
+ super.restoreState(var1);
|
|
+ this.txt = var1.restoreString();
|
|
+ return;
|
|
+ }
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[" + this.txt + "]";
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worlds/scape/TarredDrone.java b/1890/NET/worlds/scape/TarredDrone.java
|
|
--- a/1890/NET/worlds/scape/TarredDrone.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worlds/scape/TarredDrone.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,44 @@
|
|
+package NET.worlds.scape;
|
|
+
|
|
+import NET.worlds.console.HiddenDrone;
|
|
+import NET.worlds.network.ObjID;
|
|
+import NET.worlds.network.URL;
|
|
+import NET.worlds.network.WorldServer;
|
|
+import java.io.IOException;
|
|
+
|
|
+public class TarredDrone extends Drone implements HiddenDrone {
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public TarredDrone(ObjID var1, WorldServer var2, URL var3) {
|
|
+ super(var1, var2);
|
|
+ this.setSourceURL(var3);
|
|
+ }
|
|
+
|
|
+ public TarredDrone() {
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (this.shouldBeTarred()) {
|
|
+ this.setSourceURL(URL.make("avatar:holden.mov"));
|
|
+ return this;
|
|
+ } else {
|
|
+ return super.setAvatarNow(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(1, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff -ruN a/1890/NET/worlds/scape/TeleportAction.java b/1890/NET/worlds/scape/TeleportAction.java
|
|
--- a/1890/NET/worlds/scape/TeleportAction.java 2023-08-21 23:27:15.000000000 -0500
|
|
+++ b/1890/NET/worlds/scape/TeleportAction.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,547 +1,543 @@
|
|
package NET.worlds.scape;
|
|
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.DialogReceiver;
|
|
-import NET.worlds.console.GammaFrame;
|
|
-import NET.worlds.console.Main;
|
|
-import NET.worlds.console.MainCallback;
|
|
-import NET.worlds.console.WorldsMarkPart;
|
|
+import NET.worlds.console.*;
|
|
import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.network.NetUpdate;
|
|
import NET.worlds.network.URL;
|
|
+
|
|
import java.io.IOException;
|
|
import java.net.MalformedURLException;
|
|
import java.text.MessageFormat;
|
|
|
|
public class TeleportAction extends Action implements LoadedURLSelf, MainCallback, DialogReceiver {
|
|
- private Point3 targetCoords = new Point3();
|
|
- private float targetRot = 0.0F;
|
|
- private Point3 targetAxis = new Point3(0.0F, 0.0F, -1.0F);
|
|
- private String targetRoomName = null;
|
|
- private String targetDimension = null;
|
|
- private URL targetWorldURL = null;
|
|
- private boolean useDefCoordinates = false;
|
|
- private boolean done = false;
|
|
- private boolean showDialog = true;
|
|
- private boolean forceWorldLoad = false;
|
|
- private boolean forceNoWorldLoad = false;
|
|
- private String targetURL;
|
|
- private static TeleportAction activeTeleport = null;
|
|
- private TeleportDialog dialog = null;
|
|
- private TeleportStatus doneCallback;
|
|
- String tempParseStr;
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- public TeleportAction() {
|
|
- }
|
|
-
|
|
- public Persister trigger(Event var1, Persister var2) {
|
|
- if (activeTeleport != this) {
|
|
- this.targetURL = this.asURL();
|
|
- this.startTeleport();
|
|
- }
|
|
-
|
|
- return !this.done && activeTeleport != this ? this : null;
|
|
- }
|
|
-
|
|
- public void stopLoading() {
|
|
- this.done = true;
|
|
- if (activeTeleport == this) {
|
|
- this.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isTeleporting() {
|
|
- return activeTeleport != null;
|
|
- }
|
|
-
|
|
- public static void teleport(String var0, TeleportStatus var1) {
|
|
- TeleportAction var2 = new TeleportAction(var0, var1);
|
|
- if (Main.isMainThread()) {
|
|
- var2.startTeleport();
|
|
- } else {
|
|
- Main.register(var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void teleport(String var0, TeleportStatus var1, boolean var2) {
|
|
- TeleportAction var3 = new TeleportAction(var0, var1);
|
|
- var3.forceWorldLoad = var2;
|
|
- var3.forceNoWorldLoad = !var2;
|
|
- if (Main.isMainThread()) {
|
|
- var3.startTeleport();
|
|
- } else {
|
|
- Main.register(var3);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void teleport(String var0, TeleportStatus var1, boolean var2, boolean var3) {
|
|
- TeleportAction var4 = new TeleportAction(var0, var1);
|
|
- var4.showDialog = var3;
|
|
- var4.forceWorldLoad = var2;
|
|
- var4.forceNoWorldLoad = !var2;
|
|
- if (Main.isMainThread()) {
|
|
- var4.startTeleport();
|
|
- } else {
|
|
- Main.register(var4);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void mainCallback() {
|
|
- Main.unregister(this);
|
|
- this.startTeleport();
|
|
- }
|
|
-
|
|
- public static String toURLString(String var0) {
|
|
- if (var0 == null || var0.equals("world:")) {
|
|
- var0 = WorldsMarkPart.getFirstSystemMarkURL();
|
|
- }
|
|
-
|
|
- if (var0 == null) {
|
|
- var0 = "home:NewWorld.world";
|
|
- }
|
|
-
|
|
- if (var0.startsWith("world:")) {
|
|
- if (var0.equals("world:restart")) {
|
|
- var0 = IniFile.gamma().getIniString("RestartAt", WorldsMarkPart.getFirstSystemMarkURL());
|
|
- } else if (var0.equals("world:store")) {
|
|
- var0 = World.getHomeStore().getAbsolute();
|
|
- } else {
|
|
- var0 = var0.substring(6);
|
|
- }
|
|
-
|
|
- int var1 = var0.indexOf(".world?");
|
|
- if (var1 >= 0) {
|
|
- var0 = var0.substring(0, var1) + ".world#" + var0.substring(var1 + 7);
|
|
- }
|
|
- }
|
|
-
|
|
- if (var0.indexOf(58) < 0) {
|
|
- if (var0.indexOf(47) < 0 && var0.indexOf(92) < 0 && !var0.endsWith(".world")) {
|
|
- var0 = "home:" + var0 + "/" + var0 + ".world";
|
|
- } else {
|
|
- var0 = "file:" + var0;
|
|
- }
|
|
- }
|
|
-
|
|
- return var0;
|
|
- }
|
|
-
|
|
- private TeleportAction(String var1, TeleportStatus var2) {
|
|
- this.doneCallback = var2;
|
|
- this.targetURL = toURLString(var1);
|
|
- var1 = this.setFromURL(this.targetURL);
|
|
-
|
|
- try {
|
|
- if (this.targetURL.startsWith("http://")) {
|
|
- this.targetWorldURL = new URL(var1);
|
|
- } else {
|
|
- this.targetWorldURL = new URL(URL.getCurDir(), URL.maybeAddExt(var1, ".world"));
|
|
- }
|
|
- } catch (MalformedURLException var4) {
|
|
- this.targetWorldURL = URL.make("error:\"" + var1 + '"');
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private float getNextFloat(float var1) {
|
|
- String var2 = this.tempParseStr;
|
|
- int var3 = this.tempParseStr.indexOf(44);
|
|
- if (var3 == -1) {
|
|
- var3 = this.tempParseStr.length();
|
|
- this.tempParseStr = "";
|
|
- } else {
|
|
- this.tempParseStr = this.tempParseStr.substring(var3 + 1);
|
|
- }
|
|
-
|
|
- try {
|
|
- return Float.valueOf(var2.substring(0, var3));
|
|
- } catch (NumberFormatException var5) {
|
|
- return var1;
|
|
- }
|
|
- }
|
|
-
|
|
- private String setFromURL(String var1) {
|
|
- this.useDefCoordinates = true;
|
|
- int var2 = var1.lastIndexOf(35);
|
|
- int var4;
|
|
- if (var2 >= 0) {
|
|
- String var3 = var1.substring(var2 + 1);
|
|
- var1 = var1.substring(0, var2);
|
|
- var4 = var3.lastIndexOf(64);
|
|
- if (var4 < 0) {
|
|
- this.targetRoomName = var3;
|
|
- } else {
|
|
- this.useDefCoordinates = false;
|
|
- this.targetRoomName = var3.substring(0, var4);
|
|
- this.tempParseStr = var3.substring(var4 + 1);
|
|
- this.targetCoords.x = this.getNextFloat(this.targetCoords.x);
|
|
- this.targetCoords.y = this.getNextFloat(this.targetCoords.y);
|
|
- this.targetCoords.z = this.getNextFloat(this.targetCoords.z);
|
|
- this.targetRot = this.getNextFloat(this.targetRot);
|
|
- this.targetAxis.x = this.getNextFloat(this.targetAxis.x);
|
|
- this.targetAxis.y = this.getNextFloat(this.targetAxis.y);
|
|
- this.targetAxis.z = this.getNextFloat(this.targetAxis.z);
|
|
- this.tempParseStr = null;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.targetRoomName != null) {
|
|
- int var5 = this.targetRoomName.lastIndexOf(62);
|
|
- var4 = this.targetRoomName.lastIndexOf(60);
|
|
- if (var5 + 1 == this.targetRoomName.length() && var4 >= 0) {
|
|
- this.targetDimension = this.targetRoomName.substring(var4 + 1, var5);
|
|
- this.targetRoomName = this.targetRoomName.substring(0, var4);
|
|
- }
|
|
- }
|
|
-
|
|
- return var1;
|
|
- }
|
|
-
|
|
- private void makeTeleportDialog(URL var1) {
|
|
- if (this.showDialog) {
|
|
- GammaFrame var2 = Console.getFrame();
|
|
- if (var2 != null && var2.isShowing()) {
|
|
- this.dialog = new TeleportDialog(var2, this);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void startTeleport() {
|
|
- if (activeTeleport != null) {
|
|
- if (activeTeleport.doneCallback != null) {
|
|
- activeTeleport.doneCallback.teleportStatus("overridden by new teleport", activeTeleport.targetURL);
|
|
- }
|
|
-
|
|
- activeTeleport.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- activeTeleport = this;
|
|
- Console.setFreezeFrameEvents(true);
|
|
- this.done = false;
|
|
- Console.teleportNotification("", this.targetURL);
|
|
- if (this.targetWorldURL != null) {
|
|
- this.makeTeleportDialog(this.targetWorldURL);
|
|
- World.load(this.targetWorldURL, this, this.forceWorldLoad);
|
|
- } else {
|
|
- Pilot var1 = Pilot.getActive();
|
|
- World var2;
|
|
- if (var1 != null && (var2 = var1.getWorld()) != null) {
|
|
- this.makeTeleportDialog(var2.getSourceURL());
|
|
- this.loadedURLSelf(var2, this.targetWorldURL, (String)null);
|
|
- } else {
|
|
- this.stopTeleport("Pilot not in a room for intraworld teleport");
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private Room stopTeleport(String var1) {
|
|
- Debug.assert(this == activeTeleport);
|
|
- this.done = true;
|
|
- activeTeleport = null;
|
|
- Console.setFreezeFrameEvents(false);
|
|
- if (this.doneCallback != null) {
|
|
- this.doneCallback.teleportStatus(var1, this.targetURL);
|
|
- }
|
|
-
|
|
- if (var1 != null && !this.forceNoWorldLoad) {
|
|
- Console.teleportNotification(var1, this.targetURL);
|
|
- Console.println(var1);
|
|
- }
|
|
-
|
|
- if (this.dialog != null) {
|
|
- this.dialog.closeIt(true);
|
|
- this.dialog = null;
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public synchronized void dialogDone(Object var1, boolean var2) {
|
|
- if (activeTeleport != null) {
|
|
- activeTeleport.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static String getReadableNameOfWorld(URL var0) {
|
|
- String var1 = var0.getAbsolute();
|
|
- String var2 = var1;
|
|
- String var3 = null;
|
|
- if (var1.startsWith("home:") && var1.length() > 6) {
|
|
- var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
- int var4 = var2.indexOf(47);
|
|
- if (var4 > 0) {
|
|
- var3 = var2.substring(0, var4);
|
|
- if (var2.regionMatches(true, var4 + 1, var2, 0, var4)) {
|
|
- var2 = var3;
|
|
- String var5 = WorldsMarkPart.getExternalName(var3);
|
|
- if (var5 != null) {
|
|
- var2 = var5;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- int var6 = var2.indexOf(".world");
|
|
- if (var6 > 0) {
|
|
- var2 = var2.substring(0, var6);
|
|
- }
|
|
-
|
|
- var2 = "the " + var2 + " world";
|
|
- }
|
|
-
|
|
- return var2;
|
|
- }
|
|
-
|
|
- public static String getPackageNameOfWorld(URL var0) {
|
|
- String var1 = var0.getAbsolute();
|
|
- String var3 = null;
|
|
- if (var1.startsWith("home:") && var1.length() > 6) {
|
|
- String var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
- int var4 = var2.indexOf(47);
|
|
- if (var4 > 0) {
|
|
- var3 = var2.substring(0, var4);
|
|
- }
|
|
- }
|
|
-
|
|
- return var3;
|
|
- }
|
|
-
|
|
- public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
- if (activeTeleport != this) {
|
|
- if (var1 != null) {
|
|
- var1.decRef();
|
|
- }
|
|
-
|
|
- } else {
|
|
- String var4;
|
|
- if (var3 == null && var1 instanceof World) {
|
|
- var4 = this.targetRoomName;
|
|
- if (var4 == null) {
|
|
- var4 = ((World)var1).getDefaultRoomName();
|
|
- }
|
|
-
|
|
- Room var7 = ((World)var1).getRoom(var4);
|
|
- if (var7 == null) {
|
|
- this.stopTeleport("Error finding room " + this.targetRoomName);
|
|
- } else if (var7.getVIPOnly() && !((World)var1).getConsole().getVIP()) {
|
|
- this.stopTeleport("Only VIPs may go there.");
|
|
- if (this.forceNoWorldLoad) {
|
|
- Console.println(Console.message("Only-VIPs-there"));
|
|
- }
|
|
+ private Point3 targetCoords = new Point3();
|
|
+ private float targetRot = 0.0F;
|
|
+ private Point3 targetAxis = new Point3(0.0F, 0.0F, -1.0F);
|
|
+ private String targetRoomName = null;
|
|
+ private String targetDimension = null;
|
|
+ private URL targetWorldURL = null;
|
|
+ private boolean useDefCoordinates = false;
|
|
+ private boolean done = false;
|
|
+ private boolean showDialog = true;
|
|
+ private boolean forceWorldLoad = false;
|
|
+ private boolean forceNoWorldLoad = false;
|
|
+ private String targetURL;
|
|
+ private static TeleportAction activeTeleport = null;
|
|
+ private TeleportDialog dialog = null;
|
|
+ private TeleportStatus doneCallback;
|
|
+ String tempParseStr;
|
|
+ private static final Object classCookie = new Object();
|
|
+
|
|
+ public TeleportAction() {
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (activeTeleport != this) {
|
|
+ this.targetURL = this.asURL();
|
|
+ this.startTeleport();
|
|
+ }
|
|
+
|
|
+ return !this.done && activeTeleport != this ? this : null;
|
|
+ }
|
|
+
|
|
+ public void stopLoading() {
|
|
+ this.done = true;
|
|
+ if (activeTeleport == this) {
|
|
+ this.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean isTeleporting() {
|
|
+ return activeTeleport != null;
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1) {
|
|
+ TeleportAction var2 = new TeleportAction(var0, var1);
|
|
+ if (Main.isMainThread()) {
|
|
+ var2.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1, boolean var2) {
|
|
+ TeleportAction var3 = new TeleportAction(var0, var1);
|
|
+ var3.forceWorldLoad = var2;
|
|
+ var3.forceNoWorldLoad = !var2;
|
|
+ if (Main.isMainThread()) {
|
|
+ var3.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var3);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1, boolean var2, boolean var3) {
|
|
+ TeleportAction var4 = new TeleportAction(var0, var1);
|
|
+ var4.showDialog = var3;
|
|
+ var4.forceWorldLoad = var2;
|
|
+ var4.forceNoWorldLoad = !var2;
|
|
+ if (Main.isMainThread()) {
|
|
+ var4.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var4);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ Main.unregister(this);
|
|
+ this.startTeleport();
|
|
+ }
|
|
+
|
|
+ public static String toURLString(String var0) {
|
|
+ if (var0 == null || var0.equals("world:")) {
|
|
+ var0 = WorldsMarkPart.getFirstSystemMarkURL();
|
|
+ }
|
|
+
|
|
+ if (var0 == null) {
|
|
+ var0 = "home:NewWorld.world";
|
|
+ }
|
|
+
|
|
+ if (var0.startsWith("world:")) {
|
|
+ if (var0.equals("world:restart")) {
|
|
+ var0 = IniFile.gamma().getIniString("RestartAt", WorldsMarkPart.getFirstSystemMarkURL());
|
|
+ } else if (var0.equals("world:store")) {
|
|
+ var0 = World.getHomeStore().getAbsolute();
|
|
+ } else {
|
|
+ var0 = var0.substring(6);
|
|
+ }
|
|
+
|
|
+ int var1 = var0.indexOf(".world?");
|
|
+ if (var1 >= 0) {
|
|
+ var0 = var0.substring(0, var1) + ".world#" + var0.substring(var1 + 7);
|
|
+ }
|
|
+ }
|
|
|
|
+ if (var0.indexOf(58) < 0) {
|
|
+ if (var0.indexOf(47) < 0 && var0.indexOf(92) < 0 && !var0.endsWith(".world")) {
|
|
+ var0 = "home:" + var0 + "/" + var0 + ".world";
|
|
} else {
|
|
- Console.teleportNotification((String)null, this.targetURL);
|
|
- Pilot var8 = Pilot.changeActiveRoom(var7);
|
|
- if (this.targetDimension != null) {
|
|
- var8.changeChannel(this.targetDimension);
|
|
- }
|
|
-
|
|
- var8.makeIdentity();
|
|
- if (this.useDefCoordinates) {
|
|
- var8.moveTo(var7.getDefaultPosition()).spin(var7.getDefaultOrientationAxis(), var7.getDefaultOrientation());
|
|
- } else {
|
|
- var8.moveTo(this.targetCoords).spin(this.targetAxis, this.targetRot);
|
|
- }
|
|
-
|
|
- this.stopTeleport((String)null);
|
|
- }
|
|
- } else {
|
|
- if (var3 == null) {
|
|
- var3 = "file " + var2 + " doesn't contain a World";
|
|
- var1.decRef();
|
|
- }
|
|
-
|
|
- var4 = getReadableNameOfWorld(var2);
|
|
- String var5 = getPackageNameOfWorld(var2);
|
|
- Object[] var6 = new Object[]{new String(var4)};
|
|
- this.stopTeleport(MessageFormat.format(Console.message("cant-teleport"), var6));
|
|
- if (var5 != null && !this.forceNoWorldLoad) {
|
|
- NetUpdate.loadWorld(var5, this.forceWorldLoad);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = Point3PropertyEditor.make(new Property(this, var1, "X, Y, Z"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Point3(this.targetCoords);
|
|
- } else if (var3 == 2) {
|
|
- this.targetCoords.copy((Point3)var4);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (var3 == 0) {
|
|
- var5 = FloatPropertyEditor.make(new Property(this, var1, "Dir"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Float(this.targetRot);
|
|
- } else if (var3 == 2) {
|
|
- this.targetRot = (Float)var4;
|
|
- }
|
|
- break;
|
|
- case 2:
|
|
- if (var3 == 0) {
|
|
- var5 = StringPropertyEditor.make((new Property(this, var1, "Room Name")).allowSetNull());
|
|
- } else if (var3 == 1) {
|
|
- if (this.targetRoomName == null) {
|
|
- var5 = "";
|
|
+ var0 = "file:" + var0;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var0;
|
|
+ }
|
|
+
|
|
+ private TeleportAction(String var1, TeleportStatus var2) {
|
|
+ this.doneCallback = var2;
|
|
+ this.targetURL = toURLString(var1);
|
|
+ var1 = this.setFromURL(this.targetURL);
|
|
+
|
|
+ try {
|
|
+ if (this.targetURL.startsWith("http://") || this.targetURL.startsWith("https://")) {
|
|
+ this.targetWorldURL = new URL(var1);
|
|
+ } else {
|
|
+ this.targetWorldURL = new URL(URL.getCurDir(), URL.maybeAddExt(var1, ".world"));
|
|
+ }
|
|
+ } catch (MalformedURLException var4) {
|
|
+ this.targetWorldURL = URL.make("error:\"" + var1 + '"');
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private float getNextFloat(float var1) {
|
|
+ String var2 = this.tempParseStr;
|
|
+ int var3 = this.tempParseStr.indexOf(44);
|
|
+ if (var3 == -1) {
|
|
+ var3 = this.tempParseStr.length();
|
|
+ this.tempParseStr = "";
|
|
+ } else {
|
|
+ this.tempParseStr = this.tempParseStr.substring(var3 + 1);
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ return Float.valueOf(var2.substring(0, var3)).floatValue();
|
|
+ } catch (NumberFormatException var5) {
|
|
+ return var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private String setFromURL(String var1) {
|
|
+ this.useDefCoordinates = true;
|
|
+ int var2 = var1.lastIndexOf(35);
|
|
+ int var4;
|
|
+ if (var2 >= 0) {
|
|
+ String var3 = var1.substring(var2 + 1);
|
|
+ var1 = var1.substring(0, var2);
|
|
+ var4 = var3.lastIndexOf(64);
|
|
+ if (var4 < 0) {
|
|
+ this.targetRoomName = var3;
|
|
} else {
|
|
- var5 = new String(this.targetRoomName);
|
|
+ this.useDefCoordinates = false;
|
|
+ this.targetRoomName = var3.substring(0, var4);
|
|
+ this.tempParseStr = var3.substring(var4 + 1);
|
|
+ this.targetCoords.x = this.getNextFloat(this.targetCoords.x);
|
|
+ this.targetCoords.y = this.getNextFloat(this.targetCoords.y);
|
|
+ this.targetCoords.z = this.getNextFloat(this.targetCoords.z);
|
|
+ this.targetRot = this.getNextFloat(this.targetRot);
|
|
+ this.targetAxis.x = this.getNextFloat(this.targetAxis.x);
|
|
+ this.targetAxis.y = this.getNextFloat(this.targetAxis.y);
|
|
+ this.targetAxis.z = this.getNextFloat(this.targetAxis.z);
|
|
+ this.tempParseStr = null;
|
|
}
|
|
- } else if (var3 == 2) {
|
|
- this.targetRoomName = (String)var4;
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 3:
|
|
- if (var3 == 0) {
|
|
- var5 = URLPropertyEditor.make((new Property(this, var1, "World URL")).allowSetNull(), "world");
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.targetWorldURL;
|
|
- } else if (var3 == 2) {
|
|
- this.targetWorldURL = (URL)var4;
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 4:
|
|
- if (var3 == 0) {
|
|
- var5 = BooleanPropertyEditor.make(new Property(this, var1, "Use default coordinates"), "No", "Yes");
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Boolean(this.useDefCoordinates);
|
|
- } else if (var3 == 2) {
|
|
- this.useDefCoordinates = (Boolean)var4;
|
|
- }
|
|
- break;
|
|
- case 5:
|
|
- if (var3 == 0) {
|
|
- var5 = StringPropertyEditor.make((new Property(this, var1, "Dimension Name")).allowSetNull());
|
|
- } else if (var3 == 1) {
|
|
- if (this.targetDimension == null) {
|
|
- var5 = "";
|
|
+ }
|
|
+
|
|
+ if (this.targetRoomName != null) {
|
|
+ int var5 = this.targetRoomName.lastIndexOf(62);
|
|
+ var4 = this.targetRoomName.lastIndexOf(60);
|
|
+ if (var5 + 1 == this.targetRoomName.length() && var4 >= 0) {
|
|
+ this.targetDimension = this.targetRoomName.substring(var4 + 1, var5);
|
|
+ this.targetRoomName = this.targetRoomName.substring(0, var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ private void makeTeleportDialog(URL var1) {
|
|
+ if (this.showDialog) {
|
|
+ GammaFrame var2 = Console.getFrame();
|
|
+ if (var2 != null && var2.isShowing()) {
|
|
+ this.dialog = new TeleportDialog(var2, this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void startTeleport() {
|
|
+ if (activeTeleport != null) {
|
|
+ if (activeTeleport.doneCallback != null) {
|
|
+ activeTeleport.doneCallback.teleportStatus("overridden by new teleport", activeTeleport.targetURL);
|
|
+ }
|
|
+
|
|
+ activeTeleport.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ activeTeleport = this;
|
|
+ Console.setFreezeFrameEvents(true);
|
|
+ this.done = false;
|
|
+ Console.teleportNotification("", this.targetURL);
|
|
+ if (this.targetWorldURL != null) {
|
|
+ this.makeTeleportDialog(this.targetWorldURL);
|
|
+ World.load(this.targetWorldURL, this, this.forceWorldLoad);
|
|
+ } else {
|
|
+ Pilot var1 = Pilot.getActive();
|
|
+ World var2;
|
|
+ if (var1 != null && (var2 = var1.getWorld()) != null) {
|
|
+ this.makeTeleportDialog(var2.getSourceURL());
|
|
+ this.loadedURLSelf(var2, this.targetWorldURL, (String)null);
|
|
} else {
|
|
- var5 = new String(this.targetDimension);
|
|
+ this.stopTeleport("Pilot not in a room for intraworld teleport");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private Room stopTeleport(String var1) {
|
|
+ Debug.assert(this == activeTeleport);
|
|
+ this.done = true;
|
|
+ activeTeleport = null;
|
|
+ Console.setFreezeFrameEvents(false);
|
|
+ if (this.doneCallback != null) {
|
|
+ this.doneCallback.teleportStatus(var1, this.targetURL);
|
|
+ }
|
|
+
|
|
+ if (var1 != null && !this.forceNoWorldLoad) {
|
|
+ Console.teleportNotification(var1, this.targetURL);
|
|
+ Console.println(var1);
|
|
+ }
|
|
+
|
|
+ if (this.dialog != null) {
|
|
+ this.dialog.closeIt(true);
|
|
+ this.dialog = null;
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public synchronized void dialogDone(Object var1, boolean var2) {
|
|
+ if (activeTeleport != null) {
|
|
+ activeTeleport.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static String getReadableNameOfWorld(URL var0) {
|
|
+ String var1 = var0.getAbsolute();
|
|
+ String var2 = var1;
|
|
+ String var3 = null;
|
|
+ if (var1.startsWith("home:") && var1.length() > 6) {
|
|
+ var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
+ int var4 = var2.indexOf(47);
|
|
+ if (var4 > 0) {
|
|
+ var3 = var2.substring(0, var4);
|
|
+ if (var2.regionMatches(true, var4 + 1, var2, 0, var4)) {
|
|
+ var2 = var3;
|
|
+ String var5 = WorldsMarkPart.getExternalName(var3);
|
|
+ if (var5 != null) {
|
|
+ var2 = var5;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ int var6 = var2.indexOf(".world");
|
|
+ if (var6 > 0) {
|
|
+ var2 = var2.substring(0, var6);
|
|
+ }
|
|
+
|
|
+ var2 = "the " + var2 + " world";
|
|
+ }
|
|
+
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ public static String getPackageNameOfWorld(URL var0) {
|
|
+ String var1 = var0.getAbsolute();
|
|
+ String var3 = null;
|
|
+ if (var1.startsWith("home:") && var1.length() > 6) {
|
|
+ String var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
+ int var4 = var2.indexOf(47);
|
|
+ if (var4 > 0) {
|
|
+ var3 = var2.substring(0, var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
+ if (activeTeleport != this) {
|
|
+ if (var1 != null) {
|
|
+ var1.decRef();
|
|
+ }
|
|
+
|
|
+ } else {
|
|
+ String var4;
|
|
+ if (var3 == null && var1 instanceof World) {
|
|
+ var4 = this.targetRoomName;
|
|
+ if (var4 == null) {
|
|
+ var4 = ((World)var1).getDefaultRoomName();
|
|
+ }
|
|
+
|
|
+ Room var7 = ((World)var1).getRoom(var4);
|
|
+ if (var7 == null) {
|
|
+ this.stopTeleport("Error finding room " + this.targetRoomName);
|
|
+ } else if (var7.getVIPOnly() && !((World)var1).getConsole().getVIP()) {
|
|
+ this.stopTeleport("Only VIPs may go there.");
|
|
+ if (this.forceNoWorldLoad) {
|
|
+ Console.println(Console.message("Only-VIPs-there"));
|
|
+ }
|
|
+
|
|
+ } else {
|
|
+ Console.teleportNotification((String)null, this.targetURL);
|
|
+ Pilot var8 = Pilot.changeActiveRoom(var7);
|
|
+ if (this.targetDimension != null) {
|
|
+ var8.changeChannel(this.targetDimension);
|
|
+ }
|
|
+
|
|
+ var8.makeIdentity();
|
|
+ if (this.useDefCoordinates) {
|
|
+ var8.moveTo(var7.getDefaultPosition()).spin(var7.getDefaultOrientationAxis(), var7.getDefaultOrientation());
|
|
+ } else {
|
|
+ var8.moveTo(this.targetCoords).spin(this.targetAxis, this.targetRot);
|
|
+ }
|
|
+
|
|
+ this.stopTeleport((String)null);
|
|
+ }
|
|
+ } else {
|
|
+ if (var3 == null) {
|
|
+ var3 = "file " + var2 + " doesn't contain a World";
|
|
+ var1.decRef();
|
|
+ }
|
|
+
|
|
+ var4 = getReadableNameOfWorld(var2);
|
|
+ String var5 = getPackageNameOfWorld(var2);
|
|
+ Object[] var6 = new Object[]{new String(var4)};
|
|
+ this.stopTeleport(MessageFormat.format(Console.message("cant-teleport"), var6));
|
|
+ if (var5 != null && !this.forceNoWorldLoad) {
|
|
+ NetUpdate.loadWorld(var5, this.forceWorldLoad);
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = Point3PropertyEditor.make(new Property(this, var1, "X, Y, Z"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Point3(this.targetCoords);
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetCoords.copy((Point3)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = FloatPropertyEditor.make(new Property(this, var1, "Dir"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Float(this.targetRot);
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetRot = ((Float)var4).floatValue();
|
|
+ }
|
|
+ break;
|
|
+ case 2:
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make((new Property(this, var1, "Room Name")).allowSetNull());
|
|
+ } else if (var3 == 1) {
|
|
+ if (this.targetRoomName == null) {
|
|
+ var5 = "";
|
|
+ } else {
|
|
+ var5 = new String(this.targetRoomName);
|
|
+ }
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetRoomName = (String)var4;
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 3:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make((new Property(this, var1, "World URL")).allowSetNull(), "world");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.targetWorldURL;
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetWorldURL = (URL)var4;
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 4:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Use default coordinates"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(this.useDefCoordinates);
|
|
+ } else if (var3 == 2) {
|
|
+ this.useDefCoordinates = ((Boolean)var4).booleanValue();
|
|
+ }
|
|
+ break;
|
|
+ case 5:
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make((new Property(this, var1, "Dimension Name")).allowSetNull());
|
|
+ } else if (var3 == 1) {
|
|
+ if (this.targetDimension == null) {
|
|
+ var5 = "";
|
|
+ } else {
|
|
+ var5 = new String(this.targetDimension);
|
|
+ }
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetDimension = (String)var4;
|
|
+ if (this.targetDimension.equals("")) {
|
|
+ this.targetDimension = null;
|
|
+ }
|
|
+
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 6:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Show dialog"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(this.showDialog);
|
|
+ } else if (var3 == 2) {
|
|
+ this.showDialog = ((Boolean)var4).booleanValue();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 7, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(3, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.save(this.targetCoords);
|
|
+ var1.saveFloat(this.targetRot);
|
|
+ var1.save(this.targetAxis);
|
|
+ var1.saveString(this.targetRoomName);
|
|
+ URL.save(var1, this.targetWorldURL);
|
|
+ var1.saveBoolean(this.useDefCoordinates);
|
|
+ var1.saveString(this.targetDimension);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = (float)var1.restoreInt();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = null;
|
|
+ break;
|
|
+ case 1:
|
|
+ case 2:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = var1.restoreFloat();
|
|
+ this.targetAxis = (Point3)var1.restore();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = null;
|
|
+ break;
|
|
+ case 3:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = var1.restoreFloat();
|
|
+ this.targetAxis = (Point3)var1.restore();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = var1.restoreString();
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+
|
|
+ if (var2 < 2 && this.targetAxis.x == 0.0F && this.targetAxis.y == 0.0F && this.targetAxis.z == 1.0F) {
|
|
+ this.targetAxis.z = -1.0F;
|
|
+ this.targetRot = 360.0F - this.targetRot;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[" + this.asURL() + "]";
|
|
+ }
|
|
+
|
|
+ public String asURL() {
|
|
+ String var1;
|
|
+ if (this.targetWorldURL != null) {
|
|
+ var1 = this.targetWorldURL.getRelativeTo(this) + "#";
|
|
+ } else {
|
|
+ var1 = "#";
|
|
+ }
|
|
+
|
|
+ if (this.targetRoomName != null) {
|
|
+ var1 = var1 + this.targetRoomName;
|
|
+ }
|
|
+
|
|
+ if (this.targetDimension != null) {
|
|
+ var1 = var1 + "<" + this.targetDimension + ">";
|
|
+ }
|
|
+
|
|
+ if (!this.useDefCoordinates) {
|
|
+ var1 = var1 + "@" + this.targetCoords + "," + this.targetRot;
|
|
+ if (this.targetAxis.x != 0.0F || this.targetAxis.y != 0.0F || this.targetAxis.z != 1.0F) {
|
|
+ var1 = var1 + "," + this.targetAxis;
|
|
}
|
|
- } else if (var3 == 2) {
|
|
- this.targetDimension = (String)var4;
|
|
- if (this.targetDimension.equals("")) {
|
|
- this.targetDimension = null;
|
|
- }
|
|
-
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 6:
|
|
- if (var3 == 0) {
|
|
- var5 = BooleanPropertyEditor.make(new Property(this, var1, "Show dialog"), "No", "Yes");
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Boolean(this.showDialog);
|
|
- } else if (var3 == 2) {
|
|
- this.showDialog = (Boolean)var4;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 7, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(3, classCookie);
|
|
- super.saveState(var1);
|
|
- var1.save(this.targetCoords);
|
|
- var1.saveFloat(this.targetRot);
|
|
- var1.save(this.targetAxis);
|
|
- var1.saveString(this.targetRoomName);
|
|
- URL.save(var1, this.targetWorldURL);
|
|
- var1.saveBoolean(this.useDefCoordinates);
|
|
- var1.saveString(this.targetDimension);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- int var2 = var1.restoreVersion(classCookie);
|
|
- switch(var2) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- this.targetCoords = (Point3)var1.restore();
|
|
- this.targetRot = (float)var1.restoreInt();
|
|
- this.targetRoomName = var1.restoreString();
|
|
- this.targetWorldURL = URL.restore(var1, ".world");
|
|
- this.useDefCoordinates = var1.restoreBoolean();
|
|
- this.targetDimension = null;
|
|
- break;
|
|
- case 1:
|
|
- case 2:
|
|
- super.restoreState(var1);
|
|
- this.targetCoords = (Point3)var1.restore();
|
|
- this.targetRot = var1.restoreFloat();
|
|
- this.targetAxis = (Point3)var1.restore();
|
|
- this.targetRoomName = var1.restoreString();
|
|
- this.targetWorldURL = URL.restore(var1, ".world");
|
|
- this.useDefCoordinates = var1.restoreBoolean();
|
|
- this.targetDimension = null;
|
|
- break;
|
|
- case 3:
|
|
- super.restoreState(var1);
|
|
- this.targetCoords = (Point3)var1.restore();
|
|
- this.targetRot = var1.restoreFloat();
|
|
- this.targetAxis = (Point3)var1.restore();
|
|
- this.targetRoomName = var1.restoreString();
|
|
- this.targetWorldURL = URL.restore(var1, ".world");
|
|
- this.useDefCoordinates = var1.restoreBoolean();
|
|
- this.targetDimension = var1.restoreString();
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
-
|
|
- if (var2 < 2 && this.targetAxis.x == 0.0F && this.targetAxis.y == 0.0F && this.targetAxis.z == 1.0F) {
|
|
- this.targetAxis.z = -1.0F;
|
|
- this.targetRot = 360.0F - this.targetRot;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[" + this.asURL() + "]";
|
|
- }
|
|
-
|
|
- public String asURL() {
|
|
- String var1;
|
|
- if (this.targetWorldURL != null) {
|
|
- var1 = this.targetWorldURL.getRelativeTo((SuperRoot)this) + "#";
|
|
- } else {
|
|
- var1 = "#";
|
|
- }
|
|
-
|
|
- if (this.targetRoomName != null) {
|
|
- var1 = var1 + this.targetRoomName;
|
|
- }
|
|
-
|
|
- if (this.targetDimension != null) {
|
|
- var1 = var1 + "<" + this.targetDimension + ">";
|
|
- }
|
|
-
|
|
- if (!this.useDefCoordinates) {
|
|
- var1 = var1 + "@" + this.targetCoords + "," + this.targetRot;
|
|
- if (this.targetAxis.x != 0.0F || this.targetAxis.y != 0.0F || this.targetAxis.z != 1.0F) {
|
|
- var1 = var1 + "," + this.targetAxis;
|
|
- }
|
|
- }
|
|
+ }
|
|
|
|
- return var1;
|
|
- }
|
|
+ return var1;
|
|
+ }
|
|
}
|
|
diff -ruN a/1890/NET/worldsplus/ChatSaver.java b/1890/NET/worldsplus/ChatSaver.java
|
|
--- a/1890/NET/worldsplus/ChatSaver.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worldsplus/ChatSaver.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,77 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import NET.worlds.console.Console;
|
|
+import NET.worlds.core.Debug;
|
|
+import NET.worlds.core.IniFile;
|
|
+import NET.worlds.network.URL;
|
|
+import NET.worlds.scape.Pilot;
|
|
+
|
|
+import java.io.File;
|
|
+import java.io.FileWriter;
|
|
+import java.io.IOException;
|
|
+import java.text.SimpleDateFormat;
|
|
+import java.util.Date;
|
|
+import java.util.StringTokenizer;
|
|
+import java.util.Vector;
|
|
+
|
|
+public class ChatSaver {
|
|
+
|
|
+ public static ChatSaver chatSaver;
|
|
+ private final static String folder = IniFile.modChatLog().getIniString("Location", "home:chats/");
|
|
+ private final boolean enabled = IniFile.gamma().getIniInt("EnableChatLog", 1) == 1;
|
|
+ public static Vector chatBlacklist = parseChatBlacklist();
|
|
+
|
|
+ public ChatSaver() {
|
|
+ if (chatSaver == null) {
|
|
+ System.out.println("Initialized ChatSaver module...");
|
|
+ if (enabled) {
|
|
+ File fold = new File(URL.make(folder).unalias());
|
|
+ Debug.assert( !fold.exists() || !fold.mkdir());
|
|
+ }
|
|
+ chatSaver = this;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private FileWriter grabWriter(String name) throws IOException {
|
|
+ String cname = stripInvalid(name);
|
|
+ File log = new File(URL.make(folder + cname + ".log").unalias());
|
|
+ Debug.assert(!log.exists() || !log.createNewFile());
|
|
+ return new FileWriter(log.getAbsolutePath(), true);
|
|
+ }
|
|
+
|
|
+ private void save(String name, String from, String message) throws IOException {
|
|
+ if (enabled && !chatBlacklist.contains(name)) {
|
|
+ FileWriter writer = grabWriter(name);
|
|
+ writer.write("[" + getCurrentDate() + "] " + from + ": " + message);
|
|
+ writer.write(System.getProperty("line.separator"));
|
|
+ writer.close();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveRoom(String user, String message) throws IOException {
|
|
+ save(Pilot.getActiveRoom().toString(), user, message);
|
|
+ }
|
|
+
|
|
+ public void saveWhisper(String from, String to, String message) throws IOException {
|
|
+ save(from.equals(Console.getActive().getLongID()) ? to : from, from, message);
|
|
+ }
|
|
+
|
|
+ public String getCurrentDate() {
|
|
+ return new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date());
|
|
+ }
|
|
+
|
|
+ private static String stripInvalid(String s) {
|
|
+ if (s.indexOf("<") < 0) return s;
|
|
+ return s.substring(0, s.indexOf("<"));
|
|
+ }
|
|
+
|
|
+ private static Vector parseChatBlacklist() {
|
|
+ String s = IniFile.modChatLog().getIniString("ChatBlacklist", "WORLDSMASTER,trade");
|
|
+ StringTokenizer sToken = new StringTokenizer(s, ",");
|
|
+ Vector v = new Vector();
|
|
+ while(((StringTokenizer)sToken).hasMoreTokens()) {
|
|
+ v.add(((StringTokenizer)sToken).nextToken());
|
|
+ }
|
|
+ return v;
|
|
+ }
|
|
+}
|
|
diff -ruN a/1890/NET/worldsplus/IniUpdater.java b/1890/NET/worldsplus/IniUpdater.java
|
|
--- a/1890/NET/worldsplus/IniUpdater.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worldsplus/IniUpdater.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,39 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import NET.worlds.core.IniFile;
|
|
+
|
|
+public class IniUpdater {
|
|
+
|
|
+ private final String ver = IniFile.modPlus().getIniString("Version", "");
|
|
+
|
|
+ public IniUpdater() {
|
|
+ if (needUpdate()) {
|
|
+ if (ver.equals("0.0.0")) {
|
|
+ System.out.println("INI file set to bottom version, will not update.");
|
|
+ } else {
|
|
+ // Assuming we are updating from the last version
|
|
+ IniFile oldPlus = IniFile.ini("Modules");
|
|
+ IniFile.gamma().setIniInt("DisableTalkAction", oldPlus.getIniInt("DisableTalkAction", 1));
|
|
+ IniFile.gamma().setIniInt("DisableAction2", oldPlus.getIniInt("DisableAction2", 1));
|
|
+ IniFile.gamma().setIniInt("AllowSleep", oldPlus.getIniInt("AllowSleep", 1));
|
|
+ IniFile.gamma().setIniInt("ColorfulTags", oldPlus.getIniInt("ColorfulTags", 0));
|
|
+ IniFile.gamma().setIniInt("EnableChatLog", oldPlus.getIniInt("LogChats", 1));
|
|
+ IniFile.modChatLog().setIniString("Location", oldPlus.getIniString("ChatFolder", "home:chats/"));
|
|
+ IniFile oldFriendly = IniFile.ini("Friendly");
|
|
+ IniFile.modPrivacy().setIniInt("WhisperFeedback", oldFriendly.getIniInt("WhisperFeedback", 1));
|
|
+ IniFile.modPrivacy().setIniInt("TeleportFeedback", oldFriendly.getIniInt("TeleportFeedback", 1));
|
|
+ IniFile.modPrivacy().setIniInt("WhisperResponse", oldFriendly.getIniInt("WhisperResponse", 1));
|
|
+ IniFile.modPrivacy().setIniInt("TeleportResponse", oldFriendly.getIniInt("TeleportResponse", 0));
|
|
+ IniFile.modPrivacy().setIniInt("ShowStatusUpdate", oldFriendly.getIniInt("ShowStatusUpdate", 0));
|
|
+ IniFile.modPrivacy().setIniInt("WhisperPrivacy", IniFile.gamma().getIniInt("WhisperPrivacy", 0));
|
|
+ IniFile.modPrivacy().setIniInt("TeleportPrivacy", IniFile.gamma().getIniInt("TeleportPrivacy", 0));
|
|
+ }
|
|
+ }
|
|
+ IniFile.modPlus().setIniString("Version", WPlus.getVersion());
|
|
+ }
|
|
+
|
|
+ public boolean needUpdate() {
|
|
+ return ver.equals("") || !ver.equals(WPlus.getVersion());
|
|
+ }
|
|
+
|
|
+}
|
|
diff -ruN a/1890/NET/worldsplus/WPlus.java b/1890/NET/worldsplus/WPlus.java
|
|
--- a/1890/NET/worldsplus/WPlus.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1890/NET/worldsplus/WPlus.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,16 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import java.text.SimpleDateFormat;
|
|
+import java.util.Date;
|
|
+
|
|
+public class WPlus {
|
|
+
|
|
+ private static final String stable_version = "1.7.2";
|
|
+ static final String dateTime = new SimpleDateFormat("dd.MM.yyyy_HH.mm.ss").format(new Date());
|
|
+ private static final boolean dev = false;
|
|
+
|
|
+ // Hardcoded for reasons, I SWEAR
|
|
+ public static String getVersion(){
|
|
+ return dev ? dateTime + "-dev" : stable_version;
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/console/AboutDialog.java b/1904/NET/worlds/console/AboutDialog.java
|
|
--- a/1904/NET/worlds/console/AboutDialog.java 2020-08-06 15:46:26.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/AboutDialog.java 2023-09-10 15:19:36.000000000 -0500
|
|
@@ -3,6 +3,9 @@
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.Std;
|
|
import NET.worlds.network.NetUpdate;
|
|
+import NET.worldsplus.WPlus;
|
|
+import NET.worldsplus.Themer;
|
|
+
|
|
import java.awt.BorderLayout;
|
|
import java.awt.Button;
|
|
import java.awt.Color;
|
|
@@ -19,76 +22,77 @@
|
|
import java.util.Vector;
|
|
|
|
public class AboutDialog extends PolledDialog {
|
|
- Button okButton = new Button(Console.message("OK"));
|
|
- private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
- private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
- String apptitle;
|
|
-
|
|
- AboutDialog(String var1, Frame var2) {
|
|
- super(var2, (DialogReceiver)null, Console.message("About") + Std.getProductName(), true);
|
|
- this.apptitle = var1;
|
|
- this.ready();
|
|
- }
|
|
-
|
|
- private Component setConstraints(GridBagLayout var1, Component var2, GridBagConstraints var3) {
|
|
- var1.setConstraints(var2, var3);
|
|
- return var2;
|
|
- }
|
|
-
|
|
- protected void build() {
|
|
- this.setBackground(Color.white);
|
|
- this.setLayout(new BorderLayout());
|
|
- this.add("North", new Filler(10, 10));
|
|
- this.add("South", new Filler(10, 10));
|
|
- this.add("East", new Filler(10, 10));
|
|
- this.add("West", new Filler(10, 10));
|
|
- GridBagLayout var1 = new GridBagLayout();
|
|
- Panel var2 = new Panel(var1);
|
|
- var2.setFont(font);
|
|
- GridBagConstraints var3 = new GridBagConstraints();
|
|
- var3.fill = 0;
|
|
- var3.weightx = 1.0D;
|
|
- var3.weighty = 1.0D;
|
|
- var3.gridwidth = 0;
|
|
- var3.gridheight = 1;
|
|
- String var4 = IniFile.override().getIniString("AboutLogo", Console.message("wlogo.gif"));
|
|
- var2.add(this.setConstraints(var1, new ImageCanvas(var4), var3));
|
|
- var3.weightx = 0.0D;
|
|
- var3.weighty = 0.0D;
|
|
- var2.add(this.setConstraints(var1, new Label(this.apptitle), var3));
|
|
- if (Gamma.getShaper() != null) {
|
|
- var2.add(this.setConstraints(var1, new Label(Console.message("about-box-build-date") + " " + Std.getBuildInfo()), var3));
|
|
- } else {
|
|
- var2.add(this.setConstraints(var1, new Label(Console.message("about-box-rev") + " " + Std.getVersion()), var3));
|
|
- }
|
|
-
|
|
- Vector var5 = NetUpdate.aboutWorlds();
|
|
- TextArea var6 = new TextArea(10, 40);
|
|
- var6.setEditable(false);
|
|
- var2.add(this.setConstraints(var1, var6, var3));
|
|
- Enumeration var7 = var5.elements();
|
|
-
|
|
- while(var7.hasMoreElements()) {
|
|
- var6.append((String)var7.nextElement() + "\n");
|
|
- }
|
|
-
|
|
- var2.add(this.setConstraints(var1, new Label(Console.message("about-box-1")), var3));
|
|
- var2.add(this.setConstraints(var1, new Label(Console.message("about-box-2")), var3));
|
|
- this.okButton.setFont(bfont);
|
|
- var2.add(this.setConstraints(var1, this.okButton, var3));
|
|
- this.add("Center", var2);
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- return var1.target == this.okButton ? this.done(true) : false;
|
|
- }
|
|
-
|
|
- public boolean keyDown(Event var1, int var2) {
|
|
- return var2 != 27 && var2 != 10 ? super.keyDown(var1, var2) : this.done(true);
|
|
- }
|
|
-
|
|
- public void show() {
|
|
- super.show();
|
|
- this.okButton.requestFocus();
|
|
- }
|
|
+ Button okButton = new Button(Console.message("OK"));
|
|
+ private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
+ private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
+ String apptitle;
|
|
+
|
|
+ AboutDialog(String var1, Frame var2) {
|
|
+ super(var2, (DialogReceiver)null, Console.message("About") + Std.getProductName(), true);
|
|
+ this.apptitle = var1;
|
|
+ this.ready();
|
|
+ }
|
|
+
|
|
+ private Component setConstraints(GridBagLayout var1, Component var2, GridBagConstraints var3) {
|
|
+ var1.setConstraints(var2, var3);
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ protected void build() {
|
|
+ this.setBackground(Color.white);
|
|
+ this.setLayout(new BorderLayout());
|
|
+ this.add("North", new Filler(10, 10));
|
|
+ this.add("South", new Filler(10, 10));
|
|
+ this.add("East", new Filler(10, 10));
|
|
+ this.add("West", new Filler(10, 10));
|
|
+ GridBagLayout var1 = new GridBagLayout();
|
|
+ Panel var2 = new Panel(var1);
|
|
+ var2.setFont(font);
|
|
+ GridBagConstraints var3 = new GridBagConstraints();
|
|
+ var3.fill = 0;
|
|
+ var3.weightx = 1.0D;
|
|
+ var3.weighty = 1.0D;
|
|
+ var3.gridwidth = 0;
|
|
+ var3.gridheight = 1;
|
|
+ String var4 = Themer.themer.asset(Console.message("wlogo.gif"));
|
|
+ var2.add(this.setConstraints(var1, new ImageCanvas(var4), var3));
|
|
+ var3.weightx = 0.0D;
|
|
+ var3.weighty = 0.0D;
|
|
+ var2.add(this.setConstraints(var1, new Label(this.apptitle), var3));
|
|
+ if (Gamma.getShaper() != null) {
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-build-date") + " " + Std.getBuildInfo()), var3));
|
|
+ } else {
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-rev") + " " + Std.getVersion()), var3));
|
|
+ }
|
|
+ var2.add(this.setConstraints(var1, new Label("Worlds+ by Wirlaburla " + WPlus.getVersion()), var3));
|
|
+
|
|
+ Vector var5 = NetUpdate.aboutWorlds();
|
|
+ TextArea var6 = new TextArea(10, 40);
|
|
+ var6.setEditable(false);
|
|
+ var2.add(this.setConstraints(var1, var6, var3));
|
|
+ Enumeration var7 = var5.elements();
|
|
+
|
|
+ while(var7.hasMoreElements()) {
|
|
+ var6.append((String)var7.nextElement() + "\n");
|
|
+ }
|
|
+
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-1")), var3));
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-2")), var3));
|
|
+ this.okButton.setFont(bfont);
|
|
+ var2.add(this.setConstraints(var1, this.okButton, var3));
|
|
+ this.add("Center", var2);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ return var1.target == this.okButton ? this.done(true) : false;
|
|
+ }
|
|
+
|
|
+ public boolean keyDown(Event var1, int var2) {
|
|
+ return var2 != 27 && var2 != 10 ? super.keyDown(var1, var2) : this.done(true);
|
|
+ }
|
|
+
|
|
+ public void show() {
|
|
+ super.show();
|
|
+ this.okButton.requestFocus();
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/ActionDialog.java b/1904/NET/worlds/console/ActionDialog.java
|
|
--- a/1904/NET/worlds/console/ActionDialog.java 2020-08-06 15:46:20.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/ActionDialog.java 2023-09-10 15:52:01.000000000 -0500
|
|
@@ -2,6 +2,7 @@
|
|
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.ServerTableManager;
|
|
+import NET.worldsplus.Themer;
|
|
import java.awt.BorderLayout;
|
|
import java.awt.Color;
|
|
import java.awt.Component;
|
|
@@ -20,9 +21,9 @@
|
|
private static final int buttonWidth = 72;
|
|
private static final int[] buttonHeights = new int[]{16};
|
|
private static final int[] xText = new int[]{22};
|
|
- private static final String topImageName = IniFile.override().getIniString("actionsTopGif", Console.message("actt.gif"));
|
|
- private static final String buttonImageName = IniFile.override().getIniString("actionsButtonGif", "actm.gif");
|
|
- private static final String bottomImageName = IniFile.override().getIniString("actionsBottomGif", "actb.gif");
|
|
+ private static final String topImageName = Themer.themer.asset(Console.message("actt.gif"));
|
|
+ private static final String buttonImageName = Themer.themer.asset("actm.gif");
|
|
+ private static final String bottomImageName = Themer.themer.asset("actb.gif");
|
|
|
|
ActionDialog(Vector var1) {
|
|
super(Console.getFrame(), (DialogReceiver)null, Console.message("Actions"), false);
|
|
diff -ruN a/1904/NET/worlds/console/ChatSavePart.java b/1904/NET/worlds/console/ChatSavePart.java
|
|
--- a/1904/NET/worlds/console/ChatSavePart.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worlds/console/ChatSavePart.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -0,0 +1,49 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.io.BufferedReader;
|
|
+import java.io.FileWriter;
|
|
+import java.io.IOException;
|
|
+import java.io.StringReader;
|
|
+
|
|
+public class ChatSavePart implements DialogReceiver {
|
|
+
|
|
+ String chat;
|
|
+
|
|
+ ChatSavePart(String text) {
|
|
+ this.chat = text;
|
|
+ FileSysDialog fsd = new FileSysDialog(DefaultConsole.getFrame(), this, "Save Chat", 1, "Hypertext Markup|*.html|Plain Text|*.txt", "", false);
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var2) {
|
|
+ FileSysDialog var3 = (FileSysDialog)var1;
|
|
+ String var4 = var3.fileName();
|
|
+ this.doSave(var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean doSave(String path) {
|
|
+ try {
|
|
+ if (path != null) {
|
|
+ FileWriter textWriter = new FileWriter(path);
|
|
+ if (path.endsWith(".html") || path.endsWith(".htm")) {
|
|
+ BufferedReader bufReader = new BufferedReader(new StringReader(this.chat));
|
|
+ String line = null;
|
|
+ while( (line = bufReader.readLine()) != null )
|
|
+ {
|
|
+ textWriter.write(line + " <br>");
|
|
+ }
|
|
+ } else {
|
|
+ textWriter.write(this.chat);
|
|
+ }
|
|
+ textWriter.close();
|
|
+ Console.println("Saved chat!");
|
|
+ return true;
|
|
+ } else return false;
|
|
+ } catch (IOException var5) {
|
|
+ Console.println("Failed to save chat: " + var5.getMessage());
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/console/DefaultConsole.java b/1904/NET/worlds/console/DefaultConsole.java
|
|
--- a/1904/NET/worlds/console/DefaultConsole.java 2020-08-06 15:46:24.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/DefaultConsole.java 2023-12-15 20:37:08.000000000 -0600
|
|
@@ -1,3 +1,8 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by Fernflower decompiler)
|
|
+//
|
|
+
|
|
package NET.worlds.console;
|
|
|
|
import NET.worlds.core.ArchiveMaker;
|
|
@@ -32,6 +37,10 @@
|
|
import NET.worlds.scape.URLPropertyEditor;
|
|
import NET.worlds.scape.VehicleShape;
|
|
import NET.worlds.scape.World;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+import NET.worldsplus.IniUpdater;
|
|
+import NET.worldsplus.Themer;
|
|
+
|
|
import java.awt.BorderLayout;
|
|
import java.awt.CardLayout;
|
|
import java.awt.CheckboxMenuItem;
|
|
@@ -56,6 +65,7 @@
|
|
import java.io.File;
|
|
import java.io.FilenameFilter;
|
|
import java.io.IOException;
|
|
+import java.net.MalformedURLException;
|
|
import java.text.Collator;
|
|
import java.text.DateFormat;
|
|
import java.text.MessageFormat;
|
|
@@ -68,1889 +78,2083 @@
|
|
import java.util.Vector;
|
|
|
|
public class DefaultConsole extends Console implements DialogReceiver, ImageButtonsCallback, RemoteFileConst {
|
|
- MenuItem aboutItem;
|
|
- MenuItem statisticsItem;
|
|
- MenuItem upgradeItem;
|
|
- MenuItem channelItem;
|
|
- MenuItem infoItem;
|
|
- MenuItem sleepItem;
|
|
- MenuItem helpItem;
|
|
- MenuItem gettingStartedItem;
|
|
- MenuItem serverItem;
|
|
- MenuItem numVisItem;
|
|
- MenuItem checkAccountItem;
|
|
- MenuItem becomeVIPItem;
|
|
- MenuItem toggleVoiceChatItem;
|
|
- MenuItem shaperHelpItem;
|
|
- MenuItem inventoryItem;
|
|
- MenuItem proxyServerItem;
|
|
- MenuItem musicManItem;
|
|
- MenuItem condenseItem;
|
|
- MenuItem expandItem;
|
|
- MenuItem i18nTest;
|
|
- MenuItem currentLang;
|
|
- Menu switchLang;
|
|
- Vector downItems = null;
|
|
- Vector langItems = null;
|
|
- Vector fontItems = null;
|
|
- static final String LANGUAGES = "languages.lst";
|
|
- static final String FONTS = "fonts.lst";
|
|
- Vector viewItems = null;
|
|
- Vector camSpeedItems = null;
|
|
- CheckboxMenuItem currentViewItem;
|
|
- CheckboxMenuItem currentCamSpeedItem;
|
|
- ImageButtons driveButton;
|
|
- ImageButtons quitButton;
|
|
- ImageButtons exploreButton;
|
|
- ImageButtons menuButtons;
|
|
- String defaultAd = IniFile.override().getIniString("defaultAd", "home:adworlds.cmp");
|
|
- AdPart ad;
|
|
- ChatPart chat;
|
|
- RenderCanvas render;
|
|
- Panel renderAndUniverse;
|
|
- UniversePanel universe;
|
|
- CardLayout renderCard;
|
|
- InventoryPart inventory;
|
|
- WorldsMarkPart marks;
|
|
- FriendsListPart friends;
|
|
- ActionsPart actions;
|
|
- MuteListPart mutes;
|
|
- MapPart map;
|
|
- SavedAvPart savedAvs;
|
|
- private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
- private static Font mfont = new Font(Console.message("MenuFont"), 0, 12);
|
|
- CDControl cdcontrol;
|
|
- boolean playedCD;
|
|
- MenuItem cdPlayerItem;
|
|
- MenuItem volumeItem;
|
|
- MenuItem graphicsItem;
|
|
- MenuItem nametagItem;
|
|
- MenuItem chatBoxItem;
|
|
- MenuItem broadcastToRoom;
|
|
- MenuItem broadcastToAll;
|
|
- MenuItem bootSomeone;
|
|
- CheckboxMenuItem orthographicViewItem;
|
|
- MenuItem recorderPlayItem;
|
|
- MenuItem recorderRecItem;
|
|
- MenuItem recorderStopItem;
|
|
- boolean universeMode;
|
|
- private static final int[] menuButtonHeights = new int[]{23, 21, 21, 21, 21, 21, 25, -29};
|
|
- private Vector viewNames;
|
|
- private Vector speedNames;
|
|
- private static final int HELP = 0;
|
|
- private static final int OPTIONS = 1;
|
|
- private static final int WORLDSMAIL = 2;
|
|
- private static final int WORLDSMARK = 3;
|
|
- private static final int LETS = 4;
|
|
- private static final int ACTIONS = 5;
|
|
- private static final int VIP = 6;
|
|
- static String loadingString = Console.message("Loading");
|
|
- static String arrowKeyMsg = Console.message("Use-arrow-keys");
|
|
- String statusMessage;
|
|
- String overrideMessage;
|
|
- String lastStatus;
|
|
- int lastUpdateTime;
|
|
- boolean wasTeleporting;
|
|
- private int lastVMCheck;
|
|
- private int lastVMBigWarning;
|
|
- Component bottom;
|
|
- Component top;
|
|
- Label status;
|
|
- Label yourName;
|
|
- static String[] lNames = lpList();
|
|
- static int lLength;
|
|
- static MenuItem[] lLangs;
|
|
- static Locale[] newLocale;
|
|
- static String[][] lCodes;
|
|
- Vector lList;
|
|
- Vector sList;
|
|
- int[] lSizes;
|
|
- int dLength;
|
|
- MenuItem[] dLangs;
|
|
- Locale[] newdLocale;
|
|
- Vector flList;
|
|
- Vector fsList;
|
|
- int[] fSizes;
|
|
- int fLength;
|
|
- MenuItem[] dFonts;
|
|
- Locale[] newfLocale;
|
|
- static boolean wasDelta;
|
|
- static boolean doDrive;
|
|
- Panel mapPanel;
|
|
- private static String signIn;
|
|
- private static String signOut;
|
|
- private static String signingIn;
|
|
- private static String noMultiUser;
|
|
- private static String enable3D;
|
|
- private static String disable3D;
|
|
- private static String showTags;
|
|
- private static String hideTags;
|
|
- private static String enableClassicChat;
|
|
- private static String disableClassicChat;
|
|
- Menu chatLogMenu;
|
|
- AvMenu avatarMenu;
|
|
- private int chooseView;
|
|
- private int chooseCamSpeed;
|
|
- private static String sleepStatus;
|
|
- OkCancelDialog reloginDialog;
|
|
- private Object nextAvatarMutex;
|
|
- private URL nextAvatar;
|
|
- private CheckboxMenuItem nextAvatarItem;
|
|
- private CheckboxMenuItem curAvatarItem;
|
|
- private static String lastWorldName;
|
|
- private static String lowVMMsg;
|
|
- private boolean showedMidWarn;
|
|
- private static boolean startupMemCheck;
|
|
- public static int physMem;
|
|
- protected URL avatarURL;
|
|
- private static Object classCookie;
|
|
-
|
|
- public UniversePanel getUniversePanel() {
|
|
- return this.universe;
|
|
- }
|
|
-
|
|
- public void printLine(String var1) {
|
|
- this.chat.println(var1);
|
|
- super.printLine(var1);
|
|
- }
|
|
-
|
|
- protected void printWhisperFrom(String var1, String var2) {
|
|
- WhisperManager.whisperManager().printFrom(var1, var2);
|
|
- }
|
|
-
|
|
- protected void printWhisperTo(String var1, String var2) {
|
|
- WhisperManager.whisperManager().printTo(var1, var2);
|
|
- }
|
|
-
|
|
- protected void startWhisperingTo(String var1) {
|
|
- WhisperManager.whisperManager().startTo(var1);
|
|
- }
|
|
-
|
|
- public DefaultConsole() {
|
|
- this.ad = new AdPart(URL.make(this.defaultAd));
|
|
- this.chat = new ChatPart();
|
|
- this.render = new RenderCanvas(this, new Dimension(560, 360));
|
|
- this.inventory = new InventoryPart();
|
|
- this.marks = new WorldsMarkPart();
|
|
- this.friends = new FriendsListPart();
|
|
- this.actions = new ActionsPart();
|
|
- this.mutes = new MuteListPart();
|
|
- this.map = new MapPart();
|
|
- this.savedAvs = new SavedAvPart();
|
|
- this.statusMessage = arrowKeyMsg;
|
|
- this.lastStatus = "";
|
|
- this.lastUpdateTime = 0;
|
|
- this.wasTeleporting = false;
|
|
- this.status = new UnpaddedLabel("", 2);
|
|
- this.yourName = new UnpaddedLabel("", 0);
|
|
- this.lList = new Vector();
|
|
- this.sList = new Vector();
|
|
- this.lSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
- this.dLength = this.dpList(this.lList, this.sList, this.lSizes);
|
|
- this.dLangs = this.dLength == 0 ? null : new MenuItem[this.dLength];
|
|
- this.newdLocale = this.dLength == 0 ? null : new Locale[this.dLength];
|
|
- this.flList = new Vector();
|
|
- this.fsList = new Vector();
|
|
- this.fSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
- this.fLength = this.fpList(this.flList, this.fsList, this.fSizes);
|
|
- this.dFonts = this.fLength == 0 ? null : new MenuItem[this.fLength];
|
|
- this.newfLocale = this.fLength == 0 ? null : new Locale[this.fLength];
|
|
- this.chooseView = -1;
|
|
- this.chooseCamSpeed = -1;
|
|
- this.nextAvatarMutex = new Object();
|
|
- this.init();
|
|
- this.loadViewNames();
|
|
- this.speedNames = new Vector();
|
|
- this.speedNames.addElement(new DefaultConsole.CameraSpeed("Slow", 1));
|
|
- this.speedNames.addElement(new DefaultConsole.CameraSpeed("Medium", 2));
|
|
- this.speedNames.addElement(new DefaultConsole.CameraSpeed("Fast", 3));
|
|
- }
|
|
-
|
|
- public void loadViewNames() {
|
|
- this.viewNames = new Vector();
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("First-person", 1));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Low-first-person", 2));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Waist", 3));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Shoulder", 4));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Head", 5));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Overhead", 6));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Behind", 7));
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Wide-shot", 8));
|
|
- if (Gamma.getShaper() != null) {
|
|
- this.viewNames.addElement(new DefaultConsole.CameraView("Orthographic", 9));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setOrthoEnabled(boolean var1) {
|
|
- if (this.orthographicViewItem != null) {
|
|
- this.orthographicViewItem.setEnabled(var1);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void loadInit() {
|
|
- super.loadInit();
|
|
- }
|
|
-
|
|
- public void removeUseArrowStatusMsg() {
|
|
- if (this.statusMessage == arrowKeyMsg) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void overrideStatusMsg(String var1) {
|
|
- synchronized(this.status) {
|
|
- this.overrideMessage = var1;
|
|
- if (var1 != null) {
|
|
- this.status.setText(var1);
|
|
- } else {
|
|
- this.status.setText(this.lastStatus);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public String message(String var1, Locale var2) {
|
|
- Locale.setDefault(var2);
|
|
- Console.println(var2.getDisplayName());
|
|
-
|
|
- try {
|
|
- ResourceBundle var3 = ResourceBundle.getBundle("MessagesBundle", var2);
|
|
- return var3.getString(var1);
|
|
- } catch (MissingResourceException var4) {
|
|
- return "NO MESSAGE for " + var1;
|
|
- }
|
|
- }
|
|
-
|
|
- private void init() {
|
|
- this.addPart(this.render);
|
|
- this.addPart(this.chat);
|
|
- this.addPart(this.inventory);
|
|
- this.addPart(this.marks);
|
|
- this.addPart(this.friends);
|
|
- this.addPart(this.actions);
|
|
- this.addPart(this.mutes);
|
|
- this.addPart(this.ad);
|
|
- this.addPart(this.map);
|
|
- this.addPart(this.savedAvs);
|
|
- Panel var1 = new Panel(new FlowLayout(1, 0, 0));
|
|
- String var2 = IniFile.override().getIniString("driveGif", "drive.gif");
|
|
- this.addPart(this.driveButton = new ImageButtons(var2, 81, 19, this));
|
|
- String var3 = IniFile.override().getIniString("quitGif", Console.message("quit.gif"));
|
|
- this.addPart(this.quitButton = new ImageButtons(var3, 65, 19, this));
|
|
- String var4 = IniFile.override().getIniString("exploreGif", Console.message("explore.gif"));
|
|
- this.addPart(this.exploreButton = new ImageButtons(var4, 98, 22, this));
|
|
- var1.add(this.driveButton);
|
|
- this.driveButton.setDownUpHandler(new ImageButtonsCallback() {
|
|
- public Object imageButtonsCallback(Component var1, int var2) {
|
|
- if (var2 != -1) {
|
|
- DefaultConsole.this.startDrive();
|
|
+ MenuItem aboutItem;
|
|
+ MenuItem statisticsItem;
|
|
+ MenuItem upgradeItem;
|
|
+ MenuItem channelItem;
|
|
+ MenuItem infoItem;
|
|
+ MenuItem sleepItem;
|
|
+ MenuItem helpItem;
|
|
+ MenuItem gettingStartedItem;
|
|
+ MenuItem serverItem;
|
|
+ MenuItem numVisItem;
|
|
+ MenuItem checkAccountItem;
|
|
+ MenuItem becomeVIPItem;
|
|
+ MenuItem toggleVoiceChatItem;
|
|
+ MenuItem shaperHelpItem;
|
|
+ MenuItem inventoryItem;
|
|
+ MenuItem proxyServerItem;
|
|
+ MenuItem musicManItem;
|
|
+ MenuItem condenseItem;
|
|
+ MenuItem expandItem;
|
|
+ MenuItem i18nTest;
|
|
+ MenuItem currentLang;
|
|
+ Menu switchLang;
|
|
+ Vector downItems = null;
|
|
+ Vector langItems = null;
|
|
+ Vector fontItems = null;
|
|
+ static final String LANGUAGES = "languages.lst";
|
|
+ static final String FONTS = "fonts.lst";
|
|
+ Vector viewItems = null;
|
|
+ Vector camSpeedItems = null;
|
|
+ CheckboxMenuItem currentViewItem;
|
|
+ CheckboxMenuItem currentCamSpeedItem;
|
|
+
|
|
+ Vector whisperItems = null;
|
|
+ Vector teleportItems = null;
|
|
+ CheckboxMenuItem currentWhisperItem;
|
|
+ CheckboxMenuItem currentTeleportItem;
|
|
+
|
|
+ ImageButtons driveButton;
|
|
+ ImageButtons quitButton;
|
|
+ ImageButtons exploreButton;
|
|
+ ImageButtons menuButtons;
|
|
+ String defaultAd = IniFile.override().getIniString("defaultAd", "home:adworlds.cmp");
|
|
+ AdPart ad;
|
|
+ ChatPart chat;
|
|
+ RenderCanvas render;
|
|
+ Panel renderAndUniverse;
|
|
+ UniversePanel universe;
|
|
+ CardLayout renderCard;
|
|
+ InventoryPart inventory;
|
|
+ WorldsMarkPart marks;
|
|
+ FriendsListPart friends;
|
|
+ ActionsPart actions;
|
|
+ MuteListPart mutes;
|
|
+ TarListPart tars;
|
|
+ MapPart map;
|
|
+ SavedAvPart savedAvs;
|
|
+ private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
+ private static Font mfont = new Font(Console.message("MenuFont"), 0, 12);
|
|
+ CDControl cdcontrol;
|
|
+ boolean playedCD;
|
|
+ MenuItem cdPlayerItem;
|
|
+ MenuItem volumeItem;
|
|
+ MenuItem graphicsItem;
|
|
+ MenuItem nametagItem;
|
|
+ MenuItem chatBoxItem;
|
|
+ MenuItem broadcastToRoom;
|
|
+ MenuItem broadcastToAll;
|
|
+ MenuItem bootSomeone;
|
|
+ MenuItem recorderPlayItem;
|
|
+ MenuItem recorderRecItem;
|
|
+ MenuItem recorderStopItem;
|
|
+ CheckboxMenuItem showWhispers;
|
|
+ CheckboxMenuItem showTeleports;
|
|
+ CheckboxMenuItem respondWhispers;
|
|
+ CheckboxMenuItem respondTeleports;
|
|
+ CheckboxMenuItem overrideWorldTeleport;
|
|
+ boolean universeMode;
|
|
+ private static final int[] menuButtonHeights = new int[]{23, 21, 21, 21, 21, 21, 25, -29};
|
|
+ private Vector viewNames;
|
|
+ private Vector speedNames;
|
|
+ private Vector whisperNames;
|
|
+ private Vector teleportNames;
|
|
+ private static final int HELP = 0;
|
|
+ private static final int OPTIONS = 1;
|
|
+ private static final int WORLDSMAIL = 2;
|
|
+ private static final int WORLDSMARK = 3;
|
|
+ private static final int LETS = 4;
|
|
+ private static final int ACTIONS = 5;
|
|
+ private static final int VIP = 6;
|
|
+ static String loadingString = Console.message("Loading");
|
|
+ static String arrowKeyMsg = Console.message("Use-arrow-keys");
|
|
+ String statusMessage;
|
|
+ String overrideMessage;
|
|
+ String lastStatus;
|
|
+ int lastUpdateTime;
|
|
+ boolean wasTeleporting;
|
|
+ private int lastVMCheck;
|
|
+ private int lastVMBigWarning;
|
|
+ Component bottom;
|
|
+ Component top;
|
|
+ Label status;
|
|
+ Label yourName;
|
|
+ static String[] lNames = lpList();
|
|
+ static int lLength;
|
|
+ static MenuItem[] lLangs;
|
|
+ static Locale[] newLocale;
|
|
+ static String[][] lCodes;
|
|
+ Vector lList;
|
|
+ Vector sList;
|
|
+ int[] lSizes;
|
|
+ int dLength;
|
|
+ MenuItem[] dLangs;
|
|
+ Locale[] newdLocale;
|
|
+ Vector flList;
|
|
+ Vector fsList;
|
|
+ int[] fSizes;
|
|
+ int fLength;
|
|
+ MenuItem[] dFonts;
|
|
+ Locale[] newfLocale;
|
|
+ static boolean wasDelta;
|
|
+ static boolean doDrive;
|
|
+ Panel mapPanel;
|
|
+ private static String signIn;
|
|
+ private static String signOut;
|
|
+ private static String signingIn;
|
|
+ private static String noMultiUser;
|
|
+ private static String enable3D;
|
|
+ private static String disable3D;
|
|
+ private static String showTags;
|
|
+ private static String hideTags;
|
|
+ private static String enableClassicChat;
|
|
+ private static String disableClassicChat;
|
|
+ Menu chatLogMenu;
|
|
+ AvMenu avatarMenu;
|
|
+ private int chooseView;
|
|
+ private int chooseCamSpeed;
|
|
+ private int chooseWhisper;
|
|
+ private int chooseTeleport;
|
|
+ private static String sleepStatus;
|
|
+ OkCancelDialog reloginDialog;
|
|
+ private Object nextAvatarMutex;
|
|
+ private URL nextAvatar;
|
|
+ private CheckboxMenuItem nextAvatarItem;
|
|
+ private CheckboxMenuItem curAvatarItem;
|
|
+ private static String lastWorldName;
|
|
+ private static String lowVMMsg;
|
|
+ private boolean showedMidWarn;
|
|
+ private static boolean startupMemCheck;
|
|
+ public static int physMem;
|
|
+ protected URL avatarURL;
|
|
+ private static Object classCookie;
|
|
+
|
|
+ public UniversePanel getUniversePanel() {
|
|
+ return this.universe;
|
|
+ }
|
|
+
|
|
+ public void printLine(String var1) {
|
|
+ this.chat.println(var1);
|
|
+ super.printLine(var1);
|
|
+ }
|
|
+
|
|
+ protected void printWhisperFrom(String var1, String var2) {
|
|
+ WhisperManager.whisperManager().printFrom(var1, var2);
|
|
+ }
|
|
+
|
|
+ protected void printWhisperTo(String var1, String var2) {
|
|
+ WhisperManager.whisperManager().printTo(var1, var2);
|
|
+ }
|
|
+
|
|
+ protected void startWhisperingTo(String var1) {
|
|
+ WhisperManager.whisperManager().startTo(var1);
|
|
+ }
|
|
+
|
|
+ public DefaultConsole() {
|
|
+ this.ad = new AdPart(URL.make(this.defaultAd));
|
|
+ this.chat = new ChatPart();
|
|
+ this.render = new RenderCanvas(this, new Dimension(560, 360));
|
|
+ this.inventory = new InventoryPart();
|
|
+ this.marks = new WorldsMarkPart();
|
|
+ this.friends = new FriendsListPart();
|
|
+ this.actions = new ActionsPart();
|
|
+ this.mutes = new MuteListPart();
|
|
+ this.tars = new TarListPart();
|
|
+ this.map = new MapPart();
|
|
+ this.savedAvs = new SavedAvPart();
|
|
+ this.statusMessage = arrowKeyMsg;
|
|
+ this.lastStatus = "";
|
|
+ this.lastUpdateTime = 0;
|
|
+ this.wasTeleporting = false;
|
|
+ this.status = new UnpaddedLabel("", 2);
|
|
+ this.yourName = new UnpaddedLabel("", 0);
|
|
+ this.lList = new Vector();
|
|
+ this.sList = new Vector();
|
|
+ this.lSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
+ this.dLength = this.dpList(this.lList, this.sList, this.lSizes);
|
|
+ this.dLangs = this.dLength == 0 ? null : new MenuItem[this.dLength];
|
|
+ this.newdLocale = this.dLength == 0 ? null : new Locale[this.dLength];
|
|
+ this.flList = new Vector();
|
|
+ this.fsList = new Vector();
|
|
+ this.fSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
+ this.fLength = this.fpList(this.flList, this.fsList, this.fSizes);
|
|
+ this.dFonts = this.fLength == 0 ? null : new MenuItem[this.fLength];
|
|
+ this.newfLocale = this.fLength == 0 ? null : new Locale[this.fLength];
|
|
+ this.chooseView = -1;
|
|
+ this.chooseCamSpeed = -1;
|
|
+ this.chooseWhisper = -1;
|
|
+ this.chooseTeleport = -1;
|
|
+ this.nextAvatarMutex = new Object();
|
|
+ new ChatSaver();
|
|
+ new IniUpdater();
|
|
+ new Themer();
|
|
+ this.init();
|
|
+ this.loadViewNames();
|
|
+ this.loadSpeedNames();
|
|
+ this.loadWhisperNames();
|
|
+ this.loadTeleportNames();
|
|
+ }
|
|
+
|
|
+ public void loadSpeedNames() {
|
|
+ this.speedNames = new Vector();
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Slow", 1));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Medium", 2));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Fast", 3));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Very Fast", 4));
|
|
+ }
|
|
+
|
|
+ public void loadViewNames() {
|
|
+ this.viewNames = new Vector();
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("First-person", 1));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Low-first-person", 2));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Waist", 3));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Shoulder", 4));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Head", 5));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Overhead", 6));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Behind", 7));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Wide-shot", 8));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Orthographic", 9));
|
|
+ }
|
|
+
|
|
+ public void loadWhisperNames() {
|
|
+ this.whisperNames = new Vector();
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("Everyone", 0));
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("Friends", 1));
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("No one", 2));
|
|
+ }
|
|
+
|
|
+ public void loadTeleportNames() {
|
|
+ this.teleportNames = new Vector();
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("Everyone", 0));
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("Friends", 1));
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("No one", 2));
|
|
+ }
|
|
+
|
|
+ public void setOrthoEnabled(boolean var1) {
|
|
+
|
|
+ }
|
|
+
|
|
+ public void loadInit() {
|
|
+ super.loadInit();
|
|
+ }
|
|
+
|
|
+ public void removeUseArrowStatusMsg() {
|
|
+ if (this.statusMessage.equals(arrowKeyMsg)) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void overrideStatusMsg(String var1) {
|
|
+ synchronized(this.status) {
|
|
+ this.overrideMessage = var1;
|
|
+ if (var1 != null) {
|
|
+ this.status.setText(var1);
|
|
} else {
|
|
- DefaultConsole.this.driveButton.drawDown();
|
|
+ this.status.setText(this.lastStatus);
|
|
}
|
|
|
|
- return this;
|
|
- }
|
|
- });
|
|
- Panel var5 = new Panel();
|
|
- var5.setLayout(new GridLayout(1, 3));
|
|
- int var6 = IniFile.override().getIniInt("uiBackgroundRed", 49);
|
|
- int var7 = IniFile.override().getIniInt("uiBackgroundGreen", 0);
|
|
- int var8 = IniFile.override().getIniInt("uiBackgroundBlue", 255);
|
|
- var5.setBackground(new Color(var6, var7, var8));
|
|
- var5.add(this.yourName);
|
|
- var5.add(var1);
|
|
- var5.add(this.status);
|
|
- this.chat.line.setBackground(Color.black);
|
|
- this.chat.line.setForeground(Color.white);
|
|
- this.chat.line.setFont(font);
|
|
- InsetPanel var9 = new InsetPanel(new BorderLayout(0, 3), 0, 0, 3, 0);
|
|
- var9.add("North", var5);
|
|
- var9.add("Center", this.chat.listen.getComponent());
|
|
- var9.add("South", this.chat.line);
|
|
- this.chat.listen.setBackground(Color.black);
|
|
- this.chat.listen.setForeground(Color.white);
|
|
- this.chat.listen.setFont(font);
|
|
- Panel var10 = new Panel(new BorderLayout());
|
|
- new Panel(new BorderLayout());
|
|
- Panel var12 = new Panel(new BorderLayout());
|
|
- Panel var13 = new Panel(new BorderLayout());
|
|
- ColorFiller var14 = new ColorFiller(65, 19);
|
|
- var14.setBackground(new Color(var6, var7, var8));
|
|
- var12.add("West", this.quitButton);
|
|
- var12.add("East", var14);
|
|
- var13.add("North", var12);
|
|
- var13.add("Center", this.ad);
|
|
- var10.add("West", var13);
|
|
- this.mapPanel = new Panel(new BorderLayout());
|
|
- this.mapPanel.add("Center", this.map);
|
|
- this.mapPanel.setBackground(Color.black);
|
|
- var12 = new Panel(new BorderLayout());
|
|
- ColorFiller var15 = new ColorFiller(60, 19);
|
|
- var15.setBackground(new Color(var6, var7, var8));
|
|
- var12.add("North", var15);
|
|
- ColorFiller var16 = new ColorFiller(60, 3);
|
|
- int var17 = IniFile.override().getIniInt("uiBackground2Red", 0);
|
|
- int var18 = IniFile.override().getIniInt("uiBackground2Green", 0);
|
|
- int var19 = IniFile.override().getIniInt("uiBackground2Blue", 0);
|
|
- var16.setBackground(new Color(var17, var18, var19));
|
|
- var12.add("South", var16);
|
|
- Panel var11 = new Panel(new BorderLayout());
|
|
- var11.add("East", this.exploreButton);
|
|
- var11.add("West", var12);
|
|
- this.mapPanel.add("North", var11);
|
|
- var10.add("East", this.mapPanel);
|
|
- var10.add("Center", var9);
|
|
- this.bottom = var10;
|
|
- this.renderCard = new CardLayout();
|
|
- this.renderAndUniverse = new Panel(this.renderCard);
|
|
- this.renderAndUniverse.add("render", this.render);
|
|
- InsetPanel var20 = new InsetPanel(new BorderLayout(), 3, 3, 0, 0);
|
|
- var20.add("Center", this.renderAndUniverse);
|
|
- int var21 = IniFile.override().getIniInt("uiBackground3Red", 0);
|
|
- int var22 = IniFile.override().getIniInt("uiBackground3Green", 0);
|
|
- int var23 = IniFile.override().getIniInt("uiBackground3Blue", 0);
|
|
- var14 = new ColorFiller(97, 1);
|
|
- var14.setBackground(new Color(var21, var22, var23));
|
|
- Panel var24 = new Panel(new QuantizedStackedLayout(var14));
|
|
- String var25 = IniFile.override().getIniString("rtPanel", Console.message("rtpanel.gif"));
|
|
- this.addPart(this.menuButtons = new ImageButtons(var25, 97, menuButtonHeights, this));
|
|
- var24.add(var14);
|
|
- var24.add(this.menuButtons);
|
|
- var24.add(this.friends);
|
|
- var20.add("East", var24);
|
|
- this.top = var20;
|
|
- }
|
|
-
|
|
- public void relayoutMap() {
|
|
- this.mapPanel.invalidate();
|
|
- this.mapPanel.validate();
|
|
- this.mapPanel.doLayout();
|
|
- this.mapPanel.repaint();
|
|
- }
|
|
-
|
|
- public void startDrive() {
|
|
- this.statusMessage = Console.message("Drag-mouse");
|
|
- doDrive = true;
|
|
- Window.makeJavaReleaseCapture();
|
|
- }
|
|
-
|
|
- public void setOnlineState(boolean var1, boolean var2) {
|
|
- synchronized(this) {
|
|
- if (this.serverItem != null) {
|
|
- this.serverItem.setEnabled(var1);
|
|
- if (!var1) {
|
|
- Galaxy var4 = this.getGalaxy();
|
|
- if (var4 != null && !var4.isAnonymous()) {
|
|
- this.serverItem.setLabel(signingIn);
|
|
- } else {
|
|
- this.serverItem.setLabel(noMultiUser);
|
|
- }
|
|
- } else if (var2) {
|
|
- this.serverItem.setLabel(signOut);
|
|
- } else {
|
|
- this.serverItem.setLabel(signIn);
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleNametagsItem() {
|
|
- if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 0) {
|
|
- IniFile.gamma().setIniInt("SHOWNAMETAGS", 1);
|
|
- this.nametagItem.setLabel(hideTags);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("SHOWNAMETAGS", 0);
|
|
- this.nametagItem.setLabel(showTags);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- private void handleGraphicsItem() {
|
|
- if (IniFile.gamma().getIniInt("UserEnabled3DHardware", 0) == 0) {
|
|
- IniFile.gamma().setIniInt("UserEnabled3DHardware", 1);
|
|
- this.graphicsItem.setLabel(disable3D);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("UserEnabled3DHardware", 0);
|
|
- this.graphicsItem.setLabel(enable3D);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- private void handleChatBoxItem() {
|
|
- if (IniFile.gamma().getIniInt("classicChatBox", 1) == 0) {
|
|
- IniFile.gamma().setIniInt("classicChatBox", 1);
|
|
- this.chatBoxItem.setLabel(disableClassicChat);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("classicChatBox", 0);
|
|
- this.chatBoxItem.setLabel(enableClassicChat);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- public AvMenu getAvatarMenu() {
|
|
- return this.avatarMenu;
|
|
- }
|
|
-
|
|
- public void inventoryChanged() {
|
|
- super.inventoryChanged();
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.buildSpecialGuestMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setMenusWRTVIP() {
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.setEnabled(this.getVIP());
|
|
- this.avatarMenu.customize.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.savedAvs != null) {
|
|
- this.savedAvs.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.chatLogMenu != null) {
|
|
- this.chatLogMenu.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.toggleVoiceChatItem != null) {
|
|
- this.toggleVoiceChatItem.setLabel(this.getVIP() && VoiceChat.voiceChatEnabled ? Console.message("Reject-Voice") : Console.message("Accept-Voice"));
|
|
- this.toggleVoiceChatItem.setEnabled(this.getVIP() && VoiceChat.voiceChatAvailable());
|
|
- }
|
|
-
|
|
- if (this.becomeVIPItem != null) {
|
|
- this.becomeVIPItem.setLabel(vip > 0 ? (vip > 1 ? Console.message("Youre-a-VIP") : Console.message("Become-full-VIP")) : Console.message("Become-VIP"));
|
|
- }
|
|
-
|
|
- if (this.numVisItem != null) {
|
|
- this.numVisItem.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void addBroadcastMenu() {
|
|
- if (this.bootSomeone == null) {
|
|
- if (IniFile.gamma().getIniInt("Broadcast", 0) != 0) {
|
|
- Menu var1 = new Menu(Console.message("Broadcast"));
|
|
- var1.add(this.broadcastToRoom = new MenuItem(Console.message("Users")));
|
|
- var1.add(this.broadcastToAll = new MenuItem(Console.message("All-users")));
|
|
- this.addMenuItem(var1, "Options");
|
|
- }
|
|
-
|
|
- this.bootSomeone = new MenuItem(Console.message("Boot-user"));
|
|
- this.addMenuItem(this.bootSomeone, "Options");
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private Menu updateChatLogMenu() {
|
|
- if (this.chatLogMenu == null) {
|
|
- this.chatLogMenu = new Menu(Console.message("View-Chat"));
|
|
- } else {
|
|
- this.chatLogMenu.removeAll();
|
|
- }
|
|
-
|
|
- ActionListener var1 = new ActionListener() {
|
|
- public void actionPerformed(ActionEvent var1) {
|
|
- (new SendURLAction("file:" + var1.getActionCommand())).startBrowser();
|
|
- }
|
|
- };
|
|
- String[] var2 = this.logList();
|
|
- MenuItem var3 = null;
|
|
-
|
|
- for(int var4 = 0; var4 < var2.length; ++var4) {
|
|
- int var5 = var2[var4].indexOf(".glog.html");
|
|
- if (var5 > 6) {
|
|
- Object[] var6 = new Object[]{new String(var2[var4].substring(5, var5))};
|
|
- var3 = new MenuItem(MessageFormat.format(Console.message("Chat-with"), var6));
|
|
- } else {
|
|
- if (var5 <= 0) {
|
|
- continue;
|
|
- }
|
|
-
|
|
- var3 = new MenuItem(Console.message("General-chat"));
|
|
- }
|
|
-
|
|
- var3.setActionCommand(var2[var4]);
|
|
- var3.addActionListener(var1);
|
|
- this.chatLogMenu.add(var3);
|
|
- }
|
|
-
|
|
- return this.chatLogMenu;
|
|
- }
|
|
-
|
|
- private String[] logList() {
|
|
- File var1 = new File(".");
|
|
- FilenameFilter var2 = new FilenameFilter() {
|
|
- public boolean accept(File var1, String var2) {
|
|
- return var2.startsWith("chat.") && var2.endsWith(".glog.html");
|
|
- }
|
|
- };
|
|
- return var1.list(var2);
|
|
- }
|
|
-
|
|
- private static String[] lpList() {
|
|
- File var0 = new File(".");
|
|
- FilenameFilter var1 = new FilenameFilter() {
|
|
- public boolean accept(File var1, String var2) {
|
|
- return var2.startsWith("MessagesBundle") && var2.endsWith(".properties");
|
|
- }
|
|
- };
|
|
- String[] var2 = var0.list(var1);
|
|
- Collator var3 = Collator.getInstance();
|
|
- sortStrings(var3, var2);
|
|
- return var2;
|
|
- }
|
|
-
|
|
- private int dpList(Vector var1, Vector var2, int[] var3) {
|
|
- String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "languages.lst"), var1, var2, var3);
|
|
- if (var4 != null) {
|
|
- System.out.println(var4);
|
|
- return 0;
|
|
- } else {
|
|
- return var1.size();
|
|
- }
|
|
- }
|
|
-
|
|
- private int fpList(Vector var1, Vector var2, int[] var3) {
|
|
- String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "fonts.lst"), var1, var2, var3);
|
|
- if (var4 != null) {
|
|
- System.out.println(var4);
|
|
- return 0;
|
|
- } else {
|
|
- return var1.size();
|
|
- }
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator var0, String[] var1, Locale[] var2, String[][] var3) {
|
|
- for(int var8 = 0; var8 < var1.length; ++var8) {
|
|
- for(int var9 = var8 + 1; var9 < var1.length; ++var9) {
|
|
- if (var0.compare(var1[var8], var1[var9]) > 0) {
|
|
- String var4 = var1[var8];
|
|
- Locale var5 = var2[var8];
|
|
- String var6 = var3[var8][0];
|
|
- String var7 = var3[var8][1];
|
|
- var1[var8] = var1[var9];
|
|
- var2[var8] = var2[var9];
|
|
- var3[var8][0] = var3[var9][0];
|
|
- var3[var8][1] = var3[var9][1];
|
|
- var1[var9] = var4;
|
|
- var2[var9] = var5;
|
|
- var3[var9][0] = var6;
|
|
- var3[var9][1] = var7;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator var0, String[] var1, Locale[] var2, Vector var3, Vector var4) {
|
|
- for(int var9 = 0; var9 < var1.length; ++var9) {
|
|
- for(int var10 = var9 + 1; var10 < var1.length; ++var10) {
|
|
- if (var0.compare(var1[var9], var1[var10]) > 0) {
|
|
- String var5 = var1[var9];
|
|
- Locale var6 = var2[var9];
|
|
- String var7 = (String)var3.elementAt(var9);
|
|
- String var8 = (String)var4.elementAt(var9);
|
|
- var1[var9] = var1[var10];
|
|
- var2[var9] = var2[var10];
|
|
- var3.setElementAt(var3.elementAt(var10), var9);
|
|
- var4.setElementAt(var4.elementAt(var10), var9);
|
|
- var1[var10] = var5;
|
|
- var2[var10] = var6;
|
|
- var3.setElementAt(var7, var10);
|
|
- var4.setElementAt(var8, var10);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator var0, String[] var1) {
|
|
- for(int var3 = 0; var3 < var1.length; ++var3) {
|
|
- for(int var4 = var3 + 1; var4 < var1.length; ++var4) {
|
|
- if (var0.compare(var1[var3], var1[var4]) > 0) {
|
|
- String var2 = var1[var3];
|
|
- var1[var3] = var1[var4];
|
|
- var1[var4] = var2;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void activate(Container var1) {
|
|
- super.activate(var1);
|
|
- var1.setBackground(Color.black);
|
|
- var1.setForeground(Color.white);
|
|
- var1.setLayout(new BorderLayout());
|
|
- var1.add("Center", this.top);
|
|
- var1.add("South", this.bottom);
|
|
- this.chat.line.setBackground(Color.white);
|
|
- this.chat.line.setForeground(Color.black);
|
|
- boolean var2 = Gamma.getShaper() != null;
|
|
- if (var2) {
|
|
- this.shaperHelpItem = this.addMenuItem(Console.message("using-shaper"), "Help");
|
|
- }
|
|
-
|
|
- if (NetUpdate.getInfoURL() != null) {
|
|
- this.helpItem = this.addMenuItem(Console.message("Help-Contents"), "Help");
|
|
- this.infoItem = this.addMenuItem(Console.message("Latest-info"), "Help");
|
|
- }
|
|
-
|
|
- Object[] var3 = new Object[]{new String(Std.getProductName())};
|
|
- this.aboutItem = this.addMenuItem(MessageFormat.format(Console.message("About-product"), var3), "Help");
|
|
- int var4 = IniFile.gamma().getIniInt("CAM_MODE", 7);
|
|
- int var5 = IniFile.gamma().getIniInt("CAM_SPEED", 3);
|
|
- if (!var2 && var4 == 9) {
|
|
- var4 = 7;
|
|
- }
|
|
-
|
|
- this.pilot.setOutsideCameraMode(var4, var5);
|
|
- Menu var6 = new Menu(Console.message("Change-View"));
|
|
- this.addMenuItem(var6, "Options");
|
|
- MenuItem var7 = new MenuItem(Console.message("CAMERA-VIEW"));
|
|
- var7.setFont(mfont);
|
|
- var6.add(var7);
|
|
- this.viewItems = new Vector();
|
|
-
|
|
- for(int var8 = 0; var8 < this.viewNames.size(); ++var8) {
|
|
- DefaultConsole.CameraView var9 = (DefaultConsole.CameraView)this.viewNames.elementAt(var8);
|
|
- CheckboxMenuItem var10 = new CheckboxMenuItem(" " + Console.message(var9.viewName), var4 == var9.viewID);
|
|
- if (var4 == var9.viewID) {
|
|
- this.currentViewItem = var10;
|
|
- }
|
|
-
|
|
- var10.setFont(mfont);
|
|
- var6.add(var10);
|
|
- this.viewItems.addElement(var10);
|
|
- if (var9.viewName == "Orthographic") {
|
|
- this.orthographicViewItem = var10;
|
|
- }
|
|
- }
|
|
-
|
|
- var6.addSeparator();
|
|
- MenuItem var25 = new MenuItem(Console.message("CAMERA-SPEED"));
|
|
- var25.setFont(mfont);
|
|
- var6.add(var25);
|
|
- this.camSpeedItems = new Vector();
|
|
-
|
|
- for(int var26 = 0; var26 < this.speedNames.size(); ++var26) {
|
|
- DefaultConsole.CameraSpeed var28 = (DefaultConsole.CameraSpeed)this.speedNames.elementAt(var26);
|
|
- CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.speedName), var28.speedID == var5);
|
|
- if (var28.speedID == var5) {
|
|
- this.currentCamSpeedItem = var11;
|
|
- }
|
|
-
|
|
- var11.setFont(mfont);
|
|
- var6.add(var11);
|
|
- this.camSpeedItems.addElement(var11);
|
|
- }
|
|
-
|
|
- this.becomeVIPItem = this.addMenuItem(vip == 1 ? Console.message("Become-full-VIP") : Console.message("Become-VIP"), "VIP");
|
|
- this.addMenuItem(this.avatarMenu = new AvMenu(this, this.lastPilotRequested), "VIP");
|
|
- this.addMenuItem(this.savedAvs, "VIP");
|
|
- this.addMenuItem(this.avatarMenu.customize, "VIP");
|
|
- this.toggleVoiceChatItem = this.addMenuItem(Console.message("Enable-Voice"), "VIP");
|
|
- this.toggleVoiceChatItem.setEnabled(false);
|
|
- this.numVisItem = this.addMenuItem(Console.message("Num-Visible"), "VIP");
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- this.inventoryItem = this.addMenuItem("Check Inventory", "VIP");
|
|
- }
|
|
-
|
|
- this.setMenusWRTVIP();
|
|
- this.proxyServerItem = this.addMenuItem(Console.message("Proxy-Server"), "Options");
|
|
- this.checkAccountItem = this.addMenuItem(Console.message("Account-Info"), "Options");
|
|
- if (var2) {
|
|
- this.statisticsItem = this.addMenuItem(Console.message("Display-Stat"), "Options");
|
|
- }
|
|
-
|
|
- this.upgradeItem = this.addMenuItem(Console.message("Upgrade-Now"), "Options");
|
|
- if (var2) {
|
|
- this.channelItem = this.addMenuItem(Console.message("Dimension-Sel"), "Options");
|
|
- }
|
|
-
|
|
- this.serverItem = this.addMenuItem(signIn, "Options");
|
|
- this.setOnlineState(this.galaxy.getOnlineEnabled(), this.galaxy.getOnline());
|
|
- Menu var27;
|
|
- if (IniFile.gamma().getIniInt("recorderEnabled", 1) == 1) {
|
|
- var27 = new Menu(Console.message("Recorder"));
|
|
- this.addMenuItem(var27, "Options");
|
|
- this.recorderRecItem = new MenuItem(Console.message("Record"));
|
|
- var27.add(this.recorderRecItem);
|
|
- this.recorderStopItem = new MenuItem(Console.message("Stop"));
|
|
- var27.add(this.recorderStopItem);
|
|
- this.recorderPlayItem = new MenuItem(Console.message("Play"));
|
|
- var27.add(this.recorderPlayItem);
|
|
- }
|
|
-
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- var27 = new Menu(Console.message("Languages"));
|
|
- this.addMenuItem(var27, "Options");
|
|
- Menu var29 = new Menu(Console.message("Download-Font"));
|
|
- var27.add(var29);
|
|
- var29.setFont(mfont);
|
|
- this.fontItems = new Vector();
|
|
-
|
|
- for(int var30 = 0; var30 < this.fLength; ++var30) {
|
|
- if (this.flList.elementAt(var30) != null) {
|
|
- String var12;
|
|
- if (this.fsList.elementAt(var30) != null) {
|
|
- this.newfLocale[var30] = new Locale((String)this.flList.elementAt(var30), (String)this.fsList.elementAt(var30));
|
|
- var12 = (String)this.flList.elementAt(var30) + "_" + (String)this.fsList.elementAt(var30);
|
|
- if (var12.equals(Console.message(var12))) {
|
|
- this.dFonts[var30] = new MenuItem(this.newfLocale[var30].getDisplayName());
|
|
- } else {
|
|
- this.dFonts[var30] = new MenuItem(Console.message(var12));
|
|
- }
|
|
- } else {
|
|
- var12 = (String)this.flList.elementAt(var30);
|
|
- if (var12.equals(Console.message(var12))) {
|
|
- this.dFonts[var30] = new MenuItem((String)this.flList.elementAt(var30));
|
|
- } else {
|
|
- this.dFonts[var30] = new MenuItem(Console.message(var12));
|
|
- }
|
|
- }
|
|
-
|
|
- this.dFonts[var30].setFont(mfont);
|
|
- var29.add(this.dFonts[var30]);
|
|
- this.fontItems.addElement(this.dFonts[var30]);
|
|
- }
|
|
- }
|
|
-
|
|
- Menu var31 = new Menu(Console.message("Download-Language"));
|
|
- var27.add(var31);
|
|
- var31.setFont(mfont);
|
|
- this.downItems = new Vector();
|
|
- String[] var32 = new String[this.dLength];
|
|
-
|
|
- String var17;
|
|
- for(int var13 = 0; var13 < this.dLength; ++var13) {
|
|
- if (this.lList.elementAt(var13) != null) {
|
|
- this.newdLocale[var13] = new Locale((String)this.lList.elementAt(var13), (String)this.sList.elementAt(var13));
|
|
- String var15;
|
|
- if (var13 > 0) {
|
|
- Locale var18 = new Locale((String)this.lList.elementAt(var13 - 1), (String)this.sList.elementAt(var13 - 1));
|
|
- var15 = var18.getDisplayName();
|
|
- } else {
|
|
- var15 = this.newdLocale[var13].getDisplayName();
|
|
- }
|
|
-
|
|
- String var16 = this.newdLocale[var13].getDisplayName();
|
|
- var16 = var16.substring(0, var16.indexOf(40) - 1);
|
|
- String var14;
|
|
- if (var13 < this.dLength - 1) {
|
|
- Locale var20 = new Locale((String)this.lList.elementAt(var13 + 1), (String)this.sList.elementAt(var13 + 1));
|
|
- var17 = var20.getDisplayName();
|
|
- var17 = var17.substring(0, var17.indexOf(40) - 1);
|
|
- if (var17.equals(var16)) {
|
|
- var14 = this.newdLocale[var13].getDisplayName();
|
|
- } else {
|
|
- var14 = var16;
|
|
- }
|
|
- } else if (var13 == this.dLength - 1) {
|
|
- var15 = var15.substring(0, var15.indexOf(40) - 1);
|
|
- if (var16.equals(var15)) {
|
|
- var14 = this.newdLocale[var13].getDisplayName();
|
|
- } else {
|
|
- var14 = var16;
|
|
- }
|
|
- } else if (var32[var13 - 1].equals(var16)) {
|
|
- var14 = this.newdLocale[var13].getDisplayName();
|
|
- } else {
|
|
- var14 = var16;
|
|
- }
|
|
-
|
|
- String var21 = (String)this.lList.elementAt(var13) + "_" + (String)this.sList.elementAt(var13);
|
|
- if (var21.equals(Console.message(var21))) {
|
|
- var32[var13] = var14;
|
|
- } else {
|
|
- var32[var13] = Console.message(var21);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- Collator var33 = Collator.getInstance();
|
|
- sortStrings(var33, var32, this.newdLocale, this.lList, this.sList);
|
|
-
|
|
- for(int var34 = 0; var34 < this.dLength; ++var34) {
|
|
- this.dLangs[var34] = new MenuItem(var32[var34]);
|
|
- this.dLangs[var34].setFont(mfont);
|
|
- var31.add(this.dLangs[var34]);
|
|
- this.downItems.addElement(this.dLangs[var34]);
|
|
- }
|
|
-
|
|
- Menu var37 = new Menu(Console.message("Switch-Language"));
|
|
- var27.add(var37);
|
|
- var37.setFont(mfont);
|
|
- this.langItems = new Vector();
|
|
-
|
|
- int var36;
|
|
- for(int var35 = 0; var35 < lLength; ++var35) {
|
|
- var36 = lNames[var35].indexOf(95);
|
|
- if (var36 < 0) {
|
|
- lCodes[var35][0] = "en";
|
|
- lCodes[var35][1] = "US";
|
|
+ public String message(String var1, Locale var2) {
|
|
+ Locale.setDefault(var2);
|
|
+ Console.println(var2.getDisplayName());
|
|
+
|
|
+ try {
|
|
+ ResourceBundle var3 = ResourceBundle.getBundle("MessagesBundle", var2);
|
|
+ return var3.getString(var1);
|
|
+ } catch (MissingResourceException var4) {
|
|
+ return "NO MESSAGE for " + var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void init() {
|
|
+ this.addPart(this.render);
|
|
+ this.addPart(this.chat);
|
|
+ this.addPart(this.inventory);
|
|
+ this.addPart(this.marks);
|
|
+ this.addPart(this.friends);
|
|
+ this.addPart(this.actions);
|
|
+ this.addPart(this.mutes);
|
|
+ this.addPart(this.tars);
|
|
+ this.addPart(this.ad);
|
|
+ this.addPart(this.map);
|
|
+ this.addPart(this.savedAvs);
|
|
+ Panel var1 = new Panel(new FlowLayout(1, 0, 0));
|
|
+ String var2 = Themer.themer.asset("drive.gif");
|
|
+ this.addPart(this.driveButton = new ImageButtons(var2, 81, 19, this));
|
|
+ String var3 = Themer.themer.asset(Console.message("quit.gif"));
|
|
+ this.addPart(this.quitButton = new ImageButtons(var3, 65, 19, this));
|
|
+ String var4 = Themer.themer.asset(Console.message("explore.gif"));
|
|
+ this.addPart(this.exploreButton = new ImageButtons(var4, 98, 22, this));
|
|
+ var1.add(this.driveButton);
|
|
+ this.driveButton.setDownUpHandler(new ImageButtonsCallback() {
|
|
+ public Object imageButtonsCallback(Component var1, int var2) {
|
|
+ if (var2 != -1) {
|
|
+ DefaultConsole.this.startDrive();
|
|
+ } else {
|
|
+ DefaultConsole.this.driveButton.drawDown();
|
|
+ }
|
|
+
|
|
+ return this;
|
|
+ }
|
|
+ });
|
|
+ Panel var5 = new Panel();
|
|
+ var5.setLayout(new GridLayout(1, 3));
|
|
+ int var6 = Themer.override().getIniInt("uiBackgroundRed", 49);
|
|
+ int var7 = Themer.override().getIniInt("uiBackgroundGreen", 0);
|
|
+ int var8 = Themer.override().getIniInt("uiBackgroundBlue", 255);
|
|
+ var5.setBackground(new Color(var6, var7, var8));
|
|
+ var5.add(this.yourName);
|
|
+ var5.add(var1);
|
|
+ var5.add(this.status);
|
|
+ this.chat.line.setBackground(Color.black);
|
|
+ this.chat.line.setForeground(Color.white);
|
|
+ this.chat.line.setFont(font);
|
|
+ InsetPanel var9 = new InsetPanel(new BorderLayout(0, 3), 0, 0, 3, 0);
|
|
+ var9.add("North", var5);
|
|
+ var9.add("Center", this.chat.listen.getComponent());
|
|
+ var9.add("South", this.chat.line);
|
|
+ this.chat.listen.setBackground(Color.black);
|
|
+ this.chat.listen.setForeground(Color.white);
|
|
+ this.chat.listen.setFont(font);
|
|
+ Panel var10 = new Panel(new BorderLayout());
|
|
+ new Panel(new BorderLayout());
|
|
+ Panel var12 = new Panel(new BorderLayout());
|
|
+ Panel var13 = new Panel(new BorderLayout());
|
|
+ ColorFiller var14 = new ColorFiller(65, 19);
|
|
+ var14.setBackground(new Color(var6, var7, var8));
|
|
+ var12.add("West", this.quitButton);
|
|
+ var12.add("East", var14);
|
|
+ var13.add("North", var12);
|
|
+ var13.add("Center", this.ad);
|
|
+ var10.add("West", var13);
|
|
+ this.mapPanel = new Panel(new BorderLayout());
|
|
+ this.mapPanel.add("Center", this.map);
|
|
+ this.mapPanel.setBackground(Color.black);
|
|
+ var12 = new Panel(new BorderLayout());
|
|
+ ColorFiller var15 = new ColorFiller(60, 19);
|
|
+ var15.setBackground(new Color(var6, var7, var8));
|
|
+ var12.add("North", var15);
|
|
+ ColorFiller var16 = new ColorFiller(60, 3);
|
|
+ int var17 = Themer.override().getIniInt("uiBackground2Red", 0);
|
|
+ int var18 = Themer.override().getIniInt("uiBackground2Green", 0);
|
|
+ int var19 = Themer.override().getIniInt("uiBackground2Blue", 0);
|
|
+ var16.setBackground(new Color(var17, var18, var19));
|
|
+ var12.add("South", var16);
|
|
+ Panel var11 = new Panel(new BorderLayout());
|
|
+ var11.add("East", this.exploreButton);
|
|
+ var11.add("West", var12);
|
|
+ this.mapPanel.add("North", var11);
|
|
+ var10.add("East", this.mapPanel);
|
|
+ var10.add("Center", var9);
|
|
+ this.bottom = var10;
|
|
+ this.renderCard = new CardLayout();
|
|
+ this.renderAndUniverse = new Panel(this.renderCard);
|
|
+ this.renderAndUniverse.add("render", this.render);
|
|
+ InsetPanel var20 = new InsetPanel(new BorderLayout(), 3, 3, 0, 0);
|
|
+ var20.add("Center", this.renderAndUniverse);
|
|
+ int var21 = Themer.override().getIniInt("uiBackground3Red", 0);
|
|
+ int var22 = Themer.override().getIniInt("uiBackground3Green", 0);
|
|
+ int var23 = Themer.override().getIniInt("uiBackground3Blue", 0);
|
|
+ var14 = new ColorFiller(97, 1);
|
|
+ var14.setBackground(new Color(var21, var22, var23));
|
|
+ Panel var24 = new Panel(new QuantizedStackedLayout(var14));
|
|
+ String var25 = Themer.themer.asset(Console.message("rtpanel.gif"));
|
|
+ this.addPart(this.menuButtons = new ImageButtons(var25, 97, menuButtonHeights, this));
|
|
+ var24.add(var14);
|
|
+ var24.add(this.menuButtons);
|
|
+ var24.add(this.friends);
|
|
+ var20.add("East", var24);
|
|
+ this.top = var20;
|
|
+ }
|
|
+
|
|
+ public void relayoutMap() {
|
|
+ this.mapPanel.invalidate();
|
|
+ this.mapPanel.validate();
|
|
+ this.mapPanel.doLayout();
|
|
+ this.mapPanel.repaint();
|
|
+ }
|
|
+
|
|
+ public void startDrive() {
|
|
+ this.statusMessage = Console.message("Drag-mouse");
|
|
+ doDrive = true;
|
|
+ Window.makeJavaReleaseCapture();
|
|
+ }
|
|
+
|
|
+ public void setOnlineState(boolean var1, boolean var2) {
|
|
+ synchronized(this) {
|
|
+ if (this.serverItem != null) {
|
|
+ this.serverItem.setEnabled(var1);
|
|
+ if (!var1) {
|
|
+ Galaxy var4 = this.getGalaxy();
|
|
+ if (var4 != null && !var4.isAnonymous()) {
|
|
+ this.serverItem.setLabel(signingIn);
|
|
+ } else {
|
|
+ this.serverItem.setLabel(noMultiUser);
|
|
+ }
|
|
+ } else if (var2) {
|
|
+ this.serverItem.setLabel(signOut);
|
|
+ } else {
|
|
+ this.serverItem.setLabel(signIn);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleNametagsItem() {
|
|
+ if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 0) {
|
|
+ IniFile.gamma().setIniInt("SHOWNAMETAGS", 1);
|
|
+ this.nametagItem.setLabel(hideTags);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("SHOWNAMETAGS", 0);
|
|
+ this.nametagItem.setLabel(showTags);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ private void handleGraphicsItem() {
|
|
+ if (IniFile.gamma().getIniInt("UserEnabled3DHardware", 0) == 0) {
|
|
+ IniFile.gamma().setIniInt("UserEnabled3DHardware", 1);
|
|
+ this.graphicsItem.setLabel(disable3D);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("UserEnabled3DHardware", 0);
|
|
+ this.graphicsItem.setLabel(enable3D);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ private void handleChatBoxItem() {
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 0) {
|
|
+ IniFile.gamma().setIniInt("classicChatBox", 1);
|
|
+ this.chatBoxItem.setLabel(disableClassicChat);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("classicChatBox", 0);
|
|
+ this.chatBoxItem.setLabel(enableClassicChat);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ public AvMenu getAvatarMenu() {
|
|
+ return this.avatarMenu;
|
|
+ }
|
|
+
|
|
+ public void inventoryChanged() {
|
|
+ super.inventoryChanged();
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.buildSpecialGuestMenu();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setMenusWRTVIP() {
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.setEnabled(this.getVIP());
|
|
+ this.avatarMenu.customize.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.savedAvs != null) {
|
|
+ this.savedAvs.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.chatLogMenu != null) {
|
|
+ this.chatLogMenu.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.toggleVoiceChatItem != null) {
|
|
+ this.toggleVoiceChatItem.setLabel(this.getVIP() && VoiceChat.voiceChatEnabled ? Console.message("Reject-Voice") : Console.message("Accept-Voice"));
|
|
+ this.toggleVoiceChatItem.setEnabled(this.getVIP() && VoiceChat.voiceChatAvailable());
|
|
+ }
|
|
+
|
|
+ if (this.becomeVIPItem != null) {
|
|
+ this.becomeVIPItem.setLabel(vip > 0 ? (vip > 1 ? Console.message("Youre-a-VIP") : Console.message("Become-full-VIP")) : Console.message("Become-VIP"));
|
|
+ }
|
|
+
|
|
+ if (this.numVisItem != null) {
|
|
+ this.numVisItem.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void addBroadcastMenu() {
|
|
+ if (this.bootSomeone == null) {
|
|
+ if (IniFile.gamma().getIniInt("Broadcast", 0) != 0) {
|
|
+ Menu var1 = new Menu(Console.message("Broadcast"));
|
|
+ var1.add(this.broadcastToRoom = new MenuItem(Console.message("Users")));
|
|
+ var1.add(this.broadcastToAll = new MenuItem(Console.message("All-users")));
|
|
+ this.addMenuItem(var1, "Options");
|
|
+ }
|
|
+
|
|
+ this.bootSomeone = new MenuItem(Console.message("Boot-user"));
|
|
+ this.addMenuItem(this.bootSomeone, "Options");
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private Menu updateChatLogMenu() {
|
|
+ if (this.chatLogMenu == null) {
|
|
+ this.chatLogMenu = new Menu(Console.message("View-Chat"));
|
|
+ } else {
|
|
+ this.chatLogMenu.removeAll();
|
|
+ }
|
|
+
|
|
+ ActionListener var1 = new ActionListener() {
|
|
+ public void actionPerformed(ActionEvent var1) {
|
|
+ (new SendURLAction("file:" + var1.getActionCommand())).startBrowser();
|
|
+ }
|
|
+ };
|
|
+ String[] var2 = this.logList();
|
|
+ MenuItem var3 = null;
|
|
+
|
|
+ for(int var4 = 0; var4 < var2.length; ++var4) {
|
|
+ int var5 = var2[var4].indexOf(".glog.html");
|
|
+ if (var5 > 6) {
|
|
+ Object[] var6 = new Object[]{new String(var2[var4].substring(5, var5))};
|
|
+ var3 = new MenuItem(MessageFormat.format(Console.message("Chat-with"), var6));
|
|
} else {
|
|
- int var39 = lNames[var35].lastIndexOf(46);
|
|
- if (var39 < 0) {
|
|
- var39 = 0;
|
|
- }
|
|
-
|
|
- lCodes[var35][0] = lNames[var35].substring(var36 + 1, var36 + 3);
|
|
- if (var39 > var36 + 4) {
|
|
- lCodes[var35][1] = lNames[var35].substring(var36 + 4, var39);
|
|
- } else {
|
|
- lCodes[var35][1] = lCodes[var35][0].toUpperCase();
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- String[] var38 = new String[lLength];
|
|
-
|
|
- for(var36 = 0; var36 < lLength; ++var36) {
|
|
- newLocale[var36] = new Locale(lCodes[var36][0], lCodes[var36][1]);
|
|
- String var40;
|
|
- if (var36 > 0) {
|
|
- Locale var42 = new Locale(lCodes[var36 - 1][0], lCodes[var36 - 1][1]);
|
|
- var40 = var42.getDisplayName();
|
|
+ if (var5 <= 0) {
|
|
+ continue;
|
|
+ }
|
|
+
|
|
+ var3 = new MenuItem(Console.message("General-chat"));
|
|
+ }
|
|
+
|
|
+ var3.setActionCommand(var2[var4]);
|
|
+ var3.addActionListener(var1);
|
|
+ this.chatLogMenu.add(var3);
|
|
+ }
|
|
+
|
|
+ return this.chatLogMenu;
|
|
+ }
|
|
+
|
|
+ private String[] logList() {
|
|
+ File var1 = new File(".");
|
|
+ FilenameFilter var2 = new FilenameFilter() {
|
|
+ public boolean accept(File var1, String var2) {
|
|
+ return var2.startsWith("chat.") && var2.endsWith(".glog.html");
|
|
+ }
|
|
+ };
|
|
+ return var1.list(var2);
|
|
+ }
|
|
+
|
|
+ private static String[] lpList() {
|
|
+ File var0 = new File(".");
|
|
+ FilenameFilter var1 = new FilenameFilter() {
|
|
+ public boolean accept(File var1, String var2) {
|
|
+ return var2.startsWith("MessagesBundle") && var2.endsWith(".properties");
|
|
+ }
|
|
+ };
|
|
+ String[] var2 = var0.list(var1);
|
|
+ Collator var3 = Collator.getInstance();
|
|
+ sortStrings(var3, var2);
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ private int dpList(Vector var1, Vector var2, int[] var3) {
|
|
+ String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "languages.lst"), var1, var2, var3);
|
|
+ if (var4 != null) {
|
|
+ System.out.println(var4);
|
|
+ return 0;
|
|
+ } else {
|
|
+ return var1.size();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private int fpList(Vector var1, Vector var2, int[] var3) {
|
|
+ String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "fonts.lst"), var1, var2, var3);
|
|
+ if (var4 != null) {
|
|
+ System.out.println(var4);
|
|
+ return 0;
|
|
+ } else {
|
|
+ return var1.size();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1, Locale[] var2, String[][] var3) {
|
|
+ for(int var8 = 0; var8 < var1.length; ++var8) {
|
|
+ for(int var9 = var8 + 1; var9 < var1.length; ++var9) {
|
|
+ if (var0.compare(var1[var8], var1[var9]) > 0) {
|
|
+ String var4 = var1[var8];
|
|
+ Locale var5 = var2[var8];
|
|
+ String var6 = var3[var8][0];
|
|
+ String var7 = var3[var8][1];
|
|
+ var1[var8] = var1[var9];
|
|
+ var2[var8] = var2[var9];
|
|
+ var3[var8][0] = var3[var9][0];
|
|
+ var3[var8][1] = var3[var9][1];
|
|
+ var1[var9] = var4;
|
|
+ var2[var9] = var5;
|
|
+ var3[var9][0] = var6;
|
|
+ var3[var9][1] = var7;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1, Locale[] var2, Vector var3, Vector var4) {
|
|
+ for(int var9 = 0; var9 < var1.length; ++var9) {
|
|
+ for(int var10 = var9 + 1; var10 < var1.length; ++var10) {
|
|
+ if (var0.compare(var1[var9], var1[var10]) > 0) {
|
|
+ String var5 = var1[var9];
|
|
+ Locale var6 = var2[var9];
|
|
+ String var7 = (String)var3.elementAt(var9);
|
|
+ String var8 = (String)var4.elementAt(var9);
|
|
+ var1[var9] = var1[var10];
|
|
+ var2[var9] = var2[var10];
|
|
+ var3.setElementAt(var3.elementAt(var10), var9);
|
|
+ var4.setElementAt(var4.elementAt(var10), var9);
|
|
+ var1[var10] = var5;
|
|
+ var2[var10] = var6;
|
|
+ var3.setElementAt(var7, var10);
|
|
+ var4.setElementAt(var8, var10);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1) {
|
|
+ for(int var3 = 0; var3 < var1.length; ++var3) {
|
|
+ for(int var4 = var3 + 1; var4 < var1.length; ++var4) {
|
|
+ if (var0.compare(var1[var3], var1[var4]) > 0) {
|
|
+ String var2 = var1[var3];
|
|
+ var1[var3] = var1[var4];
|
|
+ var1[var4] = var2;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void activate(Container var1) {
|
|
+ super.activate(var1);
|
|
+ var1.setBackground(Color.black);
|
|
+ var1.setForeground(Color.white);
|
|
+ var1.setLayout(new BorderLayout());
|
|
+ var1.add("Center", this.top);
|
|
+ var1.add("South", this.bottom);
|
|
+ this.chat.line.setBackground(Color.white);
|
|
+ this.chat.line.setForeground(Color.black);
|
|
+ boolean var2 = Gamma.getShaper() != null;
|
|
+ if (var2) {
|
|
+ this.shaperHelpItem = this.addMenuItem(Console.message("using-shaper"), "Help");
|
|
+ }
|
|
+
|
|
+ if (NetUpdate.getInfoURL() != null) {
|
|
+ this.helpItem = this.addMenuItem(Console.message("Help-Contents"), "Help");
|
|
+ this.infoItem = this.addMenuItem(Console.message("Latest-info"), "Help");
|
|
+ }
|
|
+
|
|
+ Object[] var3 = new Object[]{new String(Std.getProductName())};
|
|
+ this.aboutItem = this.addMenuItem(MessageFormat.format(Console.message("About-product"), var3), "Help");
|
|
+ int var4 = IniFile.gamma().getIniInt("CAM_MODE", 7);
|
|
+ int var5 = IniFile.gamma().getIniInt("CAM_SPEED", 4);
|
|
+
|
|
+ this.pilot.setOutsideCameraMode(var4, var5);
|
|
+ Menu var6 = new Menu(Console.message("Change-View"));
|
|
+ this.addMenuItem(var6, "View");
|
|
+ MenuItem var7 = new MenuItem(Console.message("CAMERA-VIEW"));
|
|
+ var7.setFont(mfont);
|
|
+ var6.add(var7);
|
|
+ this.viewItems = new Vector();
|
|
+
|
|
+ for(int var8 = 0; var8 < this.viewNames.size(); ++var8) {
|
|
+ DefaultConsole.CameraView var9 = (DefaultConsole.CameraView)this.viewNames.elementAt(var8);
|
|
+ CheckboxMenuItem var10 = new CheckboxMenuItem(" " + Console.message(var9.viewName), var4 == var9.viewID);
|
|
+ if (var4 == var9.viewID) {
|
|
+ this.currentViewItem = var10;
|
|
+ }
|
|
+
|
|
+ var10.setFont(mfont);
|
|
+ var6.add(var10);
|
|
+ this.viewItems.addElement(var10);
|
|
+ }
|
|
+
|
|
+ var6.addSeparator();
|
|
+ MenuItem var25 = new MenuItem(Console.message("CAMERA-SPEED"));
|
|
+ var25.setFont(mfont);
|
|
+ var6.add(var25);
|
|
+ this.camSpeedItems = new Vector();
|
|
+
|
|
+ for(int var26 = 0; var26 < this.speedNames.size(); ++var26) {
|
|
+ DefaultConsole.CameraSpeed var28 = (DefaultConsole.CameraSpeed)this.speedNames.elementAt(var26);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.speedName), var28.speedID == var5);
|
|
+ if (var28.speedID == var5) {
|
|
+ this.currentCamSpeedItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ var6.add(var11);
|
|
+ this.camSpeedItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ Menu privacyMenu = new Menu(Console.message("privacy-settings"));
|
|
+ this.addMenuItem(privacyMenu, "Options");
|
|
+ int whisperP = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ int teleportP = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ int whisperShow = IniFile.modPrivacy().getIniInt("WhisperFeedback", 1);
|
|
+ int teleportShow = IniFile.modPrivacy().getIniInt("TeleportFeedback", 0);
|
|
+ int whisperSend = IniFile.modPrivacy().getIniInt("WhisperResponse", 1);
|
|
+ int teleportSend = IniFile.modPrivacy().getIniInt("TeleportResponse", 0);
|
|
+
|
|
+ Menu whisperMenu = new Menu(Console.message("whisper-settings"));
|
|
+ MenuItem whMenu = new MenuItem(Console.message("WHISPER-SETTINGS"));
|
|
+ whisperMenu.setFont(mfont);
|
|
+ whisperMenu.add(whMenu);
|
|
+ this.whisperItems = new Vector();
|
|
+ privacyMenu.add(whisperMenu);
|
|
+
|
|
+ for(int wi = 0; wi < this.whisperNames.size(); ++wi) {
|
|
+ DefaultConsole.WhisperPrivacy var28 = (DefaultConsole.WhisperPrivacy)this.whisperNames.elementAt(wi);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.whisperName), var28.whisperID == whisperP);
|
|
+ if (var28.whisperID == whisperP) {
|
|
+ this.currentWhisperItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ whisperMenu.add(var11);
|
|
+ this.whisperItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ whisperMenu.addSeparator();
|
|
+ this.showWhispers = new CheckboxMenuItem(Console.message("reject-menu"), whisperShow == 1);
|
|
+ this.respondWhispers = new CheckboxMenuItem(Console.message("response-menu"), whisperSend == 1);
|
|
+ whisperMenu.add(this.showWhispers);
|
|
+ whisperMenu.add(respondWhispers);
|
|
+
|
|
+ Menu teleportMenu = new Menu(Console.message("teleport-settings"));
|
|
+ MenuItem tpMenu = new MenuItem(Console.message("TELEPORT-SETTINGS"));
|
|
+ teleportMenu.setFont(mfont);
|
|
+ teleportMenu.add(tpMenu);
|
|
+ this.teleportItems = new Vector();
|
|
+ privacyMenu.add(teleportMenu);
|
|
+
|
|
+ for(int ti = 0; ti < this.teleportNames.size(); ++ti) {
|
|
+ DefaultConsole.TeleportPrivacy var28 = (DefaultConsole.TeleportPrivacy)this.teleportNames.elementAt(ti);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.teleportName), var28.teleportID == teleportP);
|
|
+ if (var28.teleportID == teleportP) {
|
|
+ this.currentTeleportItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ teleportMenu.add(var11);
|
|
+ this.teleportItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ teleportMenu.addSeparator();
|
|
+ this.showTeleports = new CheckboxMenuItem(Console.message("reject-menu"), teleportShow == 1);
|
|
+ this.respondTeleports = new CheckboxMenuItem(Console.message("response-menu"), teleportSend == 1);
|
|
+ teleportMenu.add(this.showTeleports);
|
|
+ teleportMenu.add(respondTeleports);
|
|
+
|
|
+
|
|
+ this.becomeVIPItem = this.addMenuItem(vip == 1 ? Console.message("Become-full-VIP") : Console.message("Become-VIP"), "VIP");
|
|
+ this.addMenuItem(this.avatarMenu = new AvMenu(this, this.lastPilotRequested), "VIP");
|
|
+ this.addMenuItem(this.savedAvs, "VIP");
|
|
+ this.addMenuItem(this.avatarMenu.customize, "VIP");
|
|
+ this.toggleVoiceChatItem = this.addMenuItem(Console.message("Enable-Voice"), "VIP");
|
|
+ this.toggleVoiceChatItem.setEnabled(false);
|
|
+ this.numVisItem = this.addMenuItem(Console.message("Num-Visible"), "VIP");
|
|
+ this.chatLogMenu = new Menu("Chat Log");
|
|
+ if (NetUpdate.isInternalVersion()) {
|
|
+ this.inventoryItem = this.addMenuItem("Check Inventory", "VIP");
|
|
+ }
|
|
+
|
|
+ this.setMenusWRTVIP();
|
|
+ this.proxyServerItem = this.addMenuItem(Console.message("Proxy-Server"), "Options");
|
|
+ this.checkAccountItem = this.addMenuItem(Console.message("Account-Info"), "Options");
|
|
+ if (var2) {
|
|
+ this.statisticsItem = this.addMenuItem(Console.message("Display-Stat"), "Options");
|
|
+ }
|
|
+
|
|
+ this.upgradeItem = this.addMenuItem(Console.message("Upgrade-Now"), "Options");
|
|
+ if (var2) {
|
|
+ this.channelItem = this.addMenuItem(Console.message("Dimension-Sel"), "Options");
|
|
+ }
|
|
+
|
|
+ this.serverItem = this.addMenuItem(signIn, "Options");
|
|
+ this.setOnlineState(this.galaxy.getOnlineEnabled(), this.galaxy.getOnline());
|
|
+ Menu var27;
|
|
+ if (IniFile.gamma().getIniInt("recorderEnabled", 1) == 1) {
|
|
+ var27 = new Menu(Console.message("Recorder"));
|
|
+ this.recorderRecItem = new MenuItem(Console.message("Record"));
|
|
+ var27.add(this.recorderRecItem);
|
|
+ this.recorderStopItem = new MenuItem(Console.message("Stop"));
|
|
+ var27.add(this.recorderStopItem);
|
|
+ this.recorderPlayItem = new MenuItem(Console.message("Play"));
|
|
+ var27.add(this.recorderPlayItem);
|
|
+ }
|
|
+
|
|
+ if (NetUpdate.isInternalVersion()) {
|
|
+ var27 = new Menu(Console.message("Languages"));
|
|
+ this.addMenuItem(var27, "Options");
|
|
+ Menu var29 = new Menu(Console.message("Download-Font"));
|
|
+ var27.add(var29);
|
|
+ var29.setFont(mfont);
|
|
+ this.fontItems = new Vector();
|
|
+
|
|
+ for(int var30 = 0; var30 < this.fLength; ++var30) {
|
|
+ if (this.flList.elementAt(var30) != null) {
|
|
+ String var12;
|
|
+ if (this.fsList.elementAt(var30) != null) {
|
|
+ this.newfLocale[var30] = new Locale((String)this.flList.elementAt(var30), (String)this.fsList.elementAt(var30));
|
|
+ var12 = (String)this.flList.elementAt(var30) + "_" + (String)this.fsList.elementAt(var30);
|
|
+ if (var12.equals(Console.message(var12))) {
|
|
+ this.dFonts[var30] = new MenuItem(this.newfLocale[var30].getDisplayName());
|
|
+ } else {
|
|
+ this.dFonts[var30] = new MenuItem(Console.message(var12));
|
|
+ }
|
|
+ } else {
|
|
+ var12 = (String)this.flList.elementAt(var30);
|
|
+ if (var12.equals(Console.message(var12))) {
|
|
+ this.dFonts[var30] = new MenuItem((String)this.flList.elementAt(var30));
|
|
+ } else {
|
|
+ this.dFonts[var30] = new MenuItem(Console.message(var12));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.dFonts[var30].setFont(mfont);
|
|
+ var29.add(this.dFonts[var30]);
|
|
+ this.fontItems.addElement(this.dFonts[var30]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Menu var31 = new Menu(Console.message("Download-Language"));
|
|
+ var27.add(var31);
|
|
+ var31.setFont(mfont);
|
|
+ this.downItems = new Vector();
|
|
+ String[] var32 = new String[this.dLength];
|
|
+
|
|
+ String var17;
|
|
+ for(int var13 = 0; var13 < this.dLength; ++var13) {
|
|
+ if (this.lList.elementAt(var13) != null) {
|
|
+ this.newdLocale[var13] = new Locale((String)this.lList.elementAt(var13), (String)this.sList.elementAt(var13));
|
|
+ String var15;
|
|
+ if (var13 > 0) {
|
|
+ Locale var18 = new Locale((String)this.lList.elementAt(var13 - 1), (String)this.sList.elementAt(var13 - 1));
|
|
+ var15 = var18.getDisplayName();
|
|
+ } else {
|
|
+ var15 = this.newdLocale[var13].getDisplayName();
|
|
+ }
|
|
+
|
|
+ String var16 = this.newdLocale[var13].getDisplayName();
|
|
+ var16 = var16.substring(0, var16.indexOf(40) - 1);
|
|
+ String var14;
|
|
+ if (var13 < this.dLength - 1) {
|
|
+ Locale var20 = new Locale((String)this.lList.elementAt(var13 + 1), (String)this.sList.elementAt(var13 + 1));
|
|
+ var17 = var20.getDisplayName();
|
|
+ var17 = var17.substring(0, var17.indexOf(40) - 1);
|
|
+ if (var17.equals(var16)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+ } else if (var13 == this.dLength - 1) {
|
|
+ var15 = var15.substring(0, var15.indexOf(40) - 1);
|
|
+ if (var16.equals(var15)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+ } else if (var32[var13 - 1].equals(var16)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+
|
|
+ String var21 = (String)this.lList.elementAt(var13) + "_" + (String)this.sList.elementAt(var13);
|
|
+ if (var21.equals(Console.message(var21))) {
|
|
+ var32[var13] = var14;
|
|
+ } else {
|
|
+ var32[var13] = Console.message(var21);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Collator var33 = Collator.getInstance();
|
|
+ sortStrings(var33, var32, this.newdLocale, this.lList, this.sList);
|
|
+
|
|
+ for(int var34 = 0; var34 < this.dLength; ++var34) {
|
|
+ this.dLangs[var34] = new MenuItem(var32[var34]);
|
|
+ this.dLangs[var34].setFont(mfont);
|
|
+ var31.add(this.dLangs[var34]);
|
|
+ this.downItems.addElement(this.dLangs[var34]);
|
|
+ }
|
|
+
|
|
+ Menu var37 = new Menu(Console.message("Switch-Language"));
|
|
+ var27.add(var37);
|
|
+ var37.setFont(mfont);
|
|
+ this.langItems = new Vector();
|
|
+
|
|
+ int var36;
|
|
+ for(int var35 = 0; var35 < lLength; ++var35) {
|
|
+ var36 = lNames[var35].indexOf(95);
|
|
+ if (var36 < 0) {
|
|
+ lCodes[var35][0] = "en";
|
|
+ lCodes[var35][1] = "US";
|
|
+ } else {
|
|
+ int var39 = lNames[var35].lastIndexOf(46);
|
|
+ if (var39 < 0) {
|
|
+ var39 = 0;
|
|
+ }
|
|
+
|
|
+ lCodes[var35][0] = lNames[var35].substring(var36 + 1, var36 + 3);
|
|
+ if (var39 > var36 + 4) {
|
|
+ lCodes[var35][1] = lNames[var35].substring(var36 + 4, var39);
|
|
+ } else {
|
|
+ lCodes[var35][1] = lCodes[var35][0].toUpperCase();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ String[] var38 = new String[lLength];
|
|
+
|
|
+ for(var36 = 0; var36 < lLength; ++var36) {
|
|
+ newLocale[var36] = new Locale(lCodes[var36][0], lCodes[var36][1]);
|
|
+ String var40;
|
|
+ if (var36 > 0) {
|
|
+ Locale var42 = new Locale(lCodes[var36 - 1][0], lCodes[var36 - 1][1]);
|
|
+ var40 = var42.getDisplayName();
|
|
+ } else {
|
|
+ var40 = newLocale[var36].getDisplayName();
|
|
+ }
|
|
+
|
|
+ String var19 = newLocale[var36].getDisplayName();
|
|
+ var19 = var19.substring(0, var19.indexOf(40) - 1);
|
|
+ if (var36 < lLength - 1) {
|
|
+ Locale var23 = new Locale(lCodes[var36 + 1][0], lCodes[var36 + 1][1]);
|
|
+ String var41 = var23.getDisplayName();
|
|
+ var41 = var41.substring(0, var41.indexOf(40) - 1);
|
|
+ if (var41.equals(var19)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+ } else if (var36 == lLength - 1) {
|
|
+ var40 = var40.substring(0, var40.indexOf(40) - 1);
|
|
+ if (var19.equals(var40)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+ } else if (var38[var36 - 1].equals(var19)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+
|
|
+ String var24 = lCodes[var36][0] + "_" + lCodes[var36][1];
|
|
+ if (var24.equals(Console.message(var24))) {
|
|
+ var38[var36] = var17;
|
|
+ } else {
|
|
+ var38[var36] = Console.message(var24);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ sortStrings(var33, var38, newLocale, lCodes);
|
|
+
|
|
+ for(var36 = 0; var36 < lLength; ++var36) {
|
|
+ lLangs[var36] = new MenuItem(var38[var36]);
|
|
+ lLangs[var36].setFont(mfont);
|
|
+ var37.add(lLangs[var36]);
|
|
+ this.langItems.addElement(lLangs[var36]);
|
|
+ }
|
|
+
|
|
+ this.currentLang = new MenuItem(Console.message("Current-Language"));
|
|
+ var27.add(this.currentLang);
|
|
+ this.currentLang.setFont(mfont);
|
|
+ }
|
|
+
|
|
+ if (var2) {
|
|
+ this.condenseItem = this.addMenuItem(Console.message("Condense-Files"), "Options");
|
|
+ this.expandItem = this.addMenuItem(Console.message("Expand-Files"), "Options");
|
|
+ this.musicManItem = this.addMenuItem(Console.message("Music-Manager"), "Options");
|
|
+ this.i18nTest = this.addMenuItem(Console.message("I18N-Test"), "Options");
|
|
+ }
|
|
+
|
|
+ this.cdPlayerItem = this.addMenuItem(Console.message("MusicM"), "Options");
|
|
+ this.volumeItem = this.addMenuItem(Console.message("Volume-control"), "Options");
|
|
+ if (RenderWare.get3DHardwareAvailable()) {
|
|
+ if (RenderWare.get3DHardwareInUse()) {
|
|
+ this.graphicsItem = this.addMenuItem(disable3D, "Options");
|
|
} else {
|
|
- var40 = newLocale[var36].getDisplayName();
|
|
+ this.graphicsItem = this.addMenuItem(enable3D, "Options");
|
|
}
|
|
+ }
|
|
|
|
- String var19 = newLocale[var36].getDisplayName();
|
|
- var19 = var19.substring(0, var19.indexOf(40) - 1);
|
|
- if (var36 < lLength - 1) {
|
|
- Locale var23 = new Locale(lCodes[var36 + 1][0], lCodes[var36 + 1][1]);
|
|
- String var41 = var23.getDisplayName();
|
|
- var41 = var41.substring(0, var41.indexOf(40) - 1);
|
|
- if (var41.equals(var19)) {
|
|
- var17 = newLocale[var36].getDisplayName();
|
|
- } else {
|
|
- var17 = var19;
|
|
- }
|
|
- } else if (var36 == lLength - 1) {
|
|
- var40 = var40.substring(0, var40.indexOf(40) - 1);
|
|
- if (var19.equals(var40)) {
|
|
- var17 = newLocale[var36].getDisplayName();
|
|
- } else {
|
|
- var17 = var19;
|
|
- }
|
|
- } else if (var38[var36 - 1].equals(var19)) {
|
|
- var17 = newLocale[var36].getDisplayName();
|
|
+ if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1) {
|
|
+ this.nametagItem = this.addMenuItem(hideTags, "Options");
|
|
+ } else {
|
|
+ this.nametagItem = this.addMenuItem(showTags, "Options");
|
|
+ }
|
|
+
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
|
|
+ this.chatBoxItem = this.addMenuItem(disableClassicChat, "Options");
|
|
+ } else {
|
|
+ this.chatBoxItem = this.addMenuItem(enableClassicChat, "Options");
|
|
+ }
|
|
+
|
|
+ if (Gamma.loadProgress != null) {
|
|
+ Gamma.loadProgress.setMessage("Preloading avatars...");
|
|
+ Gamma.loadProgress.advance();
|
|
+ }
|
|
+
|
|
+ this.menuDone();
|
|
+ getFrame().activate();
|
|
+ LogFile.mailLogIfPresent(this.getSmtpServer());
|
|
+ this.render.requestFocus();
|
|
+ this.setMenusWRTVIP();
|
|
+ this.bootSomeone = null;
|
|
+ if (this.broadcastEnabled()) {
|
|
+ this.addBroadcastMenu();
|
|
+ }
|
|
+
|
|
+ this.universeMode = false;
|
|
+ }
|
|
+
|
|
+ public void setVIP(boolean var1) {
|
|
+ super.setVIP(var1);
|
|
+ this.setMenusWRTVIP();
|
|
+ this.setNameStr();
|
|
+ }
|
|
+
|
|
+ public void checkCourtesyVIP() {
|
|
+ super.checkCourtesyVIP();
|
|
+ this.setMenusWRTVIP();
|
|
+ this.setNameStr();
|
|
+ }
|
|
+
|
|
+ public void setNameStr() {
|
|
+ String var1 = this.galaxy.getUsernameU();
|
|
+ boolean var2 = this.galaxy.getOnline();
|
|
+ if (!var2) {
|
|
+ this.yourName.setText(Console.message("Off-line"));
|
|
+ } else {
|
|
+ if (var1.length() > 0) {
|
|
+ if (var1.regionMatches(true, 0, "VIP ", 0, 4)) {
|
|
+ var1 = var1.substring(4);
|
|
+ }
|
|
+
|
|
+ if (vip > 0) {
|
|
+ if (vip > 1) {
|
|
+ var1 = Console.message("VIP") + " " + var1;
|
|
+ } else {
|
|
+ var1 = Console.message("vip") + " " + var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(var1));
|
|
+ this.yourName.setText(Console.parseUnicode(var1));
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void enableBroadcast(boolean var1) {
|
|
+ super.enableBroadcast(var1);
|
|
+ if (var1) {
|
|
+ this.addBroadcastMenu();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ super.deactivate();
|
|
+ this.universeMode = false;
|
|
+ }
|
|
+
|
|
+ protected void setSleepMode(String var1) {
|
|
+ super.setSleepMode(var1);
|
|
+ if (var1 != null && var1.equals(Console.message("asleep"))) {
|
|
+ this.statusMessage = sleepStatus;
|
|
+ } else if (this.statusMessage == sleepStatus) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void relogin() {
|
|
+ if (this.serverItem.getLabel().equals(signOut)) {
|
|
+ this.reloginDialog = new OkCancelDialog(getFrame(), this, Console.message("Re-login"), Console.message("Cancel"), Console.message("OK"), Console.message("auto-sign-out"), true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void toggleWhisperRejects() {
|
|
+ int mainVal = IniFile.modPrivacy().getIniInt("WhisperFeedback", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modPrivacy().setIniInt("WhisperFeedback", newVal ? 0 : 1);
|
|
+ this.showWhispers.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleWhisperResponse() {
|
|
+ int mainVal = IniFile.modPrivacy().getIniInt("WhisperResponse", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modPrivacy().setIniInt("WhisperResponse", newVal ? 0 : 1);
|
|
+ this.respondWhispers.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleTeleportRejects() {
|
|
+ int mainVal = IniFile.modPrivacy().getIniInt("TeleportFeedback", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modPrivacy().setIniInt("TeleportFeedback", newVal ? 0 : 1);
|
|
+ this.showTeleports.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleTeleportResponse() {
|
|
+ int mainVal = IniFile.modPrivacy().getIniInt("TeleportResponse", 0);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modPrivacy().setIniInt("TeleportResponse", mainVal == 1 ? 0 : 1);
|
|
+ this.respondTeleports.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if (var1.target == this.aboutItem) {
|
|
+ new AboutDialog(Std.getProductName(), getFrame());
|
|
+ } else if (var1.target == this.statisticsItem && this.statisticsItem != null) {
|
|
+ new StatisticsWindow(getFrame());
|
|
+ } else if (this.viewItems.contains(var1.target)) {
|
|
+ this.changeView((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.camSpeedItems.contains(var1.target)) {
|
|
+ this.changeCamSpeed((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.whisperItems.contains(var1.target)) {
|
|
+ this.changeWhispers((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.teleportItems.contains(var1.target)) {
|
|
+ this.changeTeleport((CheckboxMenuItem)var1.target);
|
|
+ } else if (var1.target == this.showWhispers) {
|
|
+ toggleWhisperRejects();
|
|
+ } else if (var1.target == this.respondWhispers) {
|
|
+ toggleWhisperResponse();
|
|
+ } else if (var1.target == this.showTeleports) {
|
|
+ toggleTeleportRejects();
|
|
+ } else if (var1.target == this.respondTeleports) {
|
|
+ toggleTeleportResponse();
|
|
+ } else if (var1.target == this.gettingStartedItem) {
|
|
+ (new SendURLAction(this.getHelpGettingStarted())).startBrowser();
|
|
+ } else {
|
|
+ String var4;
|
|
+ String var15;
|
|
+ if (var1.target == this.shaperHelpItem) {
|
|
+ var15 = IniFile.override().getIniString("ShaperHelp", this.getScriptServer() + "shaperhelp.pl") + "?u=";
|
|
+ var4 = IniFile.gamma().getIniString("lastchatname", "");
|
|
+ if (!var4.equals("")) {
|
|
+ if (var4.startsWith("VIP ")) {
|
|
+ var4 = var4.substring(4);
|
|
+ }
|
|
+
|
|
+ var15 = var15 + var4;
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(WebControlImp.processURL(var15))).startBrowser();
|
|
+ } else if (var1.target == this.helpItem) {
|
|
+ var15 = NetUpdate.getUpgradeServerURL();
|
|
+ var4 = IniFile.override().getIniString("HelpDirectory", "help");
|
|
+ String var18 = IniFile.override().getIniString("HelpPage", Std.getVersion() + Console.message(".html"));
|
|
+ if (wasHttpNoSuchFile(var15 + var4 + "/" + var18)) {
|
|
+ var18 = IniFile.override().getIniString("HelpPage", Std.getVersion() + ".html");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(var15 + var4 + "/" + var18)).startBrowser();
|
|
+ } else if (var1.target == this.infoItem) {
|
|
+ var15 = IniFile.override().getIniString("infoOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ NetUpdate.showInfo();
|
|
+ } else {
|
|
+ (new SendURLAction(var15)).startBrowser();
|
|
+ }
|
|
+ } else if (var1.target == this.i18nTest) {
|
|
+ Locale var23 = Locale.getDefault();
|
|
+ Console.println("Default = " + var23.getDisplayName());
|
|
+ DateFormat var24 = DateFormat.getDateTimeInstance(1, 1);
|
|
+ Date var17 = new Date();
|
|
+ Console.println("Today = " + var24.format(var17));
|
|
+ Locale[] var19 = DateFormat.getAvailableLocales();
|
|
+ Console.println("Avaliable Locales are:");
|
|
+
|
|
+ for(int var7 = 0; var7 < var19.length; ++var7) {
|
|
+ Locale.setDefault(var19[var7]);
|
|
+ Console.println(var19[var7].getDisplayName() + " " + var19[var7]);
|
|
+ }
|
|
+
|
|
+ new Locale("en", "US");
|
|
+ Locale var8 = new Locale("fr", "FR");
|
|
+ Locale var9 = new Locale("de", "DE");
|
|
+ Locale var10 = new Locale("ja", "JP");
|
|
+ Locale var11 = new Locale("zh", "CN");
|
|
+ Locale var12 = new Locale("th", "TH");
|
|
+ Locale var13 = new Locale("ru", "RU");
|
|
+ Locale var14 = new Locale("iw", "IL");
|
|
+ Console.println("file.encoding = " + System.getProperty("file.encoding"));
|
|
+ Console.println(this.message("test-language", var8));
|
|
+ Console.println(this.message("test-language", var9));
|
|
+ Console.println(this.message("test-language", var10));
|
|
+ Console.println(this.message("test-language", var11));
|
|
+ Console.println(this.message("test-language", var12));
|
|
+ Console.println(this.message("test-language", var13));
|
|
+ Console.println(this.message("test-language", var14));
|
|
+ Console.println(this.message("test-language", var23));
|
|
+ } else if (var1.target == this.checkAccountItem) {
|
|
+ var15 = IniFile.override().getIniString("accountOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ var4 = IniFile.override().getIniString("accountInfoPage", "account" + Console.message(".pl"));
|
|
+ if (wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
+ var4 = IniFile.override().getIniString("accountInfoPage", "account.pl");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
+ } else {
|
|
+ (new SendURLAction(var15)).startBrowser();
|
|
+ }
|
|
+
|
|
+ this.relogin();
|
|
+ } else if (var1.target == this.upgradeItem) {
|
|
+ NetUpdate.doUpdate(true);
|
|
+ } else if (var1.target == this.channelItem && this.channelItem != null) {
|
|
+ Galaxy var22 = this.getGalaxy();
|
|
+ var4 = "";
|
|
+ Debug.dAssert(var22 != null);
|
|
+ if (var22 != null) {
|
|
+ var4 = var22.getChannel();
|
|
+ }
|
|
+
|
|
+ new ChannelDialog(getFrame(), this, Console.message("Dimension-Sel"), var4);
|
|
+ } else if (var1.target == this.becomeVIPItem) {
|
|
+ var15 = IniFile.override().getIniString("vipOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ var4 = IniFile.override().getIniString("vipPage", "vip" + Console.message(".pl"));
|
|
+ if (wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
+ var4 = IniFile.override().getIniString("vipPage", "vip.pl");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
+ } else {
|
|
+ (new SendURLAction(var15, false)).startBrowser();
|
|
+ }
|
|
+
|
|
+ this.relogin();
|
|
+ } else if (var1.target == this.numVisItem) {
|
|
+ new SetNumVisibleAvs();
|
|
+ } else if (var1.target == this.inventoryItem) {
|
|
+ EquipAction var21 = new EquipAction();
|
|
+ var21.trigger((NET.worlds.scape.Event)null, (Persister)null);
|
|
+ } else if (var1.target == this.proxyServerItem) {
|
|
+ System.out.println("Triggering the Proxy Server dialog.");
|
|
+ ProxyServerDialog var20 = new ProxyServerDialog();
|
|
+ var20.show();
|
|
+ } else if (var1.target == this.toggleVoiceChatItem) {
|
|
+ VoiceChat.setVoiceChatEnabled(!VoiceChat.voiceChatEnabled);
|
|
+ this.setMenusWRTVIP();
|
|
+ } else if (var1.target == this.serverItem) {
|
|
+ this.handleServerItem();
|
|
+ } else if (var1.target == this.condenseItem) {
|
|
+ new ArchiveMaker(true);
|
|
+ } else if (var1.target == this.expandItem) {
|
|
+ new ArchiveMaker(false);
|
|
+ } else if (var1.target == this.musicManItem) {
|
|
+ MusicManager.showDialog();
|
|
+ } else if (var1.target == this.cdPlayerItem) {
|
|
+ if (this.cdcontrol == null) {
|
|
+ this.playedCD = true;
|
|
+ this.cdcontrol = new CDControl(getFrame(), this);
|
|
+ }
|
|
+ } else if (var1.target == this.volumeItem) {
|
|
+ if (!CDPlayerAction.launchVolumeControlApp()) {
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("No-Volume"), (String)null, Console.message("OK"), Console.message("Cannot-locate"), true);
|
|
+ }
|
|
+ } else if (var1.target == this.graphicsItem) {
|
|
+ this.handleGraphicsItem();
|
|
+ } else if (var1.target == this.nametagItem) {
|
|
+ this.handleNametagsItem();
|
|
+ } else if (var1.target == this.chatBoxItem) {
|
|
+ this.handleChatBoxItem();
|
|
+ } else if (var1.target == this.bootSomeone) {
|
|
+ new BootDialog(getFrame(), this, Console.message("Boot-user"));
|
|
+ } else if (var1.target == this.broadcastToRoom) {
|
|
+ startWhispering("room");
|
|
+ } else if (var1.target == this.broadcastToAll) {
|
|
+ startWhispering("world");
|
|
+ } else if (var1.target == this.currentLang) {
|
|
+ var15 = Locale.getDefault().toString();
|
|
+ if (var15 == Console.message(var15)) {
|
|
+ Console.println(Console.message("Current-Language") + " = " + Locale.getDefault().getDisplayName());
|
|
+ } else {
|
|
+ Console.println(Console.message("Current-Language") + " = " + Console.message(var15));
|
|
+ }
|
|
+ } else if (var1.target == this.recorderPlayItem) {
|
|
+ println(Console.message("BlackBoxPlay"));
|
|
+ BlackBox.getInstance().play();
|
|
+ } else if (var1.target == this.recorderRecItem) {
|
|
+ println(Console.message("BlackBoxRec"));
|
|
+ BlackBox.getInstance().record();
|
|
+ } else if (var1.target == this.recorderStopItem) {
|
|
+ println(Console.message("BlackBoxStop"));
|
|
+ BlackBox.getInstance().stop();
|
|
} else {
|
|
- var17 = var19;
|
|
- }
|
|
-
|
|
- String var24 = lCodes[var36][0] + "_" + lCodes[var36][1];
|
|
- if (var24.equals(Console.message(var24))) {
|
|
- var38[var36] = var17;
|
|
+ int var5;
|
|
+ String var6;
|
|
+ int var16;
|
|
+ if (this.fontItems != null && this.fontItems.contains(var1.target)) {
|
|
+ var15 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/font_";
|
|
+
|
|
+ for(var16 = 0; var16 < this.fLength; ++var16) {
|
|
+ if (var1.target == this.fontItems.elementAt(var16)) {
|
|
+ if (this.fsList.elementAt(var16) != null) {
|
|
+ var15 = var15 + this.flList.elementAt(var16) + "_" + this.fsList.elementAt(var16) + ".EXE";
|
|
+ } else {
|
|
+ var15 = var15 + this.flList.elementAt(var16) + ".EXE";
|
|
+ }
|
|
+
|
|
+ var5 = this.fSizes[var16];
|
|
+ var6 = var15.substring(var15.lastIndexOf(47) + 1, var15.length());
|
|
+ LanguageManager.handle(var15, var5, var6);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.downItems != null && this.downItems.contains(var1.target)) {
|
|
+ var15 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/language_";
|
|
+
|
|
+ for(var16 = 0; var16 < this.dLength; ++var16) {
|
|
+ if (var1.target == this.downItems.elementAt(var16)) {
|
|
+ if (this.sList.elementAt(var16) != null) {
|
|
+ var15 = var15 + this.lList.elementAt(var16) + "_" + this.sList.elementAt(var16) + ".zip";
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var16) + "_" + this.sList.elementAt(var16));
|
|
+ } else {
|
|
+ var15 = var15 + this.lList.elementAt(var16) + ".zip";
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var16));
|
|
+ }
|
|
+
|
|
+ var5 = this.lSizes[var16];
|
|
+ var6 = var15.substring(var15.lastIndexOf(47) + 1, var15.length());
|
|
+ LanguageManager.handle(var15, var5, var6);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.langItems != null && this.langItems.contains(var1.target)) {
|
|
+ for(int var3 = 0; var3 < lLength; ++var3) {
|
|
+ if (var1.target == this.langItems.elementAt(var3)) {
|
|
+ Locale.setDefault(newLocale[var3]);
|
|
+ var4 = newLocale[var3].toString();
|
|
+ if (var4 == Console.message(var4)) {
|
|
+ Console.println(message("Setting-to") + " " + newLocale[var3].getDisplayName());
|
|
+ } else {
|
|
+ Console.println(message("Setting-to") + " " + Console.message(var4));
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", lCodes[var3][0] + "_" + lCodes[var3][1]);
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.avatarMenu == null || !this.avatarMenu.action(var1, var2)) {
|
|
+ return super.action(var1, var2);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public void setCurrentAvatarItem(CheckboxMenuItem var1) {
|
|
+ if (this.curAvatarItem != null) {
|
|
+ this.curAvatarItem.setState(false);
|
|
+ }
|
|
+
|
|
+ this.curAvatarItem = var1;
|
|
+ if (this.curAvatarItem != null) {
|
|
+ this.curAvatarItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public CheckboxMenuItem getCurrentAvatarItem() {
|
|
+ return this.curAvatarItem;
|
|
+ }
|
|
+
|
|
+ public void deletedSavedAvatar(CheckboxMenuItem var1) {
|
|
+ if (this.curAvatarItem == var1) {
|
|
+ this.findAvatarMenuItem(this.getDefaultAvatarURL());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setNextAvatar(URL var1, CheckboxMenuItem var2) {
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ this.nextAvatar = var1;
|
|
+ this.nextAvatarItem = var2;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void findAvatarMenuItem(URL var1) {
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ if (this.nextAvatarItem == null) {
|
|
+ Object var3;
|
|
+ if ((this.savedAvs == null || (var3 = this.savedAvs.findMenuItem(var1)) == null) && (this.avatarMenu == null || (var3 = this.avatarMenu.findMenuItem(var1)) == null)) {
|
|
+ this.setCurrentAvatarItem((CheckboxMenuItem)null);
|
|
+ } else {
|
|
+ this.setCurrentAvatarItem((CheckboxMenuItem)var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private URL getHelpGettingStarted() {
|
|
+ IniFile var1 = new IniFile("InstalledWorlds");
|
|
+ String var2 = Console.message("Getting-started");
|
|
+ String var3 = var1.getIniString("InstalledWorld0", "");
|
|
+ if (!var3.equals("")) {
|
|
+ URL var4 = URL.make("home:" + var3 + "/" + var2);
|
|
+ File var5 = new File(var4.unalias());
|
|
+ if (var5.exists()) {
|
|
+ return var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return URL.make("home:" + var2);
|
|
+ }
|
|
+
|
|
+ private void changeView(CheckboxMenuItem var1) {
|
|
+ this.chooseView = this.viewItems.indexOf(var1);
|
|
+ if (var1 != this.currentViewItem) {
|
|
+ this.currentViewItem.setState(false);
|
|
+ this.currentViewItem = var1;
|
|
+ this.currentViewItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private int getView() {
|
|
+ return this.viewItems.indexOf(this.currentViewItem);
|
|
+ }
|
|
+
|
|
+ private void setView(int var1) {
|
|
+ this.changeView((CheckboxMenuItem)this.viewItems.elementAt(var1));
|
|
+ }
|
|
+
|
|
+ private void changeCamSpeed(CheckboxMenuItem var1) {
|
|
+ this.chooseCamSpeed = this.camSpeedItems.indexOf(var1);
|
|
+ if (var1 != this.currentCamSpeedItem) {
|
|
+ this.currentCamSpeedItem.setState(false);
|
|
+ this.currentCamSpeedItem = var1;
|
|
+ this.currentCamSpeedItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void changeWhispers(CheckboxMenuItem var1) {
|
|
+ this.chooseWhisper = this.whisperItems.indexOf(var1);
|
|
+ if (var1 != this.currentWhisperItem) {
|
|
+ this.currentWhisperItem.setState(false);
|
|
+ this.currentWhisperItem = var1;
|
|
+ this.currentWhisperItem.setState(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void changeTeleport(CheckboxMenuItem var1) {
|
|
+ this.chooseTeleport = this.teleportItems.indexOf(var1);
|
|
+ if (var1 != this.currentTeleportItem) {
|
|
+ this.currentTeleportItem.setState(false);
|
|
+ this.currentTeleportItem = var1;
|
|
+ this.currentTeleportItem.setState(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void resetCamera() {
|
|
+ if (this.viewItems != null && this.camSpeedItems != null) {
|
|
+ this.chooseView = this.viewItems.indexOf(this.currentViewItem);
|
|
+ this.chooseCamSpeed = this.camSpeedItems.indexOf(this.currentCamSpeedItem);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleServerItem() {
|
|
+ if (!this.serverItem.getLabel().equals(signIn)) {
|
|
+ Galaxy.forceOffline(false);
|
|
+ } else {
|
|
+ this.getGalaxy().localForceOnline();
|
|
+ this.getGalaxy().waitForConnection(this);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public UniversePanel getUniverse() {
|
|
+ return this.universeMode ? this.universe : null;
|
|
+ }
|
|
+
|
|
+ public synchronized void setUniverseMode(boolean var1) {
|
|
+ if (var1 != this.universeMode) {
|
|
+ this.universeMode = var1;
|
|
+ if (this.universeMode) {
|
|
+ if (this.universe == null) {
|
|
+ this.universe = new UniversePanel(this);
|
|
+ this.renderAndUniverse.add("universe", this.universe);
|
|
+ }
|
|
+
|
|
+ this.renderCard.show(this.renderAndUniverse, "universe");
|
|
+ this.universe.startWatch();
|
|
+ this.render.requestFocus();
|
|
} else {
|
|
- var38[var36] = Console.message(var24);
|
|
- }
|
|
- }
|
|
-
|
|
- sortStrings(var33, var38, newLocale, lCodes);
|
|
-
|
|
- for(var36 = 0; var36 < lLength; ++var36) {
|
|
- lLangs[var36] = new MenuItem(var38[var36]);
|
|
- lLangs[var36].setFont(mfont);
|
|
- var37.add(lLangs[var36]);
|
|
- this.langItems.addElement(lLangs[var36]);
|
|
- }
|
|
-
|
|
- this.currentLang = new MenuItem(Console.message("Current-Language"));
|
|
- var27.add(this.currentLang);
|
|
- this.currentLang.setFont(mfont);
|
|
- }
|
|
-
|
|
- if (var2) {
|
|
- this.condenseItem = this.addMenuItem(Console.message("Condense-Files"), "Options");
|
|
- this.expandItem = this.addMenuItem(Console.message("Expand-Files"), "Options");
|
|
- this.musicManItem = this.addMenuItem(Console.message("Music-Manager"), "Options");
|
|
- this.i18nTest = this.addMenuItem(Console.message("I18N-Test"), "Options");
|
|
- }
|
|
-
|
|
- this.cdPlayerItem = this.addMenuItem(Console.message("MusicM"), "Options");
|
|
- this.volumeItem = this.addMenuItem(Console.message("Volume-control"), "Options");
|
|
- if (RenderWare.get3DHardwareAvailable()) {
|
|
- if (RenderWare.get3DHardwareInUse()) {
|
|
- this.graphicsItem = this.addMenuItem(disable3D, "Options");
|
|
- } else {
|
|
- this.graphicsItem = this.addMenuItem(enable3D, "Options");
|
|
- }
|
|
- }
|
|
-
|
|
- if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1) {
|
|
- this.nametagItem = this.addMenuItem(hideTags, "Options");
|
|
- } else {
|
|
- this.nametagItem = this.addMenuItem(showTags, "Options");
|
|
- }
|
|
-
|
|
- if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
|
|
- this.chatBoxItem = this.addMenuItem(disableClassicChat, "Options");
|
|
- } else {
|
|
- this.chatBoxItem = this.addMenuItem(enableClassicChat, "Options");
|
|
- }
|
|
-
|
|
- if (Gamma.loadProgress != null) {
|
|
- Gamma.loadProgress.setMessage("Preloading avatars...");
|
|
- Gamma.loadProgress.advance();
|
|
- }
|
|
-
|
|
- this.menuDone();
|
|
- getFrame().activate();
|
|
- LogFile.mailLogIfPresent(this.getSmtpServer());
|
|
- this.render.requestFocus();
|
|
- this.setMenusWRTVIP();
|
|
- this.bootSomeone = null;
|
|
- if (this.broadcastEnabled()) {
|
|
- this.addBroadcastMenu();
|
|
- }
|
|
-
|
|
- this.universeMode = false;
|
|
- }
|
|
-
|
|
- public void setVIP(boolean var1) {
|
|
- super.setVIP(var1);
|
|
- this.setMenusWRTVIP();
|
|
- this.setNameStr();
|
|
- }
|
|
-
|
|
- public void checkCourtesyVIP() {
|
|
- super.checkCourtesyVIP();
|
|
- this.setMenusWRTVIP();
|
|
- this.setNameStr();
|
|
- }
|
|
-
|
|
- public void setNameStr() {
|
|
- String var1 = this.galaxy.getUsernameU();
|
|
- boolean var2 = this.galaxy.getOnline();
|
|
- if (!var2) {
|
|
- this.yourName.setText(Console.message("Off-line"));
|
|
- } else {
|
|
- if (var1.length() > 0) {
|
|
- if (var1.regionMatches(true, 0, "VIP ", 0, 4)) {
|
|
- var1 = var1.substring(4);
|
|
- }
|
|
-
|
|
- if (vip > 0) {
|
|
- if (vip > 1) {
|
|
- var1 = Console.message("VIP") + " " + var1;
|
|
- } else {
|
|
- var1 = Console.message("vip") + " " + var1;
|
|
- }
|
|
- }
|
|
-
|
|
- IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(var1));
|
|
- this.yourName.setText(Console.parseUnicode(var1));
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void enableBroadcast(boolean var1) {
|
|
- super.enableBroadcast(var1);
|
|
- if (var1) {
|
|
- this.addBroadcastMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- super.deactivate();
|
|
- this.universeMode = false;
|
|
- }
|
|
-
|
|
- protected void setSleepMode(String var1) {
|
|
- super.setSleepMode(var1);
|
|
- if (var1 != null && var1.equals(Console.message("asleep"))) {
|
|
- this.statusMessage = sleepStatus;
|
|
- } else if (this.statusMessage == sleepStatus) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void relogin() {
|
|
- if (this.serverItem.getLabel().equals(signOut)) {
|
|
- this.reloginDialog = new OkCancelDialog(getFrame(), this, Console.message("Re-login"), Console.message("Cancel"), Console.message("OK"), Console.message("auto-sign-out"), true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- if (var1.target == this.aboutItem) {
|
|
- new AboutDialog(Std.getProductName(), getFrame());
|
|
- } else if (var1.target == this.statisticsItem && this.statisticsItem != null) {
|
|
- new StatisticsWindow(getFrame());
|
|
- } else if (this.viewItems.contains(var1.target)) {
|
|
- this.changeView((CheckboxMenuItem)var1.target);
|
|
- } else if (this.camSpeedItems.contains(var1.target)) {
|
|
- this.changeCamSpeed((CheckboxMenuItem)var1.target);
|
|
- } else if (var1.target == this.gettingStartedItem) {
|
|
- (new SendURLAction(this.getHelpGettingStarted())).startBrowser();
|
|
- } else {
|
|
- String var4;
|
|
- String var15;
|
|
- if (var1.target == this.shaperHelpItem) {
|
|
- var15 = IniFile.override().getIniString("ShaperHelp", this.getScriptServer() + "shaperhelp.pl") + "?u=";
|
|
- var4 = IniFile.gamma().getIniString("lastchatname", "");
|
|
- if (!var4.equals("")) {
|
|
- if (var4.startsWith("VIP ")) {
|
|
- var4 = var4.substring(4);
|
|
- }
|
|
-
|
|
- var15 = var15 + var4;
|
|
- }
|
|
-
|
|
- (new SendURLAction(WebControlImp.processURL(var15))).startBrowser();
|
|
- } else if (var1.target == this.helpItem) {
|
|
- var15 = NetUpdate.getUpgradeServerURL();
|
|
- var4 = IniFile.override().getIniString("HelpDirectory", "help");
|
|
- String var18 = IniFile.override().getIniString("HelpPage", Std.getVersion() + Console.message(".html"));
|
|
- if (wasHttpNoSuchFile(var15 + var4 + "/" + var18)) {
|
|
- var18 = IniFile.override().getIniString("HelpPage", Std.getVersion() + ".html");
|
|
- }
|
|
-
|
|
- (new SendURLAction(var15 + var4 + "/" + var18)).startBrowser();
|
|
- } else if (var1.target == this.infoItem) {
|
|
- var15 = IniFile.override().getIniString("infoOverride", "");
|
|
- if (var15.equals("")) {
|
|
- NetUpdate.showInfo();
|
|
+ this.renderCard.show(this.renderAndUniverse, "render");
|
|
+ if (physMem < 64000000) {
|
|
+ this.renderAndUniverse.remove(this.universe);
|
|
+ this.universe.stopWatch();
|
|
+ this.universe.flushImage();
|
|
+ this.universe = null;
|
|
+ }
|
|
+
|
|
+ this.renderAndUniverse.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void toggleUniverseMode() {
|
|
+ this.setUniverseMode(!this.universeMode);
|
|
+ }
|
|
+
|
|
+ public boolean isUniverseMode() {
|
|
+ return this.universeMode;
|
|
+ }
|
|
+
|
|
+ public Object imageButtonsCallback(Component var1, int var2) {
|
|
+ if (var1 != this.driveButton) {
|
|
+ if (var1 == this.quitButton) {
|
|
+ maybeQuit();
|
|
+ } else if (var1 == this.exploreButton) {
|
|
+ this.toggleUniverseMode();
|
|
+ } else if (var1 == this.menuButtons) {
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ return this.getMenu("Help");
|
|
+ case 1:
|
|
+ return this.getMenu("Options");
|
|
+ case 2:
|
|
+ String var3 = IniFile.override().getIniString("ProductName", "");
|
|
+ if (!var3.equalsIgnoreCase("RedLightWorld")) {
|
|
+ EMailPart.showMessage(this);
|
|
+ }
|
|
+ break;
|
|
+ case 3:
|
|
+ return (PopupMenu)this.marks.getMenu();
|
|
+ case 4:
|
|
+ return (PopupMenu)this.marks.getLetsMenu();
|
|
+ case 5:
|
|
+ this.actions.present();
|
|
+ break;
|
|
+ case 6:
|
|
+ return this.getMenu("VIP");
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public RenderCanvas getRender() {
|
|
+ return this.render;
|
|
+ }
|
|
+
|
|
+ public FriendsListPart getFriends() {
|
|
+ return this.friends;
|
|
+ }
|
|
+
|
|
+ public MuteListPart getMutes() {
|
|
+ return this.mutes;
|
|
+ }
|
|
+
|
|
+ public TarListPart getTars() {
|
|
+ return this.tars;
|
|
+ }
|
|
+
|
|
+ public void generateFrameEvents(FrameEvent var1) {
|
|
+ if (Window.getWindowState(Window.getFrameHandle()) == 1) {
|
|
+ this.goToSleep();
|
|
+ }
|
|
+
|
|
+ if (doDrive) {
|
|
+ doDrive = false;
|
|
+ this.render.drive();
|
|
+ wasDelta = true;
|
|
+ }
|
|
+
|
|
+ super.generateFrameEvents(var1);
|
|
+ Pilot var2 = Pilot.getActive();
|
|
+ GammaFrame var3 = getFrame();
|
|
+ String var4 = var3.getTitle();
|
|
+ String var5 = "";
|
|
+ if (var2 != null) {
|
|
+ World var6 = var2.getWorld();
|
|
+ if (var6 != null) {
|
|
+ String var7 = var6.getName();
|
|
+ if (var7 != null) {
|
|
+ var5 = var7;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!lastWorldName.equals(var5)) {
|
|
+ lastWorldName = var5;
|
|
+ String var14 = GammaFrame.getDefaultTitle();
|
|
+ if (var5.length() != 0) {
|
|
+ var14 = var14 + " - " + var5;
|
|
+ if (!this.playedCD) {
|
|
+ CDAudio.startupPlay();
|
|
+ this.playedCD = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var3.setTitle(var14);
|
|
+ }
|
|
+
|
|
+ if (var2 != null) {
|
|
+ if (this.chooseView != -1 || this.chooseCamSpeed != -1) {
|
|
+ int var15 = var2.getOutsideCameraMode();
|
|
+ int var16 = var2.getOutsideCameraSpeed();
|
|
+ int var8 = var15;
|
|
+ int var9 = var16;
|
|
+ if (this.chooseView != -1) {
|
|
+ var8 = ((DefaultConsole.CameraView)this.viewNames.elementAt(this.chooseView)).viewID;
|
|
+ }
|
|
+
|
|
+ if (this.chooseCamSpeed != -1) {
|
|
+ var9 = ((DefaultConsole.CameraSpeed)this.speedNames.elementAt(this.chooseCamSpeed)).speedID;
|
|
+ }
|
|
+
|
|
+ var2.setOutsideCameraMode(var8, var9);
|
|
+ if (var8 != 99) {
|
|
+ IniFile.gamma().setIniInt("CAM_MODE", var8);
|
|
+ IniFile.gamma().setIniInt("CAM_SPEED", var9);
|
|
+ }
|
|
+
|
|
+ this.chooseView = -1;
|
|
+ this.chooseCamSpeed = -1;
|
|
+ }
|
|
+
|
|
+ if (this.wasTeleporting != this.marks.isTeleporting()) {
|
|
+ this.wasTeleporting = this.marks.isTeleporting();
|
|
+ if (this.wasTeleporting) {
|
|
+ this.statusMessage = loadingString;
|
|
+ } else if (this.statusMessage == loadingString) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.checkVMWarning();
|
|
+ if (wasDelta && !this.render.getDeltaMode()) {
|
|
+ this.statusMessage = arrowKeyMsg;
|
|
+ wasDelta = false;
|
|
+ this.driveButton.drawCursed();
|
|
+ }
|
|
+
|
|
+ if (this.chooseWhisper != -1 || this.chooseTeleport != -1) {
|
|
+
|
|
+ int whisperValue = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ int teleportValue = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+
|
|
+ if (this.chooseWhisper != -1) {
|
|
+ whisperValue = ((WhisperPrivacy) this.whisperNames.elementAt(chooseWhisper)).whisperID;
|
|
+ }
|
|
+
|
|
+ if (this.chooseTeleport != -1) {
|
|
+ teleportValue = ((TeleportPrivacy) this.teleportNames.elementAt(chooseTeleport)).teleportID;
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniInt("WhisperPrivacy", whisperValue);
|
|
+ IniFile.gamma().setIniInt("TeleportPrivacy", teleportValue);
|
|
+
|
|
+ this.chooseWhisper = -1;
|
|
+ this.chooseTeleport = -1;
|
|
+ }
|
|
+
|
|
+ synchronized(this.status) {
|
|
+ if (this.statusMessage != this.lastStatus && this.overrideMessage == null) {
|
|
+ this.lastStatus = this.statusMessage;
|
|
+ this.status.setText(this.statusMessage);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ if (this.nextAvatar != null) {
|
|
+ this.setAvatar(this.nextAvatar);
|
|
+ this.nextAvatar = null;
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.notifyOfChange();
|
|
+ }
|
|
+
|
|
+ if (this.nextAvatarItem != null) {
|
|
+ this.setCurrentAvatarItem(this.nextAvatarItem);
|
|
+ this.nextAvatarItem = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void checkVMWarning() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ if (var1 > this.lastVMCheck + 10000) {
|
|
+ StatMemNode var2 = StatMemNode.getNode();
|
|
+ var2.updateMemoryStatus();
|
|
+ if (var2._availPageMem < 0) {
|
|
+ var2._availPageMem = 2000000000;
|
|
+ }
|
|
+
|
|
+ if (var2._totPhysMem < 0) {
|
|
+ var2._totPhysMem = 2000000000;
|
|
+ }
|
|
+
|
|
+ physMem = var2._totPhysMem;
|
|
+ if (var2._availPageMem >= 4194304) {
|
|
+ if (var2._availPageMem > 5242880 && this.lastVMBigWarning != 0) {
|
|
+ if (var2._availPageMem > 10485760) {
|
|
+ Console.println(Console.message("plenty-virt"));
|
|
+ this.lastVMBigWarning = 0;
|
|
+ } else if (!this.showedMidWarn) {
|
|
+ Console.println(Console.message("plenty-virt-mem"));
|
|
+ this.showedMidWarn = true;
|
|
+ }
|
|
+
|
|
+ if (this.statusMessage == lowVMMsg) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+ }
|
|
} else {
|
|
- (new SendURLAction(var15)).startBrowser();
|
|
- }
|
|
- } else if (var1.target == this.i18nTest) {
|
|
- Locale var23 = Locale.getDefault();
|
|
- Console.println("Default = " + var23.getDisplayName());
|
|
- DateFormat var24 = DateFormat.getDateTimeInstance(1, 1);
|
|
- Date var17 = new Date();
|
|
- Console.println("Today = " + var24.format(var17));
|
|
- Locale[] var19 = DateFormat.getAvailableLocales();
|
|
- Console.println("Avaliable Locales are:");
|
|
-
|
|
- for(int var7 = 0; var7 < var19.length; ++var7) {
|
|
- Locale.setDefault(var19[var7]);
|
|
- Console.println(var19[var7].getDisplayName() + " " + var19[var7]);
|
|
- }
|
|
-
|
|
- new Locale("en", "US");
|
|
- Locale var8 = new Locale("fr", "FR");
|
|
- Locale var9 = new Locale("de", "DE");
|
|
- Locale var10 = new Locale("ja", "JP");
|
|
- Locale var11 = new Locale("zh", "CN");
|
|
- Locale var12 = new Locale("th", "TH");
|
|
- Locale var13 = new Locale("ru", "RU");
|
|
- Locale var14 = new Locale("iw", "IL");
|
|
- Console.println("file.encoding = " + System.getProperty("file.encoding"));
|
|
- Console.println(this.message("test-language", var8));
|
|
- Console.println(this.message("test-language", var9));
|
|
- Console.println(this.message("test-language", var10));
|
|
- Console.println(this.message("test-language", var11));
|
|
- Console.println(this.message("test-language", var12));
|
|
- Console.println(this.message("test-language", var13));
|
|
- Console.println(this.message("test-language", var14));
|
|
- Console.println(this.message("test-language", var23));
|
|
- } else if (var1.target == this.checkAccountItem) {
|
|
- var15 = IniFile.override().getIniString("accountOverride", "");
|
|
- if (var15.equals("")) {
|
|
- var4 = IniFile.override().getIniString("accountInfoPage", "account" + Console.message(".pl"));
|
|
- if (wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
- var4 = IniFile.override().getIniString("accountInfoPage", "account.pl");
|
|
- }
|
|
+ if (this.lastVMBigWarning == 0 || this.showedMidWarn || var1 > this.lastVMBigWarning + 300000) {
|
|
+ Console.println(Console.message("Low-virt-mem"));
|
|
+ this.lastVMBigWarning = var1;
|
|
+ this.showedMidWarn = false;
|
|
+ }
|
|
|
|
- (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
- } else {
|
|
- (new SendURLAction(var15)).startBrowser();
|
|
+ this.statusMessage = lowVMMsg;
|
|
}
|
|
|
|
- this.relogin();
|
|
- } else if (var1.target == this.upgradeItem) {
|
|
- NetUpdate.doUpdate(true);
|
|
- } else if (var1.target == this.channelItem && this.channelItem != null) {
|
|
- Galaxy var22 = this.getGalaxy();
|
|
- var4 = "";
|
|
- Debug.dAssert(var22 != null);
|
|
- if (var22 != null) {
|
|
- var4 = var22.getChannel();
|
|
- }
|
|
-
|
|
- new ChannelDialog(getFrame(), this, Console.message("Dimension-Sel"), var4);
|
|
- } else if (var1.target == this.becomeVIPItem) {
|
|
- var15 = IniFile.override().getIniString("vipOverride", "");
|
|
- if (var15.equals("")) {
|
|
- var4 = IniFile.override().getIniString("vipPage", "vip" + Console.message(".pl"));
|
|
- if (wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
- var4 = IniFile.override().getIniString("vipPage", "vip.pl");
|
|
- }
|
|
+ Object[] var3 = new Object[]{new String(Std.getProductName()), new Integer(24)};
|
|
+ if (startupMemCheck) {
|
|
+ if (var2._totPhysMem < 24000000) {
|
|
+ String var4 = MessageFormat.format(Console.message("Mem-detected"), var3);
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Too-Little-RAM"), (String)null, Console.message("OK"), var4, true);
|
|
+ }
|
|
|
|
- (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
- } else {
|
|
- (new SendURLAction(var15, false)).startBrowser();
|
|
+ startupMemCheck = false;
|
|
+ System.out.println("System has " + var2._totPhysMem + " bytes of physical RAM");
|
|
}
|
|
|
|
- this.relogin();
|
|
- } else if (var1.target == this.numVisItem) {
|
|
- new SetNumVisibleAvs();
|
|
- } else if (var1.target == this.inventoryItem) {
|
|
- EquipAction var21 = new EquipAction();
|
|
- var21.trigger((NET.worlds.scape.Event)null, (Persister)null);
|
|
- } else if (var1.target == this.proxyServerItem) {
|
|
- System.out.println("Triggering the Proxy Server dialog.");
|
|
- ProxyServerDialog var20 = new ProxyServerDialog();
|
|
- var20.show();
|
|
- } else if (var1.target == this.toggleVoiceChatItem) {
|
|
- VoiceChat.setVoiceChatEnabled(!VoiceChat.voiceChatEnabled);
|
|
- this.setMenusWRTVIP();
|
|
- } else if (var1.target == this.serverItem) {
|
|
- this.handleServerItem();
|
|
- } else if (var1.target == this.condenseItem) {
|
|
- new ArchiveMaker(true);
|
|
- } else if (var1.target == this.expandItem) {
|
|
- new ArchiveMaker(false);
|
|
- } else if (var1.target == this.musicManItem) {
|
|
- MusicManager.showDialog();
|
|
- } else if (var1.target == this.cdPlayerItem) {
|
|
- if (this.cdcontrol == null) {
|
|
- this.playedCD = true;
|
|
- this.cdcontrol = new CDControl(getFrame(), this);
|
|
- }
|
|
- } else if (var1.target == this.volumeItem) {
|
|
- if (!CDPlayerAction.launchVolumeControlApp()) {
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("No-Volume"), (String)null, Console.message("OK"), Console.message("Cannot-locate"), true);
|
|
- }
|
|
- } else if (var1.target == this.graphicsItem) {
|
|
- this.handleGraphicsItem();
|
|
- } else if (var1.target == this.nametagItem) {
|
|
- this.handleNametagsItem();
|
|
- } else if (var1.target == this.chatBoxItem) {
|
|
- this.handleChatBoxItem();
|
|
- } else if (var1.target == this.bootSomeone) {
|
|
- new BootDialog(getFrame(), this, Console.message("Boot-user"));
|
|
- } else if (var1.target == this.broadcastToRoom) {
|
|
- startWhispering("room");
|
|
- } else if (var1.target == this.broadcastToAll) {
|
|
- startWhispering("world");
|
|
- } else if (var1.target == this.currentLang) {
|
|
- var15 = Locale.getDefault().toString();
|
|
- if (var15 == Console.message(var15)) {
|
|
- Console.println(Console.message("Current-Language") + " = " + Locale.getDefault().getDisplayName());
|
|
- } else {
|
|
- Console.println(Console.message("Current-Language") + " = " + Console.message(var15));
|
|
- }
|
|
- } else if (var1.target == this.recorderPlayItem) {
|
|
- println(Console.message("BlackBoxPlay"));
|
|
- BlackBox.getInstance().play();
|
|
- } else if (var1.target == this.recorderRecItem) {
|
|
- println(Console.message("BlackBoxRec"));
|
|
- BlackBox.getInstance().record();
|
|
- } else if (var1.target == this.recorderStopItem) {
|
|
- println(Console.message("BlackBoxStop"));
|
|
- BlackBox.getInstance().stop();
|
|
- } else {
|
|
- int var5;
|
|
- String var6;
|
|
- int var16;
|
|
- if (this.fontItems != null && this.fontItems.contains(var1.target)) {
|
|
- var15 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/font_";
|
|
-
|
|
- for(var16 = 0; var16 < this.fLength; ++var16) {
|
|
- if (var1.target == this.fontItems.elementAt(var16)) {
|
|
- if (this.fsList.elementAt(var16) != null) {
|
|
- var15 = var15 + this.flList.elementAt(var16) + "_" + this.fsList.elementAt(var16) + ".EXE";
|
|
- } else {
|
|
- var15 = var15 + this.flList.elementAt(var16) + ".EXE";
|
|
- }
|
|
-
|
|
- var5 = this.fSizes[var16];
|
|
- var6 = var15.substring(var15.lastIndexOf(47) + 1, var15.length());
|
|
- LanguageManager.handle(var15, var5, var6);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.downItems != null && this.downItems.contains(var1.target)) {
|
|
- var15 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/language_";
|
|
-
|
|
- for(var16 = 0; var16 < this.dLength; ++var16) {
|
|
- if (var1.target == this.downItems.elementAt(var16)) {
|
|
- if (this.sList.elementAt(var16) != null) {
|
|
- var15 = var15 + this.lList.elementAt(var16) + "_" + this.sList.elementAt(var16) + ".zip";
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var16) + "_" + this.sList.elementAt(var16));
|
|
- } else {
|
|
- var15 = var15 + this.lList.elementAt(var16) + ".zip";
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var16));
|
|
- }
|
|
-
|
|
- var5 = this.lSizes[var16];
|
|
- var6 = var15.substring(var15.lastIndexOf(47) + 1, var15.length());
|
|
- LanguageManager.handle(var15, var5, var6);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.langItems != null && this.langItems.contains(var1.target)) {
|
|
- for(int var3 = 0; var3 < lLength; ++var3) {
|
|
- if (var1.target == this.langItems.elementAt(var3)) {
|
|
- Locale.setDefault(newLocale[var3]);
|
|
- var4 = newLocale[var3].toString();
|
|
- if (var4 == Console.message(var4)) {
|
|
- Console.println(message("Setting-to") + " " + newLocale[var3].getDisplayName());
|
|
- } else {
|
|
- Console.println(message("Setting-to") + " " + Console.message(var4));
|
|
- }
|
|
-
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", lCodes[var3][0] + "_" + lCodes[var3][1]);
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.avatarMenu == null || !this.avatarMenu.action(var1, var2)) {
|
|
- return super.action(var1, var2);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public void setCurrentAvatarItem(CheckboxMenuItem var1) {
|
|
- if (this.curAvatarItem != null) {
|
|
- this.curAvatarItem.setState(false);
|
|
- }
|
|
-
|
|
- this.curAvatarItem = var1;
|
|
- if (this.curAvatarItem != null) {
|
|
- this.curAvatarItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public CheckboxMenuItem getCurrentAvatarItem() {
|
|
- return this.curAvatarItem;
|
|
- }
|
|
-
|
|
- public void deletedSavedAvatar(CheckboxMenuItem var1) {
|
|
- if (this.curAvatarItem == var1) {
|
|
- this.findAvatarMenuItem(this.getDefaultAvatarURL());
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setNextAvatar(URL var1, CheckboxMenuItem var2) {
|
|
- synchronized(this.nextAvatarMutex) {
|
|
- this.nextAvatar = var1;
|
|
- this.nextAvatarItem = var2;
|
|
- }
|
|
- }
|
|
-
|
|
- private void findAvatarMenuItem(URL var1) {
|
|
- synchronized(this.nextAvatarMutex) {
|
|
- if (this.nextAvatarItem == null) {
|
|
- Object var3;
|
|
- if ((this.savedAvs == null || (var3 = this.savedAvs.findMenuItem(var1)) == null) && (this.avatarMenu == null || (var3 = this.avatarMenu.findMenuItem(var1)) == null)) {
|
|
- this.setCurrentAvatarItem((CheckboxMenuItem)null);
|
|
- } else {
|
|
- this.setCurrentAvatarItem((CheckboxMenuItem)var3);
|
|
- }
|
|
- }
|
|
+ this.lastVMCheck = var1;
|
|
+ }
|
|
|
|
- }
|
|
- }
|
|
+ }
|
|
|
|
- private URL getHelpGettingStarted() {
|
|
- IniFile var1 = new IniFile("InstalledWorlds");
|
|
- String var2 = Console.message("Getting-started");
|
|
- String var3 = var1.getIniString("InstalledWorld0", "");
|
|
- if (!var3.equals("")) {
|
|
- URL var4 = URL.make("home:" + var3 + "/" + var2);
|
|
- File var5 = new File(var4.unalias());
|
|
- if (var5.exists()) {
|
|
- return var4;
|
|
- }
|
|
- }
|
|
-
|
|
- return URL.make("home:" + var2);
|
|
- }
|
|
-
|
|
- private void changeView(CheckboxMenuItem var1) {
|
|
- this.chooseView = this.viewItems.indexOf(var1);
|
|
- if (var1 != this.currentViewItem) {
|
|
- this.currentViewItem.setState(false);
|
|
- this.currentViewItem = var1;
|
|
- this.currentViewItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private int getView() {
|
|
- return this.viewItems.indexOf(this.currentViewItem);
|
|
- }
|
|
-
|
|
- private void setView(int var1) {
|
|
- this.changeView((CheckboxMenuItem)this.viewItems.elementAt(var1));
|
|
- }
|
|
-
|
|
- private void changeCamSpeed(CheckboxMenuItem var1) {
|
|
- this.chooseCamSpeed = this.camSpeedItems.indexOf(var1);
|
|
- if (var1 != this.currentCamSpeedItem) {
|
|
- this.currentCamSpeedItem.setState(false);
|
|
- this.currentCamSpeedItem = var1;
|
|
- this.currentCamSpeedItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void resetCamera() {
|
|
- if (this.viewItems != null && this.camSpeedItems != null) {
|
|
- this.chooseView = this.viewItems.indexOf(this.currentViewItem);
|
|
- this.chooseCamSpeed = this.camSpeedItems.indexOf(this.currentCamSpeedItem);
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleServerItem() {
|
|
- if (!this.serverItem.getLabel().equals(signIn)) {
|
|
- Galaxy.forceOffline(false);
|
|
- } else {
|
|
- this.getGalaxy().localForceOnline();
|
|
- this.getGalaxy().waitForConnection(this);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public UniversePanel getUniverse() {
|
|
- return this.universeMode ? this.universe : null;
|
|
- }
|
|
-
|
|
- public synchronized void setUniverseMode(boolean var1) {
|
|
- if (var1 != this.universeMode) {
|
|
- this.universeMode = var1;
|
|
- if (this.universeMode) {
|
|
- if (this.universe == null) {
|
|
- this.universe = new UniversePanel(this);
|
|
- this.renderAndUniverse.add("universe", this.universe);
|
|
- }
|
|
-
|
|
- this.renderCard.show(this.renderAndUniverse, "universe");
|
|
- this.universe.startWatch();
|
|
- this.render.requestFocus();
|
|
- } else {
|
|
- this.renderCard.show(this.renderAndUniverse, "render");
|
|
- if (physMem < 64000000) {
|
|
- this.renderAndUniverse.remove(this.universe);
|
|
- this.universe.stopWatch();
|
|
- this.universe.flushImage();
|
|
- this.universe = null;
|
|
- }
|
|
-
|
|
- this.renderAndUniverse.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void toggleUniverseMode() {
|
|
- this.setUniverseMode(!this.universeMode);
|
|
- }
|
|
-
|
|
- public boolean isUniverseMode() {
|
|
- return this.universeMode;
|
|
- }
|
|
-
|
|
- public Object imageButtonsCallback(Component var1, int var2) {
|
|
- if (var1 != this.driveButton) {
|
|
- if (var1 == this.quitButton) {
|
|
- maybeQuit();
|
|
- } else if (var1 == this.exploreButton) {
|
|
- this.toggleUniverseMode();
|
|
- } else if (var1 == this.menuButtons) {
|
|
- switch(var2) {
|
|
- case 0:
|
|
- return this.getMenu("Help");
|
|
- case 1:
|
|
- return this.getMenu("Options");
|
|
- case 2:
|
|
- String var3 = IniFile.override().getIniString("ProductName", "");
|
|
- if (!var3.equalsIgnoreCase("RedLightWorld")) {
|
|
- EMailPart.showMessage(this);
|
|
- }
|
|
- break;
|
|
- case 3:
|
|
- return (PopupMenu)this.marks.getMenu();
|
|
- case 4:
|
|
- return (PopupMenu)this.marks.getLetsMenu();
|
|
- case 5:
|
|
- this.actions.present();
|
|
- break;
|
|
- case 6:
|
|
- return this.getMenu("VIP");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public RenderCanvas getRender() {
|
|
- return this.render;
|
|
- }
|
|
-
|
|
- public FriendsListPart getFriends() {
|
|
- return this.friends;
|
|
- }
|
|
-
|
|
- public MuteListPart getMutes() {
|
|
- return this.mutes;
|
|
- }
|
|
-
|
|
- public void generateFrameEvents(FrameEvent var1) {
|
|
- if (Window.getWindowState(Window.getFrameHandle()) == 1) {
|
|
- this.goToSleep();
|
|
- }
|
|
-
|
|
- if (doDrive) {
|
|
- doDrive = false;
|
|
- this.render.drive();
|
|
- wasDelta = true;
|
|
- }
|
|
-
|
|
- super.generateFrameEvents(var1);
|
|
- Pilot var2 = Pilot.getActive();
|
|
- GammaFrame var3 = getFrame();
|
|
- String var4 = var3.getTitle();
|
|
- String var5 = "";
|
|
- if (var2 != null) {
|
|
- World var6 = var2.getWorld();
|
|
- if (var6 != null) {
|
|
- String var7 = var6.getName();
|
|
- if (var7 != null) {
|
|
- var5 = var7;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (!lastWorldName.equals(var5)) {
|
|
- lastWorldName = var5;
|
|
- String var14 = GammaFrame.getDefaultTitle();
|
|
- if (var5.length() != 0) {
|
|
- var14 = var14 + " - " + var5;
|
|
- if (!this.playedCD) {
|
|
- CDAudio.startupPlay();
|
|
- this.playedCD = true;
|
|
- }
|
|
- }
|
|
-
|
|
- var3.setTitle(var14);
|
|
- }
|
|
-
|
|
- if (var2 != null) {
|
|
- if (this.chooseView != -1 || this.chooseCamSpeed != -1) {
|
|
- int var15 = var2.getOutsideCameraMode();
|
|
- int var16 = var2.getOutsideCameraSpeed();
|
|
- int var8 = var15;
|
|
- int var9 = var16;
|
|
- if (this.chooseView != -1) {
|
|
- var8 = ((DefaultConsole.CameraView)this.viewNames.elementAt(this.chooseView)).viewID;
|
|
- }
|
|
-
|
|
- if (this.chooseCamSpeed != -1) {
|
|
- var9 = ((DefaultConsole.CameraSpeed)this.speedNames.elementAt(this.chooseCamSpeed)).speedID;
|
|
- }
|
|
-
|
|
- var2.setOutsideCameraMode(var8, var9);
|
|
- if (var8 != 99) {
|
|
- IniFile.gamma().setIniInt("CAM_MODE", var8);
|
|
- IniFile.gamma().setIniInt("CAM_SPEED", var9);
|
|
- }
|
|
-
|
|
- this.chooseView = -1;
|
|
- this.chooseCamSpeed = -1;
|
|
- }
|
|
-
|
|
- if (this.wasTeleporting != this.marks.isTeleporting()) {
|
|
- this.wasTeleporting = this.marks.isTeleporting();
|
|
- if (this.wasTeleporting) {
|
|
- this.statusMessage = loadingString;
|
|
- } else if (this.statusMessage == loadingString) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
- }
|
|
-
|
|
- this.checkVMWarning();
|
|
- if (wasDelta && !this.render.getDeltaMode()) {
|
|
- this.statusMessage = arrowKeyMsg;
|
|
- wasDelta = false;
|
|
- this.driveButton.drawCursed();
|
|
- }
|
|
-
|
|
- synchronized(this.status) {
|
|
- if (this.statusMessage != this.lastStatus && this.overrideMessage == null) {
|
|
- this.lastStatus = this.statusMessage;
|
|
- this.status.setText(this.statusMessage);
|
|
- }
|
|
- }
|
|
-
|
|
- synchronized(this.nextAvatarMutex) {
|
|
- if (this.nextAvatar != null) {
|
|
- this.setAvatar(this.nextAvatar);
|
|
- this.nextAvatar = null;
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.notifyOfChange();
|
|
- }
|
|
-
|
|
- if (this.nextAvatarItem != null) {
|
|
- this.setCurrentAvatarItem(this.nextAvatarItem);
|
|
- this.nextAvatarItem = null;
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- private void checkVMWarning() {
|
|
- int var1 = Std.getFastTime();
|
|
- if (var1 > this.lastVMCheck + 10000) {
|
|
- StatMemNode var2 = StatMemNode.getNode();
|
|
- var2.updateMemoryStatus();
|
|
- if (var2._availPageMem < 0) {
|
|
- var2._availPageMem = 2000000000;
|
|
- }
|
|
-
|
|
- if (var2._totPhysMem < 0) {
|
|
- var2._totPhysMem = 2000000000;
|
|
- }
|
|
-
|
|
- physMem = var2._totPhysMem;
|
|
- if (var2._availPageMem >= 4194304) {
|
|
- if (var2._availPageMem > 5242880 && this.lastVMBigWarning != 0) {
|
|
- if (var2._availPageMem > 10485760) {
|
|
- Console.println(Console.message("plenty-virt"));
|
|
- this.lastVMBigWarning = 0;
|
|
- } else if (!this.showedMidWarn) {
|
|
- Console.println(Console.message("plenty-virt-mem"));
|
|
- this.showedMidWarn = true;
|
|
- }
|
|
-
|
|
- if (this.statusMessage == lowVMMsg) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
- }
|
|
- } else {
|
|
- if (this.lastVMBigWarning == 0 || this.showedMidWarn || var1 > this.lastVMBigWarning + 300000) {
|
|
- Console.println(Console.message("Low-virt-mem"));
|
|
- this.lastVMBigWarning = var1;
|
|
- this.showedMidWarn = false;
|
|
- }
|
|
-
|
|
- this.statusMessage = lowVMMsg;
|
|
- }
|
|
-
|
|
- Object[] var3 = new Object[]{new String(Std.getProductName()), new Integer(24)};
|
|
- if (startupMemCheck) {
|
|
- if (var2._totPhysMem < 24000000) {
|
|
- String var4 = MessageFormat.format(Console.message("Mem-detected"), var3);
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Too-Little-RAM"), (String)null, Console.message("OK"), var4, true);
|
|
- }
|
|
-
|
|
- startupMemCheck = false;
|
|
- System.out.println("System has " + var2._totPhysMem + " bytes of physical RAM");
|
|
- }
|
|
-
|
|
- this.lastVMCheck = var1;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public URL getAvatarName() {
|
|
- return this.avatarURL;
|
|
- }
|
|
-
|
|
- public void setServerURL(URL var1) {
|
|
- super.setServerURL(var1);
|
|
- }
|
|
-
|
|
- public void dialogDone(Object var1, boolean var2) {
|
|
- if (var1 instanceof QuitDialog) {
|
|
- if (var2) {
|
|
- Console.quit();
|
|
- }
|
|
- } else {
|
|
- String var4;
|
|
- if (var1 instanceof BootDialog) {
|
|
+ public URL getAvatarName() {
|
|
+ return this.avatarURL;
|
|
+ }
|
|
+
|
|
+ public void setServerURL(URL var1) {
|
|
+ super.setServerURL(var1);
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var1 instanceof QuitDialog) {
|
|
if (var2) {
|
|
- BootDialog var3 = (BootDialog)var1;
|
|
- var4 = var3.getBoot();
|
|
- if (!var4.equals("")) {
|
|
- Pilot.sendText("world", "!boot " + var4);
|
|
- }
|
|
+ Console.quit();
|
|
}
|
|
- } else if (var1 instanceof ChannelDialog) {
|
|
- if (var2) {
|
|
- ChannelDialog var9 = (ChannelDialog)var1;
|
|
- var4 = var9.getChannel();
|
|
- Pilot var5 = Pilot.getActive();
|
|
- String var6 = var5 != null ? var5.getURL() : null;
|
|
- if (var6 != null) {
|
|
- int var7 = var6.indexOf("<");
|
|
- int var8 = var6.indexOf(">");
|
|
- if (var7 >= 0 && var8 > var7) {
|
|
- TeleportAction.teleport(var6.substring(0, var7 + 1) + var4 + var6.substring(var8), (TeleportStatus)null);
|
|
- }
|
|
- } else {
|
|
- Console.println(Console.message("cant-determine"));
|
|
- }
|
|
- }
|
|
- } else if (var1 instanceof LoginWizard) {
|
|
- Debug.dAssert(false);
|
|
- } else if (var1 instanceof CDControl) {
|
|
- if (this.cdcontrol == var1) {
|
|
- this.cdcontrol = null;
|
|
- }
|
|
- } else if (var1 instanceof InternetConnectionDialog) {
|
|
- Debug.dAssert(false);
|
|
- } else if (var1 == this.reloginDialog) {
|
|
- if (var2) {
|
|
- Galaxy.forceOffline(true);
|
|
+ } else {
|
|
+ String var4;
|
|
+ if (var1 instanceof BootDialog) {
|
|
+ if (var2) {
|
|
+ BootDialog var3 = (BootDialog)var1;
|
|
+ var4 = var3.getBoot();
|
|
+ if (!var4.equals("")) {
|
|
+ Pilot.sendText("world", "!boot " + var4);
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 instanceof ChannelDialog) {
|
|
+ if (var2) {
|
|
+ ChannelDialog var9 = (ChannelDialog)var1;
|
|
+ var4 = var9.getChannel();
|
|
+ Pilot var5 = Pilot.getActive();
|
|
+ String var6 = var5 != null ? var5.getURL() : null;
|
|
+ if (var6 != null) {
|
|
+ int var7 = var6.indexOf("<");
|
|
+ int var8 = var6.indexOf(">");
|
|
+ if (var7 >= 0 && var8 > var7) {
|
|
+ TeleportAction.teleport(var6.substring(0, var7 + 1) + var4 + var6.substring(var8), (TeleportStatus)null);
|
|
+ }
|
|
+ } else {
|
|
+ Console.println(Console.message("cant-determine"));
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 instanceof LoginWizard) {
|
|
+ Debug.dAssert(false);
|
|
+ } else if (var1 instanceof CDControl) {
|
|
+ if (this.cdcontrol == var1) {
|
|
+ this.cdcontrol = null;
|
|
+ }
|
|
+ } else if (var1 instanceof InternetConnectionDialog) {
|
|
+ Debug.dAssert(false);
|
|
+ } else if (var1 == this.reloginDialog) {
|
|
+ if (var2) {
|
|
+ Galaxy.forceOffline(true);
|
|
+ }
|
|
+
|
|
+ this.reloginDialog = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setAvatar(URL var1) {
|
|
+ this.avatarURL = var1;
|
|
+ boolean var2 = var1.getInternal().toLowerCase().endsWith(".rwg");
|
|
+ boolean var3 = var1.equals(getDefaultURL()) && !this.getGalaxy().getOnline();
|
|
+ if (!this.getVIPAvatars() && var2 && !var3) {
|
|
+ Console.println(Console.message("Only-VIPs") + " '" + SelectAvatarAction.getPrettyAvatarName(var1.getBase()) + "'.");
|
|
+ } else if (VehicleShape.isVehicle(var1)) {
|
|
+ this.tempCarAvatar = var1.getAbsolute();
|
|
+ super.setAvatar(var1);
|
|
+ } else {
|
|
+ this.tempCarAvatar = "";
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.customize.setEnabled(!var1.getAbsolute().endsWith("mov"));
|
|
+ }
|
|
+
|
|
+ if (!var1.equals(this.getDefaultAvatarURL())) {
|
|
+ if (this.getVIPAvatars()) {
|
|
+ if (!var2) {
|
|
+ IniFile.gamma().setIniString("VIPAVATAR", "");
|
|
+ } else {
|
|
+ IniFile.gamma().setIniString("VIPAVATAR", var1.getAbsolute());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!var2) {
|
|
+ IniFile.gamma().setIniString("AVATAR", var1.getAbsolute());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.setAvatar(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private CheckboxMenuItem findAvatar(Vector var1, String var2) {
|
|
+ if (var1 != null) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ CheckboxMenuItem var5 = (CheckboxMenuItem)var1.elementAt(var4);
|
|
+ if (var5.getLabel().equals(var2)) {
|
|
+ return var5;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ protected void loadPilot(URL var1) {
|
|
+ super.loadPilot(var1);
|
|
+ this.findAvatarMenuItem(var1);
|
|
+ }
|
|
+
|
|
+ public void setChatname(String var1) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ if (var1.length() != 0) {
|
|
+ String var2 = (this.getVIP() ? (vip > 1 ? Console.message("VIP") + " " : Console.message("vip")) + " " : "") + "\"" + Console.parseUnicode(var1) + "\"";
|
|
+ this.yourName.setText(var2);
|
|
+ IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(var2));
|
|
+ } else {
|
|
+ this.yourName.setText(Console.message("Off-line"));
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void connectionCallback(Object var1, boolean var2) {
|
|
+ super.connectionCallback(var1, var2);
|
|
+ if (var1 instanceof Galaxy) {
|
|
+ if (var1 != this.galaxy) {
|
|
+ return;
|
|
}
|
|
|
|
- this.reloginDialog = null;
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setAvatar(URL var1) {
|
|
- this.avatarURL = var1;
|
|
- boolean var2 = var1.getInternal().toLowerCase().endsWith(".rwg");
|
|
- boolean var3 = var1.equals(getDefaultURL()) && !this.getGalaxy().getOnline();
|
|
- if (!this.getVIPAvatars() && var2 && !var3) {
|
|
- Console.println(Console.message("Only-VIPs") + " '" + SelectAvatarAction.getPrettyAvatarName(var1.getBase()) + "'.");
|
|
- } else if (VehicleShape.isVehicle(var1)) {
|
|
- this.tempCarAvatar = var1.getAbsolute();
|
|
- super.setAvatar(var1);
|
|
- } else {
|
|
- this.tempCarAvatar = "";
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.customize.setEnabled(!var1.getAbsolute().endsWith("mov"));
|
|
- }
|
|
-
|
|
- if (!var1.equals(this.getDefaultAvatarURL())) {
|
|
- if (this.getVIPAvatars()) {
|
|
- if (!var2) {
|
|
- IniFile.gamma().setIniString("VIPAVATAR", "");
|
|
- } else {
|
|
- IniFile.gamma().setIniString("VIPAVATAR", var1.getAbsolute());
|
|
- }
|
|
- }
|
|
-
|
|
- if (!var2) {
|
|
- IniFile.gamma().setIniString("AVATAR", var1.getAbsolute());
|
|
- }
|
|
- }
|
|
-
|
|
- super.setAvatar(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- private CheckboxMenuItem findAvatar(Vector var1, String var2) {
|
|
- if (var1 != null) {
|
|
- int var3 = var1.size();
|
|
-
|
|
- for(int var4 = 0; var4 < var3; ++var4) {
|
|
- CheckboxMenuItem var5 = (CheckboxMenuItem)var1.elementAt(var4);
|
|
- if (var5.getLabel().equals(var2)) {
|
|
- return var5;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- protected void loadPilot(URL var1) {
|
|
- super.loadPilot(var1);
|
|
- this.findAvatarMenuItem(var1);
|
|
- }
|
|
-
|
|
- public void setChatname(String var1) {
|
|
- Debug.dAssert(var1 != null);
|
|
- if (var1.length() != 0) {
|
|
- String var2 = (this.getVIP() ? (vip > 1 ? Console.message("VIP") + " " : Console.message("vip")) + " " : "") + "\"" + Console.parseUnicode(var1) + "\"";
|
|
- this.yourName.setText(var2);
|
|
- IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(var2));
|
|
- } else {
|
|
- this.yourName.setText(Console.message("Off-line"));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void connectionCallback(Object var1, boolean var2) {
|
|
- super.connectionCallback(var1, var2);
|
|
- if (var1 instanceof Galaxy) {
|
|
- if (var1 != this.galaxy) {
|
|
- return;
|
|
- }
|
|
-
|
|
- if (var2) {
|
|
- WorldServer var3 = this.getServerNew();
|
|
- this.friends.setServer(var3, this.getGalaxy().getIniSection());
|
|
- this.mutes.setServer(var3, this.getGalaxy().getIniSection());
|
|
- if (vip < 2) {
|
|
- Console.println(vip == 1 ? Console.message("Press-full-VIP") : Console.message("Press-VIP"));
|
|
- }
|
|
-
|
|
- PosableShape.downloadPermittedNames();
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void galaxyDisconnected() {
|
|
- super.galaxyDisconnected();
|
|
- this.getFriends().maybeServerDisconnect();
|
|
- }
|
|
-
|
|
- public boolean okToQuit() {
|
|
- int var1 = IniFile.override().getIniInt("QuitDialog", 1);
|
|
- if (var1 == 1) {
|
|
- new QuitDialog(getFrame(), this);
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public Rectangle getBrowserPlacement() {
|
|
- String var1 = IniFile.gamma().getIniString("BROWSERWINDOW", "");
|
|
- if (var1.length() != 0) {
|
|
- StringTokenizer var2 = new StringTokenizer(var1, " ,");
|
|
-
|
|
- try {
|
|
- return new Rectangle(Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()));
|
|
- } catch (NumberFormatException var10) {
|
|
- } catch (NoSuchElementException var11) {
|
|
- }
|
|
- }
|
|
-
|
|
- Point var12 = this.menuButtons.getLocationOnScreen();
|
|
- int var3 = this.menuButtons.getLocationOnScreen().x - (int)((double)this.menuButtons.getSize().width * 0.7D);
|
|
- int var4 = Window.getSystemMetrics(32);
|
|
- int var5 = Toolkit.getDefaultToolkit().getScreenSize().width;
|
|
- int var6 = Math.min(var5, 640) + 2 * var4;
|
|
- int var7 = 0;
|
|
- if (var3 != var6) {
|
|
- if (var3 > var6) {
|
|
- var7 += var3 - var6;
|
|
- }
|
|
-
|
|
- var3 = var6;
|
|
- }
|
|
-
|
|
- if (var3 > var5) {
|
|
- var7 += -var4;
|
|
- }
|
|
-
|
|
- int var8 = this.chat.listen.getLocationOnScreen().y + this.chat.listen.getSize().height - this.chat.line.getSize().height;
|
|
- int var9 = 0;
|
|
- if (var8 > 540) {
|
|
- var9 += var8 - 540;
|
|
- var8 = 540;
|
|
- }
|
|
-
|
|
- return new Rectangle(var7, var9, var3, var8);
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = URLPropertyEditor.make(new Property(this, var1, "Avatar"), "rwg;mov");
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.lastPilotRequested;
|
|
- } else if (var3 == 2) {
|
|
- this.setNextAvatar((URL)var4, (CheckboxMenuItem)null);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (var3 == 0) {
|
|
- var5 = BooleanPropertyEditor.make(new Property(this, var1, "Collect garbage"), "No", "Yes");
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Boolean(false);
|
|
- } else if (var3 == 2 && (Boolean)var4) {
|
|
- System.gc();
|
|
- System.runFinalization();
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(0, classCookie);
|
|
- super.saveState(var1);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- int var2 = var1.restoreVersion(classCookie);
|
|
- switch(var2) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- static {
|
|
- lLength = lNames.length;
|
|
- lLangs = new MenuItem[lLength];
|
|
- newLocale = new Locale[lLength];
|
|
- lCodes = new String[lLength][2];
|
|
- signIn = Console.message("Sign-In");
|
|
- signOut = Console.message("Sign-Out");
|
|
- signingIn = Console.message("Signing-In");
|
|
- noMultiUser = Console.message("Network");
|
|
- enable3D = Console.message("Enable3D");
|
|
- disable3D = Console.message("Disable3D");
|
|
- showTags = Console.message("ShowNametags");
|
|
- hideTags = Console.message("HideNametags");
|
|
- enableClassicChat = Console.message("EnableClassicChat");
|
|
- disableClassicChat = Console.message("DisableClassicChat");
|
|
- sleepStatus = Console.message("Sleeping");
|
|
- lastWorldName = "";
|
|
- lowVMMsg = Console.message("Low-virt");
|
|
- startupMemCheck = true;
|
|
- classCookie = new Object();
|
|
- }
|
|
-
|
|
- private class CameraSpeed {
|
|
- public String speedName;
|
|
- public int speedID;
|
|
-
|
|
- public CameraSpeed(String var2, int var3) {
|
|
- this.speedName = var2;
|
|
- this.speedID = var3;
|
|
- }
|
|
- }
|
|
-
|
|
- private class CameraView {
|
|
- public String viewName;
|
|
- public int viewID;
|
|
-
|
|
- public CameraView(String var2, int var3) {
|
|
- this.viewName = var2;
|
|
- this.viewID = var3;
|
|
- }
|
|
- }
|
|
+ if (var2) {
|
|
+ WorldServer var3 = this.getServerNew();
|
|
+ this.friends.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ this.mutes.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ this.tars.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ if (vip < 2) {
|
|
+ Console.println(vip == 1 ? Console.message("Press-full-VIP") : Console.message("Press-VIP"));
|
|
+ }
|
|
+
|
|
+ PosableShape.downloadPermittedNames();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void galaxyDisconnected() {
|
|
+ super.galaxyDisconnected();
|
|
+ this.getFriends().maybeServerDisconnect();
|
|
+ }
|
|
+
|
|
+ public boolean okToQuit() {
|
|
+ int var1 = IniFile.override().getIniInt("QuitDialog", 1);
|
|
+ if (var1 == 1) {
|
|
+ new QuitDialog(getFrame(), this);
|
|
+ return false;
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Rectangle getBrowserPlacement() {
|
|
+ String var1 = IniFile.gamma().getIniString("BROWSERWINDOW", "");
|
|
+ if (var1.length() != 0) {
|
|
+ StringTokenizer var2 = new StringTokenizer(var1, " ,");
|
|
+
|
|
+ try {
|
|
+ return new Rectangle(Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()));
|
|
+ } catch (NumberFormatException var10) {
|
|
+ } catch (NoSuchElementException var11) {
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Point var12 = this.menuButtons.getLocationOnScreen();
|
|
+ int var3 = this.menuButtons.getLocationOnScreen().x - (int)((double)this.menuButtons.getSize().width * 0.7D);
|
|
+ int var4 = Window.getSystemMetrics(32);
|
|
+ int var5 = Toolkit.getDefaultToolkit().getScreenSize().width;
|
|
+ int var6 = Math.min(var5, 640) + 2 * var4;
|
|
+ int var7 = 0;
|
|
+ if (var3 != var6) {
|
|
+ if (var3 > var6) {
|
|
+ var7 += var3 - var6;
|
|
+ }
|
|
+
|
|
+ var3 = var6;
|
|
+ }
|
|
+
|
|
+ if (var3 > var5) {
|
|
+ var7 += -var4;
|
|
+ }
|
|
+
|
|
+ int var8 = this.chat.listen.getLocationOnScreen().y + this.chat.listen.getSize().height - this.chat.line.getSize().height;
|
|
+ int var9 = 0;
|
|
+ if (var8 > 540) {
|
|
+ var9 += var8 - 540;
|
|
+ var8 = 540;
|
|
+ }
|
|
+
|
|
+ return new Rectangle(var7, var9, var3, var8);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make(new Property(this, var1, "Avatar"), "rwg;mov;rwx");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.lastPilotRequested;
|
|
+ } else if (var3 == 2) {
|
|
+ this.setNextAvatar((URL)var4, (CheckboxMenuItem)null);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Collect garbage"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(false);
|
|
+ } else if (var3 == 2 && ((Boolean)var4).booleanValue()) {
|
|
+ System.gc();
|
|
+ System.runFinalization();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ lLength = lNames.length;
|
|
+ lLangs = new MenuItem[lLength];
|
|
+ newLocale = new Locale[lLength];
|
|
+ lCodes = new String[lLength][2];
|
|
+ signIn = Console.message("Sign-In");
|
|
+ signOut = Console.message("Sign-Out");
|
|
+ signingIn = Console.message("Signing-In");
|
|
+ noMultiUser = Console.message("Network");
|
|
+ enable3D = Console.message("Enable3D");
|
|
+ disable3D = Console.message("Disable3D");
|
|
+ showTags = Console.message("ShowNametags");
|
|
+ hideTags = Console.message("HideNametags");
|
|
+ enableClassicChat = Console.message("EnableClassicChat");
|
|
+ disableClassicChat = Console.message("DisableClassicChat");
|
|
+ sleepStatus = Console.message("Sleeping");
|
|
+ lastWorldName = "";
|
|
+ lowVMMsg = Console.message("Low-virt");
|
|
+ startupMemCheck = true;
|
|
+ classCookie = new Object();
|
|
+ }
|
|
+
|
|
+ private class CameraSpeed {
|
|
+ public String speedName;
|
|
+ public int speedID;
|
|
+
|
|
+ public CameraSpeed(String var2, int var3) {
|
|
+ this.speedName = var2;
|
|
+ this.speedID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class CameraView {
|
|
+ public String viewName;
|
|
+ public int viewID;
|
|
+
|
|
+ public CameraView(String var2, int var3) {
|
|
+ this.viewName = var2;
|
|
+ this.viewID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class WhisperPrivacy {
|
|
+ public String whisperName;
|
|
+ public int whisperID;
|
|
+
|
|
+ public WhisperPrivacy(String var2, int var3) {
|
|
+ this.whisperName = var2;
|
|
+ this.whisperID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class TeleportPrivacy {
|
|
+ public String teleportName;
|
|
+ public int teleportID;
|
|
+
|
|
+ public TeleportPrivacy(String var2, int var3) {
|
|
+ this.teleportName = var2;
|
|
+ this.teleportID = var3;
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/FriendsListPart.java b/1904/NET/worlds/console/FriendsListPart.java
|
|
--- a/1904/NET/worlds/console/FriendsListPart.java 2020-08-06 15:46:22.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/FriendsListPart.java 2023-09-24 20:22:11.000000000 -0500
|
|
@@ -3,14 +3,7 @@
|
|
import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.Std;
|
|
-import NET.worlds.network.BuddyListUpdateCmd;
|
|
-import NET.worlds.network.Galaxy;
|
|
-import NET.worlds.network.InfiniteWaitException;
|
|
-import NET.worlds.network.NetUpdate;
|
|
-import NET.worlds.network.PacketTooLargeException;
|
|
-import NET.worlds.network.WorldServer;
|
|
-import NET.worlds.network.netPacket;
|
|
-import NET.worlds.network.whisperCmd;
|
|
+import NET.worlds.network.*;
|
|
import NET.worlds.scape.AnimatedActionManager;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.FrameEvent;
|
|
@@ -20,6 +13,8 @@
|
|
import NET.worlds.scape.PosableShape;
|
|
import NET.worlds.scape.TeleportAction;
|
|
import NET.worlds.scape.TeleportStatus;
|
|
+import NET.worldsplus.Themer;
|
|
+
|
|
import java.awt.Color;
|
|
import java.awt.Container;
|
|
import java.awt.Dimension;
|
|
@@ -30,6 +25,7 @@
|
|
import java.awt.Menu;
|
|
import java.awt.MenuItem;
|
|
import java.awt.PopupMenu;
|
|
+import java.awt.Window;
|
|
import java.awt.image.ImageObserver;
|
|
import java.io.IOException;
|
|
import java.text.MessageFormat;
|
|
@@ -38,935 +34,967 @@
|
|
import java.util.Vector;
|
|
|
|
public class FriendsListPart extends QuantizedCanvas implements FramePart, DialogReceiver, DialogDisabled, NameListOwner {
|
|
- private static final String oldIniItemName = "Friends";
|
|
- private static final String iniItemName = "Friend";
|
|
- private static int maxFriends = Gamma.shaperEnabled() ? 60 : 30;
|
|
- private static int absMaxFriends = 100;
|
|
- private static final String separator = ";";
|
|
- private static final String whereQuery = "&|+where?";
|
|
- private static final String whereResponse = "&|+where>";
|
|
- VoiceChat chatter = new VoiceChat();
|
|
- private static final int MOUSEMOVE = 0;
|
|
- private static final int MOUSEDRAG = 1;
|
|
- private static final int MOUSEDOWN = 2;
|
|
- private static final int MOUSEUP = 3;
|
|
- private static final int MOUSEENTER = 4;
|
|
- private static final int MOUSEEXIT = 5;
|
|
- private static final int BLANK = 0;
|
|
- private static final int NORMAL = 1;
|
|
- private static final int CURSED = 2;
|
|
- private static final int DOWN = 3;
|
|
- private static final int TELEPORT_IDLE = 0;
|
|
- private static final int TELEPORT_REQUEST_LOCATION = 1;
|
|
- private static final int TELEPORT_WAIT_FOR_LOCATION = 2;
|
|
- private static final int buttonWidth = 97;
|
|
- private static final int buttonHeight = 11;
|
|
- private static final int xText = 20;
|
|
- private static final int yText = 9;
|
|
- private static final int xTextClip = 94;
|
|
- private static Image friendsImage;
|
|
- private static Image moreFriendsImage;
|
|
- private static Font font;
|
|
- private static FriendsListPart active;
|
|
- private Vector friends = new Vector();
|
|
- private Vector onlineFriends = new Vector();
|
|
- private Vector mutedOnlineFriends = new Vector();
|
|
- private Vector serverUpdates = new Vector();
|
|
- private Object friendsMutex = new Object();
|
|
- private int cursedButton = -1;
|
|
- private int clickedButton = -1;
|
|
- private boolean clickedButtonDown;
|
|
- private PopupMenu menu;
|
|
- private MenuItem teleportItem = new MenuItem(Console.message("Go-There"));
|
|
- private MenuItem emailItem = new MenuItem(Console.message("E-Mail"));
|
|
- private MenuItem muteItem = new MenuItem(Console.message("Mute"));
|
|
- private MenuItem whisperItem = new MenuItem(Console.message("Whisper"));
|
|
- private MenuItem voiceChatItem = new MenuItem(Console.message("Voice-Chat"));
|
|
- private MenuItem infoItem = new MenuItem(Console.message("Personal-I"));
|
|
- private MenuItem tradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
- private PopupMenu droneMenu;
|
|
- private MenuItem droneAddItem = new MenuItem(Console.message("Add-2-friends"));
|
|
- private MenuItem droneEmailItem = new MenuItem(Console.message("E-Mail"));
|
|
- private MenuItem droneMuteItem = new MenuItem(Console.message("Mute"));
|
|
- private MenuItem droneWhisperItem = new MenuItem(Console.message("Whisper"));
|
|
- private MenuItem droneVoiceChatItem = new MenuItem(Console.message("Voice-Chat"));
|
|
- private MenuItem droneInfoItem = new MenuItem(Console.message("Personal-I"));
|
|
- private MenuItem droneTradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
- private String activeFriendName = "";
|
|
- private String teleportTarget;
|
|
- private int teleportState = 0;
|
|
- private int teleportWaitStartTime;
|
|
- private boolean teleportWaitSentMsg;
|
|
- private int friendsButtons;
|
|
- private int moreFriendsButton;
|
|
- private boolean moreFriendsActive;
|
|
- private MenuItem editItem;
|
|
- private Menu actionMenu;
|
|
- private MoreFriendsDialog moreFriendsDialog;
|
|
- private DefaultConsole console;
|
|
- private Galaxy galaxy;
|
|
- private IniFile serverSection;
|
|
- private boolean isDialogDisabled;
|
|
- private int showMenuY = -1;
|
|
- private static final String voiceChatWhisper = "&|+voicechat";
|
|
-
|
|
- public FriendsListPart() {
|
|
- AnimatedActionManager.get();
|
|
- String var1;
|
|
- if (font == null) {
|
|
- var1 = IniFile.override().getIniString("friendsGif", "friends.gif");
|
|
- friendsImage = ImageCanvas.getSystemImage(var1, this);
|
|
- String var2 = IniFile.override().getIniString("moreFriendsGif", Console.message("mfriends.gif"));
|
|
- moreFriendsImage = ImageCanvas.getSystemImage(var2, this);
|
|
- int var3 = new Integer(Console.message("FriendsPointSize"));
|
|
- font = new Font(Console.message("FriendsFont"), 0, var3);
|
|
- }
|
|
-
|
|
- this.teleportItem.setFont(font);
|
|
- this.emailItem.setFont(font);
|
|
- this.muteItem.setFont(font);
|
|
- this.whisperItem.setFont(font);
|
|
- this.tradeItem.setFont(font);
|
|
- this.voiceChatItem.setFont(font);
|
|
- this.infoItem.setFont(font);
|
|
- this.menu = new PopupMenu();
|
|
- this.menu.add(this.teleportItem);
|
|
- var1 = IniFile.override().getIniString("ProductName", "");
|
|
- if (!var1.equalsIgnoreCase("RedLightWorld")) {
|
|
- this.menu.add(this.emailItem);
|
|
- }
|
|
-
|
|
- this.menu.add(this.muteItem);
|
|
- this.menu.add(this.whisperItem);
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- this.menu.add(this.tradeItem);
|
|
- }
|
|
-
|
|
- this.menu.add(this.voiceChatItem);
|
|
- if (!VoiceChat.voiceChatAvailable()) {
|
|
- this.voiceChatItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.menu.add(this.infoItem);
|
|
- this.add(this.menu);
|
|
- this.droneAddItem.setFont(font);
|
|
- this.droneEmailItem.setFont(font);
|
|
- this.droneMuteItem.setFont(font);
|
|
- this.droneWhisperItem.setFont(font);
|
|
- this.droneTradeItem.setFont(font);
|
|
- this.droneVoiceChatItem.setFont(font);
|
|
- this.droneInfoItem.setFont(font);
|
|
- this.droneMenu = new PopupMenu();
|
|
- this.droneMenu.setFont(font);
|
|
- this.droneMenu.add(this.droneAddItem);
|
|
- this.droneMenu.add(this.droneEmailItem);
|
|
- this.droneMenu.add(this.droneMuteItem);
|
|
- this.droneMenu.add(this.droneWhisperItem);
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- this.droneMenu.add(this.droneTradeItem);
|
|
- }
|
|
-
|
|
- this.droneMenu.add(this.droneVoiceChatItem);
|
|
- if (!VoiceChat.voiceChatAvailable()) {
|
|
- this.droneVoiceChatItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.droneMenu.add(this.droneInfoItem);
|
|
- this.add(this.droneMenu);
|
|
- }
|
|
-
|
|
- public void update(Graphics var1) {
|
|
- this.paint(var1);
|
|
- }
|
|
-
|
|
- public void paint(Graphics var1) {
|
|
- int var2 = this.size().height;
|
|
- int var3 = var2 / 11;
|
|
- synchronized(this.friendsMutex) {
|
|
- int var5 = this.onlineFriends.size();
|
|
- this.moreFriendsButton = var3 - 1;
|
|
- if (var5 >= var3) {
|
|
- this.friendsButtons = var3 - 1;
|
|
- this.moreFriendsActive = true;
|
|
- } else {
|
|
- this.friendsButtons = var5;
|
|
- this.moreFriendsActive = false;
|
|
- }
|
|
-
|
|
- int var6 = var3 * 11;
|
|
- int var7 = var2 - var6;
|
|
- if (var7 > 0) {
|
|
- var1.setColor(Color.black);
|
|
- var1.fillRect(0, 0, 97, var7);
|
|
- }
|
|
-
|
|
- for(int var8 = 0; var8 < var3; ++var8) {
|
|
- int var9 = 1;
|
|
- if (var8 >= this.friendsButtons && !this.isMoreFriendsButton(var8)) {
|
|
- var9 = 0;
|
|
- } else if (var8 == this.clickedButton) {
|
|
- var9 = this.clickedButtonDown ? 3 : 1;
|
|
- } else if (var8 == this.cursedButton) {
|
|
- var9 = 2;
|
|
- }
|
|
-
|
|
- this.drawButton(var1, var8, var9);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public int getRemainder(int var1) {
|
|
- int var2 = var1 / 11;
|
|
- int var3 = var2 * 11;
|
|
- return var1 - var3;
|
|
- }
|
|
-
|
|
- public Dimension preferredSize() {
|
|
- return new Dimension(97, 1);
|
|
- }
|
|
-
|
|
- public Dimension minimumSize() {
|
|
- return this.preferredSize();
|
|
- }
|
|
-
|
|
- public boolean mouseMove(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 0);
|
|
- }
|
|
-
|
|
- public boolean mouseDown(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 2);
|
|
- }
|
|
-
|
|
- public boolean mouseUp(Event var1, int var2, int var3) {
|
|
- if (this.buttonAction(var2, var3, 3)) {
|
|
- if (this.showMenuY != -1) {
|
|
- this.menu.show(this, 0, this.showMenuY);
|
|
- this.showMenuY = -1;
|
|
- }
|
|
-
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mouseDrag(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 1);
|
|
- }
|
|
-
|
|
- public boolean mouseEnter(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 4);
|
|
- }
|
|
-
|
|
- public boolean mouseExit(Event var1, int var2, int var3) {
|
|
- return this.buttonAction(var2, var3, 5);
|
|
- }
|
|
-
|
|
- public boolean handleEvent(Event var1) {
|
|
- return this.isDialogDisabled ? false : super.handleEvent(var1);
|
|
- }
|
|
-
|
|
- private void loadFriends() {
|
|
- if (this.friends.size() != 0) {
|
|
- this.friends.removeAllElements();
|
|
- }
|
|
-
|
|
- if (Console.getActive().broadcastEnabled()) {
|
|
- maxFriends = 100;
|
|
- }
|
|
-
|
|
- for(int var1 = 0; var1 < absMaxFriends; ++var1) {
|
|
- String var2 = this.serverSection.getIniString("Friend" + var1, "");
|
|
- if (var2.length() == 0) {
|
|
- break;
|
|
- }
|
|
-
|
|
- if (isValidUserName(var2) && !icontains(this.friends, var2)) {
|
|
- this.friends.addElement(var2);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.friends.size() == 0) {
|
|
- String var4 = this.serverSection.getIniString("Friends", "");
|
|
- StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
-
|
|
- while(var5.hasMoreTokens() && this.friends.size() < absMaxFriends) {
|
|
- String var3 = var5.nextToken();
|
|
- if (isValidUserName(var3) && !icontains(this.friends, var3)) {
|
|
- this.friends.addElement(var3);
|
|
- }
|
|
- }
|
|
|
|
- if (this.friends.size() != 0) {
|
|
- this.saveFriends();
|
|
- this.serverSection.setIniString("Friends", "");
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- void saveFriends() {
|
|
- if (this.serverSection != null) {
|
|
- int var1 = this.friends.size();
|
|
-
|
|
- for(int var2 = 0; var2 < var1; ++var2) {
|
|
- this.serverSection.setIniString("Friend" + var2, (String)this.friends.elementAt(var2));
|
|
- }
|
|
-
|
|
- this.serverSection.setIniString("Friend" + var1, "");
|
|
- }
|
|
- }
|
|
-
|
|
- private boolean isMoreFriendsButton(int var1) {
|
|
- return var1 == this.moreFriendsButton && this.moreFriendsActive;
|
|
- }
|
|
-
|
|
- private Graphics drawButton(Graphics var1, int var2, int var3) {
|
|
- Image var4 = var2 == this.moreFriendsButton ? moreFriendsImage : friendsImage;
|
|
- if (var1 != null || (var1 = this.getGraphics()) != null) {
|
|
- int var5 = var2 * 11;
|
|
- Graphics var6 = var1.create(0, var5, 97, 11);
|
|
- var6.drawImage(var4, -var3 * 97, 0, (ImageObserver)null);
|
|
- if (var2 >= 0 && var2 < this.friendsButtons && var2 < this.onlineFriends.size()) {
|
|
- var6.clipRect(0, 0, 94, 11);
|
|
- var6.setFont(font);
|
|
- var6.setColor(Color.white);
|
|
- var6.drawString((String)this.onlineFriends.elementAt(var2), 20, 9);
|
|
- }
|
|
-
|
|
- var6.dispose();
|
|
- }
|
|
-
|
|
- return var1;
|
|
- }
|
|
-
|
|
- private boolean buttonAction(int var1, int var2, int var3) {
|
|
- synchronized(this.friendsMutex) {
|
|
- Graphics var5 = null;
|
|
- int var6 = var2 / 11;
|
|
- if ((var6 < 0 || var6 >= this.friendsButtons) && !this.isMoreFriendsButton(var6)) {
|
|
- var6 = -1;
|
|
- }
|
|
-
|
|
- if (var3 != 0 && var3 != 4) {
|
|
- if (var3 == 5) {
|
|
- if (this.cursedButton != -1) {
|
|
- var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
- this.cursedButton = -1;
|
|
- }
|
|
-
|
|
- if (this.clickedButton != -1 && this.clickedButtonDown) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
- } else if (var3 == 2) {
|
|
- if (this.clickedButton != -1) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
-
|
|
- if ((this.clickedButton = var6) != -1) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
- this.clickedButtonDown = true;
|
|
- }
|
|
- } else if (var3 == 1) {
|
|
- if (this.clickedButton != -1) {
|
|
- if (this.clickedButtonDown) {
|
|
- if (var6 != this.clickedButton) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
- } else if (var6 == this.clickedButton) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
- this.clickedButtonDown = true;
|
|
- }
|
|
- }
|
|
- } else if (var3 == 3) {
|
|
- this.cursedButton = var6;
|
|
- if (this.clickedButtonDown) {
|
|
- if (this.cursedButton == this.clickedButton) {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 2);
|
|
- } else {
|
|
- var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
- }
|
|
-
|
|
- if (this.clickedButton == this.moreFriendsButton) {
|
|
- if (this.moreFriendsDialog == null) {
|
|
- this.moreFriendsDialog = new MoreFriendsDialog(this, this.menu, this.onlineFriends);
|
|
- }
|
|
- } else if (this.clickedButton >= 0 && this.clickedButton < this.onlineFriends.size()) {
|
|
- this.activeFriendName = (String)this.onlineFriends.elementAt(this.clickedButton);
|
|
- Debug.assert(this.activeFriendName != null);
|
|
- this.showMenuY = (this.clickedButton + 1) * 11;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.cursedButton != this.clickedButton) {
|
|
- var5 = this.drawButton(var5, this.cursedButton, 2);
|
|
- }
|
|
-
|
|
- this.clickedButtonDown = false;
|
|
- this.clickedButton = -1;
|
|
- }
|
|
- } else if (var6 != this.cursedButton) {
|
|
- var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
- var5 = this.drawButton(var5, this.cursedButton = var6, 2);
|
|
- }
|
|
-
|
|
- if (var5 != null) {
|
|
- var5.dispose();
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- private static boolean sendMsg(WorldServer var0, netPacket var1) {
|
|
- try {
|
|
- var0.sendNetworkMsg(var1);
|
|
- return true;
|
|
- } catch (InfiniteWaitException var3) {
|
|
- } catch (PacketTooLargeException var4) {
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public void activate(Console var1, Container var2, Console var3) {
|
|
- active = this;
|
|
- this.console = (DefaultConsole)var1;
|
|
- this.editItem = var1.addMenuItem(Console.message("Edit-Friends"), "Options");
|
|
- this.editItem.setEnabled(this.friends != null);
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- active = null;
|
|
- this.editItem = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- if (var1.target == this.editItem) {
|
|
- new EditNamesDialog(this, Console.message("Edit-Friends2"), Console.message("Add-Friend"));
|
|
- return true;
|
|
- } else {
|
|
- return this.maybeFriendAction(var1.target);
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent var1) {
|
|
- int var3;
|
|
- synchronized(this.friendsMutex) {
|
|
- var3 = this.serverUpdates.size();
|
|
- if (var3 != 0) {
|
|
- WorldServer var4 = this.console.getServerNew();
|
|
- if (var4 != null) {
|
|
- while(var3-- != 0 && sendMsg(var4, (netPacket)this.serverUpdates.elementAt(0))) {
|
|
- this.serverUpdates.removeElementAt(0);
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- synchronized(this) {
|
|
- if (this.teleportState == 1) {
|
|
- WorldServer var9 = this.console.getServerNew();
|
|
- if (var9 != null) {
|
|
- sendMsg(var9, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
- this.teleportState = 2;
|
|
- this.teleportWaitStartTime = Std.getRealTime();
|
|
- this.teleportWaitSentMsg = false;
|
|
+ private static final String oldIniItemName = "Friends";
|
|
+ private static final String iniItemName = "Friend";
|
|
+ private static final String separator = ";";
|
|
+ private static final String whereQuery = "&|+where?";
|
|
+ private static final String whereResponse = "&|+where>";
|
|
+ VoiceChat chatter = new VoiceChat();
|
|
+ private static final int MOUSEMOVE = 0;
|
|
+ private static final int MOUSEDRAG = 1;
|
|
+ private static final int MOUSEDOWN = 2;
|
|
+ private static final int MOUSEUP = 3;
|
|
+ private static final int MOUSEENTER = 4;
|
|
+ private static final int MOUSEEXIT = 5;
|
|
+ private static final int BLANK = 0;
|
|
+ private static final int NORMAL = 1;
|
|
+ private static final int CURSED = 2;
|
|
+ private static final int DOWN = 3;
|
|
+ private static final int TELEPORT_IDLE = 0;
|
|
+ private static final int TELEPORT_REQUEST_LOCATION = 1;
|
|
+ private static final int TELEPORT_WAIT_FOR_LOCATION = 2;
|
|
+ private static final int buttonWidth = 97;
|
|
+ private static final int buttonHeight = 11;
|
|
+ private static final int xText = 20;
|
|
+ private static final int yText = 9;
|
|
+ private static final int xTextClip = 94;
|
|
+ private static Image friendsImage;
|
|
+ private static Image moreFriendsImage;
|
|
+ private static Font font;
|
|
+ public static FriendsListPart active;
|
|
+ public static Vector friends = new Vector();
|
|
+ private Vector onlineFriends = new Vector();
|
|
+ private Vector mutedOnlineFriends = new Vector();
|
|
+ private Vector serverUpdates = new Vector();
|
|
+ private Object friendsMutex = new Object();
|
|
+ private int cursedButton = -1;
|
|
+ private int clickedButton = -1;
|
|
+ private boolean clickedButtonDown;
|
|
+ private PopupMenu menu;
|
|
+ private MenuItem teleportItem = new MenuItem(Console.message("Go-There"));
|
|
+ private MenuItem fremoveItem = new MenuItem(Console.message("remove-friend"));
|
|
+ private MenuItem whereIsItem = new MenuItem(Console.message("where-is"));
|
|
+ private MenuItem emailItem = new MenuItem(Console.message("E-Mail"));
|
|
+ private MenuItem muteItem = new MenuItem(Console.message("Mute"));
|
|
+ private MenuItem whisperItem = new MenuItem(Console.message("Whisper"));
|
|
+ private MenuItem infoItem = new MenuItem(Console.message("Personal-I"));
|
|
+ private MenuItem tradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
+ private PopupMenu droneMenu;
|
|
+ private MenuItem droneAddItem = new MenuItem(Console.message("Add-2-friends"));
|
|
+ private MenuItem droneTarItem = new MenuItem(Console.message("disable-avatar"));
|
|
+ private MenuItem droneEmailItem = new MenuItem(Console.message("E-Mail"));
|
|
+ private MenuItem droneMuteItem = new MenuItem(Console.message("Mute"));
|
|
+ private MenuItem droneWhisperItem = new MenuItem(Console.message("Whisper"));
|
|
+ private MenuItem droneInfoItem = new MenuItem(Console.message("Personal-I"));
|
|
+ private MenuItem droneTradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
+ private String activeFriendName = "";
|
|
+ private String teleportTarget;
|
|
+ private int teleportState = 0;
|
|
+ private int teleportWaitStartTime;
|
|
+ private boolean teleportWaitSentMsg;
|
|
+ private int friendsButtons;
|
|
+ private int moreFriendsButton;
|
|
+ private boolean moreFriendsActive;
|
|
+ private MenuItem editItem;
|
|
+ private Menu actionMenu;
|
|
+ private MoreFriendsDialog moreFriendsDialog;
|
|
+ private DefaultConsole console;
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private boolean isDialogDisabled;
|
|
+ private int showMenuY = -1;
|
|
+
|
|
+ public FriendsListPart() {
|
|
+ AnimatedActionManager.get();
|
|
+ String var1;
|
|
+ if(font == null) {
|
|
+ var1 = Themer.themer.asset("friends.gif");
|
|
+ friendsImage = ImageCanvas.getSystemImage(var1, this);
|
|
+ String var2 = Themer.themer.asset(Console.message("mfriends.gif"));
|
|
+ moreFriendsImage = ImageCanvas.getSystemImage(var2, this);
|
|
+ int var3 = (new Integer(Console.message("FriendsPointSize"))).intValue();
|
|
+ font = new Font(Console.message("FriendsFont"), 0, var3);
|
|
+ }
|
|
+
|
|
+ this.teleportItem.setFont(font);
|
|
+ this.whereIsItem.setFont(font);
|
|
+ this.emailItem.setFont(font);
|
|
+ this.muteItem.setFont(font);
|
|
+ this.whisperItem.setFont(font);
|
|
+ this.tradeItem.setFont(font);
|
|
+ this.infoItem.setFont(font);
|
|
+ this.fremoveItem.setFont(font);
|
|
+ this.menu = new PopupMenu();
|
|
+ this.menu.add(this.teleportItem);
|
|
+ this.menu.add(this.whereIsItem);
|
|
+ this.menu.add(this.emailItem);
|
|
+ this.menu.add(this.muteItem);
|
|
+ this.menu.add(this.whisperItem);
|
|
+ if(NetUpdate.isInternalVersion()) {
|
|
+ this.menu.add(this.tradeItem);
|
|
+ }
|
|
+ this.menu.add(this.fremoveItem);
|
|
+
|
|
+ this.menu.add(this.infoItem);
|
|
+ this.add(this.menu);
|
|
+ this.droneAddItem.setFont(font);
|
|
+ this.droneTarItem.setFont(font);
|
|
+ this.droneEmailItem.setFont(font);
|
|
+ this.droneMuteItem.setFont(font);
|
|
+ this.droneWhisperItem.setFont(font);
|
|
+ this.droneTradeItem.setFont(font);
|
|
+ this.droneInfoItem.setFont(font);
|
|
+ this.droneMenu = new PopupMenu();
|
|
+ this.droneMenu.setFont(font);
|
|
+ this.droneMenu.add(this.droneAddItem);
|
|
+ this.droneMenu.add(this.droneTarItem);
|
|
+ this.droneMenu.add(this.droneEmailItem);
|
|
+ this.droneMenu.add(this.droneMuteItem);
|
|
+ this.droneMenu.add(this.droneWhisperItem);
|
|
+ this.droneMenu.add(this.droneTradeItem);
|
|
+ this.droneMenu.add(this.droneInfoItem);
|
|
+
|
|
+ this.add(this.droneMenu);
|
|
+ }
|
|
+
|
|
+
|
|
+ public void update(Graphics var1) {
|
|
+ this.paint(var1);
|
|
+ }
|
|
+
|
|
+ public void paint(Graphics var1) {
|
|
+ int var2 = this.size().height;
|
|
+ int var3 = var2 / 11;
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var5 = this.onlineFriends.size();
|
|
+ this.moreFriendsButton = var3 - 1;
|
|
+ if(var5 >= var3) {
|
|
+ this.friendsButtons = var3 - 1;
|
|
+ this.moreFriendsActive = true;
|
|
} else {
|
|
- Console.println(Console.message("Cant-go-there"));
|
|
- this.teleportState = 0;
|
|
+ this.friendsButtons = var5;
|
|
+ this.moreFriendsActive = false;
|
|
}
|
|
- }
|
|
|
|
- if (this.teleportState == 2) {
|
|
- var3 = Std.getRealTime();
|
|
- if (var3 > this.teleportWaitStartTime + 5000) {
|
|
- Object[] var10;
|
|
- if (var3 > this.teleportWaitStartTime + 30000) {
|
|
- this.teleportState = 0;
|
|
- if (this.teleportWaitSentMsg) {
|
|
- var10 = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Cancel-teleport"), var10));
|
|
- }
|
|
- } else if (!this.teleportWaitSentMsg) {
|
|
- var10 = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Delay-locating"), var10));
|
|
- this.teleportWaitSentMsg = true;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void dialogDisable(boolean var1) {
|
|
- if (this.isDialogDisabled = var1) {
|
|
- this.cursedButton = -1;
|
|
- this.clickedButton = -1;
|
|
- this.clickedButtonDown = false;
|
|
- this.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setServer(WorldServer var1, IniFile var2) {
|
|
- this.serverSection = var2;
|
|
- this.galaxy = var1.getGalaxy();
|
|
- Debug.dAssert(var2 != null);
|
|
- Debug.dAssert(this.galaxy != null);
|
|
- this.loadFriends();
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(true);
|
|
- }
|
|
-
|
|
- this.sendAll(var1);
|
|
- }
|
|
-
|
|
- public void maybeServerDisconnect() {
|
|
- if (this.galaxy != null) {
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.clearAll();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean tryToRun(String var0) {
|
|
- try {
|
|
- Runtime.getRuntime().exec(var0);
|
|
- return true;
|
|
- } catch (IOException var2) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- private boolean maybeFriendAction(Object var1) {
|
|
- if (var1 != this.emailItem && var1 != this.droneEmailItem) {
|
|
- if (var1 != this.whisperItem && var1 != this.droneWhisperItem) {
|
|
- if (var1 != this.voiceChatItem && var1 != this.droneVoiceChatItem) {
|
|
- if (var1 == this.droneAddItem) {
|
|
- if (this.mayAddNameListName(Console.getFrame())) {
|
|
- this.addNameListName(this.activeFriendName);
|
|
- }
|
|
- } else if (var1 == this.teleportItem) {
|
|
- synchronized(this) {
|
|
- this.teleportTarget = this.activeFriendName;
|
|
- if (this.teleportState == 2 && this.teleportWaitSentMsg) {
|
|
- Console.println(Console.message("Cancel-new-tele"));
|
|
- }
|
|
-
|
|
- this.teleportState = 1;
|
|
- }
|
|
- } else if (var1 != this.muteItem && var1 != this.droneMuteItem) {
|
|
- if (var1 != this.infoItem && var1 != this.droneInfoItem) {
|
|
- if (var1 != this.tradeItem && var1 != this.droneTradeItem) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- WhisperManager.whisperManager().startToTrade(this.activeFriendName);
|
|
- } else {
|
|
- new PersonalInfoDownload(this.activeFriendName, this.console);
|
|
- }
|
|
- } else if (this.console.getMutes().mayAddNameListName(Console.getFrame())) {
|
|
- this.console.getMutes().addNameListName(this.activeFriendName);
|
|
- }
|
|
- } else {
|
|
- this.chatter.beginChat(this.activeFriendName, this.console);
|
|
+ int var6 = var3 * 11;
|
|
+ int var7 = var2 - var6;
|
|
+ if(var7 > 0) {
|
|
+ var1.setColor(Color.black);
|
|
+ var1.fillRect(0, 0, 97, var7);
|
|
}
|
|
- } else {
|
|
- Console.startWhispering(this.activeFriendName);
|
|
- }
|
|
- } else {
|
|
- EMailPart.showMessage(this.console, this.activeFriendName);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- private void clearAll() {
|
|
- if (this.galaxy != null) {
|
|
- synchronized(this.friendsMutex) {
|
|
- this.onlineFriends.removeAllElements();
|
|
- this.mutedOnlineFriends.removeAllElements();
|
|
- }
|
|
|
|
- if (active == this) {
|
|
- this.repaint();
|
|
- }
|
|
+ for(int var8 = 0; var8 < var3; ++var8) {
|
|
+ int var9 = 1;
|
|
+ if(var8 >= this.friendsButtons && !this.isMoreFriendsButton(var8)) {
|
|
+ var9 = 0;
|
|
+ } else if(var8 == this.clickedButton) {
|
|
+ var9 = this.clickedButtonDown?3:1;
|
|
+ } else if(var8 == this.cursedButton) {
|
|
+ var9 = 2;
|
|
+ }
|
|
|
|
- this.galaxy.sentFriendsList(false);
|
|
- }
|
|
+ this.drawButton(var1, var8, var9);
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- private void sendAll(WorldServer var1) {
|
|
- if (!this.galaxy.sentFriendsList()) {
|
|
- synchronized(this.friendsMutex) {
|
|
- int var3 = this.friends.size();
|
|
- int var4 = 0;
|
|
-
|
|
- while(true) {
|
|
- if (var4 >= var3) {
|
|
- break;
|
|
- }
|
|
-
|
|
- sendMsg(var1, new BuddyListUpdateCmd((String)this.friends.elementAt(var4), 1));
|
|
- ++var4;
|
|
- }
|
|
- }
|
|
-
|
|
- this.galaxy.sentFriendsList(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private static String getWorldName(String var0) {
|
|
- int var1 = var0.indexOf(".world#");
|
|
- int var2;
|
|
- return var1 == -1 || (var2 = var0.lastIndexOf(47, var1)) == -1 && (var2 = var0.lastIndexOf(58, var1)) == -1 ? null : var0.substring(var2 + 1, var1);
|
|
- }
|
|
-
|
|
- public static void processWhisper(WorldServer var0, String var1, String var2) {
|
|
- if (active != null && active.galaxy == var0.getGalaxy()) {
|
|
- active.instanceProcessWhisper(var0, var1, var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private synchronized void instanceProcessWhisper(WorldServer var1, String var2, String var3) {
|
|
- if (var3.startsWith("&|+where?")) {
|
|
- Pilot var4;
|
|
- String var5;
|
|
- if ((var4 = Pilot.getActive()) != null && (var5 = var4.getTeleportURL()) != null) {
|
|
- if (this.console.getSpecialGuest()) {
|
|
- int var6 = var5.indexOf(60);
|
|
- int var7 = var5.indexOf(62);
|
|
- var5 = var5.substring(0, var6) + var5.substring(var7 + 1);
|
|
- }
|
|
-
|
|
- if (Pilot.getActive().getRoom().getAllowTeleport()) {
|
|
- sendMsg(var1, new whisperCmd(var2, "&|+where>" + var5));
|
|
- }
|
|
- }
|
|
- } else if (var3.startsWith("&|+where>")) {
|
|
- if (this.teleportState == 2 && this.teleportTarget.equals(var2)) {
|
|
- String var9 = var3.substring("&|+where>".length());
|
|
- boolean var10 = false;
|
|
- String var11 = getWorldName(var9);
|
|
- String var8;
|
|
- if (!var9.startsWith("home:") && !var9.startsWith("http://")) {
|
|
- if (var11 != null && var11.length() > 0) {
|
|
- Pilot var12 = Pilot.getActive();
|
|
- if (var12 != null) {
|
|
- var8 = var12.getTeleportURL();
|
|
- if (var8 != null && var11.equals(getWorldName(var8))) {
|
|
- var10 = true;
|
|
- var9 = var8.substring(0, var8.lastIndexOf(35)) + var9.substring(var9.lastIndexOf(35));
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (!var10) {
|
|
- String var13 = WorldsMarkPart.findPackage(var11);
|
|
- if (var13 != null) {
|
|
- var10 = true;
|
|
- var9 = "home:" + var13 + "/" + var13 + ".world" + var9.substring(var9.lastIndexOf(35));
|
|
- }
|
|
- }
|
|
- } else {
|
|
- var10 = true;
|
|
+ public int getRemainder(int var1) {
|
|
+ int var2 = var1 / 11;
|
|
+ int var3 = var2 * 11;
|
|
+ return var1 - var3;
|
|
+ }
|
|
+
|
|
+ public Dimension preferredSize() {
|
|
+ return new Dimension(97, 1);
|
|
+ }
|
|
+
|
|
+ public Dimension minimumSize() {
|
|
+ return this.preferredSize();
|
|
+ }
|
|
+
|
|
+ public boolean mouseMove(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 0);
|
|
+ }
|
|
+
|
|
+ public boolean mouseDown(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 2);
|
|
+ }
|
|
+
|
|
+ public boolean mouseUp(Event var1, int var2, int var3) {
|
|
+ if(this.buttonAction(var2, var3, 3)) {
|
|
+ if(this.showMenuY != -1) {
|
|
+ this.menu.show(this, 0, this.showMenuY);
|
|
+ this.showMenuY = -1;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mouseDrag(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 1);
|
|
+ }
|
|
+
|
|
+ public boolean mouseEnter(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 4);
|
|
+ }
|
|
+
|
|
+ public boolean mouseExit(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 5);
|
|
+ }
|
|
+
|
|
+ public boolean handleEvent(Event var1) {
|
|
+ return this.isDialogDisabled?false:super.handleEvent(var1);
|
|
+ }
|
|
+
|
|
+ private void loadFriends() {
|
|
+ if(this.friends.size() != 0) {
|
|
+ this.friends.removeAllElements();
|
|
+ }
|
|
+
|
|
+ for(int var2 = 0; var2 < Integer.MAX_VALUE; ++var2) {
|
|
+ String var1 = this.serverSection.getIniString("Friend" + var2, "");
|
|
+ if(((String)var1).length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if(isValidUserName((String)var1) && !icontains(this.friends, (String)var1)) {
|
|
+ this.friends.addElement(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.friends.size() == 0) {
|
|
+ String var5 = this.serverSection.getIniString("Friends", "");
|
|
+ StringTokenizer var4 = new StringTokenizer(var5, ";");
|
|
+
|
|
+ while(((StringTokenizer)var4).hasMoreTokens()) {
|
|
+ String var3 = ((StringTokenizer)var4).nextToken();
|
|
+ if(isValidUserName(var3) && !icontains(this.friends, var3)) {
|
|
+ this.friends.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.friends.size() != 0) {
|
|
+ this.saveFriends();
|
|
+ this.serverSection.setIniString("Friends", "");
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ void saveFriends() {
|
|
+ if(this.serverSection != null) {
|
|
+ int var1 = this.friends.size();
|
|
+
|
|
+ for(int var2 = 0; var2 < var1; ++var2) {
|
|
+ this.serverSection.setIniString("Friend" + var2, (String)this.friends.elementAt(var2));
|
|
}
|
|
|
|
- Object[] var14;
|
|
- if (var10) {
|
|
- TeleportAction.teleport(var9, (TeleportStatus)null);
|
|
- if (this.teleportWaitSentMsg) {
|
|
- var14 = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Found-tele"), var14));
|
|
- }
|
|
+ this.serverSection.setIniString("Friend" + var1, "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private boolean isMoreFriendsButton(int var1) {
|
|
+ return var1 == this.moreFriendsButton && this.moreFriendsActive;
|
|
+ }
|
|
+
|
|
+ private Graphics drawButton(Graphics var1, int var2, int var3) {
|
|
+ Image var4 = var2 == this.moreFriendsButton?moreFriendsImage:friendsImage;
|
|
+ if(var1 != null || (var1 = this.getGraphics()) != null) {
|
|
+ int var5 = var2 * 11;
|
|
+ Graphics var6 = var1.create(0, var5, 97, 11);
|
|
+ var6.drawImage(var4, -var3 * 97, 0, (ImageObserver)null);
|
|
+ if(var2 >= 0 && var2 < this.friendsButtons && var2 < this.onlineFriends.size()) {
|
|
+ var6.clipRect(0, 0, 94, 11);
|
|
+ var6.setFont(font);
|
|
+ var6.setColor(Color.white);
|
|
+ var6.drawString((String)this.onlineFriends.elementAt(var2), 20, 9);
|
|
+ }
|
|
+
|
|
+ var6.dispose();
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ private boolean buttonAction(int var1, int var2, int var3) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ Graphics var5 = null;
|
|
+ int var6 = var2 / 11;
|
|
+ if((var6 < 0 || var6 >= this.friendsButtons) && !this.isMoreFriendsButton(var6)) {
|
|
+ var6 = -1;
|
|
+ }
|
|
+
|
|
+ if(var3 != 0 && var3 != 4) {
|
|
+ if(var3 == 5) {
|
|
+ if(this.cursedButton != -1) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
+ this.cursedButton = -1;
|
|
+ }
|
|
+
|
|
+ if(this.clickedButton != -1 && this.clickedButtonDown) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+ } else if(var3 == 2) {
|
|
+ if(this.clickedButton != -1) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+
|
|
+ if((this.clickedButton = var6) != -1) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
+ this.clickedButtonDown = true;
|
|
+ }
|
|
+ } else if(var3 == 1) {
|
|
+ if(this.clickedButton != -1) {
|
|
+ if(this.clickedButtonDown) {
|
|
+ if(var6 != this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+ } else if(var6 == this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
+ this.clickedButtonDown = true;
|
|
+ }
|
|
+ }
|
|
+ } else if(var3 == 3) {
|
|
+ this.cursedButton = var6;
|
|
+ if(this.clickedButtonDown) {
|
|
+ if(this.cursedButton == this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 2);
|
|
+ } else {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ }
|
|
+
|
|
+ if(this.clickedButton == this.moreFriendsButton) {
|
|
+ if(this.moreFriendsDialog == null) {
|
|
+ this.moreFriendsDialog = new MoreFriendsDialog(this, this.menu, this.onlineFriends);
|
|
+ }
|
|
+ } else if(this.clickedButton >= 0 && this.clickedButton < this.onlineFriends.size()) {
|
|
+ this.activeFriendName = (String)this.onlineFriends.elementAt(this.clickedButton);
|
|
+ this.showMenuY = (this.clickedButton + 1) * 11;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.cursedButton != this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 2);
|
|
+ }
|
|
+
|
|
+ this.clickedButtonDown = false;
|
|
+ this.clickedButton = -1;
|
|
+ }
|
|
+ } else if(var6 != this.cursedButton) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
+ var5 = this.drawButton(var5, this.cursedButton = var6, 2);
|
|
+ }
|
|
+
|
|
+ if(var5 != null) {
|
|
+ var5.dispose();
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private static boolean sendMsg(WorldServer var0, netPacket var1) {
|
|
+ try {
|
|
+ var0.sendNetworkMsg(var1);
|
|
+ return true;
|
|
+ } catch (InfiniteWaitException var3) {
|
|
+ } catch (PacketTooLargeException var4) {
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)var1;
|
|
+ this.editItem = var1.addMenuItem(Console.message("Edit-Friends"), "Options");
|
|
+ this.editItem.setEnabled(this.friends != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if(var1.target == this.editItem) {
|
|
+ new EditNamesDialog(this, Console.message("Edit-Friends2"), Console.message("Add-Friend"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return this.maybeFriendAction(var1.target);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ int var4;
|
|
+ synchronized(this.friendsMutex) {
|
|
+ var4 = this.serverUpdates.size();
|
|
+ if(var4 != 0) {
|
|
+ WorldServer var2 = this.console.getServerNew();
|
|
+ if(var2 != null) {
|
|
+ while(var4-- != 0 && sendMsg((WorldServer)var2, (netPacket)this.serverUpdates.elementAt(0))) {
|
|
+ this.serverUpdates.removeElementAt(0);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ synchronized(this) {
|
|
+ WorldServer var10;
|
|
+ if(this.teleportState == 1) {
|
|
+ var10 = this.console.getServerNew();
|
|
+ if(var10 != null) {
|
|
+ sendMsg(var10, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
+ this.teleportState = 2;
|
|
+ this.teleportWaitStartTime = Std.getRealTime();
|
|
+ this.teleportWaitSentMsg = false;
|
|
+ } else {
|
|
+ Console.println(Console.message("Cant-go-there"));
|
|
+ this.teleportState = 0;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.teleportState == 2) {
|
|
+ var4 = Std.getRealTime();
|
|
+ if(var4 > this.teleportWaitStartTime + 5000) {
|
|
+ Object[] var9;
|
|
+ if(var4 > this.teleportWaitStartTime + 30000) {
|
|
+ this.teleportState = 0;
|
|
+ if(this.teleportWaitSentMsg) {
|
|
+ var9 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Cancel-teleport"), (Object[])var9));
|
|
+ }
|
|
+ } else if(!this.teleportWaitSentMsg) {
|
|
+ var9 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Delay-locating"), (Object[])var9));
|
|
+ this.teleportWaitSentMsg = true;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.teleportState == -1) {
|
|
+ var10 = this.console.getServerNew();
|
|
+ if(var10 != null) {
|
|
+ sendMsg(var10, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
+ } else {
|
|
+ Console.println(Console.message("Cant-go-there"));
|
|
+ }
|
|
+
|
|
+ this.teleportState = -2;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void dialogDisable(boolean var1) {
|
|
+ if(this.isDialogDisabled = var1) {
|
|
+ this.cursedButton = -1;
|
|
+ this.clickedButton = -1;
|
|
+ this.clickedButtonDown = false;
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ Debug.dAssert(var2 != null);
|
|
+ Debug.dAssert(this.galaxy != null);
|
|
+ this.loadFriends();
|
|
+ if(this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ this.sendAll(var1);
|
|
+ }
|
|
+
|
|
+ public void maybeServerDisconnect() {
|
|
+ if(this.galaxy != null) {
|
|
+ if(this.editItem != null) {
|
|
+ this.editItem.setEnabled(false);
|
|
+ }
|
|
+
|
|
+ this.clearAll();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean tryToRun(String var0) {
|
|
+ try {
|
|
+ Runtime.getRuntime().exec(var0);
|
|
+ return true;
|
|
+ } catch (IOException var2) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private boolean maybeFriendAction(Object var1) {
|
|
+ if (var1 == this.fremoveItem || var1 == this.droneAddItem) {
|
|
+ if (this.mayAddNameListName(Console.getFrame())) {
|
|
+ if (!icontains(friends, this.activeFriendName)) {
|
|
+ this.addNameListName(this.activeFriendName);
|
|
+ Console.println(MessageFormat.format(Console.message("added-status"), new String[]{this.activeFriendName}));
|
|
+ } else {
|
|
+ this.removeNameListName(friends.indexOf(this.activeFriendName));
|
|
+ Console.println(MessageFormat.format(Console.message("removed-status"), new String[]{this.activeFriendName}));
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 == this.droneTarItem) {
|
|
+ if (this.console.getTars().mayAddNameListName(Console.getFrame())) {
|
|
+ if (!icontains(this.console.getTars().tars, this.activeFriendName)) {
|
|
+ this.console.getTars().addNameListName(this.activeFriendName);
|
|
+ } else {
|
|
+ this.console.getTars().removeNameListName(this.console.getTars().tars.indexOf(this.activeFriendName));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ } else if (var1 == this.whisperItem || var1 == this.droneWhisperItem) {
|
|
+ Console.startWhispering(this.activeFriendName);
|
|
+ } else if (var1 == this.emailItem || var1 == this.droneEmailItem) {
|
|
+ EMailPart.showMessage(this.console, this.activeFriendName);
|
|
+ } else if (var1 == this.teleportItem || var1 == this.whereIsItem) {
|
|
+ synchronized (this) {
|
|
+ this.teleportTarget = this.activeFriendName;
|
|
+ if (this.teleportState == 2 && this.teleportWaitSentMsg) {
|
|
+ Console.println(Console.message("Cancel-new-tele"));
|
|
+ }
|
|
+
|
|
+ this.teleportState = var1 == this.teleportItem ? 1 : -1;
|
|
+ }
|
|
+ } else if (var1 == this.muteItem || var1 == this.droneMuteItem) {
|
|
+ this.console.getMutes().addNameListName(this.activeFriendName);
|
|
+ } else if (var1 == this.infoItem || var1 == this.droneInfoItem) {
|
|
+ new PersonalInfoDownload(this.activeFriendName, this.console);
|
|
+ } else if (var1 == this.tradeItem || var1 == this.droneTradeItem) {
|
|
+ WhisperManager.whisperManager().startToTrade(this.activeFriendName);
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ private void clearAll() {
|
|
+ if(this.galaxy != null) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ this.onlineFriends.removeAllElements();
|
|
+ this.mutedOnlineFriends.removeAllElements();
|
|
+ }
|
|
+
|
|
+ if(active == this) {
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ this.galaxy.sentFriendsList(false);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void sendAll(WorldServer var1) {
|
|
+ if(!this.galaxy.sentFriendsList()) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var3 = this.friends.size();
|
|
+ int var4 = 0;
|
|
+
|
|
+ while(true) {
|
|
+ if(var4 >= var3) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ sendMsg(var1, new BuddyListUpdateCmd((String)this.friends.elementAt(var4), 1));
|
|
+ ++var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.galaxy.sentFriendsList(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private static String getWorldName(String var0) {
|
|
+ int var1 = var0.indexOf(".world#");
|
|
+ int var2;
|
|
+ return var1 != -1 && ((var2 = var0.lastIndexOf(47, var1)) != -1 || (var2 = var0.lastIndexOf(58, var1)) != -1)?var0.substring(var2 + 1, var1):null;
|
|
+ }
|
|
+
|
|
+ public static void processWhisper(WorldServer var0, String var1, String var2) {
|
|
+ if(active != null && active.galaxy == var0.getGalaxy()) {
|
|
+ active.instanceProcessWhisper(var0, var1, var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private boolean allowTeleport(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && icontains(friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ private void sendTeleportReject(String var1) {
|
|
+ Object[] var2 = new Object[]{"teleport", var1};
|
|
+ Console.println(MessageFormat.format(Console.message("rejected"), var2));
|
|
+ }
|
|
+
|
|
+ private synchronized void instanceProcessWhisper(WorldServer var1, String var2, String var3) {
|
|
+ if(var3.startsWith("&|+where?")) {
|
|
+ if (allowTeleport(var2)) {
|
|
+ Pilot var4;
|
|
+ String var5;
|
|
+ if ((var4 = Pilot.getActive()) != null && (var5 = ((Pilot) var4).getTeleportURL()) != null) {
|
|
+ if (this.console.getSpecialGuest()) {
|
|
+ int var6 = var5.indexOf(60);
|
|
+ int var7 = var5.indexOf(62);
|
|
+ var5 = var5.substring(0, var6) + var5.substring(var7 + 1);
|
|
+ }
|
|
+
|
|
+ if (Pilot.getActive().getRoom().getAllowTeleport()) {
|
|
+ sendMsg(var1, new whisperCmd(var2, "&|+where>" + var5));
|
|
+ }
|
|
+ }
|
|
} else {
|
|
- var14 = new Object[]{new String(this.teleportTarget), new String(var11)};
|
|
- var8 = MessageFormat.format(Console.message("Cant-go-world"), var14);
|
|
- Console.println(var8);
|
|
- }
|
|
-
|
|
- this.teleportState = 0;
|
|
- this.teleportTarget = null;
|
|
- }
|
|
- } else if (var3.startsWith("&|+voicechat")) {
|
|
- this.chatter.handleChatWhisper(var2, var3, this.console);
|
|
- } else if (var3.startsWith(VoiceChat.VCdebugCommand)) {
|
|
- VoiceChat.setExtra(var3);
|
|
- } else if (var3.startsWith(VoiceChat.VCdebugCommandReset)) {
|
|
- VoiceChat.resetExtra();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public int getNameListCount() {
|
|
- return this.friends.size();
|
|
- }
|
|
-
|
|
- public String getNameListName(int var1) {
|
|
- return (String)this.friends.elementAt(var1);
|
|
- }
|
|
-
|
|
- public void removeNameListName(int var1) {
|
|
- synchronized(this.friendsMutex) {
|
|
- String var3 = (String)this.friends.elementAt(var1);
|
|
- this.friends.removeElementAt(var1);
|
|
- this.saveFriends();
|
|
- if ((var1 = iindexOf(this.onlineFriends, var3)) != -1) {
|
|
- this.onlineFriends.removeElementAt(var1);
|
|
- if (active == this) {
|
|
- this.repaint();
|
|
- }
|
|
- }
|
|
-
|
|
- if ((var1 = iindexOf(this.mutedOnlineFriends, var3)) != -1) {
|
|
- this.mutedOnlineFriends.removeElementAt(var1);
|
|
- }
|
|
-
|
|
- this.serverUpdates.addElement(new BuddyListUpdateCmd(var3, 0));
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mayAddNameListName(java.awt.Window var1) {
|
|
- if (this.friends.size() < maxFriends) {
|
|
- return true;
|
|
- } else {
|
|
- Object[] var2 = new Object[]{new String("" + maxFriends)};
|
|
- new OkCancelDialog(var1, (DialogReceiver)null, Console.message("Too-many-names"), (String)null, Console.message("OK"), MessageFormat.format(Console.message("You-are-limitedF"), var2), true);
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public int addNameListName(String var1) {
|
|
- synchronized(this.friendsMutex) {
|
|
- int var3 = iindexOf(this.friends, var1);
|
|
- if (var3 != -1) {
|
|
- return var3;
|
|
- } else {
|
|
- this.friends.addElement(var1);
|
|
+ if (IniFile.modPrivacy().getIniInt("TeleportFeedback", 0) == 1) sendTeleportReject(var2);
|
|
+ if (IniFile.modPrivacy().getIniInt("TeleportResponse", 0) == 1) sendMsg(var1, new whisperCmd(var2, Console.message("not-teleports")));
|
|
+ }
|
|
+ } else if(var3.startsWith("&|+where>")) {
|
|
+ boolean var11 = this.teleportState == 2 && this.teleportTarget.equals(var2);
|
|
+ if (var11 || this.teleportState == -2) {
|
|
+ String var10 = var3.substring("&|+where>".length());
|
|
+ boolean var12 = false;
|
|
+ String var13 = getWorldName((String) var10);
|
|
+ String var9;
|
|
+ if (!((String) var10).startsWith("home:") && !((String) var10).startsWith("http://")) {
|
|
+ if (var13 != null && var13.length() > 0) {
|
|
+ Pilot var8 = Pilot.getActive();
|
|
+ if (var8 != null) {
|
|
+ var9 = ((Pilot) var8).getTeleportURL();
|
|
+ if (var9 != null && var13.equals(getWorldName(var9))) {
|
|
+ var12 = true;
|
|
+ var10 = var9.substring(0, var9.lastIndexOf(35)) + ((String) var10).substring(((String) var10).lastIndexOf(35));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!var12) {
|
|
+ String var14 = WorldsMarkPart.findPackage(var13);
|
|
+ if (var14 != null) {
|
|
+ var12 = true;
|
|
+ var10 = "home:" + (String) var14 + "/" + (String) var14 + ".world" + ((String) var10).substring(((String) var10).lastIndexOf(35));
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ var12 = true;
|
|
+ }
|
|
+
|
|
+ Object[] var15;
|
|
+ if (var12) {
|
|
+ if (var11) {
|
|
+ TeleportAction.teleport((String) var10, (TeleportStatus) null);
|
|
+ } else {
|
|
+ Console.println(var2 + ": " + (String) var10);
|
|
+ }
|
|
+
|
|
+ if (this.teleportWaitSentMsg) {
|
|
+ var15 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Found-tele"), (Object[]) var15));
|
|
+ }
|
|
+ } else {
|
|
+ var15 = new Object[]{new String(this.teleportTarget), new String(var13)};
|
|
+ var9 = MessageFormat.format(Console.message("Cant-go-world"), (Object[]) var15);
|
|
+ Console.println(var9);
|
|
+ }
|
|
+
|
|
+ this.teleportState = 0;
|
|
+ this.teleportTarget = null;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.friends.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int var1) {
|
|
+ return (String)this.friends.elementAt(var1);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int var1) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ String var3 = (String)this.friends.elementAt(var1);
|
|
+ this.friends.removeElementAt(var1);
|
|
this.saveFriends();
|
|
- this.serverUpdates.addElement(new BuddyListUpdateCmd(var1, 1));
|
|
- return this.friends.size() - 1;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public static void droneClick(Drone var0, MouseDownEvent var1) {
|
|
- if (active != null) {
|
|
- active.instanceDroneClick(var0, var1);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void instanceDroneClick(Drone var1, MouseDownEvent var2) {
|
|
- String var3 = var1.getLongID();
|
|
- if (var3 != null) {
|
|
- this.activeFriendName = var3;
|
|
- Object[] var4 = new Object[]{new String(this.activeFriendName)};
|
|
- this.droneAddItem = new MenuItem(MessageFormat.format(Console.message("Add-to-friends"), var4));
|
|
- this.droneMenu.remove(0);
|
|
- this.droneAddItem.setFont(font);
|
|
- this.droneMenu.insert(this.droneAddItem, 0);
|
|
- this.droneAddItem.setEnabled(!icontains(this.friends, this.activeFriendName));
|
|
- if (this.actionMenu != null) {
|
|
- this.droneMenu.remove(this.actionMenu);
|
|
- }
|
|
-
|
|
- if (var1 instanceof PosableDrone) {
|
|
- PosableDrone var5 = (PosableDrone)var1;
|
|
- PosableShape var6 = var5.getInternalPosableShape();
|
|
- if (var6 != null) {
|
|
- this.actionMenu = new Menu(Console.message("Actions"));
|
|
- if (AnimatedActionManager.get().buildActionMenu(this.actionMenu, var6)) {
|
|
- this.droneMenu.add(this.actionMenu);
|
|
- this.actionMenu.addActionListener(AnimatedActionManager.get());
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- this.droneMenu.show(this.console.getRender(), var2.x, var2.y);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void processBuddyListNotify(WorldServer var0, String var1, int var2) {
|
|
- Galaxy var3 = var0.getGalaxy();
|
|
- Enumeration var4 = var3.getConsoles();
|
|
-
|
|
- Object var5;
|
|
- FriendsListPart var6;
|
|
- while(var4.hasMoreElements()) {
|
|
- var5 = var4.nextElement();
|
|
- if (var5 instanceof DefaultConsole) {
|
|
- var6 = ((DefaultConsole)var5).getFriends();
|
|
- if (var2 < 2) {
|
|
- boolean var7 = MuteListPart.isMuted(var0, var1);
|
|
- if (var2 == 1) {
|
|
- var6.addOnlineFriend(var1, var7);
|
|
- } else {
|
|
- var6.removeOnlineFriend(var1, var7);
|
|
- }
|
|
+ if((var1 = iindexOf(this.onlineFriends, var3)) != -1) {
|
|
+ this.onlineFriends.removeElementAt(var1);
|
|
+ if(active == this) {
|
|
+ this.repaint();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if((var1 = iindexOf(this.mutedOnlineFriends, var3)) != -1) {
|
|
+ this.mutedOnlineFriends.removeElementAt(var1);
|
|
+ }
|
|
+
|
|
+ this.serverUpdates.addElement(new BuddyListUpdateCmd(var3, 0));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window var1) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String var1) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var3 = iindexOf(this.friends, var1);
|
|
+ if(var3 != -1) {
|
|
+ return var3;
|
|
} else {
|
|
- Debug.dAssert(var1.length() == 0);
|
|
- var6.clearAll();
|
|
+ this.friends.addElement(var1);
|
|
+ this.saveFriends();
|
|
+ this.serverUpdates.addElement(new BuddyListUpdateCmd(var1, 1));
|
|
+ return this.friends.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static void droneClick(Drone var0, MouseDownEvent var1) {
|
|
+ if(active != null) {
|
|
+ active.instanceDroneClick(var0, var1);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private String parseVersion(int v) {
|
|
+ switch (v) {
|
|
+ case 2003110800:
|
|
+ return "1890";
|
|
+ case 2004081600:
|
|
+ return "1904";
|
|
+ case 2004111200:
|
|
+ return "1920a";
|
|
+ case 2012071402:
|
|
+ return "1920";
|
|
+ case 2020031200:
|
|
+ return "1922a10";
|
|
+ default:
|
|
+ return String.valueOf(v);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void instanceDroneClick(Drone var1, MouseDownEvent var2) {
|
|
+ String var3 = var1.getLongID();
|
|
+ if(var3 != null) {
|
|
+ this.activeFriendName = var3;
|
|
+ Object[] var4 = new Object[]{this.activeFriendName};
|
|
+ this.droneAddItem = new MenuItem(icontains(this.friends, this.activeFriendName) ? MessageFormat.format("Remove {0} from friends list", var4) : MessageFormat.format(Console.message("Add-to-friends"), var4));
|
|
+ this.droneTarItem = new MenuItem(this.console.getFriends().icontains(this.console.getTars().tars, this.activeFriendName) ? "Enable Avatar" : "Disable Avatar");
|
|
+
|
|
+ this.droneMenu.remove(0);
|
|
+ this.droneAddItem.setFont(font);
|
|
+ this.droneMenu.insert(this.droneAddItem, 0);
|
|
+
|
|
+ this.droneMenu.remove(1);
|
|
+ this.droneTarItem.setFont(font);
|
|
+ this.droneMenu.insert(this.droneTarItem, 1);
|
|
+
|
|
+ if(this.actionMenu != null) {
|
|
+ this.droneMenu.remove(this.actionMenu);
|
|
+ }
|
|
+
|
|
+ if(var1 instanceof PosableDrone) {
|
|
+ PosableDrone var5 = (PosableDrone)var1;
|
|
+ PosableShape var6 = var5.getInternalPosableShape();
|
|
+ if(var6 != null) {
|
|
+ this.actionMenu = new Menu(Console.message("Actions"));
|
|
+ if(AnimatedActionManager.get().buildActionMenu(this.actionMenu, var6)) {
|
|
+ this.droneMenu.add(this.actionMenu);
|
|
+ this.actionMenu.addActionListener(AnimatedActionManager.get());
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.droneMenu.show(this.console.getRender(), var2.x, var2.y);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void processBuddyListNotify(WorldServer var0, String var1, int var2) {
|
|
+ Galaxy var3 = var0.getGalaxy();
|
|
+ Enumeration var4 = var3.getConsoles();
|
|
+
|
|
+ Object var5;
|
|
+ NET.worlds.console.FriendsListPart var6;
|
|
+ while(var4.hasMoreElements()) {
|
|
+ var5 = var4.nextElement();
|
|
+ if(var5 instanceof DefaultConsole) {
|
|
+ var6 = ((DefaultConsole)var5).getFriends();
|
|
+ if(var2 < 2) {
|
|
+ boolean var7 = MuteListPart.isMuted(var0, var1);
|
|
+ if(var2 == 1) {
|
|
+ var6.addOnlineFriend(var1, var7);
|
|
+ } else {
|
|
+ var6.removeOnlineFriend(var1, var7);
|
|
+ }
|
|
+ } else {
|
|
+ Debug.dAssert(var1.length() == 0);
|
|
+ var6.clearAll();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(var2 == 2) {
|
|
+ var4 = var3.getConsoles();
|
|
+
|
|
+ while(var4.hasMoreElements()) {
|
|
+ var5 = var4.nextElement();
|
|
+ if(var5 instanceof DefaultConsole) {
|
|
+ var6 = ((DefaultConsole)var5).getFriends();
|
|
+ var6.sendAll(var0);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static String ilookup(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public static int iindexOf(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return -1;
|
|
+ }
|
|
+
|
|
+ public static boolean icontains(Vector var0, String var1) {
|
|
+ return iindexOf(var0, var1) != -1;
|
|
+ }
|
|
+
|
|
+ public void changeMuteState(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(icontains(this.friends, var1)) {
|
|
+ if(var2) {
|
|
+ var1 = ilookup(this.onlineFriends, var1);
|
|
+ if(var1 != null) {
|
|
+ this.removeOnlineFriend(var1, false);
|
|
+ this.addOnlineFriend(var1, true);
|
|
+ }
|
|
+ } else {
|
|
+ var1 = ilookup(this.mutedOnlineFriends, var1);
|
|
+ if(var1 != null) {
|
|
+ this.removeOnlineFriend(var1, true);
|
|
+ this.addOnlineFriend(var1, false);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void listChanged() {
|
|
+ this.cursedButton = -1;
|
|
+ this.clickedButton = -1;
|
|
+ this.clickedButtonDown = false;
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ private void addOnlineFriend(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(this.friends != null && icontains(this.friends, var1)) {
|
|
+ if(!var2 && !icontains(this.onlineFriends, var1)) {
|
|
+ this.onlineFriends.addElement(var1);
|
|
+ if(active == this) {
|
|
+ this.listChanged();
|
|
+ if(this.moreFriendsDialog != null) {
|
|
+ this.moreFriendsDialog.addName(var1);
|
|
+ }
|
|
+ if (IniFile.modPrivacy().getIniInt("ShowStatusUpdate", 0) == 1) Console.println(MessageFormat.format("{0} is now online.", new String[]{var1}));
|
|
+ }
|
|
+ } else if(var2 && !icontains(this.mutedOnlineFriends, var1)) {
|
|
+ this.mutedOnlineFriends.addElement(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void removeOnlineFriend(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(!var2) {
|
|
+ int var4 = this.onlineFriends.indexOf(var1);
|
|
+ if(var4 != -1) {
|
|
+ this.onlineFriends.removeElementAt(var4);
|
|
+ if(active == this) {
|
|
+ this.listChanged();
|
|
+ if(this.moreFriendsDialog != null) {
|
|
+ this.moreFriendsDialog.removeName(var4);
|
|
+ }
|
|
+ if (IniFile.modPrivacy().getIniInt("ShowStatusUpdate", 0) == 1) Console.println(MessageFormat.format("{0} quit.", new String[]{var1}));
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ this.mutedOnlineFriends.removeElement(var1);
|
|
}
|
|
- }
|
|
- }
|
|
|
|
- if (var2 == 2) {
|
|
- var4 = var3.getConsoles();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ System.out.println("TEST FRIEND");
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(var1 == this.moreFriendsDialog) {
|
|
+ this.moreFriendsDialog = null;
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isValidUserName(String var0) {
|
|
+ String var1 = "_-";
|
|
+ var0 = Console.parseUnicode(var0);
|
|
+ int var2 = var0.length();
|
|
+ if(var2 >= 2 && var2 <= 16) {
|
|
+ char[] var3 = var0.toCharArray();
|
|
+
|
|
+ for(int var4 = 0; var4 < var2; ++var4) {
|
|
+ if(!Character.isLetterOrDigit(var3[var4]) && var1.indexOf(var3[var4]) == -1) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ void moreFriendsAction(String var1, MenuItem var2) {
|
|
+ this.activeFriendName = var1;
|
|
+ this.maybeFriendAction(var2);
|
|
+ }
|
|
|
|
- while(var4.hasMoreElements()) {
|
|
- var5 = var4.nextElement();
|
|
- if (var5 instanceof DefaultConsole) {
|
|
- var6 = ((DefaultConsole)var5).getFriends();
|
|
- var6.sendAll(var0);
|
|
- break;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static String ilookup(Vector var0, String var1) {
|
|
- int var2 = var0.size();
|
|
-
|
|
- for(int var3 = 0; var3 < var2; ++var3) {
|
|
- String var4 = (String)var0.elementAt(var3);
|
|
- if (var4.equalsIgnoreCase(var1)) {
|
|
- return var4;
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public static int iindexOf(Vector var0, String var1) {
|
|
- int var2 = var0.size();
|
|
-
|
|
- for(int var3 = 0; var3 < var2; ++var3) {
|
|
- String var4 = (String)var0.elementAt(var3);
|
|
- if (var4.equalsIgnoreCase(var1)) {
|
|
- return var3;
|
|
- }
|
|
- }
|
|
-
|
|
- return -1;
|
|
- }
|
|
-
|
|
- public static boolean icontains(Vector var0, String var1) {
|
|
- return iindexOf(var0, var1) != -1;
|
|
- }
|
|
-
|
|
- public void changeMuteState(String var1, boolean var2) {
|
|
- synchronized(this.friendsMutex) {
|
|
- if (icontains(this.friends, var1)) {
|
|
- if (var2) {
|
|
- var1 = ilookup(this.onlineFriends, var1);
|
|
- if (var1 != null) {
|
|
- this.removeOnlineFriend(var1, false);
|
|
- this.addOnlineFriend(var1, true);
|
|
- }
|
|
- } else {
|
|
- var1 = ilookup(this.mutedOnlineFriends, var1);
|
|
- if (var1 != null) {
|
|
- this.removeOnlineFriend(var1, true);
|
|
- this.addOnlineFriend(var1, false);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- private void listChanged() {
|
|
- this.cursedButton = -1;
|
|
- this.clickedButton = -1;
|
|
- this.clickedButtonDown = false;
|
|
- this.repaint();
|
|
- }
|
|
-
|
|
- private void addOnlineFriend(String var1, boolean var2) {
|
|
- synchronized(this.friendsMutex) {
|
|
- if (this.friends != null && icontains(this.friends, var1)) {
|
|
- if (!var2 && !icontains(this.onlineFriends, var1)) {
|
|
- this.onlineFriends.addElement(var1);
|
|
- if (active == this) {
|
|
- this.listChanged();
|
|
- if (this.moreFriendsDialog != null) {
|
|
- this.moreFriendsDialog.addName(var1);
|
|
- }
|
|
- }
|
|
- } else if (var2 && !icontains(this.mutedOnlineFriends, var1)) {
|
|
- this.mutedOnlineFriends.addElement(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- private void removeOnlineFriend(String var1, boolean var2) {
|
|
- synchronized(this.friendsMutex) {
|
|
- if (!var2) {
|
|
- int var4 = this.onlineFriends.indexOf(var1);
|
|
- if (var4 != -1) {
|
|
- this.onlineFriends.removeElementAt(var4);
|
|
- if (active == this) {
|
|
- this.listChanged();
|
|
- if (this.moreFriendsDialog != null) {
|
|
- this.moreFriendsDialog.removeName(var4);
|
|
- }
|
|
- }
|
|
- }
|
|
- } else {
|
|
- this.mutedOnlineFriends.removeElement(var1);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void dialogDone(Object var1, boolean var2) {
|
|
- synchronized(this.friendsMutex) {
|
|
- if (var1 == this.moreFriendsDialog) {
|
|
- this.moreFriendsDialog = null;
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public static boolean isValidUserName(String var0) {
|
|
- String var1 = "_-";
|
|
- var0 = Console.parseUnicode(var0);
|
|
- int var2 = var0.length();
|
|
- if (var2 >= 2 && var2 <= 16) {
|
|
- char[] var3 = var0.toCharArray();
|
|
-
|
|
- for(int var4 = 0; var4 < var2; ++var4) {
|
|
- if (!Character.isLetterOrDigit(var3[var4]) && var1.indexOf(var3[var4]) == -1) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- void moreFriendsAction(String var1, MenuItem var2) {
|
|
- this.activeFriendName = var1;
|
|
- Debug.assert(this.activeFriendName != null);
|
|
- this.maybeFriendAction(var2);
|
|
- }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/Gamma.java b/1904/NET/worlds/console/Gamma.java
|
|
--- a/1904/NET/worlds/console/Gamma.java 2020-08-06 15:46:20.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/Gamma.java 2023-12-15 20:25:12.000000000 -0600
|
|
@@ -8,8 +8,10 @@
|
|
import NET.worlds.scape.TeleportAction;
|
|
import NET.worlds.scape.TeleportStatus;
|
|
import NET.worlds.scape.World;
|
|
+import NET.worldsplus.Themer;
|
|
import java.awt.Button;
|
|
import java.awt.Color;
|
|
+import java.awt.Cursor;
|
|
import java.awt.Dimension;
|
|
import java.awt.Frame;
|
|
import java.awt.GridBagConstraints;
|
|
@@ -29,530 +31,539 @@
|
|
import java.util.StringTokenizer;
|
|
|
|
public class Gamma implements Runnable, MainCallback, TeleportStatus {
|
|
- private static SplashScreen splash = null;
|
|
- public static ProgressBar loadProgress;
|
|
- static final int LOAD_PROGRESS_STEPS = 12;
|
|
- static final float failVersion = 1.13F;
|
|
- private static String _home = "file:";
|
|
- private static String _dllPath = "home:";
|
|
- private static Hashtable _params = new Hashtable();
|
|
- private static boolean _autoplay = false;
|
|
- static Shaper shaper;
|
|
- private String startingURL;
|
|
- private String loadErr;
|
|
-
|
|
- static boolean checkVersion(String var0) {
|
|
- StringTokenizer var1 = new StringTokenizer(var0, "._");
|
|
- float var2 = 0.0F;
|
|
-
|
|
- try {
|
|
- Integer var3 = new Integer(var1.nextToken());
|
|
- var2 = (float)var3;
|
|
- var3 = new Integer(var1.nextToken());
|
|
- float var4 = var3.floatValue() / 10.0F;
|
|
- if (var4 >= 1.0F) {
|
|
+ private static SplashScreen splash = null;
|
|
+ public static ProgressBar loadProgress;
|
|
+ static final int LOAD_PROGRESS_STEPS = 12;
|
|
+ static final float failVersion = 1.13F;
|
|
+ private static String _home = "file:";
|
|
+ private static String _dllPath = "home:";
|
|
+ private static Hashtable _params = new Hashtable();
|
|
+ private static boolean _autoplay = false;
|
|
+ static Shaper shaper;
|
|
+ private String startingURL;
|
|
+ private String loadErr;
|
|
+
|
|
+ static boolean checkVersion(String var0) {
|
|
+ StringTokenizer var1 = new StringTokenizer(var0, "._");
|
|
+ float var2 = 0.0F;
|
|
+
|
|
+ try {
|
|
+ Integer var3 = new Integer(var1.nextToken());
|
|
+ var2 = var3.floatValue();
|
|
+ var3 = new Integer(var1.nextToken());
|
|
+ float var4 = var3.floatValue() / 10.0F;
|
|
+ if (!(var4 < 1.0F)) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ var2 += var4;
|
|
+ var3 = new Integer(var1.nextToken());
|
|
+ var4 = var3.floatValue() / 100.0F;
|
|
+ var2 += var4;
|
|
+ } catch (NoSuchElementException var9) {
|
|
+ }
|
|
+
|
|
+ if (var2 <= 1.13F) {
|
|
+ BlockingDialog var10 = new BlockingDialog(new Frame(), "Worlds.com: Error", true);
|
|
+ GridBagLayout var11 = new GridBagLayout();
|
|
+ var10.setLayout(var11);
|
|
+ var10.setSize(200, 150);
|
|
+ MultiLineLabel var5 = new MultiLineLabel("Your system's Java Virtual Machine\nis out of date. Please download our\nfull installer and try again.");
|
|
+ GridBagConstraints var6 = new GridBagConstraints();
|
|
+ var6.gridx = 0;
|
|
+ var6.gridy = 0;
|
|
+ var11.setConstraints(var5, var6);
|
|
+ var10.add(var5);
|
|
+ Button var7 = new Button("OK");
|
|
+ var7.addActionListener(var10);
|
|
+ GridBagConstraints var8 = new GridBagConstraints();
|
|
+ var8.gridx = 0;
|
|
+ var8.gridy = 1;
|
|
+ var11.setConstraints(var7, var8);
|
|
+ var10.add(var7);
|
|
+ var10.validate();
|
|
+ var10.show();
|
|
+ var10.waitForResponse();
|
|
+ return false;
|
|
+ } else {
|
|
return true;
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- var2 += var4;
|
|
- var3 = new Integer(var1.nextToken());
|
|
- var4 = var3.floatValue() / 100.0F;
|
|
- var2 += var4;
|
|
- } catch (NoSuchElementException var9) {
|
|
- }
|
|
-
|
|
- if (var2 <= 1.13F) {
|
|
- BlockingDialog var10 = new BlockingDialog(new Frame(), "Worlds.com: Error", true);
|
|
- GridBagLayout var11 = new GridBagLayout();
|
|
- var10.setLayout(var11);
|
|
- var10.setSize(200, 150);
|
|
- MultiLineLabel var5 = new MultiLineLabel("Your system's Java Virtual Machine\nis out of date. Please download our\nfull installer and try again.");
|
|
- GridBagConstraints var6 = new GridBagConstraints();
|
|
- var6.gridx = 0;
|
|
- var6.gridy = 0;
|
|
- var11.setConstraints(var5, var6);
|
|
- var10.add(var5);
|
|
- Button var7 = new Button("OK");
|
|
- var7.addActionListener(var10);
|
|
- GridBagConstraints var8 = new GridBagConstraints();
|
|
- var8.gridx = 0;
|
|
- var8.gridy = 1;
|
|
- var11.setConstraints(var7, var8);
|
|
- var10.add(var7);
|
|
- var10.validate();
|
|
- var10.show();
|
|
- var10.waitForResponse();
|
|
- return false;
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public static void main(String[] var0) {
|
|
- String var1 = parseCommandLine(var0);
|
|
- String var2 = System.getProperty("java.version");
|
|
- if (!checkVersion(var2)) {
|
|
- System.exit(0);
|
|
- }
|
|
-
|
|
- String var3 = System.getProperty("java.vendor");
|
|
- System.out.println("User running java version " + var2 + " from vendor " + System.getProperty("java.vendor"));
|
|
- String var4 = "winawt";
|
|
- String var5 = "net";
|
|
- boolean var6 = false;
|
|
- if (var3.indexOf("Microsoft") != -1) {
|
|
- var4 = "MSAWT";
|
|
- var5 = "MSNET32";
|
|
- var6 = true;
|
|
- }
|
|
-
|
|
- System.out.println("Loading: " + earlyURLUnalias(_dllPath + "gamma.dll"));
|
|
- System.load(earlyURLUnalias(_dllPath + "gamma.dll"));
|
|
- if (var6) {
|
|
- Window.doMicrosoftVMHacks();
|
|
- }
|
|
-
|
|
- if (IniFile.gamma().getIniInt("MULTIRUN", 0) == 0 && !Startup.synchronizeStartup(var1, _autoplay)) {
|
|
- System.exit(0);
|
|
- }
|
|
-
|
|
- if (var2.charAt(2) <= '1' && !var6) {
|
|
- try {
|
|
- System.loadLibrary(var4);
|
|
- } catch (UnsatisfiedLinkError var35) {
|
|
- }
|
|
-
|
|
- try {
|
|
- System.loadLibrary(var5);
|
|
- } catch (UnsatisfiedLinkError var34) {
|
|
- }
|
|
- } else {
|
|
- if (!var6) {
|
|
- var4 = "awt";
|
|
- }
|
|
-
|
|
- new Color(0, 0, 0);
|
|
-
|
|
- try {
|
|
- URL var8 = new URL("http://127.0.0.1/");
|
|
- URLConnection var9 = var8.openConnection();
|
|
- var9.connect();
|
|
- } catch (MalformedURLException var36) {
|
|
- } catch (IOException var37) {
|
|
- }
|
|
- }
|
|
-
|
|
- if (!var6) {
|
|
- Window.hookWinAPIs(var4);
|
|
- }
|
|
-
|
|
- String var7 = earlyURLUnalias("home:worlds.ini");
|
|
- Std.initProductName();
|
|
- IniFile var38 = IniFile.override();
|
|
- String var39 = var38.getIniString("splashgif", Console.message("Opnscrnc.gif"));
|
|
- splash = new SplashScreen(GammaFrame.getDefaultTitle(), var39);
|
|
- splash.show();
|
|
- splash.toFront();
|
|
- String var10 = IniFile.gamma().getIniString("Proxy Server IP", "");
|
|
- String var11 = IniFile.gamma().getIniString("Proxy Server Port", "");
|
|
- if (var10.length() > 7) {
|
|
- Properties var12 = System.getProperties();
|
|
- System.out.println("Using Proxy Server: " + var10 + ":" + var11);
|
|
- var12.remove("socksProxyHost");
|
|
- var12.remove("socksProxyPort");
|
|
- var12.put("socksProxyHost", var10);
|
|
- var12.put("socksProxyPort", var11);
|
|
- System.setProperties(var12);
|
|
- }
|
|
-
|
|
- loadProgress = new ProgressBar("Loading Worldsplayer...", 12);
|
|
- Dimension var14 = splash.getSize();
|
|
- Dimension var15 = loadProgress.getSize();
|
|
- int var40 = splash.getLocationOnScreen().x + (var14.width >> 1) - (var15.width >> 1);
|
|
- int var13 = splash.getLocationOnScreen().y + var14.height;
|
|
- loadProgress.setLocation(var40, var13);
|
|
- loadProgress.show();
|
|
- java.awt.Cursor var16 = java.awt.Cursor.getPredefinedCursor(3);
|
|
- loadProgress.setCursor(var16);
|
|
- splash.setCursor(var16);
|
|
- if (var7.length() > 1 && var7.charAt(1) == ':') {
|
|
- Startup.computeVolumeInfo("" + var7.charAt(0) + ":\\");
|
|
- } else {
|
|
- Startup.computeVolumeInfo((String)null);
|
|
- }
|
|
-
|
|
- try {
|
|
- LogFile.open();
|
|
- Gamma var17 = new Gamma(var1);
|
|
- Main.register(var17);
|
|
- if (loadProgress != null) {
|
|
- loadProgress.setMessage("Starting main thread...");
|
|
- loadProgress.advance();
|
|
- }
|
|
-
|
|
- Thread var18 = new Thread(var17, "Gamma Main");
|
|
- var18.setDaemon(true);
|
|
- var18.start();
|
|
- new Gamma.PriorityAdjuster(var18);
|
|
- if (loadProgress != null) {
|
|
- loadProgress.setMessage("Initializing ActiveX...");
|
|
- loadProgress.advance();
|
|
- }
|
|
-
|
|
- new Netscape();
|
|
-
|
|
- try {
|
|
- var18.join();
|
|
- } catch (InterruptedException var30) {
|
|
- throw new Error(var30.toString());
|
|
- }
|
|
-
|
|
- GammaFrame var20 = Console.getFrame();
|
|
- if (var20 != null) {
|
|
- var20.setVisible(false);
|
|
- }
|
|
- } catch (OutOfMemoryError var31) {
|
|
- System.out.println("ERROR: Ran out of memory!!");
|
|
- System.out.println("Details: " + var31);
|
|
- } catch (Throwable var32) {
|
|
- System.out.println("Uncaught throwable: " + var32);
|
|
- } finally {
|
|
- LogFile.close();
|
|
- }
|
|
-
|
|
- System.exit(0);
|
|
- }
|
|
-
|
|
- public static void hideSplash() {
|
|
- if (splash != null) {
|
|
- splash.hide();
|
|
- splash.dispose();
|
|
- splash = null;
|
|
- if (loadProgress != null) {
|
|
- loadProgress.hide();
|
|
- loadProgress.dispose();
|
|
- loadProgress = null;
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static String earlyURLUnalias(String var0) {
|
|
- if (var0.startsWith("home:")) {
|
|
- var0 = _home + var0.substring(5);
|
|
- }
|
|
-
|
|
- if (var0.startsWith("file:")) {
|
|
- var0 = var0.substring(5);
|
|
- }
|
|
-
|
|
- var0 = var0.replace('\\', '/');
|
|
- if (var0.length() < 2 || var0.charAt(1) != ':' && !var0.startsWith("//")) {
|
|
- String var1 = System.getProperty("user.dir").replace('\\', '/');
|
|
- if (!var1.endsWith("/")) {
|
|
- var1 = var1 + "/";
|
|
- }
|
|
-
|
|
- var0 = var1 + var0;
|
|
- }
|
|
-
|
|
- return var0;
|
|
- }
|
|
-
|
|
- public static String getParam(String var0) {
|
|
- return (String)_params.get(var0);
|
|
- }
|
|
-
|
|
- private static String parseCommandLine(String[] var0) {
|
|
- String var1 = null;
|
|
-
|
|
- for(int var2 = 0; var2 < var0.length; ++var2) {
|
|
- if (var0[var2].length() > 0 && var0[var2].charAt(0) == '-') {
|
|
- if (var0[var2].equalsIgnoreCase("-help")) {
|
|
- usage("Help message");
|
|
- } else if (var0[var2].equalsIgnoreCase("-home")) {
|
|
- ++var2;
|
|
- if (var2 == var0.length) {
|
|
- usage("-home must be followed by a path:");
|
|
- }
|
|
-
|
|
- _home = "file:" + var0[var2];
|
|
- System.out.println("Home: " + var0[var2]);
|
|
- } else if (var0[var2].equalsIgnoreCase("-dllpath")) {
|
|
- ++var2;
|
|
- if (var2 == var0.length) {
|
|
- usage("-dllpath must be followed by a path:");
|
|
- }
|
|
-
|
|
- _dllPath = var0[var2];
|
|
- } else if (!var0[var2].equalsIgnoreCase("-set")) {
|
|
- if (var0[var2].equalsIgnoreCase("-autoplay")) {
|
|
- _autoplay = true;
|
|
- } else if (!var0[var2].equalsIgnoreCase("-embedding") && !var0[var2].equalsIgnoreCase("/embedding") && !var0[var2].equalsIgnoreCase("-automation") && !var0[var2].equalsIgnoreCase("/automation")) {
|
|
- usage("Unrecognized command line option: " + var0[var2]);
|
|
- }
|
|
- } else {
|
|
- label57: {
|
|
- ++var2;
|
|
- if (var2 != var0.length) {
|
|
- ++var2;
|
|
- if (var2 != var0.length) {
|
|
- break label57;
|
|
- }
|
|
- }
|
|
+ public static void main(String[] var0) {
|
|
+ String var1 = parseCommandLine(var0);
|
|
+ String var2 = System.getProperty("java.version");
|
|
+ if (!checkVersion(var2)) {
|
|
+ System.exit(0);
|
|
+ }
|
|
+
|
|
+ String var3 = System.getProperty("java.vendor");
|
|
+ System.out.println("User running java version " + var2 + " from vendor " + System.getProperty("java.vendor"));
|
|
+ String var4 = "winawt";
|
|
+ String var5 = "net";
|
|
+ boolean var6 = false;
|
|
+ if (var3.indexOf("Microsoft") != -1) {
|
|
+ var4 = "MSAWT";
|
|
+ var5 = "MSNET32";
|
|
+ var6 = true;
|
|
+ }
|
|
+
|
|
+ System.out.println("Loading: " + earlyURLUnalias(_dllPath + "gamma.dll"));
|
|
+ System.load(earlyURLUnalias(_dllPath + "gamma.dll"));
|
|
+ System.load(earlyURLUnalias(_dllPath + "mumbleworlds.dll"));
|
|
+ if (var6) {
|
|
+ Window.doMicrosoftVMHacks();
|
|
+ }
|
|
+
|
|
+ if (IniFile.gamma().getIniInt("MULTIRUN", 0) == 0 && !Startup.synchronizeStartup(var1, _autoplay)) {
|
|
+ System.exit(0);
|
|
+ }
|
|
|
|
- usage("-set must be followed by a name of a parameter to set and its value");
|
|
- }
|
|
+ if (var2.charAt(2) <= '1' && !var6) {
|
|
+ try {
|
|
+ System.loadLibrary(var4);
|
|
+ } catch (UnsatisfiedLinkError var35) {
|
|
+ }
|
|
|
|
- _params.put(var0[var2 - 1], var0[var2]);
|
|
+ try {
|
|
+ System.loadLibrary(var5);
|
|
+ } catch (UnsatisfiedLinkError var34) {
|
|
}
|
|
- } else {
|
|
- if (var1 != null) {
|
|
- usage("There may be only one command-line world URL");
|
|
+ } else {
|
|
+ if (!var6) {
|
|
+ var4 = "awt";
|
|
}
|
|
|
|
- var1 = var0[var2];
|
|
- }
|
|
- }
|
|
-
|
|
- _home = makeEndWithSlash(_home);
|
|
- _dllPath = makeEndWithSlash(_dllPath);
|
|
- return var1;
|
|
- }
|
|
-
|
|
- private static String makeEndWithSlash(String var0) {
|
|
- if (!var0.endsWith("\\") && !var0.endsWith("/") && !var0.endsWith(":")) {
|
|
- var0 = var0 + "\\";
|
|
- }
|
|
-
|
|
- return var0;
|
|
- }
|
|
+ new Color(0, 0, 0);
|
|
|
|
- public static void usage(String var0) {
|
|
- System.out.println("Usage: javaw {-java_options} NET.worlds.console.Gamma {-options} WorldURL\nWorldURL is optional, the default world is the first WorldsMark.\nYes, it's gross, but the 'NET.worlds.console.Gamma' is required\nSome useful -java_options:\n -classpath Path Class search path [default is CLASSPATH env var]\n-options:\n -help Print this message (still runs Gamma)\n -home HomeDir Gamma home directory [defaults to current dir]\n -dllpath DLLPath Path to the native code DLL [current directory]\n -set Name Value Set the named parameter to the specified value");
|
|
- throw new Error(var0);
|
|
- }
|
|
-
|
|
- public static String getHome() {
|
|
- return _home;
|
|
- }
|
|
-
|
|
- public static String getExePath() {
|
|
- return getHome() + "bin\\";
|
|
- }
|
|
+ try {
|
|
+ URL var8 = new URL("http://127.0.0.1/");
|
|
+ URLConnection var9 = var8.openConnection();
|
|
+ var9.connect();
|
|
+ } catch (MalformedURLException var36) {
|
|
+ } catch (IOException var37) {
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!var6) {
|
|
+ Window.hookWinAPIs(var4);
|
|
+ }
|
|
+
|
|
+ new Themer();
|
|
+
|
|
+ String var7 = earlyURLUnalias("home:worlds.ini");
|
|
+ Std.initProductName();
|
|
+ String var39 = Themer.themer.asset(Console.message("Opnscrnc.gif"));
|
|
+ splash = new SplashScreen(GammaFrame.getDefaultTitle(), var39);
|
|
+ splash.show();
|
|
+ splash.toFront();
|
|
+ String var10 = IniFile.gamma().getIniString("Proxy Server IP", "");
|
|
+ String var11 = IniFile.gamma().getIniString("Proxy Server Port", "");
|
|
+ if (var10.length() > 7) {
|
|
+ Properties var12 = System.getProperties();
|
|
+ System.out.println("Using Proxy Server: " + var10 + ":" + var11);
|
|
+ var12.remove("socksProxyHost");
|
|
+ var12.remove("socksProxyPort");
|
|
+ var12.put("socksProxyHost", var10);
|
|
+ var12.put("socksProxyPort", var11);
|
|
+ System.setProperties(var12);
|
|
+ }
|
|
+
|
|
+ loadProgress = new ProgressBar("Loading Worldsplayer...", 12);
|
|
+ Dimension var14 = splash.getSize();
|
|
+ Dimension var15 = loadProgress.getSize();
|
|
+ int var40 = splash.getLocationOnScreen().x + (var14.width >> 1) - (var15.width >> 1);
|
|
+ int var13 = splash.getLocationOnScreen().y + var14.height;
|
|
+ loadProgress.setLocation(var40, var13);
|
|
+ loadProgress.show();
|
|
+ Cursor var16 = Cursor.getPredefinedCursor(3);
|
|
+ loadProgress.setCursor(var16);
|
|
+ splash.setCursor(var16);
|
|
+ if (var7.length() > 1 && var7.charAt(1) == ':') {
|
|
+ Startup.computeVolumeInfo("" + var7.charAt(0) + ":\\");
|
|
+ } else {
|
|
+ Startup.computeVolumeInfo((String)null);
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ LogFile.open();
|
|
+ Gamma var17 = new Gamma(var1);
|
|
+ Main.register(var17);
|
|
+ if (loadProgress != null) {
|
|
+ loadProgress.setMessage("Starting main thread...");
|
|
+ loadProgress.advance();
|
|
+ }
|
|
+
|
|
+ Thread var18 = new Thread(var17, "Gamma Main");
|
|
+ var18.setDaemon(true);
|
|
+ var18.start();
|
|
+ new Gamma.PriorityAdjuster(var18);
|
|
+ if (loadProgress != null) {
|
|
+ loadProgress.setMessage("Initializing ActiveX...");
|
|
+ loadProgress.advance();
|
|
+ }
|
|
|
|
- public static void dllLoad(String var0) {
|
|
- System.load(NET.worlds.network.URL.make(_dllPath + var0).unalias());
|
|
- }
|
|
+ new Netscape();
|
|
|
|
- public static Shaper getShaper() {
|
|
- return shaper;
|
|
- }
|
|
+ try {
|
|
+ var18.join();
|
|
+ } catch (InterruptedException var30) {
|
|
+ throw new Error(var30.toString());
|
|
+ }
|
|
+
|
|
+ GammaFrame var20 = Console.getFrame();
|
|
+ if (var20 != null) {
|
|
+ var20.setVisible(false);
|
|
+ }
|
|
+ } catch (OutOfMemoryError var31) {
|
|
+ System.out.println("ERROR: Ran out of memory!!");
|
|
+ System.out.println("Details: " + var31);
|
|
+ } catch (Throwable var32) {
|
|
+ System.out.println("Uncaught throwable: " + var32);
|
|
+ } finally {
|
|
+ LogFile.close();
|
|
+ }
|
|
+
|
|
+ System.exit(0);
|
|
+ }
|
|
+
|
|
+ public static void hideSplash() {
|
|
+ if (splash != null) {
|
|
+ splash.hide();
|
|
+ splash.dispose();
|
|
+ splash = null;
|
|
+ if (loadProgress != null) {
|
|
+ loadProgress.hide();
|
|
+ loadProgress.dispose();
|
|
+ loadProgress = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static String earlyURLUnalias(String var0) {
|
|
+ if (var0.startsWith("home:")) {
|
|
+ var0 = _home + var0.substring(5);
|
|
+ }
|
|
+
|
|
+ if (var0.startsWith("file:")) {
|
|
+ var0 = var0.substring(5);
|
|
+ }
|
|
+
|
|
+ var0 = var0.replace('\\', '/');
|
|
+ if (var0.length() < 2 || var0.charAt(1) != ':' && !var0.startsWith("//")) {
|
|
+ String var1 = System.getProperty("user.dir").replace('\\', '/');
|
|
+ if (!var1.endsWith("/")) {
|
|
+ var1 = var1 + "/";
|
|
+ }
|
|
+
|
|
+ var0 = var1 + var0;
|
|
+ }
|
|
+
|
|
+ return var0;
|
|
+ }
|
|
+
|
|
+ public static String getParam(String var0) {
|
|
+ return (String)_params.get(var0);
|
|
+ }
|
|
+
|
|
+ private static String parseCommandLine(String[] var0) {
|
|
+ String var1 = null;
|
|
+
|
|
+ for(int var2 = 0; var2 < var0.length; ++var2) {
|
|
+ if (var0[var2].length() > 0 && var0[var2].charAt(0) == '-') {
|
|
+ if (var0[var2].equalsIgnoreCase("-help")) {
|
|
+ usage("Help message");
|
|
+ } else if (var0[var2].equalsIgnoreCase("-home")) {
|
|
+ ++var2;
|
|
+ if (var2 == var0.length) {
|
|
+ usage("-home must be followed by a path:");
|
|
+ }
|
|
+
|
|
+ _home = "file:" + var0[var2];
|
|
+ System.out.println("Home: " + var0[var2]);
|
|
+ } else if (var0[var2].equalsIgnoreCase("-dllpath")) {
|
|
+ ++var2;
|
|
+ if (var2 == var0.length) {
|
|
+ usage("-dllpath must be followed by a path:");
|
|
+ }
|
|
+
|
|
+ _dllPath = var0[var2];
|
|
+ } else if (!var0[var2].equalsIgnoreCase("-set")) {
|
|
+ if (var0[var2].equalsIgnoreCase("-autoplay")) {
|
|
+ _autoplay = true;
|
|
+ } else if (!var0[var2].equalsIgnoreCase("-embedding") && !var0[var2].equalsIgnoreCase("/embedding") && !var0[var2].equalsIgnoreCase("-automation") && !var0[var2].equalsIgnoreCase("/automation")) {
|
|
+ usage("Unrecognized command line option: " + var0[var2]);
|
|
+ }
|
|
+ } else {
|
|
+ label57: {
|
|
+ ++var2;
|
|
+ if (var2 != var0.length) {
|
|
+ ++var2;
|
|
+ if (var2 != var0.length) {
|
|
+ break label57;
|
|
+ }
|
|
+ }
|
|
|
|
- public static boolean shaperEnabled() {
|
|
- return IniFile.gamma().getIniInt("DISABLESHAPER", 1) == 0 || IniFile.override().getIniInt("DISABLESHAPER", 1) == 0;
|
|
- }
|
|
+ usage("-set must be followed by a name of a parameter to set and its value");
|
|
+ }
|
|
|
|
- private Gamma(String var1) {
|
|
- this.startingURL = var1;
|
|
- }
|
|
+ _params.put(var0[var2 - 1], var0[var2]);
|
|
+ }
|
|
+ } else {
|
|
+ if (var1 != null) {
|
|
+ usage("There may be only one command-line world URL");
|
|
+ }
|
|
+
|
|
+ var1 = var0[var2];
|
|
+ }
|
|
+ }
|
|
+
|
|
+ _home = makeEndWithSlash(_home);
|
|
+ _dllPath = makeEndWithSlash(_dllPath);
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ private static String makeEndWithSlash(String var0) {
|
|
+ if (!var0.endsWith("\\") && !var0.endsWith("/") && !var0.endsWith(":")) {
|
|
+ var0 = var0 + "\\";
|
|
+ }
|
|
+
|
|
+ return var0;
|
|
+ }
|
|
+
|
|
+ public static void usage(String var0) {
|
|
+ System.out.println("Usage: javaw {-java_options} NET.worlds.console.Gamma {-options} WorldURL\nWorldURL is optional, the default world is the first WorldsMark.\nYes, it's gross, but the 'NET.worlds.console.Gamma' is required\nSome useful -java_options:\n -classpath Path Class search path [default is CLASSPATH env var]\n-options:\n -help Print this message (still runs Gamma)\n -home HomeDir Gamma home directory [defaults to current dir]\n -dllpath DLLPath Path to the native code DLL [current directory]\n -set Name Value Set the named parameter to the specified value");
|
|
+ throw new Error(var0);
|
|
+ }
|
|
+
|
|
+ public static String getHome() {
|
|
+ return _home;
|
|
+ }
|
|
+
|
|
+ public static String getExePath() {
|
|
+ return getHome() + "bin\\";
|
|
+ }
|
|
+
|
|
+ public static void dllLoad(String var0) {
|
|
+ System.load(NET.worlds.network.URL.make(_dllPath + var0).unalias());
|
|
+ }
|
|
+
|
|
+ public static Shaper getShaper() {
|
|
+ return shaper;
|
|
+ }
|
|
+
|
|
+ public static boolean shaperEnabled() {
|
|
+ return true;
|
|
+ //return IniFile.gamma().getIniInt("DISABLESHAPER", 1) == 0 || IniFile.override().getIniInt("DISABLESHAPER", 1) == 0;
|
|
+ }
|
|
+
|
|
+ private Gamma(String var1) {
|
|
+ this.startingURL = var1;
|
|
+ }
|
|
+
|
|
+ private void die(Throwable var1) {
|
|
+ var1.printStackTrace(System.out);
|
|
+ if (getShaper() != null) {
|
|
+ Console.println(Console.message("Saving-modified"));
|
|
+ Enumeration var2 = World.getWorlds();
|
|
+
|
|
+ while(true) {
|
|
+ World var3;
|
|
+ do {
|
|
+ if (!var2.hasMoreElements()) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ var3 = (World)var2.nextElement();
|
|
+ } while(!var3.getEdited());
|
|
+
|
|
+ String var4 = var3.getSourceURL().unalias();
|
|
+ if (var4.toLowerCase().endsWith(".wor")) {
|
|
+ var4 = var4.substring(0, var4.length() - 4);
|
|
+ }
|
|
+
|
|
+ if (var4.toLowerCase().endsWith(".world")) {
|
|
+ var4 = var4.substring(0, var4.length() - 6);
|
|
+ }
|
|
+
|
|
+ int var5 = var4.lastIndexOf("-");
|
|
+ if (var5 != -1) {
|
|
+ for(int var6 = var5 + 1; var6 < var4.length(); ++var6) {
|
|
+ if (!Character.isDigit(var4.charAt(var6))) {
|
|
+ var5 = -1;
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (var5 != -1) {
|
|
+ var4 = var4.substring(0, var5);
|
|
+ }
|
|
+
|
|
+ String var12 = var4 + ".world";
|
|
+
|
|
+ for(int var7 = 1; (new File(var12)).exists(); ++var7) {
|
|
+ var12 = var4 + "-" + var7 + ".world";
|
|
+ }
|
|
+
|
|
+ Object[] var8 = new Object[]{new String(var3.getName()), new String("" + var3.getSourceURL()), new String(var12)};
|
|
+ Console.println(MessageFormat.format(Console.message("Saving-name"), var8));
|
|
+
|
|
+ try {
|
|
+ Shaper.doSave(var12, var3, false);
|
|
+ } catch (Exception var10) {
|
|
+ Console.println(Console.message("Ignoring") + var10);
|
|
+ } catch (Error var11) {
|
|
+ Console.println(Console.message("Ignoring") + var11);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void run() {
|
|
+ Main.register(new Gamma.RecordPosition());
|
|
+
|
|
+ try {
|
|
+ Main.mainLoop();
|
|
+ } catch (Throwable var2) {
|
|
+ this.die(var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ Main.unregister(this);
|
|
+ if (NetUpdate.doUpdate(false)) {
|
|
+ Main.end();
|
|
+ } else {
|
|
+ File var1 = new File(earlyURLUnalias("home:bin"));
|
|
+ File var2 = new File(var1, "gdkup.prg");
|
|
+ File var3 = new File(var1, "gdkup.exe");
|
|
+ int var7;
|
|
+ if (var2.exists() && (!var3.exists() || var2.lastModified() > var3.lastModified())) {
|
|
+ if (var3.exists()) {
|
|
+ var3.delete();
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ FileInputStream var4 = new FileInputStream(var2);
|
|
+ FileOutputStream var5 = new FileOutputStream(var3);
|
|
+ byte[] var6 = new byte[8192];
|
|
+
|
|
+ while((var7 = var4.read(var6)) > 0) {
|
|
+ var5.write(var6, 0, var7);
|
|
+ }
|
|
+
|
|
+ var4.close();
|
|
+ var5.close();
|
|
+ } catch (Exception var10) {
|
|
+ var10.printStackTrace(System.out);
|
|
+ throw new Error("Can't copy gdkup.prg");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (shaperEnabled()) {
|
|
+ shaper = new Shaper();
|
|
+ }
|
|
+
|
|
+ IniFile var11 = IniFile.override();
|
|
+ String var12 = Themer.themer.asset(Console.message("Pwc.gif"));
|
|
+ int var13 = Themer.override().getIniInt("splashxover", 141);
|
|
+ var7 = Themer.override().getIniInt("splashyover", 140);
|
|
+ if (var13 >= 0) {
|
|
+ splash.addOverlay(var12, var13, var7);
|
|
+ }
|
|
+
|
|
+ if (loadProgress != null) {
|
|
+ loadProgress.setMessage("Teleporting to start location...");
|
|
+ loadProgress.advance();
|
|
+ }
|
|
|
|
- private void die(Throwable var1) {
|
|
- var1.printStackTrace(System.out);
|
|
- if (getShaper() != null) {
|
|
- Console.println(Console.message("Saving-modified"));
|
|
- Enumeration var2 = World.getWorlds();
|
|
+ try {
|
|
+ TeleportAction.teleport(this.startingURL, this, false);
|
|
+ } catch (Exception var9) {
|
|
+ this.loadErr = "Couldn't teleport to " + this.startingURL + ": " + var9;
|
|
+ }
|
|
|
|
- while(true) {
|
|
- World var3;
|
|
- do {
|
|
- if (!var2.hasMoreElements()) {
|
|
- return;
|
|
- }
|
|
+ if (this.loadErr != null) {
|
|
+ System.out.println(this.loadErr);
|
|
+ this.loadErr = null;
|
|
+ TeleportAction.teleport("world:", this, false);
|
|
+ if (this.loadErr != null) {
|
|
+ this.loadErr = null;
|
|
+ TeleportAction.teleport("home:NewWorld.world", this, false);
|
|
+ if (this.loadErr != null) {
|
|
+ Main.end();
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Main.register(new Gamma.StartupTeleport());
|
|
+ }
|
|
+
|
|
+ new MusicManager();
|
|
+ }
|
|
+ }
|
|
|
|
- var3 = (World)var2.nextElement();
|
|
- } while(!var3.getEdited());
|
|
+ public void teleportStatus(String var1, String var2) {
|
|
+ if (var1 == null) {
|
|
+ this.loadErr = null;
|
|
+ } else {
|
|
+ this.loadErr = var1;
|
|
+ }
|
|
|
|
- String var4 = var3.getSourceURL().unalias();
|
|
- if (var4.toLowerCase().endsWith(".wor")) {
|
|
- var4 = var4.substring(0, var4.length() - 4);
|
|
- }
|
|
+ }
|
|
|
|
- if (var4.toLowerCase().endsWith(".world")) {
|
|
- var4 = var4.substring(0, var4.length() - 6);
|
|
- }
|
|
+ class StartupTeleport implements MainCallback {
|
|
+ StartupTeleport() {
|
|
+ }
|
|
|
|
- int var5 = var4.lastIndexOf("-");
|
|
- if (var5 != -1) {
|
|
- for(int var6 = var5 + 1; var6 < var4.length(); ++var6) {
|
|
- if (!Character.isDigit(var4.charAt(var6))) {
|
|
- var5 = -1;
|
|
- break;
|
|
- }
|
|
- }
|
|
- }
|
|
+ public void mainCallback() {
|
|
+ if (Console.getFrame() != null && Console.getFrame().isShowing()) {
|
|
+ Main.unregister(this);
|
|
|
|
- if (var5 != -1) {
|
|
- var4 = var4.substring(0, var5);
|
|
+ try {
|
|
+ TeleportAction.teleport(Gamma.this.startingURL, Gamma.this, true);
|
|
+ } catch (Exception var2) {
|
|
+ }
|
|
}
|
|
|
|
- String var12 = var4 + ".world";
|
|
+ }
|
|
+ }
|
|
|
|
- for(int var7 = 1; (new File(var12)).exists(); ++var7) {
|
|
- var12 = var4 + "-" + var7 + ".world";
|
|
- }
|
|
+ public class RecordPosition implements MainCallback, MainTerminalCallback {
|
|
+ public RecordPosition() {
|
|
+ }
|
|
|
|
- Object[] var8 = new Object[]{new String(var3.getName()), new String("" + var3.getSourceURL()), new String(var12)};
|
|
- Console.println(MessageFormat.format(Console.message("Saving-name"), var8));
|
|
+ public void mainCallback() {
|
|
+ }
|
|
|
|
- try {
|
|
- Shaper.doSave(var12, var3, false);
|
|
- } catch (Exception var10) {
|
|
- Console.println(Console.message("Ignoring") + var10);
|
|
- } catch (Error var11) {
|
|
- Console.println(Console.message("Ignoring") + var11);
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void run() {
|
|
- Main.register(new Gamma.RecordPosition());
|
|
-
|
|
- try {
|
|
- Main.mainLoop();
|
|
- } catch (Throwable var2) {
|
|
- this.die(var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void mainCallback() {
|
|
- Main.unregister(this);
|
|
- if (NetUpdate.doUpdate(false)) {
|
|
- Main.end();
|
|
- } else {
|
|
- File var1 = new File(earlyURLUnalias("home:bin"));
|
|
- File var2 = new File(var1, "gdkup.prg");
|
|
- File var3 = new File(var1, "gdkup.exe");
|
|
- int var7;
|
|
- if (var2.exists() && (!var3.exists() || var2.lastModified() > var3.lastModified())) {
|
|
- if (var3.exists()) {
|
|
- var3.delete();
|
|
+ public void terminalCallback() {
|
|
+ Pilot var1 = Pilot.getActive();
|
|
+ if (var1 != null) {
|
|
+ IniFile.gamma().setIniString("RestartAt", var1.getURL());
|
|
}
|
|
|
|
- try {
|
|
- FileInputStream var4 = new FileInputStream(var2);
|
|
- FileOutputStream var5 = new FileOutputStream(var3);
|
|
- byte[] var6 = new byte[8192];
|
|
-
|
|
- while((var7 = var4.read(var6)) > 0) {
|
|
- var5.write(var6, 0, var7);
|
|
- }
|
|
-
|
|
- var4.close();
|
|
- var5.close();
|
|
- } catch (Exception var10) {
|
|
- var10.printStackTrace(System.out);
|
|
- throw new Error("Can't copy gdkup.prg");
|
|
- }
|
|
- }
|
|
-
|
|
- if (shaperEnabled()) {
|
|
- shaper = new Shaper();
|
|
- }
|
|
-
|
|
- IniFile var11 = IniFile.override();
|
|
- String var12 = var11.getIniString("splashover", Console.message("Pwc.gif"));
|
|
- int var13 = var11.getIniInt("splashxover", 141);
|
|
- var7 = var11.getIniInt("splashyover", 140);
|
|
- if (var13 >= 0) {
|
|
- splash.addOverlay(var12, var13, var7);
|
|
- }
|
|
-
|
|
- if (loadProgress != null) {
|
|
- loadProgress.setMessage("Teleporting to start location...");
|
|
- loadProgress.advance();
|
|
- }
|
|
-
|
|
- try {
|
|
- TeleportAction.teleport(this.startingURL, this, false);
|
|
- } catch (Exception var9) {
|
|
- this.loadErr = "Couldn't teleport to " + this.startingURL + ": " + var9;
|
|
- }
|
|
-
|
|
- if (this.loadErr != null) {
|
|
- System.out.println(this.loadErr);
|
|
- this.loadErr = null;
|
|
- TeleportAction.teleport("world:", this, false);
|
|
- if (this.loadErr != null) {
|
|
- this.loadErr = null;
|
|
- TeleportAction.teleport("home:NewWorld.world", this, false);
|
|
- if (this.loadErr != null) {
|
|
- Main.end();
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- Main.register(new Gamma.StartupTeleport());
|
|
- }
|
|
-
|
|
- new MusicManager();
|
|
- }
|
|
- }
|
|
-
|
|
- public void teleportStatus(String var1, String var2) {
|
|
- if (var1 == null) {
|
|
- this.loadErr = null;
|
|
- } else {
|
|
- this.loadErr = var1;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- class StartupTeleport implements MainCallback {
|
|
- public void mainCallback() {
|
|
- if (Console.getFrame() != null && Console.getFrame().isShowing()) {
|
|
Main.unregister(this);
|
|
+ }
|
|
+ }
|
|
|
|
- try {
|
|
- TeleportAction.teleport(Gamma.this.startingURL, Gamma.this, true);
|
|
- } catch (Exception var2) {
|
|
+ static class PriorityAdjuster implements MainCallback {
|
|
+ private Thread mainThread;
|
|
+ boolean wasActivated = true;
|
|
+
|
|
+ PriorityAdjuster(Thread var1) {
|
|
+ this.mainThread = var1;
|
|
+ this.mainThread.setPriority(5);
|
|
+ Main.register(this);
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ if (Window.isActivated() != this.wasActivated) {
|
|
+ this.wasActivated = !this.wasActivated;
|
|
+ this.mainThread.setPriority(this.wasActivated ? 5 : 1);
|
|
}
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public class RecordPosition implements MainCallback, MainTerminalCallback {
|
|
- public void mainCallback() {
|
|
- }
|
|
-
|
|
- public void terminalCallback() {
|
|
- Pilot var1 = Pilot.getActive();
|
|
- if (var1 != null) {
|
|
- IniFile.gamma().setIniString("RestartAt", var1.getURL());
|
|
- }
|
|
-
|
|
- Main.unregister(this);
|
|
- }
|
|
- }
|
|
-
|
|
- static class PriorityAdjuster implements MainCallback {
|
|
- private Thread mainThread;
|
|
- boolean wasActivated = true;
|
|
-
|
|
- PriorityAdjuster(Thread var1) {
|
|
- this.mainThread = var1;
|
|
- this.mainThread.setPriority(5);
|
|
- Main.register(this);
|
|
- }
|
|
-
|
|
- public void mainCallback() {
|
|
- if (Window.isActivated() != this.wasActivated) {
|
|
- this.wasActivated = !this.wasActivated;
|
|
- this.mainThread.setPriority(this.wasActivated ? 5 : 1);
|
|
- }
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/GammaTextArea.java b/1904/NET/worlds/console/GammaTextArea.java
|
|
--- a/1904/NET/worlds/console/GammaTextArea.java 2020-08-06 15:46:20.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/GammaTextArea.java 2023-09-10 15:53:40.000000000 -0500
|
|
@@ -2,515 +2,827 @@
|
|
|
|
import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
-import java.awt.Color;
|
|
-import java.awt.Font;
|
|
-import java.awt.FontMetrics;
|
|
-import java.awt.Graphics;
|
|
-import java.awt.GridBagConstraints;
|
|
-import java.awt.GridBagLayout;
|
|
-import java.awt.Panel;
|
|
-import java.awt.Scrollbar;
|
|
-import java.awt.event.AdjustmentEvent;
|
|
-import java.awt.event.AdjustmentListener;
|
|
-import java.awt.event.FocusEvent;
|
|
+import NET.worlds.network.URL;
|
|
+import NET.worlds.scape.*;
|
|
+import NET.worldsplus.Themer;
|
|
+
|
|
+import java.awt.*;
|
|
+import java.awt.datatransfer.Clipboard;
|
|
+import java.awt.datatransfer.ClipboardOwner;
|
|
+import java.awt.datatransfer.StringSelection;
|
|
+import java.awt.event.*;
|
|
import java.awt.event.KeyEvent;
|
|
+import java.awt.event.MouseEvent;
|
|
+import java.io.*;
|
|
import java.util.StringTokenizer;
|
|
import java.util.Vector;
|
|
|
|
-public class GammaTextArea extends Panel implements AdjustmentListener {
|
|
- public static final int SCROLLBARS_BOTH = 1;
|
|
- public static final int SCROLLBARS_VERTICAL_ONLY = 2;
|
|
- public static final int SCROLLBARS_HORIZONTAL_ONLY = 3;
|
|
- public static final int SCROLLBARS_NONE = 4;
|
|
- protected static final int _margin = 2;
|
|
- private int _width;
|
|
- private int _height;
|
|
- private StyledTextCanvas _canvas;
|
|
- private String _string;
|
|
- private Font _font;
|
|
- private int _currentStyle;
|
|
- private String _currentFontName;
|
|
- private int _currentPointSize;
|
|
- private Color _currentColor;
|
|
- private GammaTextScrollbar _vertBar;
|
|
- private GammaTextScrollbar _horzBar;
|
|
- private int _numLines;
|
|
- private int _canvasLines;
|
|
- private int _scrollLine;
|
|
- private Vector _lines;
|
|
- private boolean _hasFocus;
|
|
- public static String boldStartTag = "<b>";
|
|
- public static String boldEndTag = "</b>";
|
|
- public static String italicStartTag = "<i>";
|
|
- public static String italicEndTag = "</i>";
|
|
- public static String colorStartMagentaTag = "<color=\"#FF00FF\">";
|
|
- public static String colorStartBlueTag = "<color=\"#0000FF\">";
|
|
- public static String colorStartRedTag = "<color=\"#FF0000\">";
|
|
- public static String colorStartGreenTag = "<color=\"#00FF00\">";
|
|
- public static String colorEndTag = "</color>";
|
|
- public static String colorMagenta2Tag = "<color=magenta>";
|
|
- public static String colorBlue2Tag = "<color=blue>";
|
|
- public static String colorRed2Tag = "<color=red>";
|
|
- public static String colorGreen2Tag = "<color=green>";
|
|
- public static String colorCyanTag = "<color=cyan>";
|
|
- public static String colorDarkGrayTag = "<color=darkgray>";
|
|
- public static String colorGrayTag = "<color=gray>";
|
|
- public static String colorOrangeTag = "<color=orange>";
|
|
- public static String colorPinkTag = "<color=pink>";
|
|
- public static String colorYellowTag = "<color=yellow>";
|
|
- public static String colorWhiteTag = "<color=white>";
|
|
- public static String colorLightGrayTag = "<color=lightgray>";
|
|
- protected static String[] tagList;
|
|
-
|
|
- public Font getFont() {
|
|
- return this._font;
|
|
- }
|
|
-
|
|
- public int getWidth() {
|
|
- return this._width;
|
|
- }
|
|
-
|
|
- public int getHeight() {
|
|
- return this._height;
|
|
- }
|
|
-
|
|
- public void setWidth(int var1) {
|
|
- this._width = var1 - 4;
|
|
- }
|
|
-
|
|
- public void setHeight(int var1) {
|
|
- this._height = var1 - 4;
|
|
- }
|
|
-
|
|
- public Vector getLines() {
|
|
- return this._lines;
|
|
- }
|
|
-
|
|
- public int getScrollLine() {
|
|
- return this._scrollLine;
|
|
- }
|
|
-
|
|
- public int getCanvasLines() {
|
|
- return this._canvasLines;
|
|
- }
|
|
-
|
|
- public int getNumLines() {
|
|
- return this._numLines;
|
|
- }
|
|
-
|
|
- public boolean getHasFocus() {
|
|
- return this._hasFocus;
|
|
- }
|
|
-
|
|
- public Scrollbar getVertScrollbar() {
|
|
- return this._vertBar;
|
|
- }
|
|
-
|
|
- static Color getBackgroundColor() {
|
|
- int var0 = IniFile.override().getIniInt("chatBgR", 255);
|
|
- int var1 = IniFile.override().getIniInt("chatBgG", 255);
|
|
- int var2 = IniFile.override().getIniInt("chatBgB", 203);
|
|
- return new Color(var0, var1, var2);
|
|
- }
|
|
-
|
|
- GammaTextArea(String var1, int var2, int var3, int var4) {
|
|
- this._string = var1;
|
|
- this._currentFontName = Console.message("GammaTextFont");
|
|
- this._currentStyle = 0;
|
|
- this._currentPointSize = 12;
|
|
- this._currentColor = Color.black;
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- this._canvas = new StyledTextCanvas();
|
|
- FontMetrics var5 = this._canvas.getFontMetrics(this._font);
|
|
- Debug.dAssert(var5 != null);
|
|
- int var6 = var5.getHeight();
|
|
- int var7 = var5.charWidth('M') * var3;
|
|
- int var8 = var5.getHeight() * var2;
|
|
- this._canvas.setSize(var7, var8);
|
|
- this.setWidth(var7);
|
|
- this.setHeight(var8);
|
|
- this._lines = new Vector();
|
|
- this._hasFocus = false;
|
|
- this._numLines = this._scrollLine = this._canvasLines = 0;
|
|
- switch(var4) {
|
|
- case 1:
|
|
- this._vertBar = new GammaTextScrollbar(1);
|
|
- this._horzBar = new GammaTextScrollbar(0);
|
|
- break;
|
|
- case 2:
|
|
- this._vertBar = new GammaTextScrollbar(1);
|
|
- this._horzBar = null;
|
|
- break;
|
|
- case 3:
|
|
- this._vertBar = null;
|
|
- this._horzBar = new GammaTextScrollbar(0);
|
|
- break;
|
|
- case 4:
|
|
- this._vertBar = this._horzBar = null;
|
|
- }
|
|
-
|
|
- GridBagLayout var9 = new GridBagLayout();
|
|
- this.setLayout(var9);
|
|
- GridBagConstraints var10 = new GridBagConstraints();
|
|
- var10.fill = 1;
|
|
- var10.weightx = 1.0D;
|
|
- var10.weighty = 1.0D;
|
|
- var9.setConstraints(this._canvas, var10);
|
|
- this.add(this._canvas);
|
|
- if (this._vertBar != null) {
|
|
- var10 = new GridBagConstraints();
|
|
- var10.fill = 3;
|
|
- var10.gridwidth = 0;
|
|
- var9.setConstraints(this._vertBar, var10);
|
|
- this.add(this._vertBar);
|
|
- this._vertBar.addAdjustmentListener(this);
|
|
- }
|
|
-
|
|
- if (this._horzBar != null) {
|
|
- var10 = new GridBagConstraints();
|
|
- var10.fill = 2;
|
|
- var10.gridwidth = 1;
|
|
- this.add(this._horzBar);
|
|
- this._horzBar.addAdjustmentListener(this);
|
|
- }
|
|
-
|
|
- this.enableEvents(31L);
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- public void update(Graphics var1) {
|
|
- this.paint(var1);
|
|
- }
|
|
-
|
|
- protected void processFocusEvent(FocusEvent var1) {
|
|
- if (var1.getID() == 1004) {
|
|
- this._hasFocus = true;
|
|
- } else if (var1.getID() == 1005) {
|
|
- this._hasFocus = false;
|
|
- }
|
|
-
|
|
- this._canvas.repaint();
|
|
- super.processFocusEvent(var1);
|
|
- }
|
|
-
|
|
- protected void processKeyEvent(KeyEvent var1) {
|
|
- this._canvas.dispatchEvent(var1);
|
|
- super.processKeyEvent(var1);
|
|
- }
|
|
-
|
|
- public void adjustmentValueChanged(AdjustmentEvent var1) {
|
|
- this._scrollLine = this._vertBar.getValue();
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- public void setEditable(boolean var1) {
|
|
- if (var1) {
|
|
- System.out.println("Can't set GammaTextArea to be editable.");
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public synchronized String getText() {
|
|
- return this._string;
|
|
- }
|
|
-
|
|
- public synchronized void setText(String var1) {
|
|
- this._string = var1;
|
|
- this.wordWrapAll();
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
- this._scrollLine = 0;
|
|
- }
|
|
-
|
|
- this.setScrollBounds();
|
|
- }
|
|
-
|
|
- public void repaint() {
|
|
- this._canvas.repaint();
|
|
- super.repaint();
|
|
- }
|
|
-
|
|
- protected synchronized void wordWrapAll() {
|
|
- this._lines.removeAllElements();
|
|
- this._numLines = 0;
|
|
- this.wordWrap(this._string);
|
|
- }
|
|
-
|
|
- protected boolean isLastLineVisible() {
|
|
- return this._scrollLine == this._numLines - this._canvasLines || this._numLines <= this._canvasLines;
|
|
- }
|
|
-
|
|
- protected boolean handleTag(String var1) {
|
|
- if (var1.charAt(0) != '<') {
|
|
- return false;
|
|
- } else {
|
|
- for(int var2 = 0; var2 < tagList.length; ++var2) {
|
|
- if (var1.equals(tagList[var2])) {
|
|
- switch(var2) {
|
|
- case 0:
|
|
- this._currentStyle |= 1;
|
|
- break;
|
|
- case 1:
|
|
- this._currentStyle &= -2;
|
|
- break;
|
|
- case 2:
|
|
- this._currentStyle |= 2;
|
|
- break;
|
|
- case 3:
|
|
- this._currentStyle &= -3;
|
|
- break;
|
|
- case 4:
|
|
- this._currentColor = Color.magenta;
|
|
- break;
|
|
- case 5:
|
|
- this._currentColor = Color.red;
|
|
- break;
|
|
- case 6:
|
|
- this._currentColor = Color.green;
|
|
- break;
|
|
- case 7:
|
|
- this._currentColor = Color.blue;
|
|
- break;
|
|
- case 8:
|
|
- this._currentColor = Color.black;
|
|
- break;
|
|
- case 9:
|
|
- this._currentColor = Color.magenta;
|
|
- break;
|
|
- case 10:
|
|
- this._currentColor = Color.blue;
|
|
- break;
|
|
- case 11:
|
|
- this._currentColor = Color.red;
|
|
- break;
|
|
- case 12:
|
|
- this._currentColor = Color.green;
|
|
- break;
|
|
- case 13:
|
|
- this._currentColor = Color.cyan;
|
|
- break;
|
|
- case 14:
|
|
- this._currentColor = Color.darkGray;
|
|
- break;
|
|
- case 15:
|
|
- this._currentColor = Color.gray;
|
|
- break;
|
|
- case 16:
|
|
- this._currentColor = Color.orange;
|
|
- break;
|
|
- case 17:
|
|
- this._currentColor = Color.pink;
|
|
- break;
|
|
- case 18:
|
|
- this._currentColor = Color.yellow;
|
|
- break;
|
|
- case 19:
|
|
- this._currentColor = Color.white;
|
|
- break;
|
|
- case 20:
|
|
- this._currentColor = Color.lightGray;
|
|
- }
|
|
-
|
|
- try {
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- } catch (IllegalArgumentException var4) {
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- protected void ClearTags(Graphics var1) {
|
|
- if (this._currentStyle != 0) {
|
|
- this._currentStyle = 0;
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- }
|
|
-
|
|
- if (this._currentColor != Color.black) {
|
|
- this._currentColor = Color.black;
|
|
- }
|
|
-
|
|
- var1.setFont(this._font);
|
|
- var1.setColor(this._currentColor);
|
|
- }
|
|
-
|
|
- protected synchronized void wordWrap(String var1) {
|
|
- int var2 = this._width;
|
|
- if (var2 > 0) {
|
|
- StringTokenizer var3 = new StringTokenizer(var1, "\n\r");
|
|
-
|
|
- label74:
|
|
- while(var3.hasMoreTokens()) {
|
|
- String var4 = var3.nextToken();
|
|
- StringTokenizer var5 = new StringTokenizer(var4, "\n\r\t -", true);
|
|
- int var6 = 0;
|
|
- String var7 = "";
|
|
- int var8 = 0;
|
|
- FontMetrics var9 = this._canvas.getFontMetrics(this._font);
|
|
- Debug.dAssert(var9 != null);
|
|
-
|
|
- while(true) {
|
|
- while(true) {
|
|
- String var10;
|
|
- do {
|
|
- do {
|
|
- if (!var5.hasMoreTokens()) {
|
|
- if (!var7.equals("")) {
|
|
- ++this._numLines;
|
|
- this._lines.addElement(var7.trim());
|
|
- }
|
|
- continue label74;
|
|
+public class GammaTextArea extends Panel implements AdjustmentListener, ActionListener {
|
|
+ public static final int SCROLLBARS_BOTH = 1;
|
|
+ public static final int SCROLLBARS_VERTICAL_ONLY = 2;
|
|
+ public static final int SCROLLBARS_HORIZONTAL_ONLY = 3;
|
|
+ public static final int SCROLLBARS_NONE = 4;
|
|
+ protected static final int _margin = 2;
|
|
+ private int _width;
|
|
+ private int _height;
|
|
+ private StyledTextCanvas _canvas;
|
|
+ private String _string;
|
|
+ private Font _font;
|
|
+ private int _currentStyle;
|
|
+ private String _currentFontName;
|
|
+ private int _currentPointSize;
|
|
+ private Color _currentColor;
|
|
+ private GammaTextScrollbar _vertBar;
|
|
+ private GammaTextScrollbar _horzBar;
|
|
+ private int _numLines;
|
|
+ private int _canvasLines;
|
|
+ private int _scrollLine;
|
|
+ private Vector _lines;
|
|
+ private Vector _pos;
|
|
+ private int _lastpos = 0;
|
|
+ protected int _curpos = 0;
|
|
+ private boolean _hasFocus;
|
|
+ protected int selectionStart = -1;
|
|
+ protected int selectionEnd = -1;
|
|
+ private static final Color skyblue = new Color(135, 206, 255);
|
|
+ private PopupMenu rightMenu;
|
|
+ private MenuItem textCopyItem = new MenuItem(Console.message("Copy"));
|
|
+ private MenuItem textCopyTextItem = new MenuItem(Console.message("Copy Text"));
|
|
+ private MenuItem textCopyAllItem = new MenuItem(Console.message("Copy All"));
|
|
+ private MenuItem textCopyAllTextItem = new MenuItem(Console.message("Copy All Text"));
|
|
+ private MenuItem textSaveItem = new MenuItem(Console.message("Save All Text"));
|
|
+ private MenuItem textOpenURLItem = new MenuItem(Console.message("Open URL"));
|
|
+ static Color bgColor = null;
|
|
+ private int _numColumns;
|
|
+ private int _numRows;
|
|
+ private static int scrollWheelStep = IniFile.gamma().getIniInt("ScrollWheelStep", 3);
|
|
+ public static String boldStartTag = "<b>";
|
|
+ public static String boldEndTag = "</b>";
|
|
+ public static String italicStartTag = "<i>";
|
|
+ public static String italicEndTag = "</i>";
|
|
+ public static String colorStartMagentaTag = "<color=\"#FF00FF\">";
|
|
+ public static String colorStartBlueTag = "<color=\"#0000FF\">";
|
|
+ public static String colorStartRedTag = "<color=\"#FF0000\">";
|
|
+ public static String colorStartGreenTag = "<color=\"#00FF00\">";
|
|
+ public static String colorEndTag = "</color>";
|
|
+ public static String colorMagenta2Tag = "<color=magenta>";
|
|
+ public static String colorBlue2Tag = "<color=blue>";
|
|
+ public static String colorRed2Tag = "<color=red>";
|
|
+ public static String colorGreen2Tag = "<color=green>";
|
|
+ public static String colorCyanTag = "<color=cyan>";
|
|
+ public static String colorDarkGrayTag = "<color=darkgray>";
|
|
+ public static String colorGrayTag = "<color=gray>";
|
|
+ public static String colorOrangeTag = "<color=orange>";
|
|
+ public static String colorPinkTag = "<color=pink>";
|
|
+ public static String colorYellowTag = "<color=yellow>";
|
|
+ public static String colorWhiteTag = "<color=white>";
|
|
+ public static String colorLightGrayTag = "<color=lightgray>";
|
|
+ protected static String[] tagList;
|
|
+ private int lastWidth = 0;
|
|
+ protected boolean selectionConversion = false;
|
|
+ protected int _initialSelection = -1;
|
|
+
|
|
+ public Font getFont() {
|
|
+ return this._font;
|
|
+ }
|
|
+
|
|
+ public int getWidth() {
|
|
+ return this._width;
|
|
+ }
|
|
+
|
|
+ public int getHeight() {
|
|
+ return this._height;
|
|
+ }
|
|
+
|
|
+ public void setWidth(int var1) {
|
|
+ this._width = var1 - 4;
|
|
+ }
|
|
+
|
|
+ public void setHeight(int var1) {
|
|
+ this._height = var1 - 4;
|
|
+ }
|
|
+
|
|
+ public Vector getLines() {
|
|
+ return this._lines;
|
|
+ }
|
|
+
|
|
+ public int getScrollLine() {
|
|
+ return this._scrollLine;
|
|
+ }
|
|
+
|
|
+ public int getCanvasLines() {
|
|
+ return this._canvasLines;
|
|
+ }
|
|
+
|
|
+ public int getNumLines() {
|
|
+ return this._numLines;
|
|
+ }
|
|
+
|
|
+ public boolean getHasFocus() {
|
|
+ return this._hasFocus;
|
|
+ }
|
|
+
|
|
+ public Scrollbar getVertScrollbar() {
|
|
+ return this._vertBar;
|
|
+ }
|
|
+
|
|
+ static Color getBackgroundColor() {
|
|
+ if (bgColor == null) {
|
|
+ int bgR = Themer.override().getIniInt("chatBgR", 255);
|
|
+ int bgG = Themer.override().getIniInt("chatBgG", 255);
|
|
+ int bgB = Themer.override().getIniInt("chatBgB", 203);
|
|
+ bgColor = new Color(bgR, bgG, bgB);
|
|
+ }
|
|
+
|
|
+ return bgColor;
|
|
+ }
|
|
+
|
|
+ GammaTextArea(String text, int rows, int columns, int scrollbars) {
|
|
+ this._string = text;
|
|
+ this._numColumns = columns;
|
|
+ this._numRows = rows;
|
|
+ this._currentFontName = Console.message("GammaTextFont");
|
|
+ this._currentStyle = 0;
|
|
+ this._currentPointSize = IniFile.gamma().getIniInt("ChatFontSize", 12);
|
|
+ this._currentColor = Color.black;
|
|
+ this._canvas = new StyledTextCanvas();
|
|
+ this.setFontSize(this._currentPointSize);
|
|
+ this._lines = new Vector();
|
|
+ this._pos = new Vector();
|
|
+ this._lastpos = 0;
|
|
+ this._hasFocus = false;
|
|
+ this._numLines = this._scrollLine = this._canvasLines = 0;
|
|
+ switch(scrollbars) {
|
|
+ case 1:
|
|
+ this._vertBar = new GammaTextScrollbar(1);
|
|
+ this._horzBar = new GammaTextScrollbar(0);
|
|
+ break;
|
|
+ case 2:
|
|
+ this._vertBar = new GammaTextScrollbar(1);
|
|
+ this._horzBar = null;
|
|
+ break;
|
|
+ case 3:
|
|
+ this._vertBar = null;
|
|
+ this._horzBar = new GammaTextScrollbar(0);
|
|
+ break;
|
|
+ case 4:
|
|
+ this._vertBar = this._horzBar = null;
|
|
+ }
|
|
+
|
|
+ GridBagLayout gridbag = new GridBagLayout();
|
|
+ this.setLayout(gridbag);
|
|
+ GridBagConstraints c = new GridBagConstraints();
|
|
+ c.fill = 1;
|
|
+ c.weightx = 1.0D;
|
|
+ c.weighty = 1.0D;
|
|
+ gridbag.setConstraints(this._canvas, c);
|
|
+ this.add(this._canvas);
|
|
+ if (this._vertBar != null) {
|
|
+ c = new GridBagConstraints();
|
|
+ c.fill = 3;
|
|
+ c.gridwidth = 0;
|
|
+ gridbag.setConstraints(this._vertBar, c);
|
|
+ this.add(this._vertBar);
|
|
+ this._vertBar.addAdjustmentListener(this);
|
|
+ }
|
|
+
|
|
+ if (this._horzBar != null) {
|
|
+ c = new GridBagConstraints();
|
|
+ c.fill = 2;
|
|
+ c.gridwidth = 1;
|
|
+ this.add(this._horzBar);
|
|
+ this._horzBar.addAdjustmentListener(this);
|
|
+ }
|
|
+
|
|
+ this.enableEvents(131231L);
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
+
|
|
+ public synchronized void setFontSize(int fontsize) {
|
|
+ this._currentPointSize = fontsize;
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ this.recalcSize();
|
|
+ }
|
|
+
|
|
+ public synchronized void recalcSize() {
|
|
+ FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new AssertionError();
|
|
+
|
|
+ int w = fm.charWidth('M') * this._numColumns;
|
|
+ int h = fm.getHeight() * this._numRows;
|
|
+ this.setWidth(w);
|
|
+ this.setHeight(h);
|
|
+ this._canvas.setSize(w, h);
|
|
+ this.setWidth(w);
|
|
+ this.setHeight(h);
|
|
+ }
|
|
+
|
|
+ public void update(Graphics var1) {
|
|
+ this.paint(var1);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processMouseEvent(MouseEvent e) {
|
|
+ if (e.isPopupTrigger()) {
|
|
+ if (this.rightMenu != null && this.rightMenu.isEnabled()) {
|
|
+ this.hideRightMenu();
|
|
+ } else {
|
|
+ this.showRightMenu(e.getX(), e.getY());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.processMouseEvent(e);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processFocusEvent(FocusEvent e) {
|
|
+ if (e.getID() == 1004) {
|
|
+ this._hasFocus = true;
|
|
+ } else if (e.getID() == 1005) {
|
|
+ this._hasFocus = false;
|
|
+ }
|
|
+
|
|
+ this._canvas.repaint();
|
|
+ super.processFocusEvent(e);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processKeyEvent(KeyEvent e) {
|
|
+ this._canvas.dispatchEvent(e);
|
|
+ super.processKeyEvent(e);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processMouseWheelEvent(MouseWheelEvent e) {
|
|
+ if (e.getID() == 507) {
|
|
+ int move;
|
|
+ if (e.getScrollType() == 0) {
|
|
+ move = e.getScrollAmount() * e.getWheelRotation();
|
|
+ } else {
|
|
+ move = scrollWheelStep * e.getWheelRotation();
|
|
+ }
|
|
+
|
|
+ if (move != 0) {
|
|
+ this._vertBar.setValue(this._vertBar.getValue() + move);
|
|
+ this.requestFocus();
|
|
+ this._canvas.sendDelayedMouseEvent(e);
|
|
+ this.adjustmentValueChanged((AdjustmentEvent)null);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.processMouseWheelEvent(e);
|
|
+ }
|
|
+
|
|
+ public synchronized void adjustmentValueChanged(AdjustmentEvent e) {
|
|
+ this._scrollLine = this._vertBar.getValue();
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
+
|
|
+ public void setEditable(boolean var1) {
|
|
+ if (var1) {
|
|
+ System.out.println("Can't set GammaTextArea to be editable.");
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public synchronized String getText() {
|
|
+ return this._string;
|
|
+ }
|
|
+
|
|
+ public synchronized void setText(String s) {
|
|
+ this._string = s;
|
|
+ this.wordWrapAll();
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
+ this._scrollLine = 0;
|
|
+ }
|
|
+
|
|
+ this.setScrollBounds();
|
|
+ }
|
|
+
|
|
+ public synchronized void repaint() {
|
|
+ this._canvas.repaint();
|
|
+ super.repaint();
|
|
+ }
|
|
+
|
|
+ protected synchronized void wordWrapAll() {
|
|
+ this._lines.removeAllElements();
|
|
+ this._pos.removeAllElements();
|
|
+ this._numLines = 0;
|
|
+ this._lastpos = 0;
|
|
+ this.wordWrap(this._string);
|
|
+ }
|
|
+
|
|
+ protected synchronized boolean isLastLineVisible() {
|
|
+ if (!this._canvas.mouseActive && (this.selectionStart < 0 || this.selectionEnd <= this.selectionStart)) {
|
|
+ return this._scrollLine >= this._numLines - this._canvasLines || this._numLines <= this._canvasLines;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ protected synchronized boolean handleTag(Graphics g, String word, int x, int y) {
|
|
+ String lower = word.toLowerCase();
|
|
+ int color;
|
|
+ if (word.charAt(0) == '<') {
|
|
+ for (color = 0; color < tagList.length; ++color) {
|
|
+ if (lower.equals(tagList[color].toLowerCase())) {
|
|
+ switch (color) {
|
|
+ case 0:
|
|
+ this._currentStyle |= 1;
|
|
+ break;
|
|
+ case 1:
|
|
+ this._currentStyle &= -2;
|
|
+ break;
|
|
+ case 2:
|
|
+ this._currentStyle |= 2;
|
|
+ break;
|
|
+ case 3:
|
|
+ this._currentStyle &= -3;
|
|
+ break;
|
|
+ case 4:
|
|
+ case 9:
|
|
+ this._currentColor = Color.magenta;
|
|
+ break;
|
|
+ case 5:
|
|
+ case 11:
|
|
+ this._currentColor = Color.red;
|
|
+ break;
|
|
+ case 6:
|
|
+ case 12:
|
|
+ this._currentColor = Color.green;
|
|
+ break;
|
|
+ case 7:
|
|
+ case 10:
|
|
+ this._currentColor = Color.blue;
|
|
+ break;
|
|
+ case 8:
|
|
+ this._currentColor = Color.black;
|
|
+ break;
|
|
+ case 13:
|
|
+ this._currentColor = Color.cyan;
|
|
+ break;
|
|
+ case 14:
|
|
+ this._currentColor = Color.darkGray;
|
|
+ break;
|
|
+ case 15:
|
|
+ this._currentColor = Color.gray;
|
|
+ break;
|
|
+ case 16:
|
|
+ this._currentColor = Color.orange;
|
|
+ break;
|
|
+ case 17:
|
|
+ this._currentColor = Color.pink;
|
|
+ break;
|
|
+ case 18:
|
|
+ this._currentColor = Color.yellow;
|
|
+ break;
|
|
+ case 19:
|
|
+ this._currentColor = Color.white;
|
|
+ break;
|
|
+ case 20:
|
|
+ this._currentColor = Color.lightGray;
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ } catch (IllegalArgumentException ignored) {
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ protected void ClearTags(Graphics var1) {
|
|
+ if (this._currentStyle != 0) {
|
|
+ this._currentStyle = 0;
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ }
|
|
+
|
|
+ if (this._currentColor != Color.black) {
|
|
+ this._currentColor = Color.black;
|
|
+ }
|
|
+
|
|
+ var1.setFont(this._font);
|
|
+ var1.setColor(this._currentColor);
|
|
+ }
|
|
+
|
|
+ protected synchronized void wordWrap(String newText) {
|
|
+ int canvasWidth = this._width;
|
|
+ if (canvasWidth > 0) {
|
|
+ StringTokenizer rawLines = new StringTokenizer(newText, "\n\r");
|
|
+
|
|
+ label82:
|
|
+ while(rawLines.hasMoreTokens()) {
|
|
+ String rawLine = rawLines.nextToken();
|
|
+ StringTokenizer words = new StringTokenizer(rawLine, "\n\r\t -", true);
|
|
+ int lineWidth = 0;
|
|
+ StringBuffer thisLine = new StringBuffer();
|
|
+ this.lastWidth = 0;
|
|
+ FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new AssertionError();
|
|
+
|
|
+ while(true) {
|
|
+ while(true) {
|
|
+ String word;
|
|
+ do {
|
|
+ do {
|
|
+ if (!words.hasMoreTokens()) {
|
|
+ if (!thisLine.toString().equals("")) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length() + 1;
|
|
+ ++this._numLines;
|
|
+ this._lines.addElement(thisLine.toString().trim());
|
|
+ }
|
|
+ continue label82;
|
|
+ }
|
|
+
|
|
+ word = words.nextToken();
|
|
+ } while(word.equals("\n"));
|
|
+ } while(word.equals("\r"));
|
|
+
|
|
+ if (this.handleTag((Graphics)null, word, 0, 0)) {
|
|
+ lineWidth -= this.lastWidth;
|
|
+ thisLine.append(word);
|
|
+ if (words.hasMoreTokens()) {
|
|
+ thisLine.append(words.nextToken());
|
|
+ }
|
|
+
|
|
+ this.lastWidth = 0;
|
|
+ fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new AssertionError();
|
|
+ } else {
|
|
+ this.lastWidth = fm.stringWidth(word);
|
|
+ if (this.lastWidth >= canvasWidth) {
|
|
+ if (!thisLine.toString().equals("")) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length();
|
|
+ this._lines.addElement(thisLine.toString().trim());
|
|
+ ++this._numLines;
|
|
+ lineWidth = 0;
|
|
+ }
|
|
+
|
|
+ while(this.lastWidth >= canvasWidth) {
|
|
+ word = this.breakWord(word, fm);
|
|
+ lineWidth = this.lastWidth = 0;
|
|
+ thisLine = new StringBuffer();
|
|
+ if (word != null && word.length() > 0) {
|
|
+ this.lastWidth = fm.stringWidth(word);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ lineWidth += this.lastWidth;
|
|
+ if (lineWidth > 0 && word != null && word.length() > 0) {
|
|
+ if (lineWidth >= canvasWidth) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length();
|
|
+ this._lines.addElement(thisLine.toString().trim());
|
|
+ ++this._numLines;
|
|
+ lineWidth = this.lastWidth;
|
|
+ thisLine = new StringBuffer();
|
|
+ }
|
|
+
|
|
+ thisLine.append(word);
|
|
+ }
|
|
}
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ protected String breakWord(String var1, FontMetrics var2) {
|
|
+ int var3 = 0;
|
|
+ StringBuffer var4 = new StringBuffer();
|
|
+
|
|
+ for(int var5 = 0; var5 < var1.length(); ++var5) {
|
|
+ char var6 = var1.charAt(var5);
|
|
+ var3 += var2.charWidth(var6);
|
|
+ if (var3 >= this._width) {
|
|
+ this._lines.addElement(var4.toString());
|
|
+ ++this._numLines;
|
|
+ return var1.substring(var5);
|
|
+ }
|
|
+
|
|
+ var4.append(var6);
|
|
+ }
|
|
+
|
|
+ this._lines.addElement(var4.toString());
|
|
+ ++this._numLines;
|
|
+ return "";
|
|
+ }
|
|
+
|
|
+ public synchronized void rewrap() {
|
|
+ if (this._width > 0 && this._height > 0) {
|
|
+ this.wordWrapAll();
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
+ this._scrollLine = 0;
|
|
+ }
|
|
|
|
- var10 = var5.nextToken();
|
|
- } while(var10.equals("\n"));
|
|
- } while(var10.equals("\r"));
|
|
-
|
|
- if (this.handleTag(var10)) {
|
|
- var6 -= var8;
|
|
- var7 = var7 + var10;
|
|
- if (var5.hasMoreTokens()) {
|
|
- var7 = var7 + var5.nextToken();
|
|
- }
|
|
-
|
|
- var8 = 0;
|
|
- var9 = this._canvas.getFontMetrics(this._font);
|
|
- Debug.dAssert(var9 != null);
|
|
- } else {
|
|
- var8 = var9.stringWidth(var10);
|
|
- if (var8 >= var2) {
|
|
- if (!var7.equals("")) {
|
|
- this._lines.addElement(var7.trim());
|
|
- ++this._numLines;
|
|
- var6 = 0;
|
|
+ this.setScrollBounds();
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private synchronized void setScrollBounds() {
|
|
+ FontMetrics var1 = this._canvas.getFontMetrics(this._font);
|
|
+ Debug.dAssert(var1 != null);
|
|
+ int var2 = var1.getHeight();
|
|
+ this._canvasLines = this._height / var2;
|
|
+ if (this._vertBar != null) {
|
|
+ if (this._numLines <= this._canvasLines) {
|
|
+ this._vertBar.setEnabled(false);
|
|
+ } else {
|
|
+ this._vertBar.setEnabled(true);
|
|
+ this._vertBar.setValues(this._scrollLine, this._canvasLines, 0, this._numLines);
|
|
+ this._vertBar.setBlockIncrement(this._canvasLines);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public synchronized void append(String var1) {
|
|
+ this._string = this._string + var1;
|
|
+ this.wordWrap(var1);
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
+ this._scrollLine = 0;
|
|
+ }
|
|
+
|
|
+ this.setScrollBounds();
|
|
+ }
|
|
+
|
|
+ public synchronized void replaceRange(String var1, int var2, int var3) {
|
|
+ String var4 = this._string.substring(0, var2) + var1 + this._string.substring(var3);
|
|
+ this._string = var4;
|
|
+ }
|
|
+
|
|
+ public synchronized void drawLine(Graphics g, int lineNum, int y) {
|
|
+ if (lineNum < this._pos.size()) {
|
|
+ String thisLine = (String)this._lines.elementAt(lineNum);
|
|
+
|
|
+ if (thisLine == null) throw new AssertionError();
|
|
+
|
|
+ this._curpos = ((Integer)this._pos.elementAt(lineNum)).intValue();
|
|
+ StringTokenizer st = new StringTokenizer(thisLine, " \n\r", true);
|
|
+ int x = 0;
|
|
+ this.lastWidth = 0;
|
|
+
|
|
+ while(st.hasMoreTokens()) {
|
|
+ String word = st.nextToken();
|
|
+ if (!this.handleTag(g, word, 2 + x, y + 2)) {
|
|
+ this.drawString(g, word, 2 + x, y + 2);
|
|
+ this.lastWidth = g.getFontMetrics().stringWidth(word);
|
|
+ x += this.lastWidth;
|
|
+ } else {
|
|
+ x -= this.lastWidth;
|
|
+ if (st.hasMoreTokens()) {
|
|
+ this._curpos += st.nextToken().length();
|
|
+ }
|
|
+
|
|
+ this.lastWidth = 0;
|
|
+ g.setFont(this._font);
|
|
+ g.setColor(this._currentColor);
|
|
+ this._curpos += word.length();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.ClearTags(g);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void drawString(Graphics g, String text, int x, int y) {
|
|
+ FontMetrics fm = g.getFontMetrics();
|
|
+ int startdist;
|
|
+ int i;
|
|
+ if (this.selectionConversion) {
|
|
+ startdist = fm.getHeight();
|
|
+ int pos = -1;
|
|
+ if (y - startdist < this._canvas.mouseY) {
|
|
+ if (y < this._canvas.mouseY) {
|
|
+ if (y < this._canvas.mouseY) {
|
|
+ if (this.selectionStart >= 0) {
|
|
+ pos = this._curpos + text.length();
|
|
+ }
|
|
+ } else {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else if (x <= this._canvas.mouseX) {
|
|
+ if (this._canvas.mouseX > x + g.getFontMetrics().stringWidth(text)) {
|
|
+ if (this.selectionStart >= 0 && this._curpos >= this.selectionStart) {
|
|
+ pos = this._curpos + text.length();
|
|
}
|
|
+ } else {
|
|
+ if (this._canvas.mouseDoubleClick) {
|
|
+ this._canvas.mouseDoubleClick = false;
|
|
+ this.selectionStart = this._initialSelection = this._curpos;
|
|
+ this.selectionEnd = this._curpos + text.length();
|
|
+ pos = -1;
|
|
+ } else {
|
|
+ for(i = 0; i < text.length() - 1 && x + fm.stringWidth(text.substring(0, i + 1)) < this._canvas.mouseX; ++i) {
|
|
+ }
|
|
|
|
- while(var8 >= var2) {
|
|
- var10 = this.breakWord(var10, var9);
|
|
- var6 = 0;
|
|
- var7 = "";
|
|
- var8 = var9.stringWidth(var10);
|
|
+ pos = this._curpos + i;
|
|
}
|
|
- }
|
|
|
|
- var6 += var8;
|
|
- if (var6 >= var2) {
|
|
- this._lines.addElement(var7.trim());
|
|
- ++this._numLines;
|
|
- var6 = var8;
|
|
- var7 = "";
|
|
- }
|
|
-
|
|
- var7 = var7 + var10;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- protected String breakWord(String var1, FontMetrics var2) {
|
|
- int var3 = 0;
|
|
- String var4 = "";
|
|
-
|
|
- for(int var5 = 0; var5 < var1.length(); ++var5) {
|
|
- char var6 = var1.charAt(var5);
|
|
- var3 += var2.charWidth(var6);
|
|
- if (var3 >= this._width) {
|
|
- this._lines.addElement(var4);
|
|
- ++this._numLines;
|
|
- return var1.substring(var5);
|
|
- }
|
|
-
|
|
- var4 = var4 + var6;
|
|
- }
|
|
-
|
|
- this._lines.addElement(var4);
|
|
- ++this._numLines;
|
|
- return "";
|
|
- }
|
|
-
|
|
- public synchronized void rewrap() {
|
|
- if (this._width > 0 && this._height > 0) {
|
|
- this.wordWrapAll();
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
- this._scrollLine = 0;
|
|
- }
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else if (this.selectionStart >= 0 && this._curpos >= this.selectionStart) {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+
|
|
+ if (pos >= 0) {
|
|
+ if (this.selectionStart < 0) {
|
|
+ this.selectionStart = this._initialSelection = pos;
|
|
+ this.selectionEnd = this.selectionStart + 1;
|
|
+ } else if (pos < this._initialSelection) {
|
|
+ this.selectionStart = pos;
|
|
+ this.selectionEnd = this._initialSelection + 1;
|
|
+ } else {
|
|
+ this.selectionStart = this._initialSelection;
|
|
+ this.selectionEnd = pos + 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ startdist = this.selectionStart - this._curpos;
|
|
+ if (startdist > 0) {
|
|
+ if (startdist < text.length()) {
|
|
+ i = text.length();
|
|
+ if (this._curpos + i >= this.selectionEnd) {
|
|
+ i = this.selectionEnd - this._curpos;
|
|
+ }
|
|
+
|
|
+ this.drawHighlight(g, text.substring(startdist, i), x + fm.stringWidth(text.substring(0, startdist)), y);
|
|
+ }
|
|
+ } else if (this.selectionEnd > this._curpos) {
|
|
+ if (this.selectionEnd - this._curpos < text.length()) {
|
|
+ this.drawHighlight(g, text.substring(0, this.selectionEnd - this._curpos), x, y);
|
|
+ } else {
|
|
+ this.drawHighlight(g, text, x, y);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ g.drawString(text, x, y);
|
|
+ this._curpos += text.length();
|
|
+ }
|
|
+
|
|
+ private void drawHighlight(Graphics g, String text, int x, int y) {
|
|
+ if (text != null && text.length() > 0) {
|
|
+ Color c = g.getColor();
|
|
+ g.setColor(skyblue);
|
|
+ int height = g.getFontMetrics().getHeight();
|
|
+ g.fillRect(x, y - (height - 2), g.getFontMetrics().stringWidth(text), height);
|
|
+ g.setColor(c);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public int getSelectionStart() {
|
|
+ return this.selectionStart;
|
|
+ }
|
|
+
|
|
+ public int getSelectionEnd() {
|
|
+ return this.selectionEnd;
|
|
+ }
|
|
+
|
|
+ public void setSelectionStart(int position) {
|
|
+ this.selectionStart = position;
|
|
+ }
|
|
+
|
|
+ public void setSelectionEnd(int position) {
|
|
+ this.selectionEnd = position;
|
|
+ }
|
|
+
|
|
+ public synchronized String getSelectionText() {
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ return this.getText().substring(this.selectionStart, this.selectionEnd);
|
|
+ } else {
|
|
+ return "";
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void initRightMenu() {
|
|
+ this.rightMenu = new PopupMenu();
|
|
+ this.rightMenu.add(this.textCopyItem);
|
|
+ this.rightMenu.add(this.textCopyTextItem);
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ this.textCopyItem.setEnabled(true);
|
|
+ this.textCopyTextItem.setEnabled(true);
|
|
+ } else {
|
|
+ this.textCopyItem.setEnabled(false);
|
|
+ this.textCopyTextItem.setEnabled(false);
|
|
+ }
|
|
+
|
|
+ this.rightMenu.add(this.textCopyAllItem);
|
|
+ this.rightMenu.add(this.textCopyAllTextItem);
|
|
+ this.rightMenu.add(this.textSaveItem);
|
|
+ this.rightMenu.add(this.textOpenURLItem);
|
|
+ this.rightMenu.addActionListener(this);
|
|
+ this.add(this.rightMenu);
|
|
+ }
|
|
+
|
|
+ private void showRightMenu(int x, int y) {
|
|
+ if (this.rightMenu == null) {
|
|
+ this.initRightMenu();
|
|
+ }
|
|
+
|
|
+ this.rightMenu.show(this, x, y);
|
|
+ }
|
|
+
|
|
+ private void hideRightMenu() {
|
|
+ this.remove(this.rightMenu);
|
|
+ this.rightMenu = null;
|
|
+ }
|
|
+
|
|
+ public synchronized void actionPerformed(ActionEvent e) {
|
|
+ String text = null;
|
|
+ boolean doClean = false;
|
|
+ if (e.getActionCommand() == this.textCopyItem.getActionCommand()) {
|
|
+ text = this.getSelectionText();
|
|
+ this.selectionStart = this.selectionEnd = -1;
|
|
+ this.repaint();
|
|
+ } else if (e.getActionCommand() == this.textCopyTextItem.getActionCommand()) {
|
|
+ text = this.getSelectionText();
|
|
+ doClean = true;
|
|
+ this.selectionStart = this.selectionEnd = -1;
|
|
+ this.repaint();
|
|
+ } else if (e.getActionCommand() == this.textCopyAllItem.getActionCommand()) {
|
|
+ text = this.getText();
|
|
+ } else if (e.getActionCommand() == this.textCopyAllTextItem.getActionCommand()) {
|
|
+ text = this.getText();
|
|
+ doClean = true;
|
|
+ } else if (e.getActionCommand() == this.textOpenURLItem.getActionCommand()) {
|
|
+ text = this.getSelectionText().trim();
|
|
+ if (text != null && text.length() > 5) {
|
|
+ if (!text.startsWith("http://") && !text.startsWith("https://") && !text.startsWith("world:")) {
|
|
+ text = "http://" + text;
|
|
+ }
|
|
+
|
|
+ if (text.startsWith("world:") || text.indexOf(".world#") != -1 || (text.startsWith("http") || text.startsWith("file:")) && text.endsWith(".world")) {
|
|
+ if (text.startsWith("world:")) {
|
|
+ text = text.substring(6);
|
|
+ }
|
|
+
|
|
+ TeleportAction.teleport(text, (TeleportStatus)null);
|
|
+ } else {
|
|
+ (new SendURLAction(text)).startBrowser();
|
|
+ }
|
|
+
|
|
+ this.selectionStart = this.selectionEnd = -1;
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ this.hideRightMenu();
|
|
+ return;
|
|
+ } else if (e.getActionCommand() == this.textSaveItem.getActionCommand()) {
|
|
+ new ChatSavePart(this._string);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ if (doClean) {
|
|
+ StringTokenizer st = new StringTokenizer(text, " \n\r", true);
|
|
+ String newText = "";
|
|
+
|
|
+ while(st.hasMoreTokens()) {
|
|
+ String word = st.nextToken();
|
|
+ if (!this.handleTag((Graphics)null, word, 0, 0)) {
|
|
+ newText = newText + word;
|
|
+ } else {
|
|
+ if (newText.length() > 0 && newText.substring(newText.length() - 1).toCharArray()[0] == ' ') {
|
|
+ newText = newText.substring(0, newText.length() - 1);
|
|
+ }
|
|
+
|
|
+ if (st.hasMoreTokens()) {
|
|
+ st.nextToken();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ text = newText;
|
|
+ }
|
|
|
|
- this.setScrollBounds();
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void setScrollBounds() {
|
|
- FontMetrics var1 = this._canvas.getFontMetrics(this._font);
|
|
- Debug.dAssert(var1 != null);
|
|
- int var2 = var1.getHeight();
|
|
- this._canvasLines = this._height / var2;
|
|
- if (this._vertBar != null) {
|
|
- if (this._numLines <= this._canvasLines) {
|
|
- this._vertBar.setEnabled(false);
|
|
- } else {
|
|
- this._vertBar.setEnabled(true);
|
|
- this._vertBar.setValues(this._scrollLine, this._canvasLines, 0, this._numLines);
|
|
- this._vertBar.setBlockIncrement(this._canvasLines);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void append(String var1) {
|
|
- this._string = this._string + var1;
|
|
- this.wordWrap(var1);
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
- this._scrollLine = 0;
|
|
- }
|
|
-
|
|
- this.setScrollBounds();
|
|
- }
|
|
-
|
|
- public void replaceRange(String var1, int var2, int var3) {
|
|
- String var4 = this._string.substring(0, var2) + var1 + this._string.substring(var3);
|
|
- this._string = var4;
|
|
- }
|
|
-
|
|
- public void drawLine(Graphics var1, int var2, int var3) {
|
|
- String var4 = (String)this._lines.elementAt(var2);
|
|
- Debug.dAssert(var4 != null);
|
|
- StringTokenizer var5 = new StringTokenizer(var4, " \n\r", true);
|
|
- int var6 = 0;
|
|
- int var7 = 0;
|
|
-
|
|
- while(var5.hasMoreTokens()) {
|
|
- String var8 = var5.nextToken();
|
|
- if (!this.handleTag(var8)) {
|
|
- var1.drawString(var8, 2 + var6, var3 + 2);
|
|
- var7 = var1.getFontMetrics().stringWidth(var8);
|
|
- var6 += var7;
|
|
- } else {
|
|
- var6 -= var7;
|
|
- if (var5.hasMoreTokens()) {
|
|
- var5.nextToken();
|
|
- }
|
|
-
|
|
- var7 = 0;
|
|
- var1.setFont(this._font);
|
|
- var1.setColor(this._currentColor);
|
|
- }
|
|
- }
|
|
-
|
|
- this.ClearTags(var1);
|
|
- }
|
|
-
|
|
- static {
|
|
- tagList = new String[]{boldStartTag, boldEndTag, italicStartTag, italicEndTag, colorStartMagentaTag, colorStartRedTag, colorStartGreenTag, colorStartBlueTag, colorEndTag, colorMagenta2Tag, colorBlue2Tag, colorRed2Tag, colorGreen2Tag, colorCyanTag, colorDarkGrayTag, colorGrayTag, colorOrangeTag, colorPinkTag, colorYellowTag, colorWhiteTag, colorLightGrayTag};
|
|
- }
|
|
+ if (text != null && text.length() > 0) {
|
|
+ Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
|
+ clipboard.setContents(new StringSelection(text), (ClipboardOwner)null);
|
|
+ }
|
|
+
|
|
+ this.hideRightMenu();
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ tagList = new String[]{boldStartTag, boldEndTag, italicStartTag, italicEndTag, colorStartMagentaTag, colorStartRedTag, colorStartGreenTag, colorStartBlueTag, colorEndTag, colorMagenta2Tag, colorBlue2Tag, colorRed2Tag, colorGreen2Tag, colorCyanTag, colorDarkGrayTag, colorGrayTag, colorOrangeTag, colorPinkTag, colorYellowTag, colorWhiteTag, colorLightGrayTag};
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/HiddenDrone.java b/1904/NET/worlds/console/HiddenDrone.java
|
|
--- a/1904/NET/worlds/console/HiddenDrone.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worlds/console/HiddenDrone.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -0,0 +1,4 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+public interface HiddenDrone {
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/console/MuteListPart.java b/1904/NET/worlds/console/MuteListPart.java
|
|
--- a/1904/NET/worlds/console/MuteListPart.java 2020-08-06 15:46:22.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/MuteListPart.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -7,236 +7,284 @@
|
|
import NET.worlds.network.WorldServer;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.FrameEvent;
|
|
-import java.awt.Container;
|
|
-import java.awt.Event;
|
|
-import java.awt.MenuItem;
|
|
-import java.text.MessageFormat;
|
|
+
|
|
+import java.awt.*;
|
|
+import java.awt.Window;
|
|
import java.util.Enumeration;
|
|
import java.util.StringTokenizer;
|
|
import java.util.Vector;
|
|
|
|
public class MuteListPart implements FramePart, NameListOwner {
|
|
- private static final String oldIniItemName = "Mutes";
|
|
- private static final String iniItemName = "Mute";
|
|
- private static final int maxMutes = 50;
|
|
- private static final String separator = ";";
|
|
- private static MuteListPart active;
|
|
- private Vector mutes;
|
|
- private Vector syncMutes = new Vector();
|
|
- private MenuItem editItem;
|
|
- private MenuItem disableWhisperItem;
|
|
- private boolean rejectWhispers;
|
|
- private DefaultConsole console;
|
|
- private Galaxy galaxy;
|
|
- private IniFile serverSection;
|
|
- private Object mutesMutex = new Object();
|
|
- private Vector updates = new Vector();
|
|
-
|
|
- private void loadMutes() {
|
|
- this.mutes = new Vector();
|
|
-
|
|
- for(int var1 = 0; var1 < 50; ++var1) {
|
|
- String var2 = this.serverSection.getIniString("Mute" + var1, "");
|
|
- if (var2.length() == 0) {
|
|
- break;
|
|
- }
|
|
-
|
|
- if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.mutes, var2)) {
|
|
- this.mutes.addElement(var2);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.mutes.size() == 0) {
|
|
- String var4 = this.serverSection.getIniString("Mutes", "");
|
|
- StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
-
|
|
- while(var5.hasMoreTokens() && this.mutes.size() < 50) {
|
|
- String var3 = var5.nextToken();
|
|
- if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.mutes, var3)) {
|
|
- this.mutes.addElement(var3);
|
|
+ private static final String oldIniItemName = "Mutes";
|
|
+ private static final String iniItemName = "Mute";
|
|
+ private static final String separator = ";";
|
|
+ private static MuteListPart active;
|
|
+ private Vector mutes;
|
|
+ private Vector tars;
|
|
+ private Vector syncMutes = new Vector();
|
|
+ private MenuItem editItem;
|
|
+ private boolean rejectWhispers;
|
|
+ private boolean rejectTeleports;
|
|
+ private DefaultConsole console;
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private Object mutesMutex = new Object();
|
|
+ private Object tarMutex = new Object();
|
|
+ private Vector updates = new Vector();
|
|
+ public static RejectHandler rej = new RejectHandler();
|
|
+
|
|
+ public MuteListPart() {
|
|
+ System.out.println("Mutes Loaded");
|
|
+ }
|
|
+
|
|
+ private void loadMutes() {
|
|
+ this.mutes = new Vector();
|
|
+ this.tars = new Vector();
|
|
+
|
|
+ for(int var1 = 0; var1 < Integer.MAX_VALUE; ++var1) {
|
|
+ String var2 = this.serverSection.getIniString("Mute" + var1, "");
|
|
+ if (var2.length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.mutes, var2)) {
|
|
+ this.mutes.addElement(var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ for(int var1 = 0; var1 < Integer.MAX_VALUE; ++var1) {
|
|
+ String var2 = this.serverSection.getIniString("Tar" + var1, "");
|
|
+ if (var2.length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.tars, var2)) {
|
|
+ this.tars.addElement(var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.mutes.size() == 0) {
|
|
+ String var4 = this.serverSection.getIniString("Mutes", "");
|
|
+ StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
+
|
|
+ while(var5.hasMoreTokens() && this.mutes.size() < 50) {
|
|
+ String var3 = var5.nextToken();
|
|
+ if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.mutes, var3)) {
|
|
+ this.mutes.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.mutes.size() != 0) {
|
|
+ this.saveMutes();
|
|
+ this.serverSection.setIniString("Mutes", "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() == 0) {
|
|
+ String var4 = this.serverSection.getIniString("Tars", "");
|
|
+ StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
+
|
|
+ while(var5.hasMoreTokens() && this.tars.size() < 50) {
|
|
+ String var3 = var5.nextToken();
|
|
+ if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.tars, var3)) {
|
|
+ this.tars.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() != 0) {
|
|
+ this.saveTars();
|
|
+ this.serverSection.setIniString("Tars", "");
|
|
}
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- if (this.mutes.size() != 0) {
|
|
+ void saveMutes() {
|
|
+ int var2 = this.mutes.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ this.serverSection.setIniString("Mute" + var3, (String)this.mutes.elementAt(var3));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Mute" + var2, "");
|
|
+ }
|
|
+
|
|
+ void saveTars() {
|
|
+ int var2 = this.tars.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ this.serverSection.setIniString("Tar" + var3, (String)this.tars.elementAt(var3));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Tar" + var2, "");
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)var1;
|
|
+ this.editItem = var1.addMenuItem(Console.message("Edit-Mute-List"), "Options");
|
|
+ this.editItem.setEnabled(this.mutes != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if (var1.target == this.editItem) {
|
|
+ new EditNamesDialog(this, Console.message("Edit-Mute-List"), Console.message("Add-Mute-List"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ int var3 = this.updates.size();
|
|
+ if (var3 != 0) {
|
|
+ WorldServer var4 = this.console.getServerNew();
|
|
+ if (var4 != null) {
|
|
+ for(int var5 = 0; var5 < var3; ++var5) {
|
|
+ String var6 = (String)this.updates.elementAt(var5);
|
|
+ boolean var7 = this.mutes.contains(var6);
|
|
+ NetworkObject var8 = var4.getObject(new ObjID(var6));
|
|
+ if (var8 instanceof Drone) {
|
|
+ Drone var9 = (Drone)var8;
|
|
+ var9.muteStateChanged();
|
|
+ }
|
|
+
|
|
+ this.console.getFriends().changeMuteState(var6, var7);
|
|
+ }
|
|
+
|
|
+ this.updates.removeAllElements();
|
|
+ this.syncMutes = (Vector)this.mutes.clone();
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ this.loadMutes();
|
|
+ if (this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean isMuted(WorldServer var0, String var1) {
|
|
+ if (var0 != null && var1 != null) {
|
|
+ Galaxy var2 = var0.getGalaxy();
|
|
+ Enumeration var3 = var2.getConsoles();
|
|
+
|
|
+ while(var3.hasMoreElements()) {
|
|
+ Object var4 = var3.nextElement();
|
|
+ if (var4 instanceof DefaultConsole) {
|
|
+ NET.worlds.console.MuteListPart var5 = ((DefaultConsole)var4).getMutes();
|
|
+ if (var5.mutes != null) {
|
|
+ return FriendsListPart.icontains(var5.mutes, var1);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static boolean isRejecting(WorldServer var0, String var5) {
|
|
+ if (var0 != null) {
|
|
+ Galaxy var1 = var0.getGalaxy();
|
|
+ Enumeration var2 = var1.getConsoles();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof DefaultConsole) {
|
|
+ MuteListPart var4 = ((DefaultConsole)var3).getMutes();
|
|
+ return var4.rejectWhispers || !allowWhisper(var5);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static boolean isRejectingTele(WorldServer var0, String var5) {
|
|
+ if (var0 != null) {
|
|
+ Galaxy var1 = var0.getGalaxy();
|
|
+ Enumeration var2 = var1.getConsoles();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof DefaultConsole) {
|
|
+ MuteListPart var4 = ((DefaultConsole)var3).getMutes();
|
|
+ return var4.rejectTeleports || !allowTeleport(var5);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ private static boolean allowWhisper(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && FriendsListPart.icontains(FriendsListPart.friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ private static boolean allowTeleport(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && FriendsListPart.icontains(FriendsListPart.friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.mutes.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int var1) {
|
|
+ return (String)this.mutes.elementAt(var1);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ String var3 = (String)this.mutes.elementAt(var1);
|
|
+ this.mutes.removeElementAt(var1);
|
|
this.saveMutes();
|
|
- this.serverSection.setIniString("Mutes", "");
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- void saveMutes() {
|
|
- String var1 = "";
|
|
- int var2 = this.mutes.size();
|
|
-
|
|
- for(int var3 = 0; var3 < var2; ++var3) {
|
|
- this.serverSection.setIniString("Mute" + var3, (String)this.mutes.elementAt(var3));
|
|
- }
|
|
-
|
|
- this.serverSection.setIniString("Mute" + var2, "");
|
|
- }
|
|
-
|
|
- private void setDisableWhisper() {
|
|
- this.rejectWhispers = IniFile.gamma().getIniInt("RejectWhispers", 0) == 1;
|
|
- if (this.rejectWhispers) {
|
|
- this.disableWhisperItem.setLabel(Console.message("Accept-Whispers"));
|
|
- } else {
|
|
- this.disableWhisperItem.setLabel(Console.message("Reject-Whispers"));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void activate(Console var1, Container var2, Console var3) {
|
|
- active = this;
|
|
- this.console = (DefaultConsole)var1;
|
|
- this.editItem = var1.addMenuItem(Console.message("Edit-Mute-List"), "Options");
|
|
- this.editItem.setEnabled(this.mutes != null);
|
|
- this.disableWhisperItem = var1.addMenuItem(Console.message("Reject-Whispers"), "Options");
|
|
- this.setDisableWhisper();
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- active = null;
|
|
- this.editItem = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- if (var1.target == this.editItem) {
|
|
- new EditNamesDialog(this, Console.message("Edit-Mute-List"), Console.message("Add-Mute-List"));
|
|
- return true;
|
|
- } else {
|
|
- if (var1.target == this.disableWhisperItem) {
|
|
- IniFile.gamma().setIniInt("RejectWhispers", this.rejectWhispers ? 0 : 1);
|
|
- this.setDisableWhisper();
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent var1) {
|
|
- synchronized(this.mutesMutex) {
|
|
- int var3 = this.updates.size();
|
|
- if (var3 != 0) {
|
|
- WorldServer var4 = this.console.getServerNew();
|
|
- if (var4 != null) {
|
|
- for(int var5 = 0; var5 < var3; ++var5) {
|
|
- String var6 = (String)this.updates.elementAt(var5);
|
|
- boolean var7 = this.mutes.contains(var6);
|
|
- NetworkObject var8 = var4.getObject(new ObjID(var6));
|
|
- if (var8 instanceof Drone) {
|
|
- Drone var9 = (Drone)var8;
|
|
- var9.muteStateChanged();
|
|
- }
|
|
-
|
|
- this.console.getFriends().changeMuteState(var6, var7);
|
|
- }
|
|
-
|
|
- this.updates.removeAllElements();
|
|
- this.syncMutes = (Vector)this.mutes.clone();
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void setServer(WorldServer var1, IniFile var2) {
|
|
- this.serverSection = var2;
|
|
- this.galaxy = var1.getGalaxy();
|
|
- this.loadMutes();
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isMuted(WorldServer var0, String var1) {
|
|
- if (var0 != null && var1 != null) {
|
|
- Galaxy var2 = var0.getGalaxy();
|
|
- Enumeration var3 = var2.getConsoles();
|
|
-
|
|
- while(var3.hasMoreElements()) {
|
|
- Object var4 = var3.nextElement();
|
|
- if (var4 instanceof DefaultConsole) {
|
|
- MuteListPart var5 = ((DefaultConsole)var4).getMutes();
|
|
- if (var5.mutes != null) {
|
|
- return FriendsListPart.icontains(var5.mutes, var1);
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public static boolean isRejecting(WorldServer var0) {
|
|
- if (var0 != null) {
|
|
- Galaxy var1 = var0.getGalaxy();
|
|
- Enumeration var2 = var1.getConsoles();
|
|
-
|
|
- while(var2.hasMoreElements()) {
|
|
- Object var3 = var2.nextElement();
|
|
- if (var3 instanceof DefaultConsole) {
|
|
- MuteListPart var4 = ((DefaultConsole)var3).getMutes();
|
|
- if (var4.rejectWhispers) {
|
|
- return true;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public int getNameListCount() {
|
|
- return this.mutes.size();
|
|
- }
|
|
-
|
|
- public String getNameListName(int var1) {
|
|
- return (String)this.mutes.elementAt(var1);
|
|
- }
|
|
-
|
|
- public void removeNameListName(int var1) {
|
|
- synchronized(this.mutesMutex) {
|
|
- String var3 = (String)this.mutes.elementAt(var1);
|
|
- this.mutes.removeElementAt(var1);
|
|
- this.saveMutes();
|
|
- if (!this.updates.contains(var3)) {
|
|
- this.updates.addElement(var3);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mayAddNameListName(java.awt.Window var1) {
|
|
- if (this.mutes.size() < 50) {
|
|
- return true;
|
|
- } else {
|
|
- Object[] var2 = new Object[]{new String("50")};
|
|
- new OkCancelDialog(var1, (DialogReceiver)null, Console.message("Too-many-names"), (String)null, Console.message("OK"), MessageFormat.format(Console.message("You-are-limitedM"), var2), true);
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public int addNameListName(String var1) {
|
|
- synchronized(this.mutesMutex) {
|
|
- if (var1.toLowerCase().startsWith("host")) {
|
|
- return -1;
|
|
- } else {
|
|
- int var3 = FriendsListPart.iindexOf(this.mutes, var1);
|
|
- if (var3 != -1) {
|
|
- return var3;
|
|
+ if (!this.updates.contains(var3)) {
|
|
+ this.updates.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window var1) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ if (var1.toLowerCase().startsWith("host")) {
|
|
+ return -1;
|
|
} else {
|
|
- this.mutes.addElement(var1);
|
|
- this.saveMutes();
|
|
- if (!this.updates.contains(var1)) {
|
|
- this.updates.addElement(var1);
|
|
- }
|
|
-
|
|
- return this.mutes.size() - 1;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
+ int var3 = FriendsListPart.iindexOf(this.mutes, var1);
|
|
+ if (var3 != -1) {
|
|
+ return var3;
|
|
+ } else {
|
|
+ this.mutes.addElement(var1);
|
|
+ this.saveMutes();
|
|
+ if (!this.updates.contains(var1)) {
|
|
+ this.updates.addElement(var1);
|
|
+ }
|
|
+
|
|
+ return this.mutes.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/OpenWhisperDialog.java b/1904/NET/worlds/console/OpenWhisperDialog.java
|
|
--- a/1904/NET/worlds/console/OpenWhisperDialog.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worlds/console/OpenWhisperDialog.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -0,0 +1,83 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by FernFlower decompiler)
|
|
+//
|
|
+
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.awt.Button;
|
|
+import java.awt.Event;
|
|
+import java.awt.Font;
|
|
+import java.awt.GridBagConstraints;
|
|
+import java.awt.GridBagLayout;
|
|
+import java.awt.Label;
|
|
+import java.awt.Panel;
|
|
+import java.awt.TextField;
|
|
+import java.awt.Window;
|
|
+
|
|
+public class OpenWhisperDialog extends PolledDialog {
|
|
+ private Button okButton = new Button(Console.message("OK"));
|
|
+ private Button cancelButton = new Button(Console.message("Cancel"));
|
|
+ private static Font font = new Font(Console.message("MenuFont"), 0, 12);
|
|
+ private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
+ private TextField userField = new TextField("");
|
|
+
|
|
+ public OpenWhisperDialog(Window var1, DialogReceiver var2, String var3) {
|
|
+ super(var1, var2, var3, true);
|
|
+ this.ready();
|
|
+ }
|
|
+
|
|
+ public String getUser() {
|
|
+ return this.userField.getText();
|
|
+ }
|
|
+
|
|
+ protected void build() {
|
|
+ this.userField = new TextField("", 40);
|
|
+ this.userField.setFont(font);
|
|
+ GridBagLayout var1 = new GridBagLayout();
|
|
+ this.setLayout(var1);
|
|
+ GridBagConstraints var2 = new GridBagConstraints();
|
|
+ var2.fill = 0;
|
|
+ var2.weightx = 1.0D;
|
|
+ var2.weighty = 1.0D;
|
|
+ var2.gridwidth = 2;
|
|
+ var2.gridheight = 1;
|
|
+ this.add(var1, new Label(Console.message("Name")), var2);
|
|
+ var2.gridwidth = 0;
|
|
+ var2.fill = 2;
|
|
+ this.add(var1, this.userField, var2);
|
|
+ Panel var3 = new Panel();
|
|
+ this.okButton.setFont(font);
|
|
+ this.cancelButton.setFont(font);
|
|
+ var3.add(this.okButton);
|
|
+ var3.add(this.cancelButton);
|
|
+ var2.gridwidth = 0;
|
|
+ var2.fill = 0;
|
|
+ this.add(var1, var3, var2);
|
|
+ }
|
|
+
|
|
+ public void show() {
|
|
+ super.show();
|
|
+ this.userField.requestFocus();
|
|
+ this.userField.selectAll();
|
|
+ }
|
|
+
|
|
+ public boolean handleEvent(Event var1) {
|
|
+ return var1.id == 201 ? this.done(false) : super.handleEvent(var1);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ Object var3 = var1.target;
|
|
+ if (var3 == this.cancelButton) {
|
|
+ this.done(false);
|
|
+ } else if (var3 == this.okButton) {
|
|
+ this.done(true);
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public boolean keyDown(Event var1, int var2) {
|
|
+ return var2 == 27 ? this.done(false) : super.keyDown(var1, var2);
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/console/OptionsDialog.java b/1904/NET/worlds/console/OptionsDialog.java
|
|
--- a/1904/NET/worlds/console/OptionsDialog.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worlds/console/OptionsDialog.java 2023-09-10 20:02:26.000000000 -0500
|
|
@@ -0,0 +1,75 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.awt.Button;
|
|
+import java.awt.Color;
|
|
+import java.awt.Event;
|
|
+import java.awt.Font;
|
|
+import java.awt.GridBagConstraints;
|
|
+import java.awt.GridBagLayout;
|
|
+import java.awt.Label;
|
|
+import java.awt.Panel;
|
|
+import java.awt.TextField;
|
|
+
|
|
+public class OptionsDialog extends PolledDialog {
|
|
+ private Button applyButton = new Button(Console.message("Apply"));
|
|
+ private Button cancelButton = new Button(Console.message("Cancel"));
|
|
+ private static Font font = new Font(Console.message("ButtonFont"), 0, 12);
|
|
+ private static Font gfont = new Font(Console.message("GammaTextFont"), 0, 12);
|
|
+
|
|
+ public OptionsDialog(java.awt.Window var1, DialogReceiver var2, String var3, String var4) {
|
|
+ super(var1, var2, var3, true);
|
|
+ this.ready();
|
|
+ }
|
|
+
|
|
+ protected void build() {
|
|
+ this.setBackground(Color.white);
|
|
+ GridBagLayout var1 = new GridBagLayout();
|
|
+ this.setLayout(var1);
|
|
+ GridBagConstraints var2 = new GridBagConstraints();
|
|
+ var2.weightx = 0.0D;
|
|
+ var2.weighty = 0.0D;
|
|
+ var2.gridheight = 1;
|
|
+ var2.fill = 0;
|
|
+ var2.anchor = 13;
|
|
+ var2.gridwidth = 1;
|
|
+ var2.weightx = 1.0D;
|
|
+ var2.weighty = 0.0D;
|
|
+ var2.gridwidth = 0;
|
|
+ var2.fill = 2;
|
|
+ var2.anchor = 17;
|
|
+ Panel var3 = new Panel();
|
|
+ this.applyButton.setFont(font);
|
|
+ this.cancelButton.setFont(font);
|
|
+ var3.add(this.applyButton);
|
|
+ var3.add(this.cancelButton);
|
|
+ var2.gridwidth = 0;
|
|
+ var2.anchor = 10;
|
|
+ var2.fill = 0;
|
|
+ this.add(var1, var3, var2);
|
|
+ }
|
|
+
|
|
+ public void show() {
|
|
+ super.show();
|
|
+ }
|
|
+
|
|
+ public boolean handleEvent(Event var1) {
|
|
+ return var1.id == 201 ? this.done(false) : super.handleEvent(var1);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ Object var3 = var1.target;
|
|
+ if (var3 == this.cancelButton) {
|
|
+ return this.done(false);
|
|
+ } else {
|
|
+ return var3 == this.applyButton ? this.done(true) : false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean keyDown(Event var1, int var2) {
|
|
+ if (var2 == 27) {
|
|
+ return this.done(false);
|
|
+ } else {
|
|
+ return var2 == 10 ? this.done(true) : super.keyDown(var1, var2);
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/console/QuitDialog.java b/1904/NET/worlds/console/QuitDialog.java
|
|
--- a/1904/NET/worlds/console/QuitDialog.java 2020-08-06 15:46:26.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/QuitDialog.java 2023-09-10 19:13:50.000000000 -0500
|
|
@@ -4,6 +4,7 @@
|
|
import java.awt.Component;
|
|
import java.awt.Event;
|
|
import java.awt.Rectangle;
|
|
+import NET.worldsplus.Themer;
|
|
|
|
public class QuitDialog extends PolledDialog implements ImageButtonsCallback {
|
|
private ImageButtons ib;
|
|
@@ -11,17 +12,17 @@
|
|
public QuitDialog(java.awt.Window var1, DialogReceiver var2) {
|
|
super(var1, var2, Console.message("Quit"), true);
|
|
Rectangle[] var3 = new Rectangle[2];
|
|
- int var4 = IniFile.override().getIniInt("quitYesX", 141);
|
|
- int var5 = IniFile.override().getIniInt("quitYesY", 76);
|
|
- int var6 = IniFile.override().getIniInt("quitYesW", 78);
|
|
- int var7 = IniFile.override().getIniInt("quitYesH", 22);
|
|
+ int var4 = Themer.override().getIniInt("quitYesX", 141);
|
|
+ int var5 = Themer.override().getIniInt("quitYesY", 76);
|
|
+ int var6 = Themer.override().getIniInt("quitYesW", 78);
|
|
+ int var7 = Themer.override().getIniInt("quitYesH", 22);
|
|
var3[0] = new Rectangle(var4, var5, var6, var7);
|
|
- int var8 = IniFile.override().getIniInt("quitNoX", 141);
|
|
- int var9 = IniFile.override().getIniInt("quitNoY", 114);
|
|
- int var10 = IniFile.override().getIniInt("quitNoW", 78);
|
|
- int var11 = IniFile.override().getIniInt("quitNoH", 22);
|
|
+ int var8 = Themer.override().getIniInt("quitNoX", 141);
|
|
+ int var9 = Themer.override().getIniInt("quitNoY", 114);
|
|
+ int var10 = Themer.override().getIniInt("quitNoW", 78);
|
|
+ int var11 = Themer.override().getIniInt("quitNoH", 22);
|
|
var3[1] = new Rectangle(var8, var9, var10, var11);
|
|
- String var12 = IniFile.override().getIniString("quitDlg", Console.message("DYRWTQ.GIF"));
|
|
+ String var12 = Themer.themer.asset(Console.message("DYRWTQ.GIF"));
|
|
this.ib = new ImageButtons(var12, var3, this);
|
|
this.ready();
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/RejectHandler.java b/1904/NET/worlds/console/RejectHandler.java
|
|
--- a/1904/NET/worlds/console/RejectHandler.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worlds/console/RejectHandler.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -0,0 +1,37 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.util.ArrayList;
|
|
+import java.util.List;
|
|
+
|
|
+public class RejectHandler {
|
|
+
|
|
+ List whisperRej = null;
|
|
+ List teleportRej = null;
|
|
+
|
|
+ public RejectHandler () {
|
|
+ if (whisperRej == null) {
|
|
+ whisperRej = new ArrayList();
|
|
+ whisperRej.add("WORLDSMASTER");
|
|
+ }
|
|
+ if (teleportRej == null) {
|
|
+ teleportRej = new ArrayList();
|
|
+ teleportRej.add("WORLDSMASTER");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean rejectTeleport(String var1) {
|
|
+ return teleportRej.contains(var1);
|
|
+ }
|
|
+
|
|
+ public void addTeleportUser(String var1) {
|
|
+ teleportRej.add(var1);
|
|
+ }
|
|
+
|
|
+ public boolean rejectWhisper(String var1) {
|
|
+ return whisperRej.contains(var1);
|
|
+ }
|
|
+
|
|
+ public void addWhisperUser(String var1) {
|
|
+ whisperRej.add(var1);
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/console/Shaper.java b/1904/NET/worlds/console/Shaper.java
|
|
--- a/1904/NET/worlds/console/Shaper.java 2020-08-06 15:46:24.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/Shaper.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -1,5 +1,6 @@
|
|
package NET.worlds.console;
|
|
|
|
+import NET.worlds.core.IniFile;
|
|
import NET.worlds.network.URL;
|
|
import NET.worlds.scape.LoadedURLSelf;
|
|
import NET.worlds.scape.Manifest;
|
|
@@ -9,271 +10,340 @@
|
|
import NET.worlds.scape.TeleportStatus;
|
|
import NET.worlds.scape.URLSelf;
|
|
import NET.worlds.scape.World;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
import java.awt.Container;
|
|
import java.awt.Event;
|
|
import java.awt.Menu;
|
|
import java.awt.MenuItem;
|
|
+import java.awt.event.ActionEvent;
|
|
+import java.awt.event.ActionListener;
|
|
+import java.io.FileWriter;
|
|
import java.io.IOException;
|
|
import java.util.Enumeration;
|
|
|
|
public class Shaper implements MainCallback, DialogReceiver, LoadedURLSelf {
|
|
- MenuItem newItem;
|
|
- MenuItem openItem;
|
|
- MenuItem saveItem;
|
|
- MenuItem propItem;
|
|
- MenuItem consolePropItem;
|
|
- MenuItem pilotPropItem;
|
|
- MenuItem undoItem;
|
|
- MenuItem cutItem;
|
|
- MenuItem copyItem;
|
|
- MenuItem pasteItem;
|
|
- MenuItem sortAttributesItem;
|
|
- MenuItem snapToolItem;
|
|
- MenuItem newLibraryItem;
|
|
- MenuItem newLibraryEntryItem;
|
|
- MenuItem iconsVisibleLibraryItem;
|
|
- Menu worldsMenu;
|
|
- MenuItem shaperVisibleItem;
|
|
- private World newWorldTemplate;
|
|
- private boolean makeNew = true;
|
|
- private static URL newworld = URL.make("home:NewWorld.world");
|
|
- private boolean quitFlag;
|
|
- private FileSaver fileSaver;
|
|
- private boolean worldListHasChanged = false;
|
|
-
|
|
- public Shaper() {
|
|
- Main.register(this);
|
|
- }
|
|
-
|
|
- public void activate(Console var1, Container var2, Console var3) {
|
|
- this.newItem = var1.addMenuItem(Console.message("New"), "File", 78, false);
|
|
- this.openItem = var1.addMenuItem(Console.message("Open"), "File", 79, false);
|
|
- this.saveItem = var1.addMenuItem(Console.message("Save"), "File", 83, false);
|
|
- this.propItem = var1.addMenuItem(Console.message("World-Prop"), "File");
|
|
- this.consolePropItem = var1.addMenuItem(Console.message("Console-Prop"), "File");
|
|
- this.pilotPropItem = var1.addMenuItem(Console.message("Pilot-Prop"), "File");
|
|
- this.undoItem = var1.addMenuItem(Console.message("Undo"), "Edit", 90, false);
|
|
- var1.getMenu("Edit").addSeparator();
|
|
- this.cutItem = var1.addMenuItem(Console.message("Cut"), "Edit", 88, false);
|
|
- this.copyItem = var1.addMenuItem(Console.message("Copy"), "Edit", 67, false);
|
|
- this.pasteItem = var1.addMenuItem(Console.message("Paste"), "Edit", 86, false);
|
|
- this.sortAttributesItem = var1.addMenuItem(Console.message("Sort-Attributes"), "Edit");
|
|
- this.snapToolItem = var1.addMenuItem(Console.message("Snap-Tool-Settings"), "Edit");
|
|
- this.newLibraryItem = var1.addMenuItem(Console.message("New-Library"), "Libraries");
|
|
- this.newLibraryEntryItem = var1.addMenuItem(Console.message("New-Library-Entry"), "Libraries");
|
|
- this.iconsVisibleLibraryItem = var1.addMenuItem(Console.message("Icons-On-Off"), "Libraries", 73, false);
|
|
- this.worldsMenu = var1.getMenu("Worlds");
|
|
- this.worldListChange();
|
|
- this.shaperVisibleItem = var1.addMenuItem(Console.message("Shaper-On-Off"), "Options");
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- this.worldsMenu = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event var1, Object var2) {
|
|
- GammaFrame var3 = Console.getFrame();
|
|
- if (var1.target == this.newItem) {
|
|
- this.makeNew = true;
|
|
- } else if (var1.target == this.openItem) {
|
|
- new FileSysDialog(var3, this, Console.message("Open-World"), 0, "World Save Files|*.world|World Class Files|*.class|World Files|*.class;*.world", "", true);
|
|
- } else if (var1.target == this.saveItem) {
|
|
- new FileSysDialog(var3, this, Console.message("Save-World"), 1, "World Save Files|*.world|World Manifest (text) Files|*.mft", this.getSaveName(), true);
|
|
- } else if (var1.target == this.propItem) {
|
|
- if (Pilot.getActiveRoom() != null) {
|
|
- var3.getEditTile().viewProperties(Pilot.getActiveWorld());
|
|
- }
|
|
- } else if (var1.target == this.consolePropItem) {
|
|
- var3.getEditTile().viewProperties(Console.getActive());
|
|
- } else if (var1.target == this.pilotPropItem) {
|
|
- var3.getEditTile().viewProperties(Pilot.getActive());
|
|
- } else if (var1.target == this.sortAttributesItem) {
|
|
- new AttributeSortPanel(var3);
|
|
- } else if (var1.target == this.snapToolItem) {
|
|
- new SnapToolPanel(var3);
|
|
- } else if (var1.target == this.undoItem) {
|
|
- var3.getEditTile().undo();
|
|
- } else if (var1.target == this.cutItem) {
|
|
- var3.getEditTile().cut();
|
|
- } else if (var1.target == this.copyItem) {
|
|
- var3.getEditTile().copy();
|
|
- } else if (var1.target == this.pasteItem) {
|
|
- var3.getEditTile().paste();
|
|
- } else if (var1.target == this.newLibraryItem) {
|
|
- var3.getLibrariesTile().addLibrary();
|
|
- } else if (var1.target == this.newLibraryEntryItem) {
|
|
- var3.getLibrariesTile().addElement();
|
|
- } else if (var1.target == this.iconsVisibleLibraryItem) {
|
|
- var3.getLibrariesTile().setIconsVisible(!var3.getLibrariesTile().isIconsVisible());
|
|
- } else if (var1.target == this.shaperVisibleItem) {
|
|
- var3.setShaperVisible(!var3.isShaperVisible());
|
|
- } else {
|
|
- int var4 = this.worldsMenu.countItems();
|
|
-
|
|
- do {
|
|
- --var4;
|
|
- } while(var4 >= 0 && this.worldsMenu.getItem(var4) != var1.target);
|
|
-
|
|
- if (var4 < 0) {
|
|
+ MenuItem newItem;
|
|
+ MenuItem openItem;
|
|
+ MenuItem saveItem;
|
|
+ MenuItem propItem;
|
|
+ MenuItem consolePropItem;
|
|
+ MenuItem pilotPropItem;
|
|
+ MenuItem undoItem;
|
|
+ MenuItem cutItem;
|
|
+ MenuItem copyItem;
|
|
+ MenuItem pasteItem;
|
|
+ MenuItem sortAttributesItem;
|
|
+ MenuItem snapToolItem;
|
|
+ MenuItem newLibraryItem;
|
|
+ MenuItem newLibraryEntryItem;
|
|
+ MenuItem iconsVisibleLibraryItem;
|
|
+ Menu worldsMenu;
|
|
+ Menu whisperMenu;
|
|
+ MenuItem openWhisperItem;
|
|
+ MenuItem shaperVisibleItem;
|
|
+ private World newWorldTemplate;
|
|
+ private boolean makeNew = true;
|
|
+ private static URL newworld = URL.make("home:NewWorld.world");
|
|
+ private boolean quitFlag;
|
|
+ private FileSaver fileSaver;
|
|
+ private boolean worldListHasChanged = false;
|
|
+ private boolean whisperListHasChanged = false;
|
|
+
|
|
+ public Shaper() {
|
|
+ Main.register(this);
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ this.newItem = var1.addMenuItem(Console.message("New"), "File", 78, false);
|
|
+ this.openItem = var1.addMenuItem(Console.message("Open"), "File", 79, false);
|
|
+ this.saveItem = var1.addMenuItem(Console.message("Save"), "File", 83, false);
|
|
+ this.propItem = var1.addMenuItem(Console.message("World-Prop"), "File");
|
|
+ this.consolePropItem = var1.addMenuItem(Console.message("Console-Prop"), "File");
|
|
+ this.pilotPropItem = var1.addMenuItem(Console.message("Pilot-Prop"), "File");
|
|
+ this.undoItem = var1.addMenuItem(Console.message("Undo"), "Edit", 90, false);
|
|
+ var1.getMenu("Edit").addSeparator();
|
|
+ this.cutItem = var1.addMenuItem(Console.message("Cut"), "Edit", 88, false);
|
|
+ this.copyItem = var1.addMenuItem(Console.message("Copy"), "Edit", 67, false);
|
|
+ this.pasteItem = var1.addMenuItem(Console.message("Paste"), "Edit", 86, false);
|
|
+ this.sortAttributesItem = var1.addMenuItem(Console.message("Sort-Attributes"), "Edit");
|
|
+ this.snapToolItem = var1.addMenuItem(Console.message("Snap-Tool-Settings"), "Edit");
|
|
+ this.newLibraryItem = var1.addMenuItem(Console.message("New-Library"), "Libraries");
|
|
+ this.newLibraryEntryItem = var1.addMenuItem(Console.message("New-Library-Entry"), "Libraries");
|
|
+ this.iconsVisibleLibraryItem = var1.addMenuItem(Console.message("Icons-On-Off"), "Libraries", 73, false);
|
|
+ this.worldsMenu = var1.getMenu("Worlds");
|
|
+ this.whisperMenu = var1.getMenu("Whispers");
|
|
+ this.openWhisperItem = var1.addMenuItem(Console.message("Open Whisper"), "Whispers");
|
|
+ this.whisperMenu.addSeparator();
|
|
+
|
|
+ this.worldListChange();
|
|
+ this.whisperListChanged();
|
|
+
|
|
+ this.shaperVisibleItem = var1.addMenuItem(Console.message("Shaper-On-Off"), "Options");
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ this.worldsMenu = null;
|
|
+ this.whisperMenu = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ GammaFrame var3 = Console.getFrame();
|
|
+ if (var1.target == this.newItem) {
|
|
+ this.makeNew = true;
|
|
+ } else if (var1.target == this.openItem) {
|
|
+ new FileSysDialog(var3, this, Console.message("Open-World"), 0, "World Save Files|*.world|World Class Files|*.class|World Files|*.class;*.world", "", true);
|
|
+ } else if (var1.target == this.saveItem) {
|
|
+ new FileSysDialog(var3, this, Console.message("Save-World"), 1, "World Save Files|*.world|World Manifest (text) Files|*.mft", this.getSaveName(), true);
|
|
+ } else if (var1.target == this.propItem) {
|
|
+ if (Pilot.getActiveRoom() != null) {
|
|
+ var3.getEditTile().viewProperties(Pilot.getActiveWorld());
|
|
+ }
|
|
+ } else if (var1.target == this.consolePropItem) {
|
|
+ var3.getEditTile().viewProperties(Console.getActive());
|
|
+ } else if (var1.target == this.pilotPropItem) {
|
|
+ var3.getEditTile().viewProperties(Pilot.getActive());
|
|
+ } else if (var1.target == this.sortAttributesItem) {
|
|
+ new AttributeSortPanel(var3);
|
|
+ } else if (var1.target == this.snapToolItem) {
|
|
+ new SnapToolPanel(var3);
|
|
+ } else if (var1.target == this.undoItem) {
|
|
+ var3.getEditTile().undo();
|
|
+ } else if (var1.target == this.cutItem) {
|
|
+ var3.getEditTile().cut();
|
|
+ } else if (var1.target == this.copyItem) {
|
|
+ var3.getEditTile().copy();
|
|
+ } else if (var1.target == this.pasteItem) {
|
|
+ var3.getEditTile().paste();
|
|
+ } else if (var1.target == this.newLibraryItem) {
|
|
+ var3.getLibrariesTile().addLibrary();
|
|
+ } else if (var1.target == this.newLibraryEntryItem) {
|
|
+ var3.getLibrariesTile().addElement();
|
|
+ } else if (var1.target == this.iconsVisibleLibraryItem) {
|
|
+ var3.getLibrariesTile().setIconsVisible(!var3.getLibrariesTile().isIconsVisible());
|
|
+ } else if (var1.target == this.openWhisperItem) {
|
|
+ new OpenWhisperDialog(var3, this, Console.message("open-whisper"));
|
|
+ } else if (var1.target == this.shaperVisibleItem) {
|
|
+ var3.setShaperVisible(!var3.isShaperVisible());
|
|
+ } else {
|
|
return false;
|
|
- }
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public String getSaveName() {
|
|
+ return getSaveName(Pilot.getActive().getWorld());
|
|
+ }
|
|
+
|
|
+ public static String getSaveName(World var0) {
|
|
+ URL var1 = var0.getSourceURL();
|
|
+ String var2 = var1.unalias();
|
|
+ int var3 = var2.indexOf(58);
|
|
+ return var3 != -1 && var3 != 1 ? var1.getBase() : var2.replace('/', '\\');
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var2) {
|
|
+ if (var1 instanceof FileSysDialog) {
|
|
+ FileSysDialog var3 = (FileSysDialog) var1;
|
|
+ String var4 = var3.fileName();
|
|
+ if (var3.getMode() == 0) {
|
|
+ TeleportAction.teleport(var4, (TeleportStatus) null, true);
|
|
+ } else {
|
|
+ this.doSave(var4);
|
|
+ }
|
|
+ } else if (var1 instanceof OpenWhisperDialog) {
|
|
+ Console.startWhispering(((OpenWhisperDialog)var1).getUser());
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
+ this.newWorldTemplate = (World)var1;
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ if (this.quitFlag) {
|
|
+ if (this.fileSaver == null) {
|
|
+ this.fileSaver = new FileSaver();
|
|
+ }
|
|
+
|
|
+ switch(this.fileSaver.getState()) {
|
|
+ case 0:
|
|
+ GammaFrameState.saveBorder();
|
|
+ Main.end();
|
|
+ break;
|
|
+ case 2:
|
|
+ this.quitFlag = false;
|
|
+ this.fileSaver = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.newWorldTemplate != null) {
|
|
+ this.newWorldTemplate.incRef();
|
|
+ }
|
|
+
|
|
+ if (this.makeNew) {
|
|
+ this.makeNew = false;
|
|
+ if (this.newWorldTemplate == null) {
|
|
+ World.load(newworld, this, true);
|
|
+ } else {
|
|
+ World var1 = (World)this.newWorldTemplate.clone();
|
|
+ var1.setEdited(true);
|
|
+ TeleportAction.teleport(var1.getSourceURL().getAbsolute(), (TeleportStatus)null);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.worldListHasChanged) {
|
|
+ this.worldListHasChanged = false;
|
|
+ this.rebuildWorldsMenu();
|
|
+ }
|
|
+
|
|
+ if (this.whisperListHasChanged) {
|
|
+ this.whisperListHasChanged = false;
|
|
+ this.rebuildWhisperMenu();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void maybeQuit() {
|
|
+ this.quitFlag = true;
|
|
+ }
|
|
+
|
|
+ public void worldListChange() {
|
|
+ this.worldListHasChanged = true;
|
|
+ }
|
|
+
|
|
+ private void rebuildWorldsMenu() {
|
|
+ if (this.worldsMenu != null) {
|
|
+ while(this.worldsMenu.getItemCount() > 0) {
|
|
+ this.worldsMenu.remove(0);
|
|
+ }
|
|
+
|
|
+ Enumeration var1 = World.getWorlds();
|
|
+
|
|
+ while(true) {
|
|
+ World var2;
|
|
+ URL var3;
|
|
+ String var4;
|
|
+ do {
|
|
+ if (!var1.hasMoreElements()) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ var2 = (World)var1.nextElement();
|
|
+ var3 = var2.getSourceURL();
|
|
+ if (var3 == null) {
|
|
+ var4 = var2.getName();
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ var4 = var3.getAbsolute();
|
|
+ } while(var3.equals(newworld));
|
|
+
|
|
+ if (var2.getEdited()) {
|
|
+ var4 = var4 + " (changed)";
|
|
+ }
|
|
+
|
|
+ MenuItem newItem = new MenuItem(var4);
|
|
+ newItem.addActionListener(new ActionListener() {
|
|
+
|
|
+ public void actionPerformed(ActionEvent actionEvent) {
|
|
+ String var5 = ((MenuItem)actionEvent.getSource()).getLabel();
|
|
+ if (var5.endsWith(" (changed)")) {
|
|
+ var5 = var5.substring(0, var5.length() - 10);
|
|
+ }
|
|
+
|
|
+ TeleportAction.teleport(var5, (TeleportStatus) null);
|
|
+ }
|
|
+ });
|
|
+
|
|
+ this.worldsMenu.add(newItem);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void whisperListChanged() {
|
|
+ this.whisperListHasChanged = true;
|
|
+ }
|
|
+
|
|
+ private void rebuildWhisperMenu() {
|
|
+ if (this.whisperMenu != null) {
|
|
+ while(this.whisperMenu.getItemCount() - 2 > 0) {
|
|
+ this.whisperMenu.remove(2);
|
|
+ }
|
|
+
|
|
+ Enumeration var1 = WhisperManager.whisperManager().dialogs().elements();
|
|
+
|
|
+
|
|
+ while(true) {
|
|
+ WhisperDialog var2;
|
|
+ String var4;
|
|
+
|
|
+ do {
|
|
+ if (!var1.hasMoreElements()) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ var2 = (WhisperDialog) var1.nextElement();
|
|
+ var4 = var2.partner;
|
|
+ } while (var4 == null);
|
|
+
|
|
+ MenuItem newItem = new MenuItem(var4);
|
|
+ newItem.addActionListener(new ActionListener() {
|
|
+
|
|
+ public void actionPerformed(ActionEvent actionEvent) {
|
|
+ Console.startWhispering(((MenuItem)actionEvent.getSource()).getLabel());
|
|
+ }
|
|
+ });
|
|
+
|
|
+ this.whisperMenu.add(newItem);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void doSave(String var1) {
|
|
+ doSave(var1, Pilot.getActive().getWorld(), true);
|
|
+ }
|
|
+
|
|
+ public static boolean doSave(String var0, World var1, boolean var2) {
|
|
+ if (var2 && var0.endsWith(".mft")) {
|
|
+ try {
|
|
+ Manifest var6 = new Manifest(var0);
|
|
+ var6.saveProps(var1);
|
|
+ var6.done();
|
|
+ return true;
|
|
+ } catch (IOException var4) {
|
|
+ Console.println(Console.message("Error-manifest") + var4.toString());
|
|
+ }
|
|
+ } else {
|
|
+ if (var0.toLowerCase().endsWith(".wor")) {
|
|
+ var0 = var0.substring(0, var0.length() - 4);
|
|
+ }
|
|
+
|
|
+ if (!var0.toLowerCase().endsWith(".world")) {
|
|
+ var0 = var0 + ".world";
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ Saver var3 = new Saver(new URL(URL.getCurDir(), var0));
|
|
+ var3.save(var1);
|
|
+ var3.done();
|
|
+ var1.setEdited(false);
|
|
+ return true;
|
|
+ } catch (IOException var5) {
|
|
+ Console.println(Console.message("Error-saving") + var5.toString());
|
|
+ }
|
|
+ }
|
|
|
|
- String var5 = (String)var2;
|
|
- if (var5.endsWith(" (changed)")) {
|
|
- var5 = var5.substring(0, var5.length() - 10);
|
|
- }
|
|
-
|
|
- TeleportAction.teleport(var5, (TeleportStatus)null);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public String getSaveName() {
|
|
- return getSaveName(Pilot.getActive().getWorld());
|
|
- }
|
|
-
|
|
- public static String getSaveName(World var0) {
|
|
- URL var1 = var0.getSourceURL();
|
|
- String var2 = var1.unalias();
|
|
- int var3 = var2.indexOf(58);
|
|
- return var3 != -1 && var3 != 1 ? var1.getBase() : var2.replace('/', '\\');
|
|
- }
|
|
-
|
|
- public void dialogDone(Object var1, boolean var2) {
|
|
- if (var2) {
|
|
- FileSysDialog var3 = (FileSysDialog)var1;
|
|
- String var4 = var3.fileName();
|
|
- if (var3.getMode() == 0) {
|
|
- TeleportAction.teleport(var4, (TeleportStatus)null, true);
|
|
- } else {
|
|
- this.doSave(var4);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
- this.newWorldTemplate = (World)var1;
|
|
- }
|
|
-
|
|
- public void mainCallback() {
|
|
- if (this.quitFlag) {
|
|
- if (this.fileSaver == null) {
|
|
- this.fileSaver = new FileSaver();
|
|
- }
|
|
-
|
|
- switch(this.fileSaver.getState()) {
|
|
- case 0:
|
|
- GammaFrameState.saveBorder();
|
|
- Main.end();
|
|
- break;
|
|
- case 2:
|
|
- this.quitFlag = false;
|
|
- this.fileSaver = null;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.newWorldTemplate != null) {
|
|
- this.newWorldTemplate.incRef();
|
|
- }
|
|
-
|
|
- if (this.makeNew) {
|
|
- this.makeNew = false;
|
|
- if (this.newWorldTemplate == null) {
|
|
- World.load(newworld, this, true);
|
|
- } else {
|
|
- World var1 = (World)this.newWorldTemplate.clone();
|
|
- var1.setEdited(true);
|
|
- TeleportAction.teleport(var1.getSourceURL().getAbsolute(), (TeleportStatus)null);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.worldListHasChanged) {
|
|
- this.worldListHasChanged = false;
|
|
- this.rebuildWorldsMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void maybeQuit() {
|
|
- this.quitFlag = true;
|
|
- }
|
|
-
|
|
- public void worldListChange() {
|
|
- this.worldListHasChanged = true;
|
|
- }
|
|
-
|
|
- private void rebuildWorldsMenu() {
|
|
- if (this.worldsMenu != null) {
|
|
- while(this.worldsMenu.countItems() > 0) {
|
|
- this.worldsMenu.remove(0);
|
|
- }
|
|
-
|
|
- Enumeration var1 = World.getWorlds();
|
|
-
|
|
- while(true) {
|
|
- World var2;
|
|
- URL var3;
|
|
- String var4;
|
|
- do {
|
|
- if (!var1.hasMoreElements()) {
|
|
- return;
|
|
- }
|
|
-
|
|
- var2 = (World)var1.nextElement();
|
|
- var3 = var2.getSourceURL();
|
|
- if (var3 == null) {
|
|
- var4 = var2.getName();
|
|
- break;
|
|
- }
|
|
-
|
|
- var4 = var3.getAbsolute();
|
|
- } while(var3.equals(newworld));
|
|
-
|
|
- if (var2.getEdited()) {
|
|
- var4 = var4 + " (changed)";
|
|
- }
|
|
-
|
|
- this.worldsMenu.add(new MenuItem(var4));
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void doSave(String var1) {
|
|
- doSave(var1, Pilot.getActive().getWorld(), true);
|
|
- }
|
|
-
|
|
- public static boolean doSave(String var0, World var1, boolean var2) {
|
|
- if (var2 && var0.endsWith(".mft")) {
|
|
- try {
|
|
- Manifest var6 = new Manifest(var0);
|
|
- var6.saveProps(var1);
|
|
- var6.done();
|
|
- return true;
|
|
- } catch (IOException var4) {
|
|
- Console.println(Console.message("Error-manifest") + var4.toString());
|
|
- }
|
|
- } else {
|
|
- if (var0.toLowerCase().endsWith(".wor")) {
|
|
- var0 = var0.substring(0, var0.length() - 4);
|
|
- }
|
|
-
|
|
- if (!var0.toLowerCase().endsWith(".world")) {
|
|
- var0 = var0 + ".world";
|
|
- }
|
|
-
|
|
- try {
|
|
- Saver var3 = new Saver(new URL(URL.getCurDir(), var0));
|
|
- var3.save(var1);
|
|
- var3.done();
|
|
- var1.setEdited(false);
|
|
- return true;
|
|
- } catch (IOException var5) {
|
|
- Console.println(Console.message("Error-saving") + var5.toString());
|
|
- }
|
|
- }
|
|
+ return false;
|
|
+ }
|
|
|
|
- return false;
|
|
- }
|
|
+ private boolean containsItem(Menu menu, MenuItem item) {
|
|
+ for (int e = 0; e < menu.getItemCount(); e++) {
|
|
+ MenuItem curItem = menu.getItem(e);
|
|
+ System.out.println(curItem + " / " + item);
|
|
+ if (curItem == item) return true;
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/StyledTextCanvas.java b/1904/NET/worlds/console/StyledTextCanvas.java
|
|
--- a/1904/NET/worlds/console/StyledTextCanvas.java 2020-08-06 15:46:22.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/StyledTextCanvas.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -1,5 +1,6 @@
|
|
package NET.worlds.console;
|
|
|
|
+import NET.worlds.core.IniFile;
|
|
import java.awt.Canvas;
|
|
import java.awt.Color;
|
|
import java.awt.FontMetrics;
|
|
@@ -11,88 +12,196 @@
|
|
import java.awt.event.MouseEvent;
|
|
|
|
class StyledTextCanvas extends Canvas {
|
|
- public StyledTextCanvas() {
|
|
- this.enableEvents(29L);
|
|
- this.setEnabled(true);
|
|
- }
|
|
-
|
|
- public void setBounds(int var1, int var2, int var3, int var4) {
|
|
- if (this.getParent() instanceof GammaTextArea) {
|
|
- GammaTextArea var5 = (GammaTextArea)this.getParent();
|
|
- var5.setWidth(var3);
|
|
- var5.setHeight(var4);
|
|
- var5.rewrap();
|
|
- }
|
|
-
|
|
- super.setBounds(var1, var2, var3, var4);
|
|
- }
|
|
-
|
|
- protected void processMouseEvent(MouseEvent var1) {
|
|
- if (var1.getID() == 500) {
|
|
- this.getParent().requestFocus();
|
|
- }
|
|
-
|
|
- super.processMouseEvent(var1);
|
|
- }
|
|
-
|
|
- protected void processKeyEvent(KeyEvent var1) {
|
|
- if (var1.getID() == 401) {
|
|
- Scrollbar var2 = null;
|
|
- if (this.getParent() instanceof GammaTextArea) {
|
|
- GammaTextArea var3 = (GammaTextArea)this.getParent();
|
|
- var2 = var3.getVertScrollbar();
|
|
- }
|
|
-
|
|
- if (var1.getKeyCode() == 33) {
|
|
- if (var2 != null && var2.isEnabled()) {
|
|
- var2.dispatchEvent(var1);
|
|
+ private static final long serialVersionUID = -2680423246934436331L;
|
|
+ private MouseEvent delayedMouseEvent = null;
|
|
+ protected int mouseX = -1;
|
|
+ protected int mouseY = -1;
|
|
+ protected int startX = -1;
|
|
+ protected int startY = -1;
|
|
+ protected int endX = -1;
|
|
+ protected int endY = -1;
|
|
+ protected long mouseWhen = 0L;
|
|
+ protected boolean mouseActive = false;
|
|
+ protected boolean mouseDoubleClick = false;
|
|
+ protected static long doubleClickSpeed = (long)IniFile.override().getIniInt("DoubleClickSpeed", 300);
|
|
+
|
|
+ public StyledTextCanvas() {
|
|
+ this.enableEvents(61L);
|
|
+ this.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ public void sendDelayedMouseEvent(MouseEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ this.delayedMouseEvent = e;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void setBounds(int x, int y, int w, int h) {
|
|
+ if (this.getParent() != null && w >= 0 && h >= 0) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (this.getParent() instanceof GammaTextArea) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ gta.setWidth(w);
|
|
+ gta.setHeight(h);
|
|
+ gta.rewrap();
|
|
+ }
|
|
+
|
|
+ super.setBounds(x, y, w, h);
|
|
}
|
|
- } else if (var1.getKeyCode() == 34 && var2 != null && var2.isEnabled()) {
|
|
- var2.dispatchEvent(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- super.processKeyEvent(var1);
|
|
- }
|
|
-
|
|
- public void update(Graphics var1) {
|
|
- this.paint(var1);
|
|
- }
|
|
-
|
|
- public void paint(Graphics var1) {
|
|
- if (this.getParent().isEnabled()) {
|
|
- GammaTextArea var2 = (GammaTextArea)this.getParent();
|
|
- Rectangle var3 = this.getBounds();
|
|
- Image var4 = this.createImage(var3.width, var3.height);
|
|
- Graphics var5 = var4.getGraphics();
|
|
- var5.setColor(GammaTextArea.getBackgroundColor());
|
|
- var5.fillRect(var3.x, var3.y, var3.width, var3.height);
|
|
- var5.setColor(Color.black);
|
|
- if (var2.getHasFocus()) {
|
|
- var5.setColor(Color.blue);
|
|
- var5.drawRect(var3.x, var3.y, var3.width - 1, var3.height - 1);
|
|
- var5.drawRect(var3.x + 1, var3.y + 1, var3.width - 2, var3.height - 2);
|
|
- var5.setColor(Color.black);
|
|
- }
|
|
-
|
|
- var5.setFont(var2.getFont());
|
|
- FontMetrics var6 = var5.getFontMetrics(var2.getFont());
|
|
- int var7;
|
|
- if (var2.getNumLines() <= var2.getCanvasLines()) {
|
|
- for(var7 = 0; var7 < var2.getNumLines(); ++var7) {
|
|
- var2.drawLine(var5, var7, (var7 + 1) * var6.getHeight());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ protected void processMouseMotionEvent(MouseEvent e) {
|
|
+ if (e.getID() == 506 && this.mouseActive) {
|
|
+ this.processMouseEvent(e);
|
|
+ }
|
|
+
|
|
+ super.processMouseMotionEvent(e);
|
|
+ }
|
|
+
|
|
+ protected void processMouseEvent(MouseEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (e.getID() == 500) {
|
|
+ if (this.mouseWhen > 0L && e.getWhen() - this.mouseWhen <= doubleClickSpeed) {
|
|
+ this.mouseDoubleClick = true;
|
|
+ this.mouseWhen = 0L;
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ this.getParent().repaint();
|
|
+ } else {
|
|
+ this.mouseDoubleClick = false;
|
|
+ this.mouseWhen = e.getWhen();
|
|
+ if (e.getButton() == 1 && !this.mouseActive && (e.getModifiers() & 1) == 0) {
|
|
+ ((GammaTextArea)this.getParent()).selectionStart = -1;
|
|
+ ((GammaTextArea)this.getParent()).selectionEnd = -1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ } else if (e.getID() == 501) {
|
|
+ if (e.getButton() == 1) {
|
|
+ if ((e.getModifiers() & 1) == 0) {
|
|
+ if (((GammaTextArea)this.getParent()).selectionStart >= 0 && ((GammaTextArea)this.getParent()).selectionEnd > ((GammaTextArea)this.getParent()).selectionStart) {
|
|
+ ((GammaTextArea)this.getParent()).selectionStart = -1;
|
|
+ ((GammaTextArea)this.getParent()).selectionEnd = -1;
|
|
+ } else {
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ this.mouseActive = true;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ }
|
|
+ } else {
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ this.mouseActive = true;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ }
|
|
+
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ } else if (!this.mouseActive || e.getID() != 506 && e.getID() != 507 && e.getID() != 507) {
|
|
+ if (e.getID() == 502) {
|
|
+ if (e.getButton() == 1 && this.mouseActive) {
|
|
+ this.mouseX = this.endX = e.getX();
|
|
+ this.mouseY = this.endY = e.getY();
|
|
+ this.mouseActive = false;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = false;
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ }
|
|
+ } else {
|
|
+ if ((e.getModifiers() & 16) != 0) {
|
|
+ this.mouseX = this.endX = e.getX();
|
|
+ this.mouseY = this.endY = e.getY();
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
}
|
|
- } else {
|
|
- var7 = var2.getScrollLine();
|
|
|
|
- for(int var8 = 1; var7 < var2.getNumLines(); ++var8) {
|
|
- var2.drawLine(var5, var7, var8 * var6.getHeight());
|
|
- ++var7;
|
|
+ ((GammaTextArea)this.getParent()).processMouseEvent(e);
|
|
+ super.processMouseEvent(e);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void update(Graphics g) {
|
|
+ this.paint(g);
|
|
+ }
|
|
+
|
|
+ protected void processKeyEvent(KeyEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (e.getID() == 401) {
|
|
+ Scrollbar s = null;
|
|
+ if (this.getParent() instanceof GammaTextArea) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ s = gta.getVertScrollbar();
|
|
+ }
|
|
+
|
|
+ if (e.getKeyCode() == 33) {
|
|
+ if (s != null && s.isEnabled()) {
|
|
+ s.dispatchEvent(e);
|
|
+ }
|
|
+ } else if (e.getKeyCode() == 34 && s != null && s.isEnabled()) {
|
|
+ s.dispatchEvent(e);
|
|
+ }
|
|
}
|
|
- }
|
|
|
|
- var1.drawImage(var4, 0, 0, this);
|
|
- }
|
|
+ super.processKeyEvent(e);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void paint(Graphics g) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (this.getParent().isEnabled()) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ Rectangle r = this.getBounds();
|
|
+ if (r.width <= 0 || r.height <= 0) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ Image offImage = this.createImage(r.width, r.height);
|
|
+ Graphics offGraphic = offImage.getGraphics();
|
|
+ offGraphic.setColor(GammaTextArea.getBackgroundColor());
|
|
+ offGraphic.fillRect(r.x, r.y, r.width, r.height);
|
|
+ offGraphic.setColor(Color.black);
|
|
+ if (gta.getHasFocus()) {
|
|
+ offGraphic.setColor(Color.blue);
|
|
+ offGraphic.drawRect(r.x, r.y, r.width - 1, r.height - 1);
|
|
+ offGraphic.drawRect(r.x + 1, r.y + 1, r.width - 2, r.height - 2);
|
|
+ offGraphic.setColor(Color.black);
|
|
+ }
|
|
+
|
|
+ offGraphic.setFont(gta.getFont());
|
|
+ FontMetrics fm = offGraphic.getFontMetrics(gta.getFont());
|
|
+ gta._curpos = 0;
|
|
+ int i;
|
|
+ if (gta.getNumLines() <= gta.getCanvasLines()) {
|
|
+ for(i = 0; i < gta.getNumLines(); ++i) {
|
|
+ gta.drawLine(offGraphic, i, (i + 1) * fm.getHeight() - fm.getDescent());
|
|
+ }
|
|
+ } else {
|
|
+ i = gta.getScrollLine();
|
|
+
|
|
+ for(int j = 1; i < gta.getNumLines(); ++j) {
|
|
+ gta.drawLine(offGraphic, i, j * fm.getHeight() - fm.getDescent());
|
|
+ ++i;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ g.drawImage(offImage, 0, 0, this);
|
|
+ if (this.delayedMouseEvent != null) {
|
|
+ this.processMouseEvent(this.delayedMouseEvent);
|
|
+ this.delayedMouseEvent = null;
|
|
+ }
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/console/TarListPart.java b/1904/NET/worlds/console/TarListPart.java
|
|
--- a/1904/NET/worlds/console/TarListPart.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worlds/console/TarListPart.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -0,0 +1,204 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import NET.worlds.core.IniFile;
|
|
+import NET.worlds.network.Galaxy;
|
|
+import NET.worlds.network.NetworkObject;
|
|
+import NET.worlds.network.ObjID;
|
|
+import NET.worlds.network.WorldServer;
|
|
+import NET.worlds.scape.Drone;
|
|
+import NET.worlds.scape.FrameEvent;
|
|
+
|
|
+import java.awt.Window;
|
|
+import java.awt.*;
|
|
+import java.util.Enumeration;
|
|
+import java.util.StringTokenizer;
|
|
+import java.util.Vector;
|
|
+
|
|
+public class TarListPart implements FramePart, NameListOwner{
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private final String name = Console.message("edit-tar-list");
|
|
+ private static TarListPart active;
|
|
+ private DefaultConsole console;
|
|
+ private MenuItem editItem;
|
|
+ private Vector syncTars = new Vector();
|
|
+ public Vector tars;
|
|
+ private Object tarMutex = new Object();
|
|
+ private Vector updates = new Vector();
|
|
+
|
|
+ public void activate(Console console, Container container, Console console1) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)console;
|
|
+ this.editItem = console.addMenuItem(name, "Options");
|
|
+ this.editItem.setEnabled(this.tars != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event event, Object o) {
|
|
+ if (event.target == this.editItem) {
|
|
+ new EditNamesDialog(this, name, Console.message("add-to-tar"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent frameEvent) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ int var3 = this.updates.size();
|
|
+ if (var3 != 0) {
|
|
+ WorldServer var4 = this.console.getServerNew();
|
|
+ if (var4 != null) {
|
|
+ for(int var5 = 0; var5 < var3; ++var5) {
|
|
+ String var6 = (String)this.updates.elementAt(var5);
|
|
+ boolean var7 = this.tars.contains(var6);
|
|
+ NetworkObject var8 = var4.getObject(new ObjID(var6));
|
|
+ if (var8 instanceof Drone) {
|
|
+ Drone var9 = (Drone)var8;
|
|
+ var9.avtStateChanged();
|
|
+ }
|
|
+
|
|
+ this.console.getFriends().changeMuteState(var6, var7);
|
|
+ }
|
|
+
|
|
+ this.updates.removeAllElements();
|
|
+ this.syncTars = (Vector)this.tars.clone();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.tars.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int i) {
|
|
+ return (String)this.tars.elementAt(i);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int i) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ String var3 = (String)this.tars.elementAt(i);
|
|
+ this.tars.removeElementAt(i);
|
|
+ this.saveTars();
|
|
+ if (!this.updates.contains(var3)) {
|
|
+ this.updates.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window window) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String s) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ int var3 = TarListPart.iindexOf(this.tars, s);
|
|
+ if (var3 != -1) {
|
|
+ return var3;
|
|
+ } else {
|
|
+ this.tars.addElement(s);
|
|
+ this.saveTars();
|
|
+ if (!this.updates.contains(s)) {
|
|
+ this.updates.addElement(s);
|
|
+ }
|
|
+
|
|
+ return this.tars.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void loadTars() {
|
|
+ this.tars = new Vector();
|
|
+
|
|
+ for(int var1 = 0; var1 < 50; ++var1) {
|
|
+ String var2 = this.serverSection.getIniString("Tar" + var1, "");
|
|
+ if (var2.length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.tars, var2)) {
|
|
+ this.tars.addElement(var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() == 0) {
|
|
+ String var4 = this.serverSection.getIniString("Tars", "");
|
|
+ StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
+
|
|
+ while(var5.hasMoreTokens() && this.tars.size() < 50) {
|
|
+ String var3 = var5.nextToken();
|
|
+ if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.tars, var3)) {
|
|
+ this.tars.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() != 0) {
|
|
+ this.saveTars();
|
|
+ this.serverSection.setIniString("Tars", "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ void saveTars() {
|
|
+ String var1 = "";
|
|
+ int var2 = this.tars.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ this.serverSection.setIniString("Tar" + var3, (String)this.tars.elementAt(var3));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Tar" + var2, "");
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ this.loadTars();
|
|
+ if (this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isTarred(WorldServer ws, String s) {
|
|
+ if (ws != null && s != null) {
|
|
+ Galaxy var2 = ws.getGalaxy();
|
|
+ Enumeration var3 = var2.getConsoles();
|
|
+
|
|
+ while(var3.hasMoreElements()) {
|
|
+ Object var4 = var3.nextElement();
|
|
+ if (var4 instanceof DefaultConsole) {
|
|
+ TarListPart var5 = ((DefaultConsole)var4).getTars();
|
|
+ if (var5.tars != null) {
|
|
+ return TarListPart.icontains(var5.tars, s);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static int iindexOf(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return -1;
|
|
+ }
|
|
+
|
|
+ public static boolean icontains(Vector var0, String var1) {
|
|
+ return iindexOf(var0, var1) != -1;
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/console/UniversePanel.java b/1904/NET/worlds/console/UniversePanel.java
|
|
--- a/1904/NET/worlds/console/UniversePanel.java 2020-08-06 15:46:22.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/UniversePanel.java 2023-09-10 16:16:30.000000000 -0500
|
|
@@ -9,6 +9,7 @@
|
|
import NET.worlds.scape.BackgroundLoader;
|
|
import NET.worlds.scape.Room;
|
|
import NET.worlds.scape.World;
|
|
+import NET.worldsplus.Themer;
|
|
import java.awt.Component;
|
|
import java.awt.Dimension;
|
|
import java.awt.Event;
|
|
@@ -46,7 +47,7 @@
|
|
public UniversePanel(DefaultConsole var1) {
|
|
this.owningConsole = var1;
|
|
this.setLayout((LayoutManager)null);
|
|
- this.backButton = new ImageButtons(Console.message("back.gif"), 60, 22, this);
|
|
+ this.backButton = new ImageButtons(Themer.themer.asset(Console.message("back.gif")), 60, 22, this);
|
|
String var2 = IniFile.override().getIniString("UniverseBgFile", bgName);
|
|
String var3 = IniFile.override().getIniString("UniverseDatFile", datName);
|
|
if (!(new File(datName)).exists()) {
|
|
diff -ruN a/1904/NET/worlds/console/WhisperManager.java b/1904/NET/worlds/console/WhisperManager.java
|
|
--- a/1904/NET/worlds/console/WhisperManager.java 2020-08-06 15:46:26.000000000 -0500
|
|
+++ b/1904/NET/worlds/console/WhisperManager.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -1,7 +1,11 @@
|
|
package NET.worlds.console;
|
|
|
|
-import NET.worlds.network.NetUpdate;
|
|
import NET.worlds.scape.InventoryManager;
|
|
+import NET.worlds.scape.Pilot;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
+import java.awt.Window;
|
|
+import java.io.IOException;
|
|
import java.util.Enumeration;
|
|
import java.util.Hashtable;
|
|
|
|
@@ -9,102 +13,129 @@
|
|
private static WhisperManager manager_;
|
|
private Hashtable dialogs_ = new Hashtable();
|
|
private Hashtable tradeDialogs_ = new Hashtable();
|
|
- private java.awt.Window parent;
|
|
+ private Window parent;
|
|
private String inventory = "";
|
|
final String tradeServerName = "TRADE";
|
|
- static GiftDialog outstandingGift;
|
|
|
|
- private WhisperManager() {
|
|
+
|
|
+ private WhisperManager()
|
|
+ {
|
|
+ this.dialogs_ = new Hashtable();
|
|
+ this.tradeDialogs_ = new Hashtable();
|
|
}
|
|
|
|
- public static WhisperManager whisperManager() {
|
|
+ public static WhisperManager whisperManager()
|
|
+ {
|
|
if (manager_ == null) {
|
|
manager_ = new WhisperManager();
|
|
}
|
|
-
|
|
return manager_;
|
|
}
|
|
|
|
- void setParent(java.awt.Window var1) {
|
|
- this.parent = var1;
|
|
+ void setParent(Window p)
|
|
+ {
|
|
+ this.parent = p;
|
|
}
|
|
|
|
- public Hashtable dialogs() {
|
|
+ public Hashtable dialogs()
|
|
+ {
|
|
return this.dialogs_;
|
|
}
|
|
|
|
- public Hashtable tradeDialogs() {
|
|
+ public Hashtable tradeDialogs()
|
|
+ {
|
|
return this.tradeDialogs_;
|
|
}
|
|
|
|
- private WhisperDialog findWhisperDialog(String var1) {
|
|
- return !this.dialogs_.containsKey(var1) ? null : (WhisperDialog)this.dialogs_.get(var1);
|
|
+ private WhisperDialog findWhisperDialog(String to)
|
|
+ {
|
|
+ if (!this.dialogs_.containsKey(to)) {
|
|
+ return null;
|
|
+ }
|
|
+ return (WhisperDialog)this.dialogs_.get(to);
|
|
}
|
|
|
|
- private TradeDialog findTradeDialog(String var1) {
|
|
- return !this.tradeDialogs_.containsKey(var1) ? null : (TradeDialog)this.tradeDialogs_.get(var1);
|
|
+ private TradeDialog findTradeDialog(String to)
|
|
+ {
|
|
+ if (!this.tradeDialogs_.containsKey(to)) {
|
|
+ return null;
|
|
+ }
|
|
+ return (TradeDialog)this.tradeDialogs_.get(to);
|
|
}
|
|
|
|
- private WhisperDialog start(String var1, boolean var2) {
|
|
- WhisperDialog var3 = this.findWhisperDialog(var1);
|
|
- if (var3 == null) {
|
|
- this.dialogs_.put(var1, var3 = new WhisperDialog(this.parent, var1));
|
|
+ private WhisperDialog start(String to, boolean takeFocus)
|
|
+ {
|
|
+ WhisperDialog wd = findWhisperDialog(to);
|
|
+ if (wd == null) {
|
|
+ this.dialogs_.put(to, wd = new WhisperDialog(this.parent, to));
|
|
}
|
|
-
|
|
- if (var2) {
|
|
- var3.takeFocus();
|
|
+ if (takeFocus) {
|
|
+ wd.takeFocus();
|
|
}
|
|
-
|
|
- var3.ready();
|
|
- return var3;
|
|
+ wd.ready();
|
|
+ if (Gamma.shaperEnabled()) Gamma.shaper.whisperListChanged();
|
|
+ return wd;
|
|
}
|
|
|
|
- public void remove(String var1) {
|
|
- this.dialogs_.remove(var1);
|
|
+ public void remove(String name)
|
|
+ {
|
|
+ this.dialogs_.remove(name);
|
|
}
|
|
|
|
- public void startTo(String var1) {
|
|
- this.start(var1, true);
|
|
+ public void startTo(String to)
|
|
+ {
|
|
+ WhisperDialog wd = start(to, true);
|
|
}
|
|
|
|
- public TradeDialog startToTrade(String var1) {
|
|
- TradeDialog var2 = this.findTradeDialog(var1);
|
|
- if (var2 == null) {
|
|
- this.tradeDialogs_.put(var1, var2 = new TradeDialog(this.parent, var1));
|
|
+ public TradeDialog startToTrade(String to) {
|
|
+ TradeDialog wd = findTradeDialog(to);
|
|
+ if (wd == null) {
|
|
+ this.tradeDialogs_.put(to, wd = new TradeDialog(this.parent, to));
|
|
}
|
|
+ wd.takeFocus();
|
|
+ wd.ready();
|
|
+ wd.setTrading(true);
|
|
+ wd.whisperPart.println(Console.message("trade-start"));
|
|
|
|
- var2.takeFocus();
|
|
- var2.ready();
|
|
- var2.setTrading(true);
|
|
- var2.whisperPart.println(Console.message("trade-start"));
|
|
- return var2;
|
|
+ return wd;
|
|
}
|
|
|
|
- public void printFrom(String var1, String var2) {
|
|
- if (var2.startsWith("&|+")) {
|
|
- if (var2.startsWith("&|+gift>") && var1.equalsIgnoreCase("TRADE")) {
|
|
- maybeQueryGift(var2.substring(8));
|
|
- } else if (var2.startsWith("&|+inv>") && var1.equalsIgnoreCase("TRADE")) {
|
|
- this.tradeMsg(var2.substring(7));
|
|
- } else if (var2.startsWith("&|+trade>")) {
|
|
- TradeDialog var4 = this.findTradeDialog(var1);
|
|
- if (var2.equals("&|+trade>cancel") && (var4 == null || !var4.isActive() || !var4.isTrading)) {
|
|
- return;
|
|
- }
|
|
-
|
|
- var4 = this.startToTrade(var1);
|
|
- var4.print(var2);
|
|
+ public void printFrom(String from, String msg) {
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveWhisper(from, Console.getActive().getLongID(), msg);
|
|
+ } catch (IOException e) {
|
|
+ e.printStackTrace();
|
|
+ }
|
|
+ if (!msg.startsWith("&|+"))
|
|
+ {
|
|
+ WhisperDialog it = findWhisperDialog(from);
|
|
+ if ((msg.equals("&|+trade>cancel")) && (
|
|
+ (it == null) || (!it.isActive()) || (!it.isTrading))) {
|
|
+ return;
|
|
}
|
|
- } else {
|
|
- WhisperDialog var3 = this.findWhisperDialog(var1);
|
|
- if (var2.equals("&|+trade>cancel") && (var3 == null || !var3.isActive() || !var3.isTrading)) {
|
|
+ it = start(from, false);
|
|
+ it.print(msg);
|
|
+ }
|
|
+ else if ((msg.startsWith("&|+gift>")) &&
|
|
+ (from.equalsIgnoreCase("TRADE")))
|
|
+ {
|
|
+ maybeQueryGift(msg.substring(8));
|
|
+ }
|
|
+ else if ((msg.startsWith("&|+inv>")) &&
|
|
+ (from.equalsIgnoreCase("TRADE")))
|
|
+ {
|
|
+ tradeMsg(msg.substring(7));
|
|
+ }
|
|
+ else if (msg.startsWith("&|+trade>"))
|
|
+ {
|
|
+ TradeDialog it = findTradeDialog(from);
|
|
+ if ((msg.equals("&|+trade>cancel")) && (
|
|
+ (it == null) || (!it.isActive()) || (!it.isTrading))) {
|
|
return;
|
|
}
|
|
-
|
|
- var3 = this.start(var1, false);
|
|
- var3.print(var2);
|
|
+ it = startToTrade(from);
|
|
+ it.print(msg);
|
|
}
|
|
-
|
|
}
|
|
|
|
public void tradeMsg(String var1) {
|
|
@@ -122,26 +153,23 @@
|
|
}
|
|
|
|
public void printTo(String var1, String var2) {
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveWhisper(Console.getActive().getLongID(), var1, var2);
|
|
+ } catch (IOException e) {
|
|
+ e.printStackTrace();
|
|
+ }
|
|
if (!var1.equals("world") && !var1.equals("TRADE")) {
|
|
if (!var2.startsWith("&|+") || var2.startsWith("&|+trade>")) {
|
|
WhisperDialog var3 = this.start(var1, false);
|
|
var3.send(var2);
|
|
}
|
|
-
|
|
}
|
|
}
|
|
|
|
- public void giftDialogDone() {
|
|
- outstandingGift = null;
|
|
- }
|
|
-
|
|
- public static void maybeQueryGift(String var0) {
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- Console var1 = Console.getActive();
|
|
- if (var1 != null && outstandingGift == null && !var1.isSleeping()) {
|
|
- outstandingGift = new GiftDialog(var0, 3000000);
|
|
- }
|
|
-
|
|
+ public static void maybeQueryGift(String inv) {
|
|
+ Console c = Console.getActive();
|
|
+ if ((c != null)) {
|
|
+ TradeDialog.sendTradeMessage("&|+deal>TRADE ," + inv);
|
|
}
|
|
}
|
|
}
|
|
diff -ruN a/1904/NET/worlds/core/IniFile.java b/1904/NET/worlds/core/IniFile.java
|
|
--- a/1904/NET/worlds/core/IniFile.java 2020-08-06 15:46:08.000000000 -0500
|
|
+++ b/1904/NET/worlds/core/IniFile.java 2023-09-10 15:38:03.000000000 -0500
|
|
@@ -1,10 +1,12 @@
|
|
package NET.worlds.core;
|
|
|
|
+import NET.worldsplus.Themer;
|
|
+
|
|
public class IniFile {
|
|
String file;
|
|
String section;
|
|
static boolean initialized = false;
|
|
- private static IniFile gamma_ = null;
|
|
+ private static final IniFile gamma_ = null;
|
|
private static IniFile override_ = null;
|
|
|
|
public IniFile(String var1) {
|
|
@@ -12,22 +14,42 @@
|
|
this.section = var1;
|
|
}
|
|
|
|
- private IniFile(String var1, String var2) {
|
|
+ public IniFile(String var1, String var2) {
|
|
this.file = var1;
|
|
this.section = var2;
|
|
}
|
|
|
|
- public static IniFile gamma() {
|
|
- if (gamma_ == null) {
|
|
- gamma_ = new IniFile("Gamma");
|
|
+ public static IniFile ini(String name) {
|
|
+ return ini(gamma_, name);
|
|
+ }
|
|
+
|
|
+ public static IniFile ini(IniFile ini, String name) {
|
|
+ if (!initialized) {
|
|
+ nativeInit();
|
|
+ initialized = true;
|
|
+ }
|
|
+
|
|
+ if (ini == null) {
|
|
+ ini = new IniFile(name);
|
|
}
|
|
+ return ini;
|
|
+ }
|
|
+
|
|
+ public static IniFile modPlus() { return ini("WorldsPlus"); }
|
|
+
|
|
+ public static IniFile modColorfulTags() { return ini("ColorfulTags"); }
|
|
|
|
+ public static IniFile modChatLog() { return ini("ChatLog"); }
|
|
+
|
|
+ public static IniFile modPrivacy() { return ini("Privacy"); }
|
|
+
|
|
+ public static IniFile gamma() {
|
|
if (!initialized) {
|
|
nativeInit();
|
|
initialized = true;
|
|
}
|
|
|
|
- return gamma_;
|
|
+ return ini(gamma_, "Gamma");
|
|
}
|
|
|
|
public static IniFile override() {
|
|
@@ -35,7 +57,7 @@
|
|
nativeInit();
|
|
initialized = true;
|
|
}
|
|
-
|
|
+
|
|
if (override_ == null) {
|
|
override_ = new IniFile(".\\override.ini", "Runtime");
|
|
}
|
|
diff -ruN a/1904/NET/worlds/network/textCmd.java b/1904/NET/worlds/network/textCmd.java
|
|
--- a/1904/NET/worlds/network/textCmd.java 2020-08-06 15:46:06.000000000 -0500
|
|
+++ b/1904/NET/worlds/network/textCmd.java 2023-09-10 19:55:45.000000000 -0500
|
|
@@ -1,14 +1,12 @@
|
|
package NET.worlds.network;
|
|
|
|
-import NET.worlds.console.BBChatCommand;
|
|
-import NET.worlds.console.BlackBox;
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.GammaTextArea;
|
|
-import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.console.*;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.Pilot;
|
|
import NET.worlds.scape.PosableDrone;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
import java.io.IOException;
|
|
|
|
public class textCmd extends receivedNetPacket {
|
|
@@ -24,6 +22,7 @@
|
|
super((ObjID)null, 14);
|
|
this._senderID = new ObjID("");
|
|
this._text = var1;
|
|
+
|
|
}
|
|
|
|
void parseNetData(ServerInputStream var1) throws IOException {
|
|
@@ -45,19 +44,25 @@
|
|
void process(WorldServer var1) throws Exception {
|
|
String var2;
|
|
if (this._senderID.longID() == null) {
|
|
- var2 = "[Unknown Name (#" + String.valueOf(this._senderID.shortID()) + ")]";
|
|
+ var2 = "#" + String.valueOf(this._senderID.shortID());
|
|
} else {
|
|
var2 = this._senderID.longID();
|
|
- if (MuteListPart.isMuted(var1, var2)) {
|
|
- return;
|
|
- }
|
|
}
|
|
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveRoom(var2, this._text);
|
|
+ } catch (IOException e) {
|
|
+ e.printStackTrace();
|
|
+ }
|
|
+
|
|
+ if (MuteListPart.isMuted(var1, var2)) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
handleActionText(var1, this._text, var2, this._senderID);
|
|
- if (!this._text.startsWith("&|+")) {
|
|
+ if (!this._text.startsWith("&|+") || (IniFile.gamma().getIniInt("DisableAction2", 1) == 1 && this._text.startsWith("&|+action2>"))) {
|
|
this.displayText(var2, this._text);
|
|
}
|
|
-
|
|
}
|
|
|
|
protected void displayText(String var1, String var2) {
|
|
@@ -108,7 +113,7 @@
|
|
((PosableDrone)var4).animate(var5);
|
|
}
|
|
|
|
- if (var1.startsWith("&|+action2>")) {
|
|
+ if (var1.startsWith("&|+action2>") && IniFile.gamma().getIniInt("DisableAction2", 1) == 0) {
|
|
int var9 = var1.indexOf("|sender|");
|
|
var5 = null;
|
|
String var6 = null;
|
|
diff -ruN a/1904/NET/worlds/network/whisperCmd.java b/1904/NET/worlds/network/whisperCmd.java
|
|
--- a/1904/NET/worlds/network/whisperCmd.java 2020-08-06 15:46:06.000000000 -0500
|
|
+++ b/1904/NET/worlds/network/whisperCmd.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -3,63 +3,84 @@
|
|
import NET.worlds.console.Console;
|
|
import NET.worlds.console.FriendsListPart;
|
|
import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.core.IniFile;
|
|
import NET.worlds.scape.WorldScriptManager;
|
|
+import NET.worlds.console.RejectHandler;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
+import java.io.IOException;
|
|
import java.text.MessageFormat;
|
|
|
|
public class whisperCmd extends textCmd {
|
|
- public static final byte WHISPERCMD = 17;
|
|
- private static String rejectMsg = Console.message("not-whispers");
|
|
+ public static final byte WHISPERCMD = 17;
|
|
+ private static String whisperRejMSG = Console.message("not-whispers");
|
|
+ private static String teleportRejMSG = Console.message("not-teleports");
|
|
+ private static String reject = Console.message("rejected");
|
|
+ RejectHandler rej = MuteListPart.rej;
|
|
+
|
|
+ public whisperCmd() {
|
|
+ this._commandType = 17;
|
|
+ }
|
|
+
|
|
+ public whisperCmd(String var1, String msg) {
|
|
+ super(msg);
|
|
+ WorldScriptManager.getInstance().onConversation(var1, msg);
|
|
+ this._commandType = 17;
|
|
+ this._objID = new ObjID(var1);
|
|
+ }
|
|
+
|
|
+ void process(WorldServer var1) {
|
|
+ String var2;
|
|
+ Object[] var3;
|
|
+ if (this._senderID.longID() == null) {
|
|
+ var3 = new Object[]{new String(String.valueOf(this._senderID.shortID()))};
|
|
+ var2 = MessageFormat.format(Console.message("Unknown-Name"), var3);
|
|
+ } else {
|
|
+ var2 = this._senderID.longID();
|
|
+ if (MuteListPart.isMuted(var1, var2)) {
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveWhisper(var2, Console.getActive().getLongID(), this._text);
|
|
+ var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, Console.message("have-you-muted")));
|
|
+ } catch (InfiniteWaitException var4) { } catch (PacketTooLargeException var5) { } catch (IOException var6) { }
|
|
|
|
- public whisperCmd() {
|
|
- this._commandType = 17;
|
|
- }
|
|
-
|
|
- public whisperCmd(String var1, String var2) {
|
|
- super(var2);
|
|
- WorldScriptManager.getInstance().onConversation(var1, var2);
|
|
- this._commandType = 17;
|
|
- this._objID = new ObjID(var1);
|
|
- }
|
|
-
|
|
- void process(WorldServer var1) throws Exception {
|
|
- String var2;
|
|
- Object[] var3;
|
|
- if (this._senderID.longID() == null) {
|
|
- var3 = new Object[]{new String(String.valueOf(this._senderID.shortID()))};
|
|
- var2 = MessageFormat.format(Console.message("Unknown-Name"), var3);
|
|
- } else {
|
|
- var2 = this._senderID.longID();
|
|
- if (MuteListPart.isMuted(var1, var2)) {
|
|
- try {
|
|
- var1.sendNetworkMsg(new whisperCmd(var2, Console.message("have-you-muted")));
|
|
- } catch (InfiniteWaitException var4) {
|
|
- } catch (PacketTooLargeException var5) {
|
|
+ return;
|
|
}
|
|
|
|
- return;
|
|
- }
|
|
+ if (!this._text.startsWith("&|+") && MuteListPart.isRejecting(var1, var2)) {
|
|
+ try {
|
|
+ if (!this._text.equals(whisperRejMSG)) {
|
|
+ var3 = new Object[]{"whisper", var2};
|
|
+ if (IniFile.modPrivacy().getIniInt("WhisperFeedback", 1) == 1) Console.println(MessageFormat.format(Console.message("rejected"), var3));
|
|
+ if (!rej.rejectWhisper(var2)) {
|
|
+ if (IniFile.modPrivacy().getIniInt("WhisperResponse", 1) == 1) var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, whisperRejMSG));
|
|
+ rej.addWhisperUser(var2);
|
|
+ }
|
|
+ }
|
|
+ } catch (InfiniteWaitException var6) { } catch (PacketTooLargeException var7) { } catch (IOException var6) { }
|
|
+ return;
|
|
+ }
|
|
|
|
- if (!this._text.startsWith("&|+") && MuteListPart.isRejecting(var1)) {
|
|
- try {
|
|
- if (!this._text.equals(rejectMsg)) {
|
|
- var3 = new Object[]{new String(var2)};
|
|
- Console.println(MessageFormat.format(Console.message("You-rejected"), var3));
|
|
- var1.sendNetworkMsg(new whisperCmd(var2, rejectMsg));
|
|
- }
|
|
- } catch (InfiniteWaitException var6) {
|
|
- } catch (PacketTooLargeException var7) {
|
|
+ if (this._text.startsWith("&|+where?") && MuteListPart.isRejectingTele(var1, var2)) {
|
|
+ try {
|
|
+ if (!this._text.equals(teleportRejMSG)) {
|
|
+ var3 = new Object[]{"teleport", var2};
|
|
+ if (IniFile.modPrivacy().getIniInt("TeleportFeedback", 1) == 1) Console.println(MessageFormat.format(Console.message("rejected"), var3));
|
|
+ if (!rej.rejectTeleport(var2)) {
|
|
+ if (IniFile.modPrivacy().getIniInt("TeleportResponse", 0) == 1) var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, teleportRejMSG));
|
|
+ rej.addTeleportUser(var2);
|
|
+ }
|
|
+ }
|
|
+ } catch (InfiniteWaitException var6) { } catch (PacketTooLargeException var7) { }
|
|
+ return;
|
|
}
|
|
+ }
|
|
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- FriendsListPart.processWhisper(var1, var2, this._text);
|
|
- handleActionText(var1, this._text, var2, this._senderID);
|
|
- Console.printWhisper(var2, FilthFilter.get().filter(this._text));
|
|
- }
|
|
-
|
|
- public String toString(WorldServer var1) {
|
|
- return Console.message("WHISPER") + " " + this._senderID.toString(var1) + " --> " + this._objID.toString(var1) + ": " + this._text;
|
|
- }
|
|
+ FriendsListPart.processWhisper(var1, var2, this._text);
|
|
+ handleActionText(var1, this._text, var2, this._senderID);
|
|
+ Console.printWhisper(var2, FilthFilter.get().filter(this._text));
|
|
+ }
|
|
+
|
|
+ public String toString(WorldServer var1) {
|
|
+ return Console.message("WHISPER") + " " + this._senderID.toString(var1) + " --> " + this._objID.toString(var1) + ": " + this._text;
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/scape/ChangeAvatarDialog.java b/1904/NET/worlds/scape/ChangeAvatarDialog.java
|
|
--- a/1904/NET/worlds/scape/ChangeAvatarDialog.java 2020-08-06 15:46:18.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/ChangeAvatarDialog.java 2023-09-10 16:15:47.000000000 -0500
|
|
@@ -6,6 +6,7 @@
|
|
import NET.worlds.console.ImageButtonsCallback;
|
|
import NET.worlds.console.PolledDialog;
|
|
import NET.worlds.core.IniFile;
|
|
+import NET.worldsplus.Themer;
|
|
import java.awt.Component;
|
|
import java.awt.Rectangle;
|
|
import java.awt.Window;
|
|
@@ -18,18 +19,18 @@
|
|
super(var1, var2, Console.message("Change-Avatar"), false);
|
|
this.setAlignment(1);
|
|
Rectangle[] var4 = new Rectangle[2];
|
|
- int var5 = IniFile.override().getIniInt("changeavYesX", 39);
|
|
- int var6 = IniFile.override().getIniInt("changeavYesY", 23);
|
|
- int var7 = IniFile.override().getIniInt("changeavYesW", 48);
|
|
- int var8 = IniFile.override().getIniInt("changeavYesH", 18);
|
|
+ int var5 = Themer.override().getIniInt("changeavYesX", 39);
|
|
+ int var6 = Themer.override().getIniInt("changeavYesY", 23);
|
|
+ int var7 = Themer.override().getIniInt("changeavYesW", 48);
|
|
+ int var8 = Themer.override().getIniInt("changeavYesH", 18);
|
|
var4[0] = new Rectangle(var5, var6, var7, var8);
|
|
- int var9 = IniFile.override().getIniInt("changeavNoX", 96);
|
|
- int var10 = IniFile.override().getIniInt("changeavNoY", 23);
|
|
- int var11 = IniFile.override().getIniInt("changeavNoW", 42);
|
|
- int var12 = IniFile.override().getIniInt("changeavnoH", 18);
|
|
+ int var9 = Themer.override().getIniInt("changeavNoX", 96);
|
|
+ int var10 = Themer.override().getIniInt("changeavNoY", 23);
|
|
+ int var11 = Themer.override().getIniInt("changeavNoW", 42);
|
|
+ int var12 = Themer.override().getIniInt("changeavnoH", 18);
|
|
var4[1] = new Rectangle(var9, var10, var11, var12);
|
|
Object[] var13 = new Object[]{new String(var3)};
|
|
- this.ib = new ChangeAvatarImageButtons(IniFile.override().getIniString("changeAvDlg", Console.message("changeav.gif")), var4, this, MessageFormat.format(Console.message("Change-avatar-to"), var13));
|
|
+ this.ib = new ChangeAvatarImageButtons(Themer.themer.asset(Console.message("changeav.gif")), var4, this, MessageFormat.format(Console.message("Change-avatar-to"), var13));
|
|
this.ready();
|
|
}
|
|
|
|
diff -ruN a/1904/NET/worlds/scape/Drone.java b/1904/NET/worlds/scape/Drone.java
|
|
--- a/1904/NET/worlds/scape/Drone.java 2020-08-06 15:46:14.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/Drone.java 2023-12-15 20:23:40.000000000 -0600
|
|
@@ -1,861 +1,974 @@
|
|
package NET.worlds.scape;
|
|
|
|
-import NET.worlds.console.BBAppearDroneCommand;
|
|
-import NET.worlds.console.BBDisappearDroneCommand;
|
|
-import NET.worlds.console.BBDroneBitmapCommand;
|
|
-import NET.worlds.console.BBDroneDeltaPosCommand;
|
|
-import NET.worlds.console.BBMoveDroneCommand;
|
|
-import NET.worlds.console.BlackBox;
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.FriendsListPart;
|
|
-import NET.worlds.console.Main;
|
|
-import NET.worlds.console.MainCallback;
|
|
-import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.console.*;
|
|
import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.ServerTableManager;
|
|
import NET.worlds.core.Std;
|
|
-import NET.worlds.network.FilthFilter;
|
|
-import NET.worlds.network.Galaxy;
|
|
-import NET.worlds.network.InfiniteWaitException;
|
|
-import NET.worlds.network.NetworkObject;
|
|
-import NET.worlds.network.ObjID;
|
|
-import NET.worlds.network.OldPropertyList;
|
|
-import NET.worlds.network.PacketTooLargeException;
|
|
-import NET.worlds.network.PropertyList;
|
|
-import NET.worlds.network.URL;
|
|
-import NET.worlds.network.WorldServer;
|
|
-import NET.worlds.network.net2Property;
|
|
-import NET.worlds.network.netProperty;
|
|
-import NET.worlds.network.propReqCmd;
|
|
-import java.awt.Color;
|
|
+import NET.worlds.network.*;
|
|
+import NET.worldsplus.MumbleLink;
|
|
+
|
|
+import java.awt.*;
|
|
import java.io.IOException;
|
|
import java.net.MalformedURLException;
|
|
import java.util.Enumeration;
|
|
import java.util.Hashtable;
|
|
+import java.util.Random;
|
|
import java.util.Vector;
|
|
|
|
public abstract class Drone extends WObject implements NetworkObject, WobLoaded, MouseDownHandler, FrameHandler {
|
|
- private int _last_FrameTime;
|
|
- private int _last_PosTime;
|
|
- private int _vel_x;
|
|
- private int _vel_y;
|
|
- private int _vel_z;
|
|
- private int _vel_yaw;
|
|
- private int _last_x;
|
|
- private int _last_y;
|
|
- private int _last_z;
|
|
- private int _last_yaw;
|
|
- private int _x;
|
|
- private int _y;
|
|
- private int _z;
|
|
- private int _yaw;
|
|
- private boolean inited = false;
|
|
- protected WObject tag;
|
|
- protected WObject tagbg;
|
|
- private Console console;
|
|
- private float tagHeight;
|
|
- private Shape sleepBox;
|
|
- static boolean showNametags;
|
|
- private static String[] employeeAccounts;
|
|
- private static Hashtable employeeHash;
|
|
- public static Vector usableDrones;
|
|
- private int lastUsed;
|
|
- protected WorldServer _server;
|
|
- private String sleepMode;
|
|
- private static Object classCookie;
|
|
- private static Object classCookieInterpolatedDrone;
|
|
-
|
|
- public Drone(ObjID var1, WorldServer var2) {
|
|
- if (var2 != null) {
|
|
- Debug.dAssert(var1 != null);
|
|
- this.attachToServer(var2.getLongID(var1), var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- protected Drone(String var1, WorldServer var2) {
|
|
- Debug.dAssert(var1 != null);
|
|
- if (var2 != null) {
|
|
- this.attachToServer(var1, var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void attachToServer(String var1, WorldServer var2) {
|
|
- if (var2 != null) {
|
|
- Debug.dAssert(Main.isMainThread());
|
|
- String var3 = null;
|
|
- if (this.tag != null) {
|
|
- var3 = this.getLongID();
|
|
- }
|
|
-
|
|
- this.getSharer().createDynamicFromNet();
|
|
- this.setName(var1);
|
|
- String var4 = this.getLongID();
|
|
- this._server = var2;
|
|
- this._server.incRefCnt(this);
|
|
- this._server.regObject((String)var4, this);
|
|
-
|
|
- try {
|
|
- this._server.sendNetworkMsg(new propReqCmd(new ObjID(this.getLongID())));
|
|
- } catch (InfiniteWaitException var6) {
|
|
- } catch (PacketTooLargeException var7) {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- if (var4.equals(var3)) {
|
|
- this.avatarHeightChangedTo(189.0F);
|
|
- } else {
|
|
- this.makeTag(false);
|
|
- }
|
|
-
|
|
- Main.register(new Drone.MakeSleepBox());
|
|
- }
|
|
- }
|
|
-
|
|
- private static void flushUnusedDrones() {
|
|
- synchronized(usableDrones) {
|
|
- int var1 = Std.getFastTime();
|
|
- int var2 = usableDrones.size();
|
|
-
|
|
- while(true) {
|
|
- --var2;
|
|
- if (var2 < 0) {
|
|
- return;
|
|
- }
|
|
-
|
|
- Drone var3 = (Drone)usableDrones.elementAt(var2);
|
|
- if (var1 > var3.lastUsed + 2000) {
|
|
- usableDrones.removeElementAt(var2);
|
|
- var3.discard();
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public static boolean isEmployeeAccount(String var0) {
|
|
- if (employeeHash == null) {
|
|
- employeeHash = new Hashtable();
|
|
-
|
|
- for(int var1 = 0; var1 < employeeAccounts.length; ++var1) {
|
|
- employeeHash.put(employeeAccounts[var1], employeeAccounts[var1]);
|
|
- }
|
|
- }
|
|
-
|
|
- return employeeHash.get(var0) != null;
|
|
- }
|
|
-
|
|
- public void makeTag(boolean var1) {
|
|
- this.tagHeight = 195.0F;
|
|
- if (this.tag != null) {
|
|
- this.tagHeight = this.tag.getZ();
|
|
- this.tag.detach();
|
|
- this.tag = null;
|
|
- }
|
|
-
|
|
- if (this.tagbg != null) {
|
|
- this.tagbg.detach();
|
|
- this.tagbg = null;
|
|
- }
|
|
-
|
|
- if ((this._server != null || var1) && !(this instanceof MutedDrone) && showNametags) {
|
|
- String var2 = this.getLongID();
|
|
- String var3 = FilthFilter.get().filterName(var2);
|
|
- if (var3 != null && !var3.equals("")) {
|
|
- Texture[] var4 = new Texture[1];
|
|
- boolean var6 = RenderWare.get3DHardwareInUse();
|
|
- boolean var7 = var3.toLowerCase().startsWith(Console.message("host")) || var3.toLowerCase().startsWith("host");
|
|
- if (var7) {
|
|
- var3 = Console.message("host-upper") + var3.substring(4);
|
|
- }
|
|
-
|
|
- boolean var8 = var3.toLowerCase().startsWith(Console.message("guest-")) || var3.toLowerCase().startsWith("guest-");
|
|
- if (var8) {
|
|
- var3 = Console.message("guest-upper") + var3.substring(5);
|
|
- }
|
|
-
|
|
- boolean var9 = isEmployeeAccount(var3);
|
|
- Color var10;
|
|
- if (var8) {
|
|
- var10 = Color.pink;
|
|
- } else if (var7) {
|
|
- var10 = Color.yellow;
|
|
- } else if (var9) {
|
|
- var10 = Color.cyan;
|
|
- } else {
|
|
- var10 = Color.lightGray;
|
|
+ private int _last_FrameTime;
|
|
+ private int _last_PosTime;
|
|
+ private int _vel_x;
|
|
+ private int _vel_y;
|
|
+ private int _vel_z;
|
|
+ private int _vel_yaw;
|
|
+ private int _last_x;
|
|
+ private int _last_y;
|
|
+ private int _last_z;
|
|
+ private int _last_yaw;
|
|
+ private int _x;
|
|
+ private int _y;
|
|
+ private int _z;
|
|
+ private int _yaw;
|
|
+ private boolean inited = false;
|
|
+ protected WObject tag;
|
|
+ protected WObject tagbg;
|
|
+ private Console console;
|
|
+ private float tagHeight;
|
|
+ private Shape sleepBox;
|
|
+ static boolean showNametags;
|
|
+ private static final String[] employeeAccounts;
|
|
+ private static Hashtable employeeHash;
|
|
+ public static final Vector usableDrones;
|
|
+ private int lastUsed;
|
|
+ protected WorldServer _server;
|
|
+ private String sleepMode;
|
|
+ private static final Object classCookie;
|
|
+ private static final Object classCookieInterpolatedDrone;
|
|
+
|
|
+ public Drone(ObjID var1, WorldServer var2) {
|
|
+ if (var2 != null) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ this.attachToServer(var2.getLongID(var1), var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ protected Drone(String var1, WorldServer var2) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ if (var2 != null) {
|
|
+ this.attachToServer(var1, var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void attachToServer(String var1, WorldServer var2) {
|
|
+ if (var2 != null) {
|
|
+ Debug.dAssert(Main.isMainThread());
|
|
+ String var3 = null;
|
|
+ if (this.tag != null) {
|
|
+ var3 = this.getLongID();
|
|
+ }
|
|
+
|
|
+ this.getSharer().createDynamicFromNet();
|
|
+ this.setName(var1);
|
|
+ String var4 = this.getLongID();
|
|
+ this._server = var2;
|
|
+ this._server.incRefCnt(this);
|
|
+ this._server.regObject(var4, this);
|
|
+
|
|
+ try {
|
|
+ this._server.sendNetworkMsg(new propReqCmd(new ObjID(this.getLongID())));
|
|
+ } catch (InfiniteWaitException ignored) {
|
|
+ } catch (PacketTooLargeException ignored) {
|
|
}
|
|
|
|
- var4[0] = new StringTexture(var3, Console.message("TagFont"), 48, Color.black, var6 ? new Color(254, 254, 254) : var10);
|
|
- byte var5 = 14;
|
|
- int var11 = var3.length() * 10;
|
|
- Hologram var12 = new Hologram((float)var11, (float)var5, var4);
|
|
- var12.setViewplaneAligned(true);
|
|
- var12.raise(this.tagHeight);
|
|
- var12.setScaleDist(300.0F);
|
|
- this.tag = var12;
|
|
- this.tag.setVisible(true);
|
|
- this.tag.setBumpable(false);
|
|
- this.tag.setLocalShadowed(false);
|
|
- this.tag.setShadowedLocally(true);
|
|
- this.add(this.tag);
|
|
- if (var6) {
|
|
- Texture[] var13 = new Texture[]{new StringTexture(var3, Console.message("TagFont"), 48, Color.black, var10)};
|
|
- Hologram var14 = new Hologram((float)var11, (float)var5, var13);
|
|
- var14.setViewplaneAligned(true);
|
|
- var14.raise(this.tagHeight);
|
|
- var14.setScaleDist(300.0F);
|
|
- var14.setMaterial(new Material(0.75F, 0.0F, 0.0F, Color.white, (Texture)null, 0.5F, false, false));
|
|
- this.tagbg = var14;
|
|
- this.tagbg.setVisible(true);
|
|
- this.tagbg.setBumpable(false);
|
|
- this.tagbg.setLocalShadowed(false);
|
|
- this.tagbg.setShadowedLocally(true);
|
|
- this.add(this.tagbg);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- protected void avatarHeightChangedTo(float var1) {
|
|
- if (this.tag != null) {
|
|
- this.tag.raise(var1 + 1.0F + 5.0F - this.tag.getZ());
|
|
- }
|
|
-
|
|
- if (this.tagbg != null) {
|
|
- this.tagbg.raise(var1 + 1.0F + 5.0F - this.tagbg.getZ());
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void detachFromServer(boolean var1) {
|
|
- Debug.dAssert(Main.isMainThread());
|
|
- if (this._server != null) {
|
|
- this._server.delObject(new ObjID(this.getLongID()));
|
|
- this._server.decRefCnt(this);
|
|
- this._server = null;
|
|
- }
|
|
-
|
|
- if (var1) {
|
|
- this.lastUsed = Std.getFastTime();
|
|
- synchronized(usableDrones) {
|
|
- usableDrones.addElement(this);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static Drone make(ObjID var0, WorldServer var1) {
|
|
- synchronized(usableDrones) {
|
|
- if (!usableDrones.isEmpty() && var0 != null && var1 != null) {
|
|
- String var3 = "!" + var1.getLongID(var0);
|
|
-
|
|
- int var4;
|
|
- Drone var5;
|
|
- for(var4 = usableDrones.size() - 1; var4 > 0; --var4) {
|
|
- var5 = (Drone)usableDrones.elementAt(var4);
|
|
- if (var5.getName().equals(var3)) {
|
|
- break;
|
|
- }
|
|
- }
|
|
-
|
|
- var5 = (Drone)usableDrones.elementAt(var4);
|
|
- if (!var5.getName().equals(var3) && usableDrones.size() < 5) {
|
|
- return new HoloDrone(var0, var1);
|
|
+ if (var4.equals(var3)) {
|
|
+ this.avatarHeightChangedTo(189.0F);
|
|
} else {
|
|
- usableDrones.removeElementAt(var4);
|
|
- var5.attachToServer(var1.getLongID(var0), var1);
|
|
- return var5;
|
|
- }
|
|
- } else {
|
|
- return new HoloDrone(var0, var1);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Drone() {
|
|
- }
|
|
-
|
|
- public boolean handle(MouseDownEvent var1) {
|
|
- if (this._server != null && (var1.key & 1) == 1) {
|
|
- FriendsListPart.droneClick(this, var1);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public float animate(String var1) {
|
|
- if (var1.equalsIgnoreCase("_hdb")) {
|
|
- new Drone.BounceNametag();
|
|
- }
|
|
-
|
|
- return 0.0F;
|
|
- }
|
|
-
|
|
- public Vector getAnimationList() {
|
|
- return new Vector();
|
|
- }
|
|
-
|
|
- public void muteStateChanged() {
|
|
- this.setAvatarNow(this.getCurrentURL());
|
|
- }
|
|
-
|
|
- public boolean shouldBeMuted() {
|
|
- return MuteListPart.isMuted(this._server, this.getLongID());
|
|
- }
|
|
-
|
|
- private World getOwnerWorld() {
|
|
- WObject var1 = (WObject)this.getOwner();
|
|
- Room var2 = var1 == null ? null : var1.getRoom();
|
|
- World var3 = var2 == null ? null : var2.getWorld();
|
|
- return var3;
|
|
- }
|
|
-
|
|
- public boolean shouldBeForcedHuman() {
|
|
- World var1 = this.getOwnerWorld();
|
|
- return var1 != null && var1.getForceHuman();
|
|
- }
|
|
-
|
|
- public URL getCurrentURL() {
|
|
- return this instanceof PosableDrone ? ((PosableDrone)this).getPosableShapeURL() : this.getSourceURL();
|
|
- }
|
|
-
|
|
- public Drone setAvatarNow(URL var1) {
|
|
- if (var1 == null) {
|
|
- return this;
|
|
- } else {
|
|
- if (this.shouldBeForcedHuman()) {
|
|
- var1 = PosableShape.getHuman(var1);
|
|
- if (Console.getActive() != null) {
|
|
- Console.getActive().pendingPilot = var1.toString();
|
|
- }
|
|
- }
|
|
-
|
|
- var1 = PosableShape.getPermitted(var1, this.getWorld());
|
|
- boolean var2 = this.shouldBeMuted();
|
|
- if (var1.equals(this.getCurrentURL()) && var2 == (this instanceof MutedDrone)) {
|
|
- return this;
|
|
- } else if (!var1.endsWith(".rwx") && !var1.endsWith(".rwg") && !var1.endsWith(".mov")) {
|
|
- String var7 = var1.getInternal();
|
|
- if (var7.endsWith(".pilot")) {
|
|
- var7 = var7.substring(0, var7.length() - 6) + ".drone";
|
|
- } else if (!var7.endsWith(".drone")) {
|
|
- var7 = var7 + ".drone";
|
|
+ this.makeTag(false);
|
|
}
|
|
|
|
- var1 = URL.make(var7);
|
|
- if (var1.equals(this.getSourceURL())) {
|
|
- return this;
|
|
+ Main.register(new Drone$MakeSleepBox(this));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private static void flushUnusedDrones() {
|
|
+ synchronized(usableDrones) {
|
|
+ int var1 = Std.getFastTime();
|
|
+ int var2 = usableDrones.size();
|
|
+
|
|
+ while(true) {
|
|
+ --var2;
|
|
+ if (var2 < 0) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ Drone var3 = (Drone)usableDrones.elementAt(var2);
|
|
+ if (var1 > var3.lastUsed + 2000) {
|
|
+ usableDrones.removeElementAt(var2);
|
|
+ var3.discard();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isEmployeeAccount(String var0) {
|
|
+ if (employeeHash == null) {
|
|
+ employeeHash = new Hashtable();
|
|
+
|
|
+ for(int var1 = 0; var1 < employeeAccounts.length; ++var1) {
|
|
+ employeeHash.put(employeeAccounts[var1], employeeAccounts[var1]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return employeeHash.get(var0) != null;
|
|
+ }
|
|
+
|
|
+ public void makeTag(boolean var1) {
|
|
+ this.tagHeight = 195.0F;
|
|
+ if (this.tag != null) {
|
|
+ this.tagHeight = this.tag.getZ();
|
|
+ this.tag.detach();
|
|
+ this.tag = null;
|
|
+ }
|
|
+
|
|
+ if (this.tagbg != null) {
|
|
+ this.tagbg.detach();
|
|
+ this.tagbg = null;
|
|
+ }
|
|
+
|
|
+ if ((this._server != null || var1) && !(this instanceof MutedDrone) && showNametags) {
|
|
+ String var2 = this.getLongID();
|
|
+ String var3 = FilthFilter.get().filterName(var2);
|
|
+ if (var3 != null && !var3.equals("")) {
|
|
+ Texture[] var4 = new Texture[1];
|
|
+ boolean isHost = var3.toLowerCase().startsWith(Console.message("host")) || var3.toLowerCase().startsWith("host");
|
|
+ if (isHost) {
|
|
+ var3 = Console.message("host-upper") + var3.substring(4);
|
|
+ }
|
|
+
|
|
+ boolean isGuest = var3.toLowerCase().startsWith(Console.message("guest-")) || var3.toLowerCase().startsWith("guest-");
|
|
+ if (isGuest) {
|
|
+ var3 = Console.message("guest-upper") + var3.substring(5);
|
|
+ }
|
|
+
|
|
+ boolean colorfulMod = IniFile.gamma().getIniInt("ColorfulTags", 0) == 1;
|
|
+ boolean randomizeTag = false, underline = false;
|
|
+ boolean transparent = IniFile.modColorfulTags().getIniInt("Transparent", 0) == 1;
|
|
+ boolean isTar = TarListPart.isTarred(_server, var3);
|
|
+ Color userTextColor, employeeTextColor, hostTextColor, guestTextColor, tarTextColor;
|
|
+ Color userTagColor, employeeTagColor, hostTagColor, guestTagColor, tarTagColor;
|
|
+ try {
|
|
+ if (colorfulMod) {
|
|
+ randomizeTag = IniFile.modColorfulTags().getIniInt("RandomizeColors", 0) == 1;
|
|
+ underline = IniFile.modColorfulTags().getIniInt("UnderlineStaff", 1) == 1;
|
|
+
|
|
+ /*
|
|
+ * Color Parsing
|
|
+ *
|
|
+ * This is setup like this so we don't have 3 values for each tag type. Keeps the INI clean.
|
|
+ * If the value isn't valid, given we are parsing a string into 3 ints, we should just use the default.
|
|
+ */
|
|
+
|
|
+ userTagColor = parseColor(IniFile.modColorfulTags().getIniString("UserTagColor", "192,192,192"));
|
|
+ userTextColor = parseColor(IniFile.modColorfulTags().getIniString("UserTextColor", "0,0,0"));
|
|
+
|
|
+ employeeTagColor = parseColor(IniFile.modColorfulTags().getIniString("EmployeeTagColor", "0,255,255"));
|
|
+ employeeTextColor = parseColor(IniFile.modColorfulTags().getIniString("EmployeeTextColor", "0,0,0"));
|
|
+
|
|
+ hostTagColor = parseColor(IniFile.modColorfulTags().getIniString("HostTagColor", "255,255,0"));
|
|
+ hostTextColor = parseColor(IniFile.modColorfulTags().getIniString("HostTextColor", "0,0,0"));
|
|
+
|
|
+ guestTagColor = parseColor(IniFile.modColorfulTags().getIniString("GuestTagColor", "255,192,203"));
|
|
+ guestTextColor = parseColor(IniFile.modColorfulTags().getIniString("GuestTextColor", "0,0,0"));
|
|
+
|
|
+ tarTagColor = parseColor(IniFile.modColorfulTags().getIniString("TarTagColor", "192,192,192"));
|
|
+ tarTextColor = parseColor(IniFile.modColorfulTags().getIniString("TarTextColor", "0,0,0"));
|
|
+ } else {
|
|
+ throw new Exception();
|
|
+ }
|
|
+ } catch (Exception e1) {
|
|
+ userTagColor = new Color(192,192,192);
|
|
+ userTextColor = new Color(0,0,0);
|
|
+ employeeTagColor = new Color(0,255,255);
|
|
+ employeeTextColor = new Color(0,0,0);
|
|
+ hostTagColor = new Color(255,255,0);
|
|
+ hostTextColor = new Color(0,0,0);
|
|
+ guestTagColor = new Color(255,192,203);
|
|
+ guestTextColor = new Color(0,0,0);
|
|
+ tarTagColor = new Color(192, 192, 192);
|
|
+ tarTextColor = new Color(0,0,0);
|
|
+ }
|
|
+ boolean isEmployee = isEmployeeAccount(var3);
|
|
+ Color curTextColor, curTagColor;
|
|
+ if (isGuest) {
|
|
+ curTagColor = guestTagColor;
|
|
+ curTextColor = guestTextColor;
|
|
+ } else if (isHost) {
|
|
+ curTagColor = hostTagColor;
|
|
+ curTextColor = hostTextColor;
|
|
+ } else if (isEmployee) {
|
|
+ curTagColor = employeeTagColor;
|
|
+ curTextColor = employeeTextColor;
|
|
+ } else if (isTar) {
|
|
+ curTagColor = tarTagColor;
|
|
+ curTextColor = tarTextColor;
|
|
+ } else {
|
|
+ curTagColor = userTagColor;
|
|
+ curTextColor = userTextColor;
|
|
+ }
|
|
+
|
|
+ if (randomizeTag && (!isEmployee && !isGuest && !isHost && !isTar)) {
|
|
+ Random rand = new Random();
|
|
+ Color randomized = new Color(
|
|
+ rand.nextInt((255) + 1),
|
|
+ rand.nextInt((255) + 1),
|
|
+ rand.nextInt((255) + 1)).brighter();
|
|
+ curTextColor = transparent ? randomized : userTextColor;
|
|
+ curTagColor = transparent ? userTagColor : randomized;
|
|
+ }
|
|
+
|
|
+ if (transparent) {
|
|
+ if (isEmployee || isGuest || isHost || isTar) curTextColor = curTagColor;
|
|
+ curTagColor = new Color(254,254,254);
|
|
+ }
|
|
+
|
|
+ boolean isSpecial = (isHost || isGuest || isEmployee);
|
|
+
|
|
+ var4[0] = new StringTexture(var3, Console.message("TagFont"), IniFile.modColorfulTags().getIniInt("Fontsize", 48), curTextColor, curTagColor);
|
|
+ byte var5 = 18;
|
|
+ int var11 = var3.length() * 12;
|
|
+ Hologram var12 = new Hologram((float)var11, (float)var5, var4);
|
|
+ var12.setViewplaneAligned(true);
|
|
+ var12.raise(this.tagHeight);
|
|
+ var12.setScaleDist(300.0F);
|
|
+ this.tag = var12;
|
|
+ this.tag.setVisible(true);
|
|
+ this.tag.setBumpable(false);
|
|
+ this.tag.setLocalShadowed(true);
|
|
+ this.tag.setShadowedLocally(true);
|
|
+ this.add(this.tag);
|
|
+ if (colorfulMod && isSpecial && underline && transparent) {
|
|
+ StringBuffer underscore = new StringBuffer();
|
|
+ for (int i = 0; i < var3.length(); i++) {
|
|
+ underscore.append("_");
|
|
+ }
|
|
+ Texture[] var13 = new Texture[]{new StringTexture(underscore.toString(), Console.message("TagFont"), 48, curTextColor, curTagColor)};
|
|
+ Hologram var14 = new Hologram((float) var11, (float) var5, var13);
|
|
+ var14.setViewplaneAligned(true);
|
|
+ var14.raise(this.tagHeight);
|
|
+ var14.setScaleDist(300.0F);
|
|
+ this.tagbg = var14;
|
|
+ this.tagbg.setVisible(true);
|
|
+ this.tagbg.setBumpable(false);
|
|
+ this.tagbg.setLocalShadowed(false);
|
|
+ this.tagbg.setShadowedLocally(true);
|
|
+ this.add(this.tagbg);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private Color parseColor(String tag) {
|
|
+ String[] spl = tag.split(",");
|
|
+ return new Color(Integer.parseInt(spl[0]), Integer.parseInt(spl[1]), Integer.parseInt(spl[2]));
|
|
+ }
|
|
+
|
|
+ protected void avatarHeightChangedTo(float var1) {
|
|
+ if (this.tag != null) {
|
|
+ this.tag.raise(var1 + 1.0F + 5.0F - this.tag.getZ());
|
|
+ }
|
|
+
|
|
+ if (this.tagbg != null) {
|
|
+ this.tagbg.raise(var1 + 1.0F + 5.0F - this.tagbg.getZ());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void detachFromServer(boolean var1) {
|
|
+ Debug.dAssert(Main.isMainThread());
|
|
+ if (this._server != null) {
|
|
+ this._server.delObject(new ObjID(this.getLongID()));
|
|
+ this._server.decRefCnt(this);
|
|
+ this._server = null;
|
|
+ }
|
|
+
|
|
+ if (var1) {
|
|
+ this.lastUsed = Std.getFastTime();
|
|
+ synchronized(usableDrones) {
|
|
+ usableDrones.addElement(this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static Drone make(ObjID var0, WorldServer var1) {
|
|
+ synchronized(usableDrones) {
|
|
+ if (!usableDrones.isEmpty() && var0 != null && var1 != null) {
|
|
+ String var3 = "!" + var1.getLongID(var0);
|
|
+
|
|
+ int var4;
|
|
+ Drone var5;
|
|
+ for(var4 = usableDrones.size() - 1; var4 > 0; --var4) {
|
|
+ var5 = (Drone)usableDrones.elementAt(var4);
|
|
+ if (var5.getName().equals(var3)) {
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var5 = (Drone)usableDrones.elementAt(var4);
|
|
+ if (!var5.getName().equals(var3) && usableDrones.size() < 5) {
|
|
+ return new HoloDrone(var0, var1);
|
|
+ } else {
|
|
+ usableDrones.removeElementAt(var4);
|
|
+ var5.attachToServer(var1.getLongID(var0), var1);
|
|
+ return var5;
|
|
+ }
|
|
} else {
|
|
- new WobLoader(var1, this);
|
|
- return this;
|
|
+ return new HoloDrone(var0, var1);
|
|
}
|
|
- } else {
|
|
- WObject var3 = (WObject)this.getOwner();
|
|
- if (var3 == null) {
|
|
- return this;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Drone() {
|
|
+ }
|
|
+
|
|
+ public boolean handle(MouseDownEvent var1) {
|
|
+ if (this._server != null && (var1.key & 1) == 1) {
|
|
+ FriendsListPart.droneClick(this, var1);
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public float animate(String var1) {
|
|
+ if (var1.equalsIgnoreCase("_hdb")) {
|
|
+ new Drone$BounceNametag(this);
|
|
+ }
|
|
+
|
|
+ return 0.0F;
|
|
+ }
|
|
+
|
|
+ public Vector getAnimationList() {
|
|
+ return new Vector();
|
|
+ }
|
|
+
|
|
+ public void muteStateChanged() {
|
|
+ this.setAvatarNow(this.getCurrentURL());
|
|
+ }
|
|
+
|
|
+ public void tarStateChanged() {
|
|
+ this.setAvatarNow(this.getCurrentURL());
|
|
+ }
|
|
+
|
|
+ public void avtStateChanged() {
|
|
+ this.setAvatarNow(URL.make("avatar:holden.mov"));
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeMuted() {
|
|
+ return MuteListPart.isMuted(this._server, this.getLongID());
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeTarred() {
|
|
+ return TarListPart.isTarred(this._server, this.getLongID());
|
|
+ }
|
|
+
|
|
+ private World getOwnerWorld() {
|
|
+ WObject var1 = (WObject)this.getOwner();
|
|
+ Room var2 = var1 == null ? null : var1.getRoom();
|
|
+ World var3 = var2 == null ? null : var2.getWorld();
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeForcedHuman() {
|
|
+ return (this.getOwnerWorld() != null && this.getOwnerWorld().getForceHuman());
|
|
+ }
|
|
+
|
|
+ public URL getCurrentURL() {
|
|
+ return this instanceof PosableDrone ? ((PosableDrone)this).getPosableShapeURL() : this.getSourceURL();
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (var1 == null) {
|
|
+ return this;
|
|
+ } else {
|
|
+ if (this.shouldBeForcedHuman()) {
|
|
+ var1 = PosableShape.getHuman(var1);
|
|
+ if (Console.getActive() != null) {
|
|
+ Console.getActive().pendingPilot = var1.toString();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var1 = PosableShape.getPermitted(var1, this.getWorld());
|
|
+ boolean var2 = this.shouldBeMuted();
|
|
+ boolean var12 = this.shouldBeTarred();
|
|
+ if (var1.equals(this.getCurrentURL()) && (var2 == (this instanceof MutedDrone))) {
|
|
+ return this;
|
|
+ } else if (!var1.endsWith(".rwx") && !var1.endsWith(".rwg") && !var1.endsWith(".mov")) {
|
|
+ String var7 = var1.getInternal();
|
|
+ if (var7.endsWith(".pilot")) {
|
|
+ var7 = var7.substring(0, var7.length() - 6) + ".drone";
|
|
+ } else if (!var7.endsWith(".drone")) {
|
|
+ var7 = var7 + ".drone";
|
|
+ }
|
|
+
|
|
+ var1 = URL.make(var7);
|
|
+ if (var1.equals(this.getSourceURL())) {
|
|
+ return this;
|
|
+ } else {
|
|
+ new WobLoader(var1, this);
|
|
+ return this;
|
|
+ }
|
|
} else {
|
|
- WorldServer var4 = this._server;
|
|
- String var5 = this.getLongID();
|
|
- this.detachFromServer(false);
|
|
- this.detach();
|
|
- Object var6;
|
|
- if (var2) {
|
|
- var6 = new MutedDrone(new ObjID(var5), var4, var1);
|
|
- } else if (var1.endsWith(".mov")) {
|
|
- var6 = new HoloDrone(new ObjID(var5), var4);
|
|
- ((Drone)var6).setAvatarNow(var1);
|
|
- } else {
|
|
- var6 = new PosableDrone(new ObjID(var5), var4, var1);
|
|
- }
|
|
-
|
|
- if (var4 != null) {
|
|
- ((Drone)var6).transferFrom(this);
|
|
- ((Drone)var6).addTo(var3.getRoom());
|
|
- } else {
|
|
- ((Drone)var6).makeIdentity().post(this);
|
|
- ((Drone)var6).setName(this.getLongID());
|
|
- var3.add((WObject)var6);
|
|
- }
|
|
-
|
|
- return (Drone)var6;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void wobLoaded(WobLoader var1, SuperRoot var2) {
|
|
- if (var2 instanceof Drone) {
|
|
- Debug.dAssert(var2 != null);
|
|
- Drone var3 = (Drone)var2;
|
|
- var3.setName(this.getLongID());
|
|
- if (this._server == null) {
|
|
- WObject var7 = (WObject)this.getOwner();
|
|
- this.detach();
|
|
- var3.makeIdentity().post(this);
|
|
- var7.add(var3);
|
|
- } else {
|
|
- WorldServer var4 = this._server;
|
|
- String var5 = this.getLongID();
|
|
- this.detachFromServer(false);
|
|
- Room var6 = this.getRoom();
|
|
- this.detach();
|
|
- var3.addTo(var6);
|
|
- var3.attachToServer(var5, var4);
|
|
- var3.transferFrom(this);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void addTo(Room var1) {
|
|
- if (var1 != null) {
|
|
- Console var2 = var1.getWorld().getConsole();
|
|
- if (this.console == null) {
|
|
- this.console = var2;
|
|
- if (var2 != null) {
|
|
- Pilot.copySoul(var2.getDroneSoulTemplate(), this);
|
|
- }
|
|
- }
|
|
-
|
|
- var1.add(this);
|
|
- }
|
|
- }
|
|
-
|
|
- public void add(WObject var1) {
|
|
- super.add(var1);
|
|
- }
|
|
-
|
|
- protected void noteUnadding(SuperRoot var1) {
|
|
- if (var1 instanceof WObject) {
|
|
- WObject var2 = (WObject)var1;
|
|
- if (var2.isDynamic()) {
|
|
- var2.setVisible(true);
|
|
- }
|
|
- }
|
|
-
|
|
- super.noteUnadding(var1);
|
|
- }
|
|
-
|
|
- public void setSleepMode(String var1) {
|
|
- if (!var1.equals(this.sleepMode)) {
|
|
- this.sleepMode = var1;
|
|
- Main.register(new Drone.MakeSleepBox());
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleVAR_ASLEEP(String var1) {
|
|
- if (var1 != null && var1.length() > 2 && var1.charAt(0) == 0) {
|
|
- var1 = var1.substring(2);
|
|
- }
|
|
-
|
|
- this.setSleepMode(var1);
|
|
- }
|
|
-
|
|
- public Drone handleVAR_BITMAP(String var1) {
|
|
- if (var1.equals("")) {
|
|
- return this;
|
|
- } else {
|
|
- BlackBox.getInstance().submitEvent(new BBDroneBitmapCommand(this.getName(), var1));
|
|
- if (var1.charAt(0) == 0) {
|
|
+ WObject var3 = (WObject)this.getOwner();
|
|
+ if (var3 == null) {
|
|
+ return this;
|
|
+ } else {
|
|
+ WorldServer var4 = this._server;
|
|
+ String var5 = this.getLongID();
|
|
+ this.detachFromServer(false);
|
|
+ this.detach();
|
|
+ Drone var6;
|
|
+ if (var2) {
|
|
+ var6 = new MutedDrone(new ObjID(var5), var4, var1);
|
|
+ } else if (var12) {
|
|
+ var6 = new TarredDrone(new ObjID(var5), var4, var1);
|
|
+ } else if (var1.endsWith(".mov")) {
|
|
+ var6 = new HoloDrone(new ObjID(var5), var4);
|
|
+ var6.setAvatarNow(var1);
|
|
+ } else {
|
|
+ if (IniFile.gamma().getIniInt("AllowAvatarRWX", 1) == 0 && var1.endsWith(".rwx")) {
|
|
+ var6 = new HoloDrone(new ObjID(var5), var4);
|
|
+ } else {
|
|
+ var6 = new PosableDrone(new ObjID(var5), var4, var1);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ if (var4 != null) {
|
|
+ var6.transferFrom(this);
|
|
+ var6.addTo(var3.getRoom());
|
|
+ } else {
|
|
+ var6.makeIdentity().post(this);
|
|
+ var6.setName(this.getLongID());
|
|
+ var3.add(var6);
|
|
+ }
|
|
+
|
|
+ return var6;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void wobLoaded(WobLoader var1, SuperRoot var2) {
|
|
+ if (var2 instanceof Drone) {
|
|
+ Debug.dAssert(var2 != null);
|
|
+ Drone var3 = (Drone)var2;
|
|
+ var3.setName(this.getLongID());
|
|
+ if (this._server == null) {
|
|
+ WObject var7 = (WObject)this.getOwner();
|
|
+ this.detach();
|
|
+ var3.makeIdentity().post(this);
|
|
+ var7.add(var3);
|
|
+ } else {
|
|
+ WorldServer var4 = this._server;
|
|
+ String var5 = this.getLongID();
|
|
+ this.detachFromServer(false);
|
|
+ Room var6 = this.getRoom();
|
|
+ this.detach();
|
|
+ var3.addTo(var6);
|
|
+ var3.attachToServer(var5, var4);
|
|
+ var3.transferFrom(this);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void addTo(Room var1) {
|
|
+ if (var1 != null) {
|
|
+ Console var2 = var1.getWorld().getConsole();
|
|
+ if (this.console == null) {
|
|
+ this.console = var2;
|
|
+ if (var2 != null) {
|
|
+ Pilot.copySoul(var2.getDroneSoulTemplate(), this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var1.add(this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void add(WObject var1) {
|
|
+ super.add(var1);
|
|
+ }
|
|
+
|
|
+ protected void noteUnadding(SuperRoot var1) {
|
|
+ if (var1 instanceof WObject) {
|
|
+ WObject var2 = (WObject)var1;
|
|
+ if (var2.isDynamic()) {
|
|
+ var2.setVisible(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.noteUnadding(var1);
|
|
+ }
|
|
+
|
|
+ public void setSleepMode(String var1) {
|
|
+ if (!var1.equals(this.sleepMode)) {
|
|
+ this.sleepMode = var1;
|
|
+ Main.register(new Drone$MakeSleepBox(this));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleVAR_ASLEEP(String var1) {
|
|
+ if (var1 != null && var1.length() > 2 && var1.charAt(0) == 0) {
|
|
var1 = var1.substring(2);
|
|
- }
|
|
+ }
|
|
+
|
|
+ this.setSleepMode(var1);
|
|
+ }
|
|
|
|
- try {
|
|
- return this.setAvatarNow(new URL(URL.getAvatar(), var1));
|
|
- } catch (MalformedURLException var3) {
|
|
- Console.println(Console.message("Invalid-av") + var1);
|
|
+ public Drone handleVAR_BITMAP(String var1) {
|
|
+ if (var1.equals("")) {
|
|
return this;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Point3Temp getVelocity() {
|
|
- return Point3Temp.make((float)this._vel_x, (float)this._vel_y, (float)this._vel_z);
|
|
- }
|
|
-
|
|
- public int getYawRate() {
|
|
- return this._vel_yaw;
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent var1) {
|
|
- if (this._server == null) {
|
|
- return true;
|
|
- } else {
|
|
- int var2 = var1.time;
|
|
- this.interpolate(var2, this._server.getUpdateTime(), this);
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void interpolate(int var1, int var2, Transform var3) {
|
|
- if (this.inited) {
|
|
- if (var1 - this._last_PosTime > var2) {
|
|
- this._last_PosTime = var1;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = this._last_z - this._z;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
- Debug.dAssert(this._vel_yaw >= 0);
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
- }
|
|
-
|
|
- double var4 = (double)(var1 - this._last_FrameTime) / (double)var2;
|
|
- if (var1 - this._last_FrameTime > var2) {
|
|
- var4 = 0.0D;
|
|
- }
|
|
-
|
|
- this._x += (int)(var4 * (double)this._vel_x);
|
|
- this._y += (int)(var4 * (double)this._vel_y);
|
|
- this._z += (int)(var4 * (double)this._vel_z);
|
|
- this._yaw += (int)(var4 * (double)this._vel_yaw) % 360;
|
|
- var3.makeIdentity().moveBy((float)this._x, (float)this._y, (float)this._z).yaw((float)this._yaw);
|
|
- this._last_FrameTime = var1;
|
|
- }
|
|
- }
|
|
-
|
|
- public void reset(short var1, short var2, short var3, short var4) {
|
|
- this._x = var1;
|
|
- this._y = var2;
|
|
- this._z = var3;
|
|
- this._yaw = var4;
|
|
- this._vel_x = this._vel_y = this._vel_z = 0;
|
|
- this._vel_yaw = 0;
|
|
- this._last_x = this._x;
|
|
- this._last_y = this._y;
|
|
- this._last_z = this._z;
|
|
- this._last_yaw = this._yaw;
|
|
- this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- protected void transferFrom(Drone var1) {
|
|
- this.makeIdentity().post(var1);
|
|
- this._x = var1._x;
|
|
- this._y = var1._y;
|
|
- this._z = var1._z;
|
|
- this._yaw = var1._yaw;
|
|
- this._vel_x = var1._vel_x;
|
|
- this._vel_y = var1._vel_y;
|
|
- this._vel_z = var1._vel_z;
|
|
- this._vel_yaw = var1._vel_yaw;
|
|
- this._last_x = var1._last_x;
|
|
- this._last_y = var1._last_y;
|
|
- this._last_z = var1._last_z;
|
|
- this._last_yaw = var1._last_yaw;
|
|
- this._last_PosTime = var1._last_PosTime;
|
|
- this._last_FrameTime = var1._last_FrameTime;
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void appear(Room var1, short var2, short var3, short var4, short var5) {
|
|
- Debug.dAssert(var1 != null);
|
|
- BlackBox.getInstance().submitEvent(new BBAppearDroneCommand(var1.toString(), this.getName(), var2, var3, var4, var5));
|
|
- if (this.getRoom() != var1) {
|
|
- this.detach();
|
|
- var1.add(this);
|
|
- }
|
|
-
|
|
- this.makeIdentity().moveBy((float)var2, (float)var3, (float)var4).yaw((float)var5);
|
|
- this._x = var2;
|
|
- this._y = var3;
|
|
- this._z = var4;
|
|
- this._yaw = var5;
|
|
- this._vel_x = this._vel_y = this._vel_z = 0;
|
|
- this._vel_yaw = 0;
|
|
- this._last_x = var2;
|
|
- this._last_y = var3;
|
|
- this._last_z = var4;
|
|
- this._last_yaw = var5;
|
|
- this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
- URL var6 = this.getCurrentURL();
|
|
- if (var6 != null) {
|
|
- this.setAvatarNow(var6);
|
|
- }
|
|
-
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void disappear() {
|
|
- BlackBox.getInstance().submitEvent(new BBDisappearDroneCommand(this.getName()));
|
|
- this.detachFromServer(true);
|
|
- this.detach();
|
|
- }
|
|
-
|
|
- public void longLoc(short var1, short var2, short var3, short var4) {
|
|
- if (!(this.getOwner() instanceof Pilot)) {
|
|
- BlackBox.getInstance().submitEvent(new BBMoveDroneCommand(this.getName(), var1, var2, var3, var4));
|
|
- }
|
|
-
|
|
- this._last_x = var1;
|
|
- this._last_y = var2;
|
|
- this._last_z = var3;
|
|
- this._last_yaw = var4;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = this._last_z - this._z;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
- Debug.dAssert(this._vel_yaw >= 0);
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
-
|
|
- this._last_PosTime = Std.getRealTime();
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void property(OldPropertyList var1) {
|
|
- int var3 = var1.size();
|
|
-
|
|
- for(int var4 = 0; var4 < var3; ++var4) {
|
|
- netProperty var2 = var1.elementAt(var4);
|
|
- switch(var2.property()) {
|
|
- case 5:
|
|
- this.handleVAR_BITMAP(var2.value());
|
|
- break;
|
|
- case 23:
|
|
- this.handleVAR_ASLEEP(var2.value());
|
|
- break;
|
|
- default:
|
|
- byte[] var5 = new byte[var2.value().length()];
|
|
- var2.value().getBytes(0, var2.value().length(), var5, 0);
|
|
- this.getSharer().setFromNetData(var2.property(), var5);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void propertyUpdate(PropertyList var1) {
|
|
- int var3 = var1.size();
|
|
-
|
|
- for(int var4 = 0; var4 < var3; ++var4) {
|
|
- net2Property var2 = var1.elementAt(var4);
|
|
- switch(var2.property()) {
|
|
- case 5:
|
|
- this.handleVAR_BITMAP(var2.value());
|
|
- break;
|
|
- case 23:
|
|
- this.handleVAR_ASLEEP(var2.value());
|
|
- break;
|
|
- default:
|
|
- this.getSharer().setFromNetData(var2.property(), var2.data());
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void roomChange(Room var1, short var2, short var3, short var4, short var5) {
|
|
- this.detach();
|
|
- if (var1 != null) {
|
|
- this.appear(var1, var2, var3, var4, var5);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void shortLoc(byte var1, byte var2, byte var3) {
|
|
- if (!(this.getOwner() instanceof Pilot)) {
|
|
- BlackBox.getInstance().submitEvent(new BBDroneDeltaPosCommand(this.getName(), var1, var2, var3));
|
|
- }
|
|
-
|
|
- this._last_x += var1;
|
|
- this._last_y += var2;
|
|
- this._last_yaw += var3;
|
|
- this._last_yaw %= 360;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = 0;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
- Debug.dAssert(this._vel_yaw >= 0);
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
-
|
|
- this._last_PosTime = Std.getRealTime();
|
|
- }
|
|
-
|
|
- public void teleport(WorldServer var1, byte var2, byte var3, Room var4, short var5, short var6, short var7, short var8) {
|
|
- Debug.dAssert(var1.getObject(new ObjID(this.getLongID())) == this);
|
|
- Room var9 = this.getRoom();
|
|
- switch(var2) {
|
|
- default:
|
|
- if (var9 != null) {
|
|
- Debug.dAssert(var9 != null);
|
|
- this.detach();
|
|
- }
|
|
- case 0:
|
|
- switch(var3) {
|
|
- case 0:
|
|
- this.detachFromServer(true);
|
|
+ } else {
|
|
+ BlackBox.getInstance().submitEvent(new BBDroneBitmapCommand(this.getName(), var1));
|
|
+ if (var1.charAt(0) == 0) {
|
|
+ var1 = var1.substring(2);
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ return this.setAvatarNow(new URL(URL.getAvatar(), var1));
|
|
+ } catch (MalformedURLException var3) {
|
|
+ Console.println(Console.message("Invalid-av") + var1);
|
|
+ return this;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Point3Temp getVelocity() {
|
|
+ return Point3Temp.make((float)this._vel_x, (float)this._vel_y, (float)this._vel_z);
|
|
+ }
|
|
+
|
|
+ public int getYawRate() {
|
|
+ return this._vel_yaw;
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ if (this._server == null) {
|
|
+ return true;
|
|
+ } else {
|
|
+ int var2 = var1.time;
|
|
+ this.interpolate(var2, this._server.getUpdateTime(), this);
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void interpolate(int var1, int var2, Transform var3) {
|
|
+ if (this.inited) {
|
|
+ if (var1 - this._last_PosTime > var2) {
|
|
+ this._last_PosTime = var1;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = this._last_z - this._z;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ Debug.dAssert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ double var4 = (double)(var1 - this._last_FrameTime) / (double)var2;
|
|
+ if (var1 - this._last_FrameTime > var2) {
|
|
+ var4 = 0.0D;
|
|
+ }
|
|
+
|
|
+ this._x += (int)(var4 * (double)this._vel_x);
|
|
+ this._y += (int)(var4 * (double)this._vel_y);
|
|
+ this._z += (int)(var4 * (double)this._vel_z);
|
|
+ this._yaw += (int)(var4 * (double)this._vel_yaw) % 360;
|
|
+ var3.makeIdentity().moveBy((float)this._x, (float)this._y, (float)this._z).yaw((float)this._yaw);
|
|
+ this._last_FrameTime = var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void reset(short var1, short var2, short var3, short var4) {
|
|
+ this._x = var1;
|
|
+ this._y = var2;
|
|
+ this._z = var3;
|
|
+ this._yaw = var4;
|
|
+ this._vel_x = this._vel_y = this._vel_z = 0;
|
|
+ this._vel_yaw = 0;
|
|
+ this._last_x = this._x;
|
|
+ this._last_y = this._y;
|
|
+ this._last_z = this._z;
|
|
+ this._last_yaw = this._yaw;
|
|
+ this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ protected void transferFrom(Drone var1) {
|
|
+ this.makeIdentity().post(var1);
|
|
+ this._x = var1._x;
|
|
+ this._y = var1._y;
|
|
+ this._z = var1._z;
|
|
+ this._yaw = var1._yaw;
|
|
+ this._vel_x = var1._vel_x;
|
|
+ this._vel_y = var1._vel_y;
|
|
+ this._vel_z = var1._vel_z;
|
|
+ this._vel_yaw = var1._vel_yaw;
|
|
+ this._last_x = var1._last_x;
|
|
+ this._last_y = var1._last_y;
|
|
+ this._last_z = var1._last_z;
|
|
+ this._last_yaw = var1._last_yaw;
|
|
+ this._last_PosTime = var1._last_PosTime;
|
|
+ this._last_FrameTime = var1._last_FrameTime;
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void appear(Room var1, short var2, short var3, short var4, short var5) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ BlackBox.getInstance().submitEvent(new BBAppearDroneCommand(var1.toString(), this.getName(), var2, var3, var4, var5));
|
|
+ if (this.getRoom() != var1) {
|
|
this.detach();
|
|
- break;
|
|
- default:
|
|
- if (var4 == null) {
|
|
- this.detach();
|
|
- } else {
|
|
- Debug.dAssert(var4 != null);
|
|
- this.appear(var4, var5, var6, var7, var8);
|
|
- }
|
|
- }
|
|
+ var1.add(this);
|
|
+ }
|
|
+
|
|
+ this.makeIdentity().moveBy((float)var2, (float)var3, (float)var4).yaw((float)var5);
|
|
+ this._x = var2;
|
|
+ this._y = var3;
|
|
+ this._z = var4;
|
|
+ this._yaw = var5;
|
|
+ this._vel_x = this._vel_y = this._vel_z = 0;
|
|
+ this._vel_yaw = 0;
|
|
+ this._last_x = var2;
|
|
+ this._last_y = var3;
|
|
+ this._last_z = var4;
|
|
+ this._last_yaw = var5;
|
|
+ this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
+ URL var6 = this.getCurrentURL();
|
|
+ if (var6 != null) {
|
|
+ this.setAvatarNow(var6);
|
|
+ }
|
|
+
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void disappear() {
|
|
+ BlackBox.getInstance().submitEvent(new BBDisappearDroneCommand(this.getName()));
|
|
+ this.detachFromServer(true);
|
|
+ this.detach();
|
|
+ }
|
|
+
|
|
+ public void longLoc(short var1, short var2, short var3, short var4) {
|
|
+ if (!(this.getOwner() instanceof Pilot)) {
|
|
+ BlackBox.getInstance().submitEvent(new BBMoveDroneCommand(this.getName(), var1, var2, var3, var4));
|
|
+ }
|
|
+
|
|
+ this._last_x = var1;
|
|
+ this._last_y = var2;
|
|
+ this._last_z = var3;
|
|
+ this._last_yaw = var4;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = this._last_z - this._z;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ Debug.dAssert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+
|
|
+ this._last_PosTime = Std.getRealTime();
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void property(OldPropertyList var1) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ netProperty var2 = var1.elementAt(var4);
|
|
+ switch(var2.property()) {
|
|
+ case 5:
|
|
+ this.handleVAR_BITMAP(var2.value());
|
|
+ break;
|
|
+ case 23:
|
|
+ this.handleVAR_ASLEEP(var2.value());
|
|
+ break;
|
|
+ default:
|
|
+ byte[] var5 = new byte[var2.value().length()];
|
|
+ var2.value().getBytes(0, var2.value().length(), var5, 0);
|
|
+ this.getSharer().setFromNetData(var2.property(), var5);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void propertyUpdate(PropertyList var1) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ net2Property var2 = var1.elementAt(var4);
|
|
+ switch(var2.property()) {
|
|
+ case 5:
|
|
+ this.handleVAR_BITMAP(var2.value());
|
|
+ break;
|
|
+ case 23:
|
|
+ this.handleVAR_ASLEEP(var2.value());
|
|
+ break;
|
|
+ default:
|
|
+ this.getSharer().setFromNetData(var2.property(), var2.data());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void roomChange(Room var1, short var2, short var3, short var4, short var5) {
|
|
+ this.detach();
|
|
+ if (var1 != null) {
|
|
+ this.appear(var1, var2, var3, var4, var5);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void shortLoc(byte var1, byte var2, byte var3) {
|
|
+ if (!(this.getOwner() instanceof Pilot)) {
|
|
+ BlackBox.getInstance().submitEvent(new BBDroneDeltaPosCommand(this.getName(), var1, var2, var3));
|
|
+ }
|
|
+
|
|
+ this._last_x += var1;
|
|
+ this._last_y += var2;
|
|
+ this._last_yaw += var3;
|
|
+ this._last_yaw %= 360;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = 0;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ Debug.dAssert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+ this._last_PosTime = Std.getRealTime();
|
|
+ }
|
|
+
|
|
+ public void teleport(WorldServer var1, byte var2, byte var3, Room var4, short var5, short var6, short var7, short var8) {
|
|
+ Debug.dAssert(var1.getObject(new ObjID(this.getLongID())) == this);
|
|
+ Room var9 = this.getRoom();
|
|
+ switch(var2) {
|
|
+ default:
|
|
+ if (var9 != null) {
|
|
+ Debug.dAssert(var9 != null);
|
|
+ this.detach();
|
|
+ }
|
|
+ case 0:
|
|
+ switch(var3) {
|
|
+ case 0:
|
|
+ this.detachFromServer(true);
|
|
+ this.detach();
|
|
+ break;
|
|
+ default:
|
|
+ if (var4 == null) {
|
|
+ this.detach();
|
|
+ } else {
|
|
+ Debug.dAssert(var4 != null);
|
|
+ this.appear(var4, var5, var6, var7, var8);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public WorldServer getServer() {
|
|
+ return this._server;
|
|
+ }
|
|
+
|
|
+ public String getLongID() {
|
|
+ String var1 = this.getName();
|
|
+ if (var1.startsWith("!")) {
|
|
+ var1 = var1.substring(1);
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ public void register() {
|
|
+ Debug.dAssert(false);
|
|
+ }
|
|
+
|
|
+ public void galaxyDisconnected() {
|
|
+ Debug.dAssert(false);
|
|
+ }
|
|
+
|
|
+ public void reacquireServer(WorldServer var1) {
|
|
+ Debug.dAssert(false);
|
|
+ }
|
|
+
|
|
+ public void changeChannel(Galaxy var1, String var2, String var3) {
|
|
+ Debug.dAssert(false);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 0, var3, var4);
|
|
+ return var5;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ if (this.console != null) {
|
|
+ System.out.println("Warning: saving drone " + this.getName() + " WITH soul, which won't restore correctly!");
|
|
+ }
|
|
+
|
|
+ var1.saveVersion(0, classCookieInterpolatedDrone);
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreStateDrone(Restorer var1) throws IOException, TooNewException {
|
|
+ var1.restoreVersion(classCookieInterpolatedDrone);
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ Enumeration var2 = this.getContents();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ WObject var3 = (WObject)var2.nextElement();
|
|
+ if (var3 instanceof Hologram) {
|
|
+ Hologram var4 = (Hologram)var3;
|
|
+ if (var4.getMovieName() == null) {
|
|
+ this.tag = var4;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ this.restoreStateDrone(var1);
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static String access$000(Drone var0) {
|
|
+ return var0.sleepMode;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static Shape access$100(Drone var0) {
|
|
+ return var0.sleepBox;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static Shape access$102(Drone var0, Shape var1) {
|
|
+ return var0.sleepBox = var1;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static void access$200() {
|
|
+ flushUnusedDrones();
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static float access$300(Drone var0) {
|
|
+ return var0.tagHeight;
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ Main.register(new Drone$Flusher());
|
|
+ showNametags = IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1;
|
|
+ employeeAccounts = ServerTableManager.instance().getTable("employeeAccounts");
|
|
+ employeeHash = null;
|
|
+ usableDrones = new Vector();
|
|
+ classCookie = new Object();
|
|
+ classCookieInterpolatedDrone = new Object();
|
|
+ }
|
|
+}
|
|
+
|
|
+class Drone$MakeSleepBox implements MainCallback {
|
|
+
|
|
+ private final Drone this$0;
|
|
|
|
- }
|
|
- }
|
|
|
|
- public WorldServer getServer() {
|
|
- return this._server;
|
|
- }
|
|
-
|
|
- public String getLongID() {
|
|
- String var1 = this.getName();
|
|
- if (var1.startsWith("!")) {
|
|
- var1 = var1.substring(1);
|
|
- }
|
|
-
|
|
- return var1;
|
|
- }
|
|
-
|
|
- public void register() {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- public void galaxyDisconnected() {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- public void reacquireServer(WorldServer var1) {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- public void changeChannel(Galaxy var1, String var2, String var3) {
|
|
- Debug.dAssert(false);
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 0, var3, var4);
|
|
- return var5;
|
|
- }
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- if (this.console != null) {
|
|
- System.out.println("Warning: saving drone " + this.getName() + " WITH soul, which won't restore correctly!");
|
|
- }
|
|
-
|
|
- var1.saveVersion(0, classCookieInterpolatedDrone);
|
|
- var1.saveVersion(0, classCookie);
|
|
- super.saveState(var1);
|
|
- }
|
|
-
|
|
- public void restoreStateDrone(Restorer var1) throws IOException, TooNewException {
|
|
- var1.restoreVersion(classCookieInterpolatedDrone);
|
|
- switch(var1.restoreVersion(classCookie)) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- Enumeration var2 = this.getContents();
|
|
-
|
|
- while(var2.hasMoreElements()) {
|
|
- WObject var3 = (WObject)var2.nextElement();
|
|
- if (var3 instanceof Hologram) {
|
|
- Hologram var4 = (Hologram)var3;
|
|
- if (var4.getMovieName() == null) {
|
|
- this.tag = var4;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- this.restoreStateDrone(var1);
|
|
- }
|
|
-
|
|
- static {
|
|
- Main.register(new Drone.Flusher());
|
|
- showNametags = IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1;
|
|
- employeeAccounts = ServerTableManager.instance().getTable("employeeAccounts");
|
|
- employeeHash = null;
|
|
- usableDrones = new Vector();
|
|
- classCookie = new Object();
|
|
- classCookieInterpolatedDrone = new Object();
|
|
- }
|
|
-
|
|
- class BounceNametag implements MainCallback {
|
|
- int start;
|
|
- WObject origTag;
|
|
- WObject origTagbg;
|
|
+ Drone$MakeSleepBox(Drone var1) {
|
|
+ this.this$0 = var1;
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ if(Drone.access$000(this.this$0) != null && Drone.access$000(this.this$0).equals(Console.message("asleep")) && (!(this.this$0 instanceof MutedDrone))) {
|
|
+ if(Drone.access$100(this.this$0) == null) {
|
|
+ Drone.access$102(this.this$0, new Shape());
|
|
+ Drone.access$100(this.this$0).setURL(URL.make("home:idle.rwg"));
|
|
+ Drone.access$100(this.this$0).setBumpable(false);
|
|
+ Drone.access$100(this.this$0).scale(100.0F);
|
|
+ Drone.access$100(this.this$0).spin(0.0F, 1.0F, 1.0F, 180.0F);
|
|
+ Drone.access$100(this.this$0).raise(189.0F);
|
|
+ this.this$0.add(Drone.access$100(this.this$0));
|
|
+ }
|
|
+ } else if(Drone.access$100(this.this$0) != null) {
|
|
+ Drone.access$100(this.this$0).detach();
|
|
+ Drone.access$102(this.this$0, (Shape)null);
|
|
+ }
|
|
|
|
- BounceNametag() {
|
|
- if (Drone.this.tag != null) {
|
|
+ Main.unregister(this);
|
|
+ }
|
|
+}
|
|
+
|
|
+class Drone$Flusher implements MainCallback {
|
|
+
|
|
+ int lastTime;
|
|
+
|
|
+
|
|
+ public void mainCallback() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ if(var1 > this.lastTime + 1000) {
|
|
+ Drone.access$200();
|
|
+ this.lastTime = var1;
|
|
+ }
|
|
+
|
|
+ }
|
|
+}
|
|
+
|
|
+class Drone$BounceNametag implements MainCallback {
|
|
+
|
|
+ int start;
|
|
+ WObject origTag;
|
|
+ WObject origTagbg;
|
|
+ private final Drone this$0;
|
|
+
|
|
+
|
|
+ Drone$BounceNametag(Drone var1) {
|
|
+ this.this$0 = var1;
|
|
+ if(var1.tag != null) {
|
|
this.start = Std.getFastTime();
|
|
- this.origTag = Drone.this.tag;
|
|
- this.origTagbg = Drone.this.tagbg;
|
|
+ this.origTag = var1.tag;
|
|
+ this.origTagbg = var1.tagbg;
|
|
Main.register(this);
|
|
- }
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
|
|
- public void mainCallback() {
|
|
- int var1 = Std.getFastTime();
|
|
- float var2 = Drone.this.tagHeight;
|
|
- if (var1 <= this.start + 6000 && this.origTag == Drone.this.tag && this.origTagbg == Drone.this.tagbg) {
|
|
- if (var1 < this.start + 1500) {
|
|
- var2 = Drone.this.tagHeight + 200.0F * ((float)(var1 - this.start) / 1500.0F);
|
|
+ public void mainCallback() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ float var2 = Drone.access$300(this.this$0);
|
|
+ if(var1 <= this.start + 6000 && this.origTag == this.this$0.tag && this.origTagbg == this.this$0.tagbg) {
|
|
+ if(var1 < this.start + 1500) {
|
|
+ var2 = Drone.access$300(this.this$0) + 200.0F * ((float)(var1 - this.start) / 1500.0F);
|
|
} else {
|
|
- float var3 = (float)(var1 - this.start) / 1500.0F;
|
|
- var2 = (float)(200.0D * Math.pow(1.4140000343322754D, (double)var3) * Math.cos((double)(var3 * 3.14159F)));
|
|
+ float var3 = (float)(var1 - this.start) / 1500.0F;
|
|
+ var2 = (float)(200.0D * Math.pow(1.4140000343322754D, (double)var3) * Math.cos((double)(var3 * 3.14159F)));
|
|
}
|
|
- } else {
|
|
+ } else {
|
|
Main.unregister(this);
|
|
- }
|
|
+ }
|
|
|
|
- this.origTag.setZ(var2);
|
|
- if (this.origTagbg != null) {
|
|
+ this.origTag.setZ(var2);
|
|
+ if(this.origTagbg != null) {
|
|
this.origTagbg.setZ(var2);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- static class Flusher implements MainCallback {
|
|
- int lastTime;
|
|
+ }
|
|
|
|
- public void mainCallback() {
|
|
- int var1 = Std.getFastTime();
|
|
- if (var1 > this.lastTime + 1000) {
|
|
- Drone.flushUnusedDrones();
|
|
- this.lastTime = var1;
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- class MakeSleepBox implements MainCallback {
|
|
- public void mainCallback() {
|
|
- if (Drone.this.sleepMode != null && Drone.this.sleepMode.equals(Console.message("asleep")) && !(Drone.this instanceof MutedDrone)) {
|
|
- if (Drone.this.sleepBox == null) {
|
|
- Drone.this.sleepBox = new Shape();
|
|
- Drone.this.sleepBox.setURL(URL.make("home:idle.rwg"));
|
|
- Drone.this.sleepBox.setBumpable(false);
|
|
- Drone.this.sleepBox.scale(100.0F);
|
|
- Drone.this.sleepBox.spin(0.0F, 1.0F, 1.0F, 180.0F);
|
|
- Drone.this.sleepBox.raise(189.0F);
|
|
- Drone.this.add(Drone.this.sleepBox);
|
|
- }
|
|
- } else if (Drone.this.sleepBox != null) {
|
|
- Drone.this.sleepBox.detach();
|
|
- Drone.this.sleepBox = null;
|
|
- }
|
|
-
|
|
- Main.unregister(this);
|
|
- }
|
|
- }
|
|
-}
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/scape/HandsOffDriver.java b/1904/NET/worlds/scape/HandsOffDriver.java
|
|
--- a/1904/NET/worlds/scape/HandsOffDriver.java 2020-08-06 15:46:18.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/HandsOffDriver.java 2023-12-15 20:54:45.000000000 -0600
|
|
@@ -139,13 +139,14 @@
|
|
}
|
|
|
|
public boolean handle(KeyDownEvent var1) {
|
|
- if (var1.key == '\ue326') {
|
|
+ System.out.println(var1.key);
|
|
+ if (var1.key == '\ua026') {
|
|
this.cameraZooming = -1;
|
|
- } else if (var1.key == '\ue328') {
|
|
+ } else if (var1.key == '\ua028') {
|
|
this.cameraZooming = 1;
|
|
- } else if (var1.key == '\ue325') {
|
|
+ } else if (var1.key == '\ua025') {
|
|
this.cameraPanning = -1;
|
|
- } else if (var1.key == '\ue327') {
|
|
+ } else if (var1.key == '\ua027') {
|
|
this.cameraPanning = 1;
|
|
}
|
|
|
|
@@ -153,9 +154,9 @@
|
|
}
|
|
|
|
public boolean handle(KeyUpEvent var1) {
|
|
- if (var1.key != '\ue326' && var1.key != '\ue328') {
|
|
- if (var1.key != '\ue325' && var1.key != '\ue327') {
|
|
- if (var1.key == '\ue31b') {
|
|
+ if (var1.key != '\ua026' && var1.key != '\ua028') {
|
|
+ if (var1.key != '\ua025' && var1.key != '\ua027') {
|
|
+ if (var1.key == '\ua01b') {
|
|
this.notifyCallbacks(0);
|
|
}
|
|
} else {
|
|
diff -ruN a/1904/NET/worlds/scape/HoloPilot.java b/1904/NET/worlds/scape/HoloPilot.java
|
|
--- a/1904/NET/worlds/scape/HoloPilot.java 2020-08-06 15:46:14.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/HoloPilot.java 2023-12-15 21:20:57.000000000 -0600
|
|
@@ -6,567 +6,568 @@
|
|
import NET.worlds.network.ObjID;
|
|
import NET.worlds.network.URL;
|
|
import NET.worlds.network.WorldServer;
|
|
+
|
|
import java.io.IOException;
|
|
import java.util.Enumeration;
|
|
import java.util.Vector;
|
|
|
|
public class HoloPilot extends Pilot implements AnimatedActionHandler, AnimatedActionCallback {
|
|
- private Camera cam;
|
|
- private SmoothDriver smoothDriver;
|
|
- private boolean cameraIsFree = false;
|
|
- private AnimatedActionHandlerImp handler;
|
|
- private HandsOffDriver hod;
|
|
- String lastName;
|
|
- Transform lastInverse;
|
|
- Point3 lastCamWorldPos;
|
|
- float lastCamRadius;
|
|
- float lastCamYaw;
|
|
- int lastDrawTime;
|
|
- int framesSinceMoved = 0;
|
|
- Room lastCamRoom;
|
|
- Transform defaultTransform = Transform.make();
|
|
- Point3 aimPoint = new Point3(0.0F, 0.0F, 0.0F);
|
|
- float defaultCameraYaw = 0.0F;
|
|
- float defaultCameraRadius = 0.0F;
|
|
- public static final int CAM_MODE_VEHICLE = 99;
|
|
- public static final int CAM_MODE_FIRST_PERSON = 1;
|
|
- public static final int CAM_MODE_LOW_FIRST_PERSON = 2;
|
|
- public static final int CAM_MODE_WAIST = 3;
|
|
- public static final int CAM_MODE_SHOULDER = 4;
|
|
- public static final int CAM_MODE_HEAD = 5;
|
|
- public static final int CAM_MODE_OVERHEAD = 6;
|
|
- public static final int CAM_MODE_BEHIND = 7;
|
|
- public static final int CAM_MODE_WIDESHOT = 8;
|
|
- public static final int CAM_MODE_ORTHOGRAPHIC = 9;
|
|
- public static final int CAM_SPEED_SLOW = 1;
|
|
- public static final int CAM_SPEED_MEDIUM = 2;
|
|
- public static final int CAM_SPEED_FAST = 3;
|
|
- public static final int CAM_SPEED_LOCKED = 4;
|
|
- private boolean substWarned = false;
|
|
- protected Point3 boxLo = new Point3();
|
|
- protected Point3 boxHi = new Point3();
|
|
- protected float stepHeight = 30.0F;
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- public HoloPilot(URL var1) {
|
|
- this.setSourceURL(var1);
|
|
- this.loadInit();
|
|
- }
|
|
-
|
|
- public void setSleepMode(String var1) {
|
|
- Drone var2 = this.getInternalDrone();
|
|
- if (var2 != null) {
|
|
- var2.setSleepMode(var1);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public float animate(String var1) {
|
|
- super.animate(var1);
|
|
- Drone var2 = this.getInternalDrone();
|
|
- return var2 != null ? var2.animate(var1) : 0.0F;
|
|
- }
|
|
-
|
|
- public Vector getAnimationList() {
|
|
- Vector var1 = super.getAnimationList();
|
|
- Drone var2 = this.getInternalDrone();
|
|
- if (var2 == null) {
|
|
- return var1;
|
|
- } else {
|
|
- Vector var3 = (Vector)var2.getAnimationList().clone();
|
|
-
|
|
- for(int var4 = 0; var4 < var1.size(); ++var4) {
|
|
- var3.addElement(var1.elementAt(var4));
|
|
- }
|
|
-
|
|
- return var3;
|
|
- }
|
|
- }
|
|
-
|
|
- public HoloPilot() {
|
|
- }
|
|
-
|
|
- public void loadInit() {
|
|
- this.smoothDriver = new SmoothDriver();
|
|
- this.smoothDriver.setEyeHeight(0.0F);
|
|
- this.cam = new Camera();
|
|
- this.add(this.cam);
|
|
- Drone var1 = Drone.make((ObjID)null, (WorldServer)null);
|
|
- this.add(var1);
|
|
- var1.setAvatarNow(this.getSourceURL());
|
|
- this.addHandler(this.smoothDriver);
|
|
- this.addHandler(new PitchDriver());
|
|
- this.handler = new AnimatedActionHandlerImp();
|
|
- this.setEyeHeight(150.0F);
|
|
- }
|
|
-
|
|
- public void addCallback(AnimatedActionCallback var1) {
|
|
- Debug.dAssert(this.handler != null);
|
|
- this.handler.addCallback(var1);
|
|
- }
|
|
-
|
|
- public void removeCallback(AnimatedActionCallback var1) {
|
|
- Debug.dAssert(this.handler != null);
|
|
- this.handler.removeCallback(var1);
|
|
- }
|
|
-
|
|
- public void notifyCallbacks(int var1) {
|
|
- Debug.dAssert(this.handler != null);
|
|
- this.handler.notifyCallbacks(var1);
|
|
- }
|
|
-
|
|
- public void walkTo(Point2 var1, float var2) {
|
|
- this.walkTo(var1, var2, 80.0F);
|
|
- }
|
|
-
|
|
- public void walkTo(Point2 var1, float var2, float var3) {
|
|
- this.removeHandler(this.smoothDriver);
|
|
- this.hod = new HandsOffDriver();
|
|
- this.hod.setDestPos(var1, var2, var3);
|
|
- this.hod.addCallback(this);
|
|
- this.addHandler(this.hod);
|
|
- }
|
|
-
|
|
- public void removeSmoothDriver() {
|
|
- this.removeHandler(this.smoothDriver);
|
|
- }
|
|
-
|
|
- public void returnSmoothDriver() {
|
|
- this.addHandler(this.smoothDriver);
|
|
- }
|
|
-
|
|
- public SmoothDriver getSmoothDriver() {
|
|
- return this.smoothDriver;
|
|
- }
|
|
-
|
|
- public void removeHandsOffDriver() {
|
|
- if (this.hod != null) {
|
|
- this.removeHandler(this.hod);
|
|
- this.hod = null;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void returnHandsOffDriver() {
|
|
- if (this.hod == null) {
|
|
- this.hod = new HandsOffDriver();
|
|
- this.addHandler(this.hod);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void motionComplete(int var1) {
|
|
- this.removeHandler(this.hod);
|
|
- this.hod = null;
|
|
- this.addHandler(this.smoothDriver);
|
|
- this.notifyCallbacks(var1);
|
|
- }
|
|
-
|
|
- public void updateName() {
|
|
- String var1 = this.getLongID();
|
|
- if (var1 != null) {
|
|
- if (this.lastName == null || !this.lastName.equals(var1)) {
|
|
- this.lastName = var1;
|
|
- Drone var2 = this.getInternalDrone();
|
|
- if (var2 != null) {
|
|
- var2.setName(var1);
|
|
+ private Camera cam;
|
|
+ private SmoothDriver smoothDriver;
|
|
+ private boolean cameraIsFree = false;
|
|
+ private AnimatedActionHandlerImp handler;
|
|
+ private HandsOffDriver hod;
|
|
+ String lastName;
|
|
+ Transform lastInverse;
|
|
+ Point3 lastCamWorldPos;
|
|
+ float lastCamRadius;
|
|
+ float lastCamYaw;
|
|
+ int lastDrawTime;
|
|
+ int framesSinceMoved = 0;
|
|
+ Room lastCamRoom;
|
|
+ Transform defaultTransform = Transform.make();
|
|
+ Point3 aimPoint = new Point3(0.0F, 0.0F, 0.0F);
|
|
+ float defaultCameraYaw = 0.0F;
|
|
+ float defaultCameraRadius = 0.0F;
|
|
+ public static final int CAM_MODE_VEHICLE = 99;
|
|
+ public static final int CAM_MODE_FIRST_PERSON = 1;
|
|
+ public static final int CAM_MODE_LOW_FIRST_PERSON = 2;
|
|
+ public static final int CAM_MODE_WAIST = 3;
|
|
+ public static final int CAM_MODE_SHOULDER = 4;
|
|
+ public static final int CAM_MODE_HEAD = 5;
|
|
+ public static final int CAM_MODE_OVERHEAD = 6;
|
|
+ public static final int CAM_MODE_BEHIND = 7;
|
|
+ public static final int CAM_MODE_WIDESHOT = 8;
|
|
+ public static final int CAM_MODE_ORTHOGRAPHIC = 9;
|
|
+ public static final int CAM_SPEED_SLOW = 1;
|
|
+ public static final int CAM_SPEED_MEDIUM = 2;
|
|
+ public static final int CAM_SPEED_FAST = 3;
|
|
+ public static final int CAM_SPEED_LOCKED = 4;
|
|
+ private boolean substWarned = false;
|
|
+ protected Point3 boxLo = new Point3();
|
|
+ protected Point3 boxHi = new Point3();
|
|
+ protected float stepHeight = 30.0F;
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public HoloPilot(URL var1) {
|
|
+ this.setSourceURL(var1);
|
|
+ this.loadInit();
|
|
+ }
|
|
+
|
|
+ public void setSleepMode(String var1) {
|
|
+ Drone var2 = this.getInternalDrone();
|
|
+ if (var2 != null) {
|
|
+ var2.setSleepMode(var1);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public float animate(String var1) {
|
|
+ super.animate(var1);
|
|
+ Drone var2 = this.getInternalDrone();
|
|
+ return var2 != null ? var2.animate(var1) : 0.0F;
|
|
+ }
|
|
+
|
|
+ public Vector getAnimationList() {
|
|
+ Vector var1 = super.getAnimationList();
|
|
+ Drone var2 = this.getInternalDrone();
|
|
+ if (var2 == null) {
|
|
+ return var1;
|
|
+ } else {
|
|
+ Vector var3 = (Vector)var2.getAnimationList().clone();
|
|
+
|
|
+ for(int var4 = 0; var4 < var1.size(); ++var4) {
|
|
+ var3.addElement(var1.elementAt(var4));
|
|
}
|
|
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Drone getInternalDrone() {
|
|
- Enumeration var1 = this.getContents();
|
|
-
|
|
- Object var2;
|
|
- do {
|
|
- if (!var1.hasMoreElements()) {
|
|
- return null;
|
|
- }
|
|
-
|
|
- var2 = var1.nextElement();
|
|
- } while(!(var2 instanceof Drone));
|
|
-
|
|
- return (Drone)var2;
|
|
- }
|
|
-
|
|
- private void setLastInverse(Transform var1) {
|
|
- if (this.lastInverse != null) {
|
|
- this.lastInverse.recycle();
|
|
- }
|
|
-
|
|
- this.lastInverse = var1;
|
|
- }
|
|
-
|
|
- protected void transferFrom(Pilot var1) {
|
|
- if (var1 != null && var1 instanceof HoloPilot) {
|
|
- HoloPilot var2 = (HoloPilot)var1;
|
|
- this.setOutsideCameraMode(var2.getOutsideCameraMode(), var2.getOutsideCameraSpeed());
|
|
- super.transferFrom(var1);
|
|
- if (var2.lastCamWorldPos != null) {
|
|
- this.setLastInverse(var2.lastInverse.getTransform());
|
|
- this.lastCamWorldPos = new Point3(var2.lastCamWorldPos);
|
|
- }
|
|
-
|
|
- this.lastCamRoom = var2.lastCamRoom;
|
|
- this.lastCamRadius = var2.lastCamRadius;
|
|
- this.lastCamYaw = var2.lastCamYaw;
|
|
- this.lastDrawTime = var2.lastDrawTime;
|
|
- this.framesSinceMoved = this.framesSinceMoved;
|
|
- } else {
|
|
- super.transferFrom(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- public void aboutToDraw() {
|
|
- if (this.cameraMode != 1 && this.cameraMode != 2) {
|
|
- if (!this.cameraIsFree) {
|
|
- Transform var1 = this.getObjectToWorldMatrix();
|
|
- int var2 = Std.getRealTime();
|
|
- Room var5 = this.getRoom();
|
|
- Transform var6 = var1.getTransform().invert();
|
|
- float var3;
|
|
- float var4;
|
|
- float var8;
|
|
- if (this.lastCamWorldPos != null && this.cameraSpeed != 4 && this.cameraMode != 99) {
|
|
- if (var5 != this.lastCamRoom) {
|
|
- var4 = this.lastCamYaw;
|
|
- var3 = this.lastCamRadius;
|
|
- } else {
|
|
- Point3 var7 = this.lastCamWorldPos;
|
|
- var7.times(var6);
|
|
- var3 = (float)Math.sqrt((double)(var7.x * var7.x + var7.y * var7.y));
|
|
- if (var3 > this.defaultCameraRadius + 10.0F) {
|
|
- var3 = this.defaultCameraRadius + 10.0F;
|
|
- }
|
|
-
|
|
- if (this.cameraSpeed == 3) {
|
|
- var3 = this.defaultCameraRadius;
|
|
- }
|
|
-
|
|
- var4 = (float)(Math.atan2((double)var7.y, (double)var7.x) * 180.0D / 3.141592653589793D);
|
|
- this.lastInverse.post(var1);
|
|
- var8 = this.lastInverse.getYaw();
|
|
- if (var8 > 180.0F) {
|
|
- var8 -= 360.0F;
|
|
- }
|
|
-
|
|
- Point3Temp var9 = this.lastInverse.getPosition();
|
|
- if (this.cameraSpeed == 1 && (Math.abs(var8) >= 1.0F || var9.x * var9.x + var9.y * var9.y >= 1.0F)) {
|
|
- this.framesSinceMoved = 0;
|
|
- } else if (++this.framesSinceMoved > 2) {
|
|
- float var10 = this.defaultCameraYaw - var4;
|
|
- if (var10 < -180.0F) {
|
|
- var10 += 360.0F;
|
|
- } else if (var10 > 180.0F) {
|
|
- var10 -= 360.0F;
|
|
- }
|
|
-
|
|
- float var11 = this.defaultCameraRadius - var3;
|
|
- float var12 = (float)(var2 - this.lastDrawTime);
|
|
- float var13 = 0.04F;
|
|
- float var14 = 0.03F;
|
|
- if (Math.abs(var10) > 1500.0F * var13) {
|
|
- var13 *= 1.5F;
|
|
- }
|
|
-
|
|
- var13 *= var12;
|
|
- if (var10 < -var13) {
|
|
- var10 = -var13;
|
|
- } else if (var10 > var13) {
|
|
- var10 = var13;
|
|
- }
|
|
-
|
|
- var14 *= var12;
|
|
- if (var11 < -var14) {
|
|
- var11 = -var14;
|
|
- } else if (var11 > var14) {
|
|
- var11 = var14;
|
|
- }
|
|
-
|
|
- var4 += var10;
|
|
- var3 += var11;
|
|
- if (this.cameraSpeed == 3) {
|
|
- if (var4 > this.defaultCameraYaw + 40.0F) {
|
|
- var4 = this.defaultCameraYaw + 40.0F;
|
|
- } else if (var4 < this.defaultCameraYaw - 40.0F) {
|
|
- var4 = this.defaultCameraYaw - 40.0F;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
- } else {
|
|
- this.lastCamWorldPos = new Point3();
|
|
- var3 = this.defaultCameraRadius;
|
|
- var4 = this.defaultCameraYaw;
|
|
+ return var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public HoloPilot() {
|
|
+ }
|
|
+
|
|
+ public void loadInit() {
|
|
+ this.smoothDriver = new SmoothDriver();
|
|
+ this.smoothDriver.setEyeHeight(0.0F);
|
|
+ this.cam = new Camera();
|
|
+ this.add(this.cam);
|
|
+ Drone var1 = Drone.make((ObjID)null, (WorldServer)null);
|
|
+ this.add(var1);
|
|
+ var1.setAvatarNow(this.getSourceURL());
|
|
+ this.addHandler(this.smoothDriver);
|
|
+ this.addHandler(new PitchDriver());
|
|
+ this.handler = new AnimatedActionHandlerImp();
|
|
+ this.setEyeHeight(150.0F);
|
|
+ }
|
|
+
|
|
+ public void addCallback(AnimatedActionCallback var1) {
|
|
+ Debug.dAssert(this.handler != null);
|
|
+ this.handler.addCallback(var1);
|
|
+ }
|
|
+
|
|
+ public void removeCallback(AnimatedActionCallback var1) {
|
|
+ Debug.dAssert(this.handler != null);
|
|
+ this.handler.removeCallback(var1);
|
|
+ }
|
|
+
|
|
+ public void notifyCallbacks(int var1) {
|
|
+ Debug.dAssert(this.handler != null);
|
|
+ this.handler.notifyCallbacks(var1);
|
|
+ }
|
|
+
|
|
+ public void walkTo(Point2 var1, float var2) {
|
|
+ this.walkTo(var1, var2, 80.0F);
|
|
+ }
|
|
+
|
|
+ public void walkTo(Point2 var1, float var2, float var3) {
|
|
+ this.removeHandler(this.smoothDriver);
|
|
+ this.hod = new HandsOffDriver();
|
|
+ this.hod.setDestPos(var1, var2, var3);
|
|
+ this.hod.addCallback(this);
|
|
+ this.addHandler(this.hod);
|
|
+ }
|
|
+
|
|
+ public void removeSmoothDriver() {
|
|
+ this.removeHandler(this.smoothDriver);
|
|
+ }
|
|
+
|
|
+ public void returnSmoothDriver() {
|
|
+ this.addHandler(this.smoothDriver);
|
|
+ }
|
|
+
|
|
+ public SmoothDriver getSmoothDriver() {
|
|
+ return this.smoothDriver;
|
|
+ }
|
|
+
|
|
+ public void removeHandsOffDriver() {
|
|
+ if (this.hod != null) {
|
|
+ this.removeHandler(this.hod);
|
|
+ this.hod = null;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void returnHandsOffDriver() {
|
|
+ if (this.hod == null) {
|
|
+ this.hod = new HandsOffDriver();
|
|
+ this.addHandler(this.hod);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void motionComplete(int var1) {
|
|
+ this.removeHandler(this.hod);
|
|
+ this.hod = null;
|
|
+ this.addHandler(this.smoothDriver);
|
|
+ this.notifyCallbacks(var1);
|
|
+ }
|
|
+
|
|
+ public void updateName() {
|
|
+ String var1 = this.getLongID();
|
|
+ if (var1 != null) {
|
|
+ if (this.lastName == null || !this.lastName.equals(var1)) {
|
|
+ this.lastName = var1;
|
|
+ Drone var2 = this.getInternalDrone();
|
|
+ if (var2 != null) {
|
|
+ var2.setName(var1);
|
|
+ }
|
|
+
|
|
}
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Drone getInternalDrone() {
|
|
+ Enumeration var1 = this.getContents();
|
|
|
|
- this.setLastInverse(var6);
|
|
- float var15 = this.aimPoint.z;
|
|
- var8 = var4;
|
|
- float var16 = var3;
|
|
- if (this.hod != null) {
|
|
- var8 = var4 + this.hod.getCameraPan();
|
|
- var16 = var3 + this.hod.getCameraZoom();
|
|
- if (var16 < this.defaultCameraRadius) {
|
|
- var15 -= (this.defaultCameraRadius - var16) * this.smoothDriver.getEyeHeight() / this.defaultCameraRadius;
|
|
- }
|
|
+ Object var2;
|
|
+ do {
|
|
+ if (!var1.hasMoreElements()) {
|
|
+ return null;
|
|
}
|
|
|
|
- this.cam.makeIdentity().post(this.defaultTransform);
|
|
- this.cam.moveBy(var16, 0.0F, 0.0F);
|
|
- this.cam.postspin(0.0F, 0.0F, 1.0F, var8);
|
|
- this.cam.moveBy(this.aimPoint.x, this.aimPoint.y, var15);
|
|
- this.lastCamRadius = var3;
|
|
- this.lastCamYaw = var4;
|
|
- double var17 = (double)var4 * 3.141592653589793D / 180.0D;
|
|
- this.lastCamWorldPos.x = (float)((double)var3 * Math.cos(var17));
|
|
- this.lastCamWorldPos.y = (float)((double)var3 * Math.sin(var17));
|
|
- this.lastCamWorldPos.z = 0.0F;
|
|
- this.lastCamWorldPos.times(var1);
|
|
- this.lastCamWorldPos.z = 0.0F;
|
|
- this.lastDrawTime = var2;
|
|
- this.lastCamRoom = var5;
|
|
- var1.recycle();
|
|
- }
|
|
- } else {
|
|
- this.lastCamWorldPos = null;
|
|
- this.cam.makeIdentity();
|
|
- }
|
|
- }
|
|
-
|
|
- public void setOutsideCameraMode(int var1, int var2) {
|
|
- this.defaultTransform.makeIdentity();
|
|
- this.aimPoint.x = 0.0F;
|
|
- this.aimPoint.y = 0.0F;
|
|
- this.aimPoint.z = 0.0F;
|
|
- this.setEyeHeight(150.0F);
|
|
- if (this.getInternalDrone() != null && this.getInternalDrone() instanceof PosableDrone) {
|
|
- PosableShape var3 = ((PosableDrone)this.getInternalDrone()).getInternalPosableShape();
|
|
- if (var3 != null && var3 instanceof VehicleShape) {
|
|
- VehicleShape var4 = (VehicleShape)var3;
|
|
- if (var4.fixedCamera) {
|
|
- this.defaultTransform.moveTo(var4.camX, var4.camY, var4.camZ).postspin(1.0F, 0.0F, 0.0F, var4.camRoll).postspin(0.0F, 1.0F, 0.0F, var4.camYaw).postspin(0.0F, 0.0F, 1.0F, var4.camPitch);
|
|
- this.aimPoint.x = var4.camAimX;
|
|
- this.aimPoint.y = var4.camAimY;
|
|
- this.aimPoint.z = var4.camAimZ;
|
|
- this.setEyeHeight(var4.eyeHeight);
|
|
- var1 = 99;
|
|
+ var2 = var1.nextElement();
|
|
+ } while(!(var2 instanceof Drone));
|
|
+
|
|
+ return (Drone)var2;
|
|
+ }
|
|
+
|
|
+ private void setLastInverse(Transform var1) {
|
|
+ if (this.lastInverse != null) {
|
|
+ this.lastInverse.recycle();
|
|
+ }
|
|
+
|
|
+ this.lastInverse = var1;
|
|
+ }
|
|
+
|
|
+ protected void transferFrom(Pilot var1) {
|
|
+ if (var1 != null && var1 instanceof HoloPilot) {
|
|
+ HoloPilot var2 = (HoloPilot)var1;
|
|
+ this.setOutsideCameraMode(var2.getOutsideCameraMode(), var2.getOutsideCameraSpeed());
|
|
+ super.transferFrom(var1);
|
|
+ if (var2.lastCamWorldPos != null) {
|
|
+ this.setLastInverse(var2.lastInverse.getTransform());
|
|
+ this.lastCamWorldPos = new Point3(var2.lastCamWorldPos);
|
|
}
|
|
- }
|
|
- }
|
|
|
|
- this.cam.setAlwaysClearBackground(false);
|
|
- this.cam.setBumpable(true);
|
|
- switch(var1) {
|
|
- case 1:
|
|
- case 99:
|
|
- break;
|
|
- case 2:
|
|
- this.setEyeHeight(100.0F);
|
|
- break;
|
|
- case 3:
|
|
- this.defaultTransform.moveTo(0.0F, -120.0F, -60.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F).postspin(0.0F, 0.0F, 1.0F, 30.0F);
|
|
- this.aimPoint.x = 15.0F;
|
|
- this.aimPoint.z = -10.0F;
|
|
- break;
|
|
- case 4:
|
|
- this.defaultTransform.moveTo(0.0F, -140.0F, -40.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F).postspin(0.0F, 0.0F, 1.0F, 15.0F);
|
|
- this.aimPoint.x = 15.0F;
|
|
- this.aimPoint.z = 10.0F;
|
|
- break;
|
|
- case 5:
|
|
- this.defaultTransform.moveTo(0.0F, -140.0F, 0.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F).postspin(0.0F, 0.0F, 1.0F, 15.0F);
|
|
- this.aimPoint.x = 15.0F;
|
|
- this.aimPoint.z = 10.0F;
|
|
- break;
|
|
- case 6:
|
|
- this.defaultTransform.moveTo(0.0F, -100.0F, 0.0F).postspin(1.0F, 0.0F, 0.0F, -30.0F).postspin(0.0F, 0.0F, 1.0F, 30.0F);
|
|
- this.aimPoint.x = 15.0F;
|
|
- this.aimPoint.z = 10.0F;
|
|
- break;
|
|
- case 7:
|
|
- this.defaultTransform.moveTo(0.0F, -140.0F, 0.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F);
|
|
- break;
|
|
- case 8:
|
|
- this.defaultTransform.moveTo(0.0F, -220.0F, -40.0F).postspin(1.0F, 0.0F, 0.0F, -30.0F).postspin(0.0F, 0.0F, 1.0F, 30.0F);
|
|
- this.aimPoint.x = 15.0F;
|
|
- this.aimPoint.z = 10.0F;
|
|
- break;
|
|
- case 9:
|
|
- this.defaultTransform.moveTo(0.0F, -140.0F, 300.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F);
|
|
- this.aimPoint.x = 0.0F;
|
|
- this.aimPoint.z = 300.0F;
|
|
- this.cam.setAlwaysClearBackground(true);
|
|
- this.cam.setBumpable(false);
|
|
- var2 = 4;
|
|
- break;
|
|
- default:
|
|
- var1 = 1;
|
|
- var2 = 3;
|
|
- this.defaultCameraRadius = 0.0F;
|
|
- this.defaultCameraYaw = 0.0F;
|
|
- }
|
|
-
|
|
- if (var1 != 1 && var1 != 2) {
|
|
- float var5 = this.defaultTransform.getX();
|
|
- float var6 = this.defaultTransform.getY();
|
|
- Point3 var10000 = this.aimPoint;
|
|
- var10000.z += this.defaultTransform.getZ();
|
|
- this.defaultCameraRadius = (float)Math.sqrt((double)(var5 * var5 + var6 * var6));
|
|
- this.defaultCameraYaw = (float)(Math.atan2((double)var6, (double)var5) * 180.0D / 3.141592653589793D);
|
|
- this.defaultTransform.moveTo(0.0F, 0.0F, 0.0F);
|
|
- this.defaultTransform.postspin(0.0F, 0.0F, 1.0F, -this.defaultCameraYaw);
|
|
- }
|
|
-
|
|
- super.setOutsideCameraMode(var1, var2);
|
|
- }
|
|
-
|
|
- public void resetAvatarNow() {
|
|
- URL var1 = this.getSourceURL();
|
|
- Drone var2 = this.getInternalDrone();
|
|
- var2.setAvatarNow(var1);
|
|
- if (var2.shouldBeForcedHuman() && !PosableShape.getHuman(var1).equals(var1)) {
|
|
- if (!this.substWarned) {
|
|
- this.substWarned = true;
|
|
- Console.println(Console.message("Sub-human"));
|
|
- }
|
|
- } else {
|
|
- this.substWarned = false;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setEyeHeight(float var1) {
|
|
- float var2 = this.smoothDriver.getEyeHeight();
|
|
- if (var1 != var2) {
|
|
- this.smoothDriver.setEyeHeight(var1);
|
|
- this.getInternalDrone().moveBy(0.0F, 0.0F, var2 - var1);
|
|
- this.setLocalBoundBox(Point3Temp.make(-30.0F, -30.0F, -var1), Point3Temp.make(30.0F, 50.0F, 20.0F));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public BoundBoxTemp getLocalBoundBox() {
|
|
- return BoundBoxTemp.make(this.boxLo, this.boxHi);
|
|
- }
|
|
-
|
|
- public void setLocalBoundBox(BoundBoxTemp var1) {
|
|
- this.boxLo = new Point3(var1.lo);
|
|
- this.boxHi = new Point3(var1.hi);
|
|
- }
|
|
-
|
|
- public void setLocalBoundBox(Point3Temp var1, Point3Temp var2) {
|
|
- this.setLocalBoundBox(BoundBoxTemp.make(var1, var2));
|
|
- }
|
|
-
|
|
- public BoundBoxTemp getBoundBox() {
|
|
- Point3Temp var1 = Point3Temp.make(this.boxLo);
|
|
- var1.z += this.stepHeight;
|
|
- Point3 var2 = this.boxHi;
|
|
- Transform var3 = this.getObjectToWorldMatrix();
|
|
- Point3Temp var4 = Point3Temp.make(var1).times(var3);
|
|
- BoundBoxTemp var5 = BoundBoxTemp.make(var4, var4);
|
|
- var5.encompass(Point3Temp.make(var2).times(var3));
|
|
- var5.encompass(Point3Temp.make(var1.x, var1.y, var2.z).times(var3));
|
|
- var5.encompass(Point3Temp.make(var1.x, var2.y, var1.z).times(var3));
|
|
- var5.encompass(Point3Temp.make(var1.x, var2.y, var2.z).times(var3));
|
|
- var5.encompass(Point3Temp.make(var2.x, var1.y, var1.z).times(var3));
|
|
- var5.encompass(Point3Temp.make(var2.x, var1.y, var2.z).times(var3));
|
|
- var5.encompass(Point3Temp.make(var2.x, var2.y, var1.z).times(var3));
|
|
- var3.recycle();
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public float getFootHeight() {
|
|
- if (this.isActive()) {
|
|
- Transform var1 = this.getObjectToWorldMatrix();
|
|
- float var2 = var1.getPitch();
|
|
- var1.pitch(-var2);
|
|
- float var3 = Point3Temp.make(this.boxLo).times(var1).z;
|
|
- var1.recycle();
|
|
- return var3;
|
|
- } else {
|
|
- return 0.0F;
|
|
- }
|
|
- }
|
|
-
|
|
- public float getStepHeight() {
|
|
- return this.stepHeight;
|
|
- }
|
|
-
|
|
- public void setStepHeight(float var1) {
|
|
- this.stepHeight = var1;
|
|
- }
|
|
-
|
|
- public void releaseCamera() {
|
|
- this.cameraIsFree = true;
|
|
- }
|
|
-
|
|
- public void reclaimCamera() {
|
|
- this.cameraIsFree = false;
|
|
- }
|
|
-
|
|
- public Camera getCamera() {
|
|
- return this.cam;
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = Point3PropertyEditor.make(new Property(this, var1, "Bump Box Start"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Point3(this.boxLo);
|
|
- } else if (var3 == 2) {
|
|
- this.boxLo = new Point3((Point3)var4);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (var3 == 0) {
|
|
- var5 = Point3PropertyEditor.make(new Property(this, var1, "Bump Box End"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Point3(this.boxHi);
|
|
- } else if (var3 == 2) {
|
|
- this.boxHi = new Point3((Point3)var4);
|
|
- }
|
|
- break;
|
|
- case 2:
|
|
- if (var3 == 0) {
|
|
- var5 = FloatPropertyEditor.make(new Property(this, var1, "Step Height"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Float(this.getStepHeight());
|
|
- } else if (var3 == 2) {
|
|
- this.setStepHeight((Float)var4);
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 3, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(0, classCookie);
|
|
- super.saveState(var1);
|
|
- var1.saveFloat(this.stepHeight);
|
|
- var1.save(this.boxLo);
|
|
- var1.save(this.boxHi);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- switch(var1.restoreVersion(classCookie)) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- this.stepHeight = var1.restoreFloat();
|
|
- this.boxLo = (Point3)var1.restore();
|
|
- this.boxHi = (Point3)var1.restore();
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
+ this.lastCamRoom = var2.lastCamRoom;
|
|
+ this.lastCamRadius = var2.lastCamRadius;
|
|
+ this.lastCamYaw = var2.lastCamYaw;
|
|
+ this.lastDrawTime = var2.lastDrawTime;
|
|
+ this.framesSinceMoved = this.framesSinceMoved;
|
|
+ } else {
|
|
+ super.transferFrom(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void aboutToDraw() {
|
|
+ if (this.cameraMode != 1 && this.cameraMode != 2) {
|
|
+ if (!this.cameraIsFree) {
|
|
+ Transform var1 = this.getObjectToWorldMatrix();
|
|
+ int var2 = Std.getRealTime();
|
|
+ Room var5 = this.getRoom();
|
|
+ Transform var6 = var1.getTransform().invert();
|
|
+ float var3;
|
|
+ float var4;
|
|
+ float var8;
|
|
+ if (this.lastCamWorldPos != null && this.cameraSpeed != 4 && this.cameraMode != 99) {
|
|
+ if (var5 != this.lastCamRoom) {
|
|
+ var4 = this.lastCamYaw;
|
|
+ var3 = this.lastCamRadius;
|
|
+ } else {
|
|
+ Point3 var7 = this.lastCamWorldPos;
|
|
+ var7.times(var6);
|
|
+ var3 = (float)Math.sqrt((double)(var7.x * var7.x + var7.y * var7.y));
|
|
+ if (var3 > this.defaultCameraRadius + 10.0F) {
|
|
+ var3 = this.defaultCameraRadius + 10.0F;
|
|
+ }
|
|
+
|
|
+ if (this.cameraSpeed == 3) {
|
|
+ var3 = this.defaultCameraRadius;
|
|
+ }
|
|
+
|
|
+ var4 = (float)(Math.atan2((double)var7.y, (double)var7.x) * 180.0D / 3.141592653589793D);
|
|
+ this.lastInverse.post(var1);
|
|
+ var8 = this.lastInverse.getYaw();
|
|
+ if (var8 > 180.0F) {
|
|
+ var8 -= 360.0F;
|
|
+ }
|
|
+
|
|
+ Point3Temp var9 = this.lastInverse.getPosition();
|
|
+ if (this.cameraSpeed == 1 && (!(Math.abs(var8) < 1.0F) || !(var9.x * var9.x + var9.y * var9.y < 1.0F))) {
|
|
+ this.framesSinceMoved = 0;
|
|
+ } else if (++this.framesSinceMoved > 2) {
|
|
+ float var10 = this.defaultCameraYaw - var4;
|
|
+ if (var10 < -180.0F) {
|
|
+ var10 += 360.0F;
|
|
+ } else if (var10 > 180.0F) {
|
|
+ var10 -= 360.0F;
|
|
+ }
|
|
+
|
|
+ float var11 = this.defaultCameraRadius - var3;
|
|
+ float var12 = (float)(var2 - this.lastDrawTime);
|
|
+ float var13 = 0.04F;
|
|
+ float var14 = 0.03F;
|
|
+ if (Math.abs(var10) > 1500.0F * var13) {
|
|
+ var13 *= 1.5F;
|
|
+ }
|
|
+
|
|
+ var13 *= var12;
|
|
+ if (var10 < -var13) {
|
|
+ var10 = -var13;
|
|
+ } else if (var10 > var13) {
|
|
+ var10 = var13;
|
|
+ }
|
|
+
|
|
+ var14 *= var12;
|
|
+ if (var11 < -var14) {
|
|
+ var11 = -var14;
|
|
+ } else if (var11 > var14) {
|
|
+ var11 = var14;
|
|
+ }
|
|
+
|
|
+ var4 += var10;
|
|
+ var3 += var11;
|
|
+ if (this.cameraSpeed == 3) {
|
|
+ if (var4 > this.defaultCameraYaw + 40.0F) {
|
|
+ var4 = this.defaultCameraYaw + 40.0F;
|
|
+ } else if (var4 < this.defaultCameraYaw - 40.0F) {
|
|
+ var4 = this.defaultCameraYaw - 40.0F;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ this.lastCamWorldPos = new Point3();
|
|
+ var3 = this.defaultCameraRadius;
|
|
+ var4 = this.defaultCameraYaw;
|
|
+ }
|
|
+
|
|
+ this.setLastInverse(var6);
|
|
+ float var15 = this.aimPoint.z;
|
|
+ var8 = var4;
|
|
+ float var16 = var3;
|
|
+ if (this.hod != null) {
|
|
+ var8 = var4 + this.hod.getCameraPan();
|
|
+ var16 = var3 + this.hod.getCameraZoom();
|
|
+ if (var16 < this.defaultCameraRadius) {
|
|
+ var15 -= (this.defaultCameraRadius - var16) * this.smoothDriver.getEyeHeight() / this.defaultCameraRadius;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.cam.makeIdentity().post(this.defaultTransform);
|
|
+ this.cam.moveBy(var16, 0.0F, 0.0F);
|
|
+ this.cam.postspin(0.0F, 0.0F, 1.0F, var8);
|
|
+ this.cam.moveBy(this.aimPoint.x, this.aimPoint.y, var15);
|
|
+ this.lastCamRadius = var3;
|
|
+ this.lastCamYaw = var4;
|
|
+ double var17 = (double)var4 * 3.141592653589793D / 180.0D;
|
|
+ this.lastCamWorldPos.x = (float)((double)var3 * Math.cos(var17));
|
|
+ this.lastCamWorldPos.y = (float)((double)var3 * Math.sin(var17));
|
|
+ this.lastCamWorldPos.z = 0.0F;
|
|
+ this.lastCamWorldPos.times(var1);
|
|
+ this.lastCamWorldPos.z = 0.0F;
|
|
+ this.lastDrawTime = var2;
|
|
+ this.lastCamRoom = var5;
|
|
+ var1.recycle();
|
|
+ }
|
|
+ } else {
|
|
+ this.lastCamWorldPos = null;
|
|
+ this.cam.makeIdentity();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void setOutsideCameraMode(int var1, int var2) {
|
|
+ this.defaultTransform.makeIdentity();
|
|
+ this.aimPoint.x = 0.0F;
|
|
+ this.aimPoint.y = 0.0F;
|
|
+ this.aimPoint.z = 0.0F;
|
|
+ this.setEyeHeight(150.0F);
|
|
+ if (this.getInternalDrone() != null && this.getInternalDrone() instanceof PosableDrone) {
|
|
+ PosableShape var3 = ((PosableDrone)this.getInternalDrone()).getInternalPosableShape();
|
|
+ if (var3 != null && var3 instanceof VehicleShape) {
|
|
+ VehicleShape var4 = (VehicleShape)var3;
|
|
+ if (var4.fixedCamera) {
|
|
+ this.defaultTransform.moveTo(var4.camX, var4.camY, var4.camZ).postspin(1.0F, 0.0F, 0.0F, var4.camRoll).postspin(0.0F, 1.0F, 0.0F, var4.camYaw).postspin(0.0F, 0.0F, 1.0F, var4.camPitch);
|
|
+ this.aimPoint.x = var4.camAimX;
|
|
+ this.aimPoint.y = var4.camAimY;
|
|
+ this.aimPoint.z = var4.camAimZ;
|
|
+ this.setEyeHeight(var4.eyeHeight);
|
|
+ var1 = 99;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.cam.setAlwaysClearBackground(false);
|
|
+ this.cam.setBumpable(true);
|
|
+ switch(var1) {
|
|
+ case 1:
|
|
+ case 99:
|
|
+ break;
|
|
+ case 2:
|
|
+ this.setEyeHeight(100.0F);
|
|
+ break;
|
|
+ case 3:
|
|
+ this.defaultTransform.moveTo(0.0F, -120.0F, -60.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F).postspin(0.0F, 0.0F, 1.0F, 30.0F);
|
|
+ this.aimPoint.x = 15.0F;
|
|
+ this.aimPoint.z = -10.0F;
|
|
+ break;
|
|
+ case 4:
|
|
+ this.defaultTransform.moveTo(0.0F, -140.0F, -40.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F).postspin(0.0F, 0.0F, 1.0F, 15.0F);
|
|
+ this.aimPoint.x = 15.0F;
|
|
+ this.aimPoint.z = 10.0F;
|
|
+ break;
|
|
+ case 5:
|
|
+ this.defaultTransform.moveTo(0.0F, -140.0F, 0.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F).postspin(0.0F, 0.0F, 1.0F, 15.0F);
|
|
+ this.aimPoint.x = 15.0F;
|
|
+ this.aimPoint.z = 10.0F;
|
|
+ break;
|
|
+ case 6:
|
|
+ this.defaultTransform.moveTo(0.0F, -100.0F, 0.0F).postspin(1.0F, 0.0F, 0.0F, -30.0F).postspin(0.0F, 0.0F, 1.0F, 30.0F);
|
|
+ this.aimPoint.x = 15.0F;
|
|
+ this.aimPoint.z = 10.0F;
|
|
+ break;
|
|
+ case 7:
|
|
+ this.defaultTransform.moveTo(0.0F, -140.0F, 0.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F);
|
|
+ break;
|
|
+ case 8:
|
|
+ this.defaultTransform.moveTo(0.0F, -220.0F, -40.0F).postspin(1.0F, 0.0F, 0.0F, -30.0F).postspin(0.0F, 0.0F, 1.0F, 30.0F);
|
|
+ this.aimPoint.x = 15.0F;
|
|
+ this.aimPoint.z = 10.0F;
|
|
+ break;
|
|
+ case 9:
|
|
+ this.defaultTransform.moveTo(0.0F, -140.0F, 300.0F).postspin(1.0F, 0.0F, 0.0F, -10.0F);
|
|
+ this.aimPoint.x = 0.0F;
|
|
+ this.aimPoint.z = 300.0F;
|
|
+ this.cam.setAlwaysClearBackground(true);
|
|
+ this.cam.setBumpable(false);
|
|
+ var2 = 4;
|
|
+ break;
|
|
+ default:
|
|
+ var1 = 1;
|
|
+ var2 = 3;
|
|
+ this.defaultCameraRadius = 0.0F;
|
|
+ this.defaultCameraYaw = 0.0F;
|
|
+ }
|
|
+
|
|
+ if (var1 != 1 && var1 != 2) {
|
|
+ float var5 = this.defaultTransform.getX();
|
|
+ float var6 = this.defaultTransform.getY();
|
|
+ Point3 var10000 = this.aimPoint;
|
|
+ var10000.z += this.defaultTransform.getZ();
|
|
+ this.defaultCameraRadius = (float)Math.sqrt((double)(var5 * var5 + var6 * var6));
|
|
+ this.defaultCameraYaw = (float)(Math.atan2((double)var6, (double)var5) * 180.0D / 3.141592653589793D);
|
|
+ this.defaultTransform.moveTo(0.0F, 0.0F, 0.0F);
|
|
+ this.defaultTransform.postspin(0.0F, 0.0F, 1.0F, -this.defaultCameraYaw);
|
|
+ }
|
|
+
|
|
+ super.setOutsideCameraMode(var1, var2);
|
|
+ }
|
|
+
|
|
+ public void resetAvatarNow() {
|
|
+ URL var1 = this.getSourceURL();
|
|
+ Drone var2 = this.getInternalDrone();
|
|
+ var2.setAvatarNow(var1);
|
|
+ if (var2.shouldBeForcedHuman() && !PosableShape.getHuman(var1).equals(var1)) {
|
|
+ if (!this.substWarned) {
|
|
+ this.substWarned = true;
|
|
+ Console.println(Console.message("Sub-human"));
|
|
+ }
|
|
+ } else {
|
|
+ this.substWarned = false;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setEyeHeight(float var1) {
|
|
+ float var2 = this.smoothDriver.getEyeHeight();
|
|
+ if (var1 != var2) {
|
|
+ this.smoothDriver.setEyeHeight(var1);
|
|
+ this.getInternalDrone().moveBy(0.0F, 0.0F, var2 - var1);
|
|
+ this.setLocalBoundBox(Point3Temp.make(-30.0F, -30.0F, -var1), Point3Temp.make(30.0F, 50.0F, 20.0F));
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public BoundBoxTemp getLocalBoundBox() {
|
|
+ return BoundBoxTemp.make(this.boxLo, this.boxHi);
|
|
+ }
|
|
+
|
|
+ public void setLocalBoundBox(BoundBoxTemp var1) {
|
|
+ this.boxLo = new Point3(var1.lo);
|
|
+ this.boxHi = new Point3(var1.hi);
|
|
+ }
|
|
+
|
|
+ public void setLocalBoundBox(Point3Temp var1, Point3Temp var2) {
|
|
+ this.setLocalBoundBox(BoundBoxTemp.make(var1, var2));
|
|
+ }
|
|
+
|
|
+ public BoundBoxTemp getBoundBox() {
|
|
+ Point3Temp var1 = Point3Temp.make(this.boxLo);
|
|
+ var1.z += this.stepHeight;
|
|
+ Point3 var2 = this.boxHi;
|
|
+ Transform var3 = this.getObjectToWorldMatrix();
|
|
+ Point3Temp var4 = Point3Temp.make(var1).times(var3);
|
|
+ BoundBoxTemp var5 = BoundBoxTemp.make(var4, var4);
|
|
+ var5.encompass(Point3Temp.make(var2).times(var3));
|
|
+ var5.encompass(Point3Temp.make(var1.x, var1.y, var2.z).times(var3));
|
|
+ var5.encompass(Point3Temp.make(var1.x, var2.y, var1.z).times(var3));
|
|
+ var5.encompass(Point3Temp.make(var1.x, var2.y, var2.z).times(var3));
|
|
+ var5.encompass(Point3Temp.make(var2.x, var1.y, var1.z).times(var3));
|
|
+ var5.encompass(Point3Temp.make(var2.x, var1.y, var2.z).times(var3));
|
|
+ var5.encompass(Point3Temp.make(var2.x, var2.y, var1.z).times(var3));
|
|
+ var3.recycle();
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public float getFootHeight() {
|
|
+ if (this.isActive()) {
|
|
+ Transform var1 = this.getObjectToWorldMatrix();
|
|
+ float var2 = var1.getPitch();
|
|
+ var1.pitch(-var2);
|
|
+ float var3 = Point3Temp.make(this.boxLo).times(var1).z;
|
|
+ var1.recycle();
|
|
+ return var3;
|
|
+ } else {
|
|
+ return 0.0F;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public float getStepHeight() {
|
|
+ return this.stepHeight;
|
|
+ }
|
|
+
|
|
+ public void setStepHeight(float var1) {
|
|
+ this.stepHeight = var1;
|
|
+ }
|
|
+
|
|
+ public void releaseCamera() {
|
|
+ this.cameraIsFree = true;
|
|
+ }
|
|
+
|
|
+ public void reclaimCamera() {
|
|
+ this.cameraIsFree = false;
|
|
+ }
|
|
+
|
|
+ public Camera getCamera() {
|
|
+ return this.cam;
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = Point3PropertyEditor.make(new Property(this, var1, "Bump Box Start"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Point3(this.boxLo);
|
|
+ } else if (var3 == 2) {
|
|
+ this.boxLo = new Point3((Point3)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = Point3PropertyEditor.make(new Property(this, var1, "Bump Box End"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Point3(this.boxHi);
|
|
+ } else if (var3 == 2) {
|
|
+ this.boxHi = new Point3((Point3)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 2:
|
|
+ if (var3 == 0) {
|
|
+ var5 = FloatPropertyEditor.make(new Property(this, var1, "Step Height"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Float(this.getStepHeight());
|
|
+ } else if (var3 == 2) {
|
|
+ this.setStepHeight(((Float)var4).floatValue());
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 3, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.saveFloat(this.stepHeight);
|
|
+ var1.save(this.boxLo);
|
|
+ var1.save(this.boxHi);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ this.stepHeight = var1.restoreFloat();
|
|
+ this.boxLo = (Point3)var1.restore();
|
|
+ this.boxHi = (Point3)var1.restore();
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/scape/MutedDrone.java b/1904/NET/worlds/scape/MutedDrone.java
|
|
--- a/1904/NET/worlds/scape/MutedDrone.java 2020-08-06 15:46:18.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/MutedDrone.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -1,43 +1,44 @@
|
|
package NET.worlds.scape;
|
|
|
|
+import NET.worlds.console.HiddenDrone;
|
|
import NET.worlds.network.ObjID;
|
|
import NET.worlds.network.URL;
|
|
import NET.worlds.network.WorldServer;
|
|
import java.io.IOException;
|
|
|
|
-public class MutedDrone extends Drone {
|
|
- private static Object classCookie = new Object();
|
|
+public class MutedDrone extends Drone implements HiddenDrone {
|
|
+ private static Object classCookie = new Object();
|
|
|
|
- public MutedDrone(ObjID var1, WorldServer var2, URL var3) {
|
|
- super(var1, var2);
|
|
- this.setSourceURL(var3);
|
|
- }
|
|
-
|
|
- public MutedDrone() {
|
|
- }
|
|
-
|
|
- public Drone setAvatarNow(URL var1) {
|
|
- if (this.shouldBeMuted()) {
|
|
- this.setSourceURL(var1);
|
|
- return this;
|
|
- } else {
|
|
- return super.setAvatarNow(var1);
|
|
- }
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(1, classCookie);
|
|
- super.saveState(var1);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- int var2 = var1.restoreVersion(classCookie);
|
|
- switch(var2) {
|
|
- case 1:
|
|
- super.restoreState(var1);
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
+ public MutedDrone(ObjID var1, WorldServer var2, URL var3) {
|
|
+ super(var1, var2);
|
|
+ this.setSourceURL(var3);
|
|
+ }
|
|
+
|
|
+ public MutedDrone() {
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (this.shouldBeMuted()) {
|
|
+ this.setSourceURL(var1);
|
|
+ return this;
|
|
+ } else {
|
|
+ return super.setAvatarNow(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(1, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/scape/ParallelAction.java b/1904/NET/worlds/scape/ParallelAction.java
|
|
--- a/1904/NET/worlds/scape/ParallelAction.java 2020-08-06 15:46:16.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/ParallelAction.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -6,130 +6,131 @@
|
|
import java.util.Vector;
|
|
|
|
public class ParallelAction extends Action implements RunningActionCallback {
|
|
- protected static final int NONE = 0;
|
|
- protected static final int FIRST = 1;
|
|
- protected static final int ALL = -1;
|
|
- protected Vector actions = new Vector();
|
|
- protected int waitState = -1;
|
|
- protected int waitingFor = 0;
|
|
- protected Object currentRun = null;
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- public Persister trigger(Event var1, Persister var2) {
|
|
- if (var2 == null) {
|
|
- if (this.waitingFor == 0) {
|
|
- this.currentRun = new Object();
|
|
- if (this.waitState == -1) {
|
|
- this.waitingFor = this.actions.size();
|
|
- var2 = this;
|
|
- } else if (this.waitState == 1) {
|
|
- this.waitingFor = 1;
|
|
- var2 = this;
|
|
- } else {
|
|
- this.waitingFor = 0;
|
|
- var2 = null;
|
|
- }
|
|
+ protected static final int NONE = 0;
|
|
+ protected static final int FIRST = 1;
|
|
+ protected static final int ALL = -1;
|
|
+ protected Vector actions = new Vector();
|
|
+ protected int waitState = -1;
|
|
+ protected int waitingFor = 0;
|
|
+ protected Object currentRun = null;
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public ParallelAction() {
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (var2 == null) {
|
|
+ if (this.waitingFor == 0) {
|
|
+ this.currentRun = new Object();
|
|
+ if (this.waitState == -1) {
|
|
+ this.waitingFor = this.actions.size();
|
|
+ var2 = this;
|
|
+ } else if (this.waitState == 1) {
|
|
+ this.waitingFor = 1;
|
|
+ var2 = this;
|
|
+ } else {
|
|
+ this.waitingFor = 0;
|
|
+ var2 = null;
|
|
+ }
|
|
|
|
- RunningActionHandler.trigger((Vector)this.actions, this.getWorld(), var1, this, this.currentRun);
|
|
- }
|
|
- } else if (this.waitingFor == 0) {
|
|
- var2 = null;
|
|
- }
|
|
-
|
|
- return (Persister)var2;
|
|
- }
|
|
-
|
|
- public void actionDone(Action var1, Event var2, Object var3) {
|
|
- if (this.waitingFor > 0 && var3 == this.currentRun) {
|
|
- --this.waitingFor;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setWaitForAll() {
|
|
- this.waitState = -1;
|
|
- }
|
|
-
|
|
- public void setWaitForFirst() {
|
|
- this.waitState = 1;
|
|
- }
|
|
-
|
|
- public void setWaitForNone() {
|
|
- this.waitState = 0;
|
|
- }
|
|
-
|
|
- public void addComponent(Action var1) {
|
|
- Debug.dAssert(var1 != null);
|
|
- this.actions.addElement(var1);
|
|
- }
|
|
-
|
|
- public void insertComponent(Action var1, int var2) {
|
|
- Debug.dAssert(var1 != null);
|
|
- this.actions.insertElementAt(var1, var2);
|
|
- }
|
|
-
|
|
- public boolean removeComponent(Action var1) {
|
|
- Debug.dAssert(var1 != null);
|
|
- return this.actions.removeElement(var1);
|
|
- }
|
|
-
|
|
- public Enumeration getComponents() {
|
|
- return this.actions.elements();
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = ObjectPropertyAdder.make(new VectorProperty(this, var1, "Components"), this.getRoot(), "NET.worlds.scape.Action");
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.actions.clone();
|
|
- } else if (var3 == 4) {
|
|
- this.actions.removeElement(var4);
|
|
- } else if (var3 == 3) {
|
|
- this.actions.addElement((Action)var4);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (var3 == 0) {
|
|
- String[] var6 = new String[]{"None", "First", "All"};
|
|
- int[] var7 = new int[]{0, 1, -1};
|
|
- var5 = EnumPropertyEditor.make(new Property(this, var1, "Wait for"), var6, var7);
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Integer(this.waitState);
|
|
- } else if (var3 == 2) {
|
|
- this.waitState = (Integer)var4;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(2, classCookie);
|
|
- super.saveState(var1);
|
|
- var1.saveVector(this.actions);
|
|
- var1.saveInt(this.waitState);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- switch(var1.restoreVersion(classCookie)) {
|
|
- case 1:
|
|
- super.restoreState(var1);
|
|
- this.actions = var1.restoreVector();
|
|
- break;
|
|
- case 2:
|
|
- super.restoreState(var1);
|
|
- this.actions = var1.restoreVector();
|
|
- this.waitState = var1.restoreInt();
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
+ RunningActionHandler.trigger(this.actions, this.getWorld(), var1, this, this.currentRun);
|
|
+ }
|
|
+ } else if (this.waitingFor == 0) {
|
|
+ var2 = null;
|
|
+ }
|
|
+
|
|
+ return (Persister)var2;
|
|
+ }
|
|
+
|
|
+ public void actionDone(Action var1, Event var2, Object var3) {
|
|
+ if (this.waitingFor > 0 && var3 == this.currentRun) {
|
|
+ --this.waitingFor;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setWaitForAll() {
|
|
+ this.waitState = -1;
|
|
+ }
|
|
+
|
|
+ public void setWaitForFirst() {
|
|
+ this.waitState = 1;
|
|
+ }
|
|
+
|
|
+ public void setWaitForNone() {
|
|
+ this.waitState = 0;
|
|
+ }
|
|
+
|
|
+ public void addComponent(Action var1) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ this.actions.addElement(var1);
|
|
+ }
|
|
+
|
|
+ public void insertComponent(Action var1, int var2) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ this.actions.insertElementAt(var1, var2);
|
|
+ }
|
|
+
|
|
+ public boolean removeComponent(Action var1) {
|
|
+ Debug.dAssert(var1 != null);
|
|
+ return this.actions.removeElement(var1);
|
|
+ }
|
|
+
|
|
+ public Enumeration getComponents() {
|
|
+ return this.actions.elements();
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = ObjectPropertyAdder.make(new VectorProperty(this, var1, "Components"), this.getRoot(), "NET.worlds.scape.Action");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.actions.clone();
|
|
+ } else if (var3 == 4) {
|
|
+ this.actions.removeElement(var4);
|
|
+ } else if (var3 == 3) {
|
|
+ this.actions.addElement((Action)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = IntegerPropertyEditor.make(new Property(this, var1, "Wait for"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Integer(this.waitState);
|
|
+ } else if (var3 == 2) {
|
|
+ this.waitState = ((Integer)var4).intValue();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(2, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.saveVector(this.actions);
|
|
+ var1.saveInt(this.waitState);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ this.actions = var1.restoreVector();
|
|
+ break;
|
|
+ case 2:
|
|
+ super.restoreState(var1);
|
|
+ this.actions = var1.restoreVector();
|
|
+ this.waitState = var1.restoreInt();
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/scape/Pilot.java b/1904/NET/worlds/scape/Pilot.java
|
|
--- a/1904/NET/worlds/scape/Pilot.java 2020-08-06 15:46:18.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/Pilot.java 2023-12-15 21:43:22.000000000 -0600
|
|
@@ -26,8 +26,10 @@
|
|
import java.io.DataInputStream;
|
|
import java.io.DataOutputStream;
|
|
import java.io.IOException;
|
|
+import java.net.MalformedURLException;
|
|
import java.util.Enumeration;
|
|
import java.util.Vector;
|
|
+import NET.worldsplus.MumbleLink;
|
|
|
|
public abstract class Pilot extends WObject implements NetworkObject, BumpHandler {
|
|
static Vector visibleRooms;
|
|
@@ -49,6 +51,7 @@
|
|
protected int cameraSpeed = 0;
|
|
private static World lastWorld;
|
|
private Camera lastCam;
|
|
+ private static MumbleLink mlink;
|
|
protected Console console;
|
|
private static Object classCookie;
|
|
|
|
@@ -160,8 +163,9 @@
|
|
addVisibleRoom(var2, 0.0F, 0.0F, 0.0F, 0.0F);
|
|
}
|
|
|
|
+ Vector var3 = visibleRooms;
|
|
Vector var4;
|
|
- synchronized(visibleRooms) {
|
|
+ synchronized(var3) {
|
|
var4 = visibleRoomInfo;
|
|
visibleRoomInfo = nextVisibleRoomInfo;
|
|
nextVisibleRoomInfo = var4;
|
|
@@ -170,43 +174,43 @@
|
|
visibleRooms = var4;
|
|
}
|
|
|
|
- Vector var3 = nextVisibleRooms;
|
|
- var4 = nextVisibleRoomInfo;
|
|
- Object var5 = var1.source;
|
|
+ var4 = nextVisibleRooms;
|
|
+ Vector var5 = nextVisibleRoomInfo;
|
|
+ Object var6 = var1.source;
|
|
var1.source = this;
|
|
- int var6 = visibleRooms.size();
|
|
+ int var7 = visibleRooms.size();
|
|
|
|
while(true) {
|
|
- --var6;
|
|
- if (var6 < 0) {
|
|
- var6 = var3.size();
|
|
+ --var7;
|
|
+ if (var7 < 0) {
|
|
+ int var12 = var4.size();
|
|
|
|
while(true) {
|
|
- --var6;
|
|
- if (var6 < 0) {
|
|
+ --var12;
|
|
+ if (var12 < 0) {
|
|
nextVisibleRooms.removeAllElements();
|
|
nextVisibleRoomInfo.removeAllElements();
|
|
- var6 = var1.time - this.lastUpdateTime;
|
|
- if (var6 > 500) {
|
|
+ int var9 = var1.time - this.lastUpdateTime;
|
|
+ if (var9 > 500) {
|
|
this.subscribeRooms();
|
|
- boolean var9 = this.pilotUpdate(var1.time);
|
|
- this.subscriptionUpdate(var9);
|
|
+ boolean var10 = this.pilotUpdate(var1.time);
|
|
+ this.subscriptionUpdate(var10);
|
|
this.updateUnsubscribes();
|
|
this.lastUpdateTime = var1.time;
|
|
}
|
|
|
|
this.touchSubscribers();
|
|
- var1.source = var5;
|
|
+ var1.source = var6;
|
|
return;
|
|
}
|
|
|
|
- ((Room)var3.elementAt(var6)).generateFrameEvents(var1);
|
|
+ ((Room)var4.elementAt(var12)).generateFrameEvents(var1);
|
|
}
|
|
}
|
|
|
|
- Room var7 = (Room)visibleRooms.elementAt(var6);
|
|
- var7.generateFrameEvents(var1);
|
|
- var3.removeElement(var7);
|
|
+ Room var8 = (Room)visibleRooms.elementAt(var7);
|
|
+ var8.generateFrameEvents(var1);
|
|
+ var4.removeElement(var8);
|
|
}
|
|
}
|
|
|
|
@@ -294,7 +298,7 @@
|
|
var2 = var2 + "," + var3;
|
|
var3 = round(this.getZ(), 1.0F);
|
|
var2 = var2 + "," + var3;
|
|
- Point3Temp var4 = Point3.make();
|
|
+ Point3Temp var4 = Point3Temp.make();
|
|
var3 = round(this.getSpin(var4), 1.0F);
|
|
var2 = var2 + "," + var3;
|
|
var3 = round(var4.x, 0.001F);
|
|
@@ -344,8 +348,8 @@
|
|
if (var3 != null) {
|
|
try {
|
|
var3.sendNetworkMsg(var1);
|
|
- } catch (InfiniteWaitException var6) {
|
|
- } catch (PacketTooLargeException var7) {
|
|
+ } catch (InfiniteWaitException var7) {
|
|
+ } catch (PacketTooLargeException var8) {
|
|
}
|
|
}
|
|
|
|
@@ -431,6 +435,7 @@
|
|
this.lasty = var3;
|
|
this.lastz = var4;
|
|
this.lastdir = var5;
|
|
+ this.updateMumble();
|
|
return true;
|
|
}
|
|
}
|
|
@@ -687,18 +692,16 @@
|
|
}
|
|
|
|
private static Camera getNextCamera(Enumeration var0) {
|
|
- while(true) {
|
|
- if (var0.hasMoreElements()) {
|
|
- Object var1 = var0.nextElement();
|
|
- if (!(var1 instanceof Camera)) {
|
|
- continue;
|
|
- }
|
|
-
|
|
- return (Camera)var1;
|
|
+ Object var1;
|
|
+ do {
|
|
+ if (!var0.hasMoreElements()) {
|
|
+ return null;
|
|
}
|
|
|
|
- return null;
|
|
- }
|
|
+ var1 = var0.nextElement();
|
|
+ } while(!(var1 instanceof Camera));
|
|
+
|
|
+ return (Camera)var1;
|
|
}
|
|
|
|
protected void transferFrom(Pilot var1) {
|
|
@@ -842,6 +845,23 @@
|
|
throw new TooNewException();
|
|
}
|
|
}
|
|
+
|
|
+ public void updateMumble() {
|
|
+ if (this == getActive() && mlink != null) {
|
|
+ Camera thiscam = this.getMainCamera();
|
|
+ mlink.updateMumble(
|
|
+ this.getLongID(),
|
|
+ this.getX(),
|
|
+ this.getY(),
|
|
+ this.getFootHeight(),
|
|
+ thiscam.getX(),
|
|
+ thiscam.getY(),
|
|
+ thiscam.getZ(),
|
|
+ thiscam.getYaw()
|
|
+ );
|
|
+ System.out.println("Mumble Link update called!");
|
|
+ }
|
|
+ }
|
|
|
|
static {
|
|
nativeInit();
|
|
@@ -852,5 +872,10 @@
|
|
subscribers = new Vector();
|
|
lastWorld = null;
|
|
classCookie = new Object();
|
|
+ try {
|
|
+ mlink = new MumbleLink();
|
|
+ System.out.println("Mumble Link loaded!");
|
|
+ } catch (MalformedURLException ignored) {
|
|
+ }
|
|
}
|
|
}
|
|
diff -ruN a/1904/NET/worlds/scape/PosableShape.java b/1904/NET/worlds/scape/PosableShape.java
|
|
--- a/1904/NET/worlds/scape/PosableShape.java 2020-08-06 15:46:10.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/PosableShape.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -367,7 +367,7 @@
|
|
((Shape)var10).scale(this.getScale(var22), this.getScale(var19), this.getScale(var20));
|
|
} else if (var17 != 'Q') {
|
|
if (var17 == 'C') {
|
|
- Debug.assert(false);
|
|
+ throw new AssertionError();
|
|
} else if (var17 == 'D') {
|
|
var13 += (int)(1000.0D * (Math.pow(1.0932D, (double)scanBase64(var1.charAt(this.scanPos++))) - 0.8999999761581421D));
|
|
} else if (var17 == 'A') {
|
|
@@ -1226,7 +1226,8 @@
|
|
public boolean handle(FrameEvent var1) {
|
|
float var2 = this.closestView;
|
|
this.closestView = 10000.0F;
|
|
- if (this.animator != null && var2 <= 900.0F && this.hasClump()) {
|
|
+ float distance = IniFile.gamma().getIniInt("AnimationQualityDistance", 900);
|
|
+ if (this.animator != null && var2 <= distance && this.hasClump()) {
|
|
if (this.recomputeHeight) {
|
|
if (this.runPrepFigure) {
|
|
DroneAnimator.prepFigure(this, this.COG);
|
|
@@ -1280,7 +1281,7 @@
|
|
} else if (var3 == 1) {
|
|
var5 = new Boolean(this.COG);
|
|
} else if (var3 == 2) {
|
|
- this.COG = (Boolean)var4;
|
|
+ this.COG = ((Boolean)var4).booleanValue();
|
|
URL var6 = this.getURL();
|
|
this.setURL(defaultURL);
|
|
this.setURL(var6);
|
|
diff -ruN a/1904/NET/worlds/scape/SelectAvatarAction.java b/1904/NET/worlds/scape/SelectAvatarAction.java
|
|
--- a/1904/NET/worlds/scape/SelectAvatarAction.java 2020-08-06 15:46:16.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/SelectAvatarAction.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -1,3 +1,8 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by Fernflower decompiler)
|
|
+//
|
|
+
|
|
package NET.worlds.scape;
|
|
|
|
import NET.worlds.console.Console;
|
|
@@ -8,138 +13,141 @@
|
|
import java.io.IOException;
|
|
|
|
public class SelectAvatarAction extends DialogAction {
|
|
- URL url = null;
|
|
- String description;
|
|
- static String[] avatarAliases = ServerTableManager.instance().getTable("avatarAliases");
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- private URL getURLVal() {
|
|
- URL var1 = this.url;
|
|
- if (var1 == null) {
|
|
- SuperRoot var2 = this.getOwner();
|
|
- if (var2 instanceof Drone) {
|
|
- var1 = ((Drone)var2).getSourceURL();
|
|
- } else if (var2 instanceof PosableShape) {
|
|
- var1 = ((Shape)var2).getURL();
|
|
- } else if (var2 instanceof Hologram) {
|
|
- var1 = ((Hologram)var2).getMovieName();
|
|
- }
|
|
- }
|
|
-
|
|
- return var1;
|
|
- }
|
|
-
|
|
- public void doIt() {
|
|
- Console var1 = Console.getActive();
|
|
- URL var2 = this.getURLVal();
|
|
- if (var1 != null && var2 != null) {
|
|
- var1.setAvatar(var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public PolledDialog getDialog() {
|
|
- URL var1 = this.getURLVal();
|
|
- if (!Console.getActive().getVIPAvatars() && var1.getInternal().toLowerCase().endsWith(".rwg")) {
|
|
- return new OkCancelDialog(Console.getFrame(), this, Console.message("Cant-change-AV"), Console.message("OK"), (String)null, Console.message("Only-VIPs-change"), false);
|
|
- } else {
|
|
- String var2 = this.description;
|
|
- if (var2 == null || var2.length() == 0) {
|
|
- var2 = getPrettyAvatarName(var1.getBase());
|
|
- }
|
|
-
|
|
- return new ChangeAvatarDialog(Console.getFrame(), this, var2);
|
|
- }
|
|
- }
|
|
-
|
|
- public static String getPrettyAvatarName(String var0) {
|
|
- int var1 = var0.indexOf(46);
|
|
- if (var1 >= 0) {
|
|
- var0 = var0.substring(0, var1).toLowerCase();
|
|
- } else {
|
|
- var0 = var0.toLowerCase();
|
|
- }
|
|
-
|
|
- for(int var2 = 0; var2 < avatarAliases.length; var2 += 2) {
|
|
- if (avatarAliases[var2].equals(var0)) {
|
|
- return avatarAliases[var2 + 1];
|
|
- }
|
|
- }
|
|
-
|
|
- String var3 = var0.substring(0, 1).toUpperCase();
|
|
- if (var0.length() > 1) {
|
|
- var3 = var3 + var0.substring(1);
|
|
- }
|
|
-
|
|
- return var3;
|
|
- }
|
|
-
|
|
- public Persister trigger(Event var1, Persister var2) {
|
|
- URL var3 = this.getURLVal();
|
|
- return var3 == null ? null : super.trigger(var1, var2);
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = URLPropertyEditor.make((new Property(this, var1, "Avatar URL")).allowSetNull(), "pilot;drone;rwx;rwg;mov");
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.url;
|
|
- } else if (var3 == 2) {
|
|
- this.url = (URL)var4;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[url " + (this.url == null ? "null" : this.url.getRelativeTo((SuperRoot)this) + "]");
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(4, classCookie);
|
|
- super.saveState(var1);
|
|
- URL.save(var1, this.url);
|
|
- var1.saveString(this.description);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- int var2 = var1.restoreVersion(classCookie);
|
|
- switch(var2) {
|
|
- case 0:
|
|
- var1.setOldFlag();
|
|
- this.dialogActionSkipRestore(var1);
|
|
- this.url = URL.restore(var1, ".world");
|
|
- break;
|
|
- case 1:
|
|
- var1.setOldFlag();
|
|
- this.dialogActionSkipRestore(var1);
|
|
- this.url = URL.restore(var1, ".world");
|
|
- this.showDialog = var1.restoreBoolean();
|
|
- break;
|
|
- case 2:
|
|
- this.dialogActionSkipRestore(var1);
|
|
- this.url = URL.restore(var1, ".world");
|
|
- this.showDialog = var1.restoreBoolean();
|
|
- this.cancelOnly = var1.restoreBoolean();
|
|
- break;
|
|
- case 3:
|
|
- case 4:
|
|
- super.restoreState(var1);
|
|
- this.url = URL.restore(var1, ".world");
|
|
- if (var2 >= 4) {
|
|
- this.description = var1.restoreString();
|
|
- }
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
+ URL url = null;
|
|
+ String description;
|
|
+ static String[] avatarAliases = ServerTableManager.instance().getTable("avatarAliases");
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public SelectAvatarAction() {
|
|
+ }
|
|
+
|
|
+ private URL getURLVal() {
|
|
+ URL var1 = this.url;
|
|
+ if (var1 == null) {
|
|
+ SuperRoot var2 = this.getOwner();
|
|
+ if (var2 instanceof Drone) {
|
|
+ var1 = ((Drone)var2).getSourceURL();
|
|
+ } else if (var2 instanceof PosableShape) {
|
|
+ var1 = ((Shape)var2).getURL();
|
|
+ } else if (var2 instanceof Hologram) {
|
|
+ var1 = ((Hologram)var2).getMovieName();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ public void doIt() {
|
|
+ Console var1 = Console.getActive();
|
|
+ URL var2 = this.getURLVal();
|
|
+ if (var1 != null && var2 != null) {
|
|
+ var1.setAvatar(var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public PolledDialog getDialog() {
|
|
+ URL var1 = this.getURLVal();
|
|
+ if (!Console.getActive().getVIPAvatars() && var1.getInternal().toLowerCase().endsWith(".rwg")) {
|
|
+ return new OkCancelDialog(Console.getFrame(), this, Console.message("Cant-change-AV"), Console.message("OK"), (String)null, Console.message("Only-VIPs-change"), false);
|
|
+ } else {
|
|
+ String var2 = this.description;
|
|
+ if (var2 == null || var2.length() == 0) {
|
|
+ var2 = getPrettyAvatarName(var1.getBase());
|
|
+ }
|
|
+
|
|
+ return new ChangeAvatarDialog(Console.getFrame(), this, var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static String getPrettyAvatarName(String var0) {
|
|
+ int var1 = var0.indexOf(46);
|
|
+ if (var1 >= 1) {
|
|
+ var0 = var0.substring(0, var1).toLowerCase();
|
|
+ } else {
|
|
+ var0 = var0.toLowerCase();
|
|
+ }
|
|
+
|
|
+ for(int var2 = 0; var2 < avatarAliases.length; var2 += 2) {
|
|
+ if (avatarAliases[var2].equals(var0)) {
|
|
+ return avatarAliases[var2 + 1];
|
|
+ }
|
|
+ }
|
|
+
|
|
+ String var3 = var0.substring(0, 1).toUpperCase();
|
|
+ if (var0.length() > 1) {
|
|
+ var3 = var3 + var0.substring(1);
|
|
+ }
|
|
+
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ URL var3 = this.getURLVal();
|
|
+ return var3 == null ? null : super.trigger(var1, var2);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make((new Property(this, var1, "Avatar URL")).allowSetNull(), "pilot;drone;rwx;rwg;mov");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.url;
|
|
+ } else if (var3 == 2) {
|
|
+ this.url = (URL)var4;
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[url " + (this.url == null ? "null" : this.url.getRelativeTo(this) + "]");
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(4, classCookie);
|
|
+ super.saveState(var1);
|
|
+ URL.save(var1, this.url);
|
|
+ var1.saveString(this.description);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ var1.setOldFlag();
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ break;
|
|
+ case 1:
|
|
+ var1.setOldFlag();
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ this.showDialog = var1.restoreBoolean();
|
|
+ break;
|
|
+ case 2:
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ this.showDialog = var1.restoreBoolean();
|
|
+ this.cancelOnly = var1.restoreBoolean();
|
|
+ break;
|
|
+ case 3:
|
|
+ case 4:
|
|
+ super.restoreState(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ if (var2 >= 4) {
|
|
+ this.description = var1.restoreString();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/scape/SuperRoot.java b/1904/NET/worlds/scape/SuperRoot.java
|
|
--- a/1904/NET/worlds/scape/SuperRoot.java 2020-08-06 15:46:10.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/SuperRoot.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -41,7 +41,7 @@
|
|
SuperRoot var4 = (SuperRoot)var3.nextElement();
|
|
if (var4.name != null && var4.name.startsWith(var2)) {
|
|
try {
|
|
- int var5 = Integer.valueOf(var4.name.substring(var2.length()));
|
|
+ int var5 = Integer.valueOf(var4.name.substring(var2.length())).intValue();
|
|
if (var5 > var1) {
|
|
var1 = var5;
|
|
}
|
|
@@ -122,12 +122,7 @@
|
|
this.setName((String)null);
|
|
} else if (var3 == 2) {
|
|
String var6 = (String)var4;
|
|
- if (!var6.equals(this.name) && this.owner != null && nameSearch(this.getRoot().getDeepOwned(), var6) != null) {
|
|
- Object[] var7 = new Object[]{new String(var6), new String(this.getRoot().getName())};
|
|
- Console.println(MessageFormat.format(Console.message("Name-in-use"), var7));
|
|
- } else {
|
|
- this.setName((String)var4);
|
|
- }
|
|
+ this.setName((String)var4);
|
|
}
|
|
break;
|
|
case 1:
|
|
@@ -350,7 +345,7 @@
|
|
Integer var2 = (Integer)finalizedClasses.get(var1);
|
|
int var3 = 0;
|
|
if (var2 != null) {
|
|
- var3 = var2;
|
|
+ var3 = var2.intValue();
|
|
}
|
|
|
|
++var3;
|
|
@@ -370,7 +365,7 @@
|
|
Integer var3 = (Integer)classCounter.get(var2);
|
|
int var4 = 0;
|
|
if (var3 != null) {
|
|
- var4 = var3;
|
|
+ var4 = var3.intValue();
|
|
}
|
|
|
|
var4 += var1;
|
|
diff -ruN a/1904/NET/worlds/scape/TalkAction.java b/1904/NET/worlds/scape/TalkAction.java
|
|
--- a/1904/NET/worlds/scape/TalkAction.java 2020-08-06 15:46:10.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/TalkAction.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -1,61 +1,64 @@
|
|
package NET.worlds.scape;
|
|
|
|
+import NET.worlds.console.Console;
|
|
+import NET.worlds.core.IniFile;
|
|
+
|
|
import java.io.IOException;
|
|
|
|
public class TalkAction extends Action {
|
|
- String txt = null;
|
|
- private static Object classCookie = new Object();
|
|
+ String txt = null;
|
|
+ private static final Object classCookie = new Object();
|
|
|
|
- public TalkAction() {
|
|
- }
|
|
+ public TalkAction() {
|
|
+ }
|
|
|
|
- public TalkAction(String var1) {
|
|
- this.txt = var1;
|
|
- }
|
|
-
|
|
- public Persister trigger(Event var1, Persister var2) {
|
|
- Pilot.getActive();
|
|
- Pilot.sendText(this.txt);
|
|
- return null;
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.txt;
|
|
- } else if (var3 == 2) {
|
|
- this.txt = (String)var4;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(0, classCookie);
|
|
- super.saveState(var1);
|
|
- var1.saveString(this.txt);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- switch(var1.restoreVersion(classCookie)) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- this.txt = var1.restoreString();
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[" + this.txt + "]";
|
|
- }
|
|
+ public TalkAction(String var1) {
|
|
+ this.txt = var1;
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (IniFile.gamma().getIniInt("DisableTalkAction", 1) == 1) {
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) Pilot.getActive().console.printLine(Console.getActive().getLongID() + ": " + this.txt);
|
|
+ else Pilot.getActive().console.printLine("<b> " + Console.getActive().getLongID() + ": </b> <color=darkgray> " + this.txt + " </color>");
|
|
+ } else {
|
|
+ Pilot.sendText(this.txt);
|
|
+ }
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ if (var1 - var2 == 0) {
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.txt;
|
|
+ } else if (var3 == 2) {
|
|
+ this.txt = (String) var4;
|
|
+ }
|
|
+ } else {
|
|
+ var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.saveString(this.txt);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ if (var1.restoreVersion(classCookie) == 0) {
|
|
+ super.restoreState(var1);
|
|
+ this.txt = var1.restoreString();
|
|
+ return;
|
|
+ }
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[" + this.txt + "]";
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/scape/TarredDrone.java b/1904/NET/worlds/scape/TarredDrone.java
|
|
--- a/1904/NET/worlds/scape/TarredDrone.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worlds/scape/TarredDrone.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -0,0 +1,44 @@
|
|
+package NET.worlds.scape;
|
|
+
|
|
+import NET.worlds.console.HiddenDrone;
|
|
+import NET.worlds.network.ObjID;
|
|
+import NET.worlds.network.URL;
|
|
+import NET.worlds.network.WorldServer;
|
|
+import java.io.IOException;
|
|
+
|
|
+public class TarredDrone extends Drone implements HiddenDrone {
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public TarredDrone(ObjID var1, WorldServer var2, URL var3) {
|
|
+ super(var1, var2);
|
|
+ this.setSourceURL(var3);
|
|
+ }
|
|
+
|
|
+ public TarredDrone() {
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (this.shouldBeTarred()) {
|
|
+ this.setSourceURL(URL.make("avatar:holden.mov"));
|
|
+ return this;
|
|
+ } else {
|
|
+ return super.setAvatarNow(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(1, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worlds/scape/TeleportAction.java b/1904/NET/worlds/scape/TeleportAction.java
|
|
--- a/1904/NET/worlds/scape/TeleportAction.java 2020-08-06 15:46:10.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/TeleportAction.java 2023-08-21 23:27:16.000000000 -0500
|
|
@@ -1,547 +1,542 @@
|
|
package NET.worlds.scape;
|
|
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.DialogReceiver;
|
|
-import NET.worlds.console.GammaFrame;
|
|
-import NET.worlds.console.Main;
|
|
-import NET.worlds.console.MainCallback;
|
|
-import NET.worlds.console.WorldsMarkPart;
|
|
-import NET.worlds.core.Debug;
|
|
+import NET.worlds.console.*;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.network.NetUpdate;
|
|
import NET.worlds.network.URL;
|
|
+
|
|
import java.io.IOException;
|
|
import java.net.MalformedURLException;
|
|
import java.text.MessageFormat;
|
|
|
|
public class TeleportAction extends Action implements LoadedURLSelf, MainCallback, DialogReceiver {
|
|
- private Point3 targetCoords = new Point3();
|
|
- private float targetRot = 0.0F;
|
|
- private Point3 targetAxis = new Point3(0.0F, 0.0F, -1.0F);
|
|
- private String targetRoomName = null;
|
|
- private String targetDimension = null;
|
|
- private URL targetWorldURL = null;
|
|
- private boolean useDefCoordinates = false;
|
|
- private boolean done = false;
|
|
- private boolean showDialog = true;
|
|
- private boolean forceWorldLoad = false;
|
|
- private boolean forceNoWorldLoad = false;
|
|
- private String targetURL;
|
|
- private static TeleportAction activeTeleport = null;
|
|
- private TeleportDialog dialog = null;
|
|
- private TeleportStatus doneCallback;
|
|
- String tempParseStr;
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- public TeleportAction() {
|
|
- }
|
|
-
|
|
- public Persister trigger(Event var1, Persister var2) {
|
|
- if (activeTeleport != this) {
|
|
- this.targetURL = this.asURL();
|
|
- this.startTeleport();
|
|
- }
|
|
-
|
|
- return !this.done && activeTeleport != this ? this : null;
|
|
- }
|
|
-
|
|
- public void stopLoading() {
|
|
- this.done = true;
|
|
- if (activeTeleport == this) {
|
|
- this.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isTeleporting() {
|
|
- return activeTeleport != null;
|
|
- }
|
|
-
|
|
- public static void teleport(String var0, TeleportStatus var1) {
|
|
- TeleportAction var2 = new TeleportAction(var0, var1);
|
|
- if (Main.isMainThread()) {
|
|
- var2.startTeleport();
|
|
- } else {
|
|
- Main.register(var2);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void teleport(String var0, TeleportStatus var1, boolean var2) {
|
|
- TeleportAction var3 = new TeleportAction(var0, var1);
|
|
- var3.forceWorldLoad = var2;
|
|
- var3.forceNoWorldLoad = !var2;
|
|
- if (Main.isMainThread()) {
|
|
- var3.startTeleport();
|
|
- } else {
|
|
- Main.register(var3);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void teleport(String var0, TeleportStatus var1, boolean var2, boolean var3) {
|
|
- TeleportAction var4 = new TeleportAction(var0, var1);
|
|
- var4.showDialog = var3;
|
|
- var4.forceWorldLoad = var2;
|
|
- var4.forceNoWorldLoad = !var2;
|
|
- if (Main.isMainThread()) {
|
|
- var4.startTeleport();
|
|
- } else {
|
|
- Main.register(var4);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void mainCallback() {
|
|
- Main.unregister(this);
|
|
- this.startTeleport();
|
|
- }
|
|
-
|
|
- public static String toURLString(String var0) {
|
|
- if (var0 == null || var0.equals("world:")) {
|
|
- var0 = WorldsMarkPart.getFirstSystemMarkURL();
|
|
- }
|
|
-
|
|
- if (var0 == null) {
|
|
- var0 = "home:NewWorld.world";
|
|
- }
|
|
-
|
|
- if (var0.startsWith("world:")) {
|
|
- if (var0.equals("world:restart")) {
|
|
- var0 = IniFile.gamma().getIniString("RestartAt", WorldsMarkPart.getFirstSystemMarkURL());
|
|
- } else if (var0.equals("world:store")) {
|
|
- var0 = World.getHomeStore().getAbsolute();
|
|
- } else {
|
|
- var0 = var0.substring(6);
|
|
- }
|
|
-
|
|
- int var1 = var0.indexOf(".world?");
|
|
- if (var1 >= 0) {
|
|
- var0 = var0.substring(0, var1) + ".world#" + var0.substring(var1 + 7);
|
|
- }
|
|
- }
|
|
-
|
|
- if (var0.indexOf(58) < 0) {
|
|
- if (var0.indexOf(47) < 0 && var0.indexOf(92) < 0 && !var0.endsWith(".world")) {
|
|
- var0 = "home:" + var0 + "/" + var0 + ".world";
|
|
- } else {
|
|
- var0 = "file:" + var0;
|
|
- }
|
|
- }
|
|
-
|
|
- return var0;
|
|
- }
|
|
-
|
|
- private TeleportAction(String var1, TeleportStatus var2) {
|
|
- this.doneCallback = var2;
|
|
- this.targetURL = toURLString(var1);
|
|
- var1 = this.setFromURL(this.targetURL);
|
|
-
|
|
- try {
|
|
- if (this.targetURL.startsWith("http://")) {
|
|
- this.targetWorldURL = new URL(var1);
|
|
- } else {
|
|
- this.targetWorldURL = new URL(URL.getCurDir(), URL.maybeAddExt(var1, ".world"));
|
|
- }
|
|
- } catch (MalformedURLException var4) {
|
|
- this.targetWorldURL = URL.make("error:\"" + var1 + '"');
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private float getNextFloat(float var1) {
|
|
- String var2 = this.tempParseStr;
|
|
- int var3 = this.tempParseStr.indexOf(44);
|
|
- if (var3 == -1) {
|
|
- var3 = this.tempParseStr.length();
|
|
- this.tempParseStr = "";
|
|
- } else {
|
|
- this.tempParseStr = this.tempParseStr.substring(var3 + 1);
|
|
- }
|
|
-
|
|
- try {
|
|
- return Float.valueOf(var2.substring(0, var3));
|
|
- } catch (NumberFormatException var5) {
|
|
- return var1;
|
|
- }
|
|
- }
|
|
-
|
|
- private String setFromURL(String var1) {
|
|
- this.useDefCoordinates = true;
|
|
- int var2 = var1.lastIndexOf(35);
|
|
- int var4;
|
|
- if (var2 >= 0) {
|
|
- String var3 = var1.substring(var2 + 1);
|
|
- var1 = var1.substring(0, var2);
|
|
- var4 = var3.lastIndexOf(64);
|
|
- if (var4 < 0) {
|
|
- this.targetRoomName = var3;
|
|
- } else {
|
|
- this.useDefCoordinates = false;
|
|
- this.targetRoomName = var3.substring(0, var4);
|
|
- this.tempParseStr = var3.substring(var4 + 1);
|
|
- this.targetCoords.x = this.getNextFloat(this.targetCoords.x);
|
|
- this.targetCoords.y = this.getNextFloat(this.targetCoords.y);
|
|
- this.targetCoords.z = this.getNextFloat(this.targetCoords.z);
|
|
- this.targetRot = this.getNextFloat(this.targetRot);
|
|
- this.targetAxis.x = this.getNextFloat(this.targetAxis.x);
|
|
- this.targetAxis.y = this.getNextFloat(this.targetAxis.y);
|
|
- this.targetAxis.z = this.getNextFloat(this.targetAxis.z);
|
|
- this.tempParseStr = null;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.targetRoomName != null) {
|
|
- int var5 = this.targetRoomName.lastIndexOf(62);
|
|
- var4 = this.targetRoomName.lastIndexOf(60);
|
|
- if (var5 + 1 == this.targetRoomName.length() && var4 >= 0) {
|
|
- this.targetDimension = this.targetRoomName.substring(var4 + 1, var5);
|
|
- this.targetRoomName = this.targetRoomName.substring(0, var4);
|
|
- }
|
|
- }
|
|
-
|
|
- return var1;
|
|
- }
|
|
-
|
|
- private void makeTeleportDialog(URL var1) {
|
|
- if (this.showDialog) {
|
|
- GammaFrame var2 = Console.getFrame();
|
|
- if (var2 != null && var2.isShowing()) {
|
|
- this.dialog = new TeleportDialog(var2, this);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void startTeleport() {
|
|
- if (activeTeleport != null) {
|
|
- if (activeTeleport.doneCallback != null) {
|
|
- activeTeleport.doneCallback.teleportStatus("overridden by new teleport", activeTeleport.targetURL);
|
|
- }
|
|
-
|
|
- activeTeleport.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- activeTeleport = this;
|
|
- Console.setFreezeFrameEvents(true);
|
|
- this.done = false;
|
|
- Console.teleportNotification("", this.targetURL);
|
|
- if (this.targetWorldURL != null) {
|
|
- this.makeTeleportDialog(this.targetWorldURL);
|
|
- World.load(this.targetWorldURL, this, this.forceWorldLoad);
|
|
- } else {
|
|
- Pilot var1 = Pilot.getActive();
|
|
- World var2;
|
|
- if (var1 != null && (var2 = var1.getWorld()) != null) {
|
|
- this.makeTeleportDialog(var2.getSourceURL());
|
|
- this.loadedURLSelf(var2, this.targetWorldURL, (String)null);
|
|
- } else {
|
|
- this.stopTeleport("Pilot not in a room for intraworld teleport");
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private Room stopTeleport(String var1) {
|
|
- Debug.assert(this == activeTeleport);
|
|
- this.done = true;
|
|
- activeTeleport = null;
|
|
- Console.setFreezeFrameEvents(false);
|
|
- if (this.doneCallback != null) {
|
|
- this.doneCallback.teleportStatus(var1, this.targetURL);
|
|
- }
|
|
-
|
|
- if (var1 != null && !this.forceNoWorldLoad) {
|
|
- Console.teleportNotification(var1, this.targetURL);
|
|
- Console.println(var1);
|
|
- }
|
|
-
|
|
- if (this.dialog != null) {
|
|
- this.dialog.closeIt(true);
|
|
- this.dialog = null;
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public synchronized void dialogDone(Object var1, boolean var2) {
|
|
- if (activeTeleport != null) {
|
|
- activeTeleport.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static String getReadableNameOfWorld(URL var0) {
|
|
- String var1 = var0.getAbsolute();
|
|
- String var2 = var1;
|
|
- String var3 = null;
|
|
- if (var1.startsWith("home:") && var1.length() > 6) {
|
|
- var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
- int var4 = var2.indexOf(47);
|
|
- if (var4 > 0) {
|
|
- var3 = var2.substring(0, var4);
|
|
- if (var2.regionMatches(true, var4 + 1, var2, 0, var4)) {
|
|
- var2 = var3;
|
|
- String var5 = WorldsMarkPart.getExternalName(var3);
|
|
- if (var5 != null) {
|
|
- var2 = var5;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- int var6 = var2.indexOf(".world");
|
|
- if (var6 > 0) {
|
|
- var2 = var2.substring(0, var6);
|
|
- }
|
|
-
|
|
- var2 = "the " + var2 + " world";
|
|
- }
|
|
-
|
|
- return var2;
|
|
- }
|
|
-
|
|
- public static String getPackageNameOfWorld(URL var0) {
|
|
- String var1 = var0.getAbsolute();
|
|
- String var3 = null;
|
|
- if (var1.startsWith("home:") && var1.length() > 6) {
|
|
- String var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
- int var4 = var2.indexOf(47);
|
|
- if (var4 > 0) {
|
|
- var3 = var2.substring(0, var4);
|
|
- }
|
|
- }
|
|
-
|
|
- return var3;
|
|
- }
|
|
-
|
|
- public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
- if (activeTeleport != this) {
|
|
- if (var1 != null) {
|
|
- var1.decRef();
|
|
- }
|
|
-
|
|
- } else {
|
|
- String var4;
|
|
- if (var3 == null && var1 instanceof World) {
|
|
- var4 = this.targetRoomName;
|
|
- if (var4 == null) {
|
|
- var4 = ((World)var1).getDefaultRoomName();
|
|
- }
|
|
-
|
|
- Room var7 = ((World)var1).getRoom(var4);
|
|
- if (var7 == null) {
|
|
- this.stopTeleport("Error finding room " + this.targetRoomName);
|
|
- } else if (var7.getVIPOnly() && !((World)var1).getConsole().getVIP()) {
|
|
- this.stopTeleport("Only VIPs may go there.");
|
|
- if (this.forceNoWorldLoad) {
|
|
- Console.println(Console.message("Only-VIPs-there"));
|
|
- }
|
|
+ private Point3 targetCoords = new Point3();
|
|
+ private float targetRot = 0.0F;
|
|
+ private Point3 targetAxis = new Point3(0.0F, 0.0F, -1.0F);
|
|
+ private String targetRoomName = null;
|
|
+ private String targetDimension = null;
|
|
+ private URL targetWorldURL = null;
|
|
+ private boolean useDefCoordinates = false;
|
|
+ private boolean done = false;
|
|
+ private boolean showDialog = true;
|
|
+ private boolean forceWorldLoad = false;
|
|
+ private boolean forceNoWorldLoad = false;
|
|
+ private String targetURL;
|
|
+ private static TeleportAction activeTeleport = null;
|
|
+ private TeleportDialog dialog = null;
|
|
+ private TeleportStatus doneCallback;
|
|
+ String tempParseStr;
|
|
+ private static final Object classCookie = new Object();
|
|
+
|
|
+ public TeleportAction() {
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (activeTeleport != this) {
|
|
+ this.targetURL = this.asURL();
|
|
+ this.startTeleport();
|
|
+ }
|
|
+
|
|
+ return !this.done && activeTeleport != this ? this : null;
|
|
+ }
|
|
+
|
|
+ public void stopLoading() {
|
|
+ this.done = true;
|
|
+ if (activeTeleport == this) {
|
|
+ this.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean isTeleporting() {
|
|
+ return activeTeleport != null;
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1) {
|
|
+ TeleportAction var2 = new TeleportAction(var0, var1);
|
|
+ if (Main.isMainThread()) {
|
|
+ var2.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1, boolean var2) {
|
|
+ TeleportAction var3 = new TeleportAction(var0, var1);
|
|
+ var3.forceWorldLoad = var2;
|
|
+ var3.forceNoWorldLoad = !var2;
|
|
+ if (Main.isMainThread()) {
|
|
+ var3.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var3);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1, boolean var2, boolean var3) {
|
|
+ TeleportAction var4 = new TeleportAction(var0, var1);
|
|
+ var4.showDialog = var3;
|
|
+ var4.forceWorldLoad = var2;
|
|
+ var4.forceNoWorldLoad = !var2;
|
|
+ if (Main.isMainThread()) {
|
|
+ var4.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var4);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ Main.unregister(this);
|
|
+ this.startTeleport();
|
|
+ }
|
|
+
|
|
+ public static String toURLString(String var0) {
|
|
+ if (var0 == null || var0.equals("world:")) {
|
|
+ var0 = WorldsMarkPart.getFirstSystemMarkURL();
|
|
+ }
|
|
+
|
|
+ if (var0 == null) {
|
|
+ var0 = "home:NewWorld.world";
|
|
+ }
|
|
+
|
|
+ if (var0.startsWith("world:")) {
|
|
+ if (var0.equals("world:restart")) {
|
|
+ var0 = IniFile.gamma().getIniString("RestartAt", WorldsMarkPart.getFirstSystemMarkURL());
|
|
+ } else if (var0.equals("world:store")) {
|
|
+ var0 = World.getHomeStore().getAbsolute();
|
|
+ } else {
|
|
+ var0 = var0.substring(6);
|
|
+ }
|
|
+
|
|
+ int var1 = var0.indexOf(".world?");
|
|
+ if (var1 >= 0) {
|
|
+ var0 = var0.substring(0, var1) + ".world#" + var0.substring(var1 + 7);
|
|
+ }
|
|
+ }
|
|
|
|
+ if (var0.indexOf(58) < 0) {
|
|
+ if (var0.indexOf(47) < 0 && var0.indexOf(92) < 0 && !var0.endsWith(".world")) {
|
|
+ var0 = "home:" + var0 + "/" + var0 + ".world";
|
|
} else {
|
|
- Console.teleportNotification((String)null, this.targetURL);
|
|
- Pilot var8 = Pilot.changeActiveRoom(var7);
|
|
- if (this.targetDimension != null) {
|
|
- var8.changeChannel(this.targetDimension);
|
|
- }
|
|
-
|
|
- var8.makeIdentity();
|
|
- if (this.useDefCoordinates) {
|
|
- var8.moveTo(var7.getDefaultPosition()).spin(var7.getDefaultOrientationAxis(), var7.getDefaultOrientation());
|
|
- } else {
|
|
- var8.moveTo(this.targetCoords).spin(this.targetAxis, this.targetRot);
|
|
- }
|
|
-
|
|
- this.stopTeleport((String)null);
|
|
- }
|
|
- } else {
|
|
- if (var3 == null) {
|
|
- var3 = "file " + var2 + " doesn't contain a World";
|
|
- var1.decRef();
|
|
- }
|
|
-
|
|
- var4 = getReadableNameOfWorld(var2);
|
|
- String var5 = getPackageNameOfWorld(var2);
|
|
- Object[] var6 = new Object[]{new String(var4)};
|
|
- this.stopTeleport(MessageFormat.format(Console.message("cant-teleport"), var6));
|
|
- if (var5 != null && !this.forceNoWorldLoad) {
|
|
- NetUpdate.loadWorld(var5, this.forceWorldLoad);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
- Object var5 = null;
|
|
- switch(var1 - var2) {
|
|
- case 0:
|
|
- if (var3 == 0) {
|
|
- var5 = Point3PropertyEditor.make(new Property(this, var1, "X, Y, Z"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Point3(this.targetCoords);
|
|
- } else if (var3 == 2) {
|
|
- this.targetCoords.copy((Point3)var4);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (var3 == 0) {
|
|
- var5 = FloatPropertyEditor.make(new Property(this, var1, "Dir"));
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Float(this.targetRot);
|
|
- } else if (var3 == 2) {
|
|
- this.targetRot = (Float)var4;
|
|
- }
|
|
- break;
|
|
- case 2:
|
|
- if (var3 == 0) {
|
|
- var5 = StringPropertyEditor.make((new Property(this, var1, "Room Name")).allowSetNull());
|
|
- } else if (var3 == 1) {
|
|
- if (this.targetRoomName == null) {
|
|
- var5 = "";
|
|
+ var0 = "file:" + var0;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var0;
|
|
+ }
|
|
+
|
|
+ private TeleportAction(String var1, TeleportStatus var2) {
|
|
+ this.doneCallback = var2;
|
|
+ this.targetURL = toURLString(var1);
|
|
+ var1 = this.setFromURL(this.targetURL);
|
|
+
|
|
+ try {
|
|
+ if (this.targetURL.startsWith("http://") || this.targetURL.startsWith("https://")) {
|
|
+ this.targetWorldURL = new URL(var1);
|
|
+ } else {
|
|
+ this.targetWorldURL = new URL(URL.getCurDir(), URL.maybeAddExt(var1, ".world"));
|
|
+ }
|
|
+ } catch (MalformedURLException var4) {
|
|
+ this.targetWorldURL = URL.make("error:\"" + var1 + '"');
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private float getNextFloat(float var1) {
|
|
+ String var2 = this.tempParseStr;
|
|
+ int var3 = this.tempParseStr.indexOf(44);
|
|
+ if (var3 == -1) {
|
|
+ var3 = this.tempParseStr.length();
|
|
+ this.tempParseStr = "";
|
|
+ } else {
|
|
+ this.tempParseStr = this.tempParseStr.substring(var3 + 1);
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ return Float.valueOf(var2.substring(0, var3)).floatValue();
|
|
+ } catch (NumberFormatException var5) {
|
|
+ return var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private String setFromURL(String var1) {
|
|
+ this.useDefCoordinates = true;
|
|
+ int var2 = var1.lastIndexOf(35);
|
|
+ int var4;
|
|
+ if (var2 >= 0) {
|
|
+ String var3 = var1.substring(var2 + 1);
|
|
+ var1 = var1.substring(0, var2);
|
|
+ var4 = var3.lastIndexOf(64);
|
|
+ if (var4 < 0) {
|
|
+ this.targetRoomName = var3;
|
|
} else {
|
|
- var5 = new String(this.targetRoomName);
|
|
+ this.useDefCoordinates = false;
|
|
+ this.targetRoomName = var3.substring(0, var4);
|
|
+ this.tempParseStr = var3.substring(var4 + 1);
|
|
+ this.targetCoords.x = this.getNextFloat(this.targetCoords.x);
|
|
+ this.targetCoords.y = this.getNextFloat(this.targetCoords.y);
|
|
+ this.targetCoords.z = this.getNextFloat(this.targetCoords.z);
|
|
+ this.targetRot = this.getNextFloat(this.targetRot);
|
|
+ this.targetAxis.x = this.getNextFloat(this.targetAxis.x);
|
|
+ this.targetAxis.y = this.getNextFloat(this.targetAxis.y);
|
|
+ this.targetAxis.z = this.getNextFloat(this.targetAxis.z);
|
|
+ this.tempParseStr = null;
|
|
}
|
|
- } else if (var3 == 2) {
|
|
- this.targetRoomName = (String)var4;
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 3:
|
|
- if (var3 == 0) {
|
|
- var5 = URLPropertyEditor.make((new Property(this, var1, "World URL")).allowSetNull(), "world");
|
|
- } else if (var3 == 1) {
|
|
- var5 = this.targetWorldURL;
|
|
- } else if (var3 == 2) {
|
|
- this.targetWorldURL = (URL)var4;
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 4:
|
|
- if (var3 == 0) {
|
|
- var5 = BooleanPropertyEditor.make(new Property(this, var1, "Use default coordinates"), "No", "Yes");
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Boolean(this.useDefCoordinates);
|
|
- } else if (var3 == 2) {
|
|
- this.useDefCoordinates = (Boolean)var4;
|
|
- }
|
|
- break;
|
|
- case 5:
|
|
- if (var3 == 0) {
|
|
- var5 = StringPropertyEditor.make((new Property(this, var1, "Dimension Name")).allowSetNull());
|
|
- } else if (var3 == 1) {
|
|
- if (this.targetDimension == null) {
|
|
- var5 = "";
|
|
+ }
|
|
+
|
|
+ if (this.targetRoomName != null) {
|
|
+ int var5 = this.targetRoomName.lastIndexOf(62);
|
|
+ var4 = this.targetRoomName.lastIndexOf(60);
|
|
+ if (var5 + 1 == this.targetRoomName.length() && var4 >= 0) {
|
|
+ this.targetDimension = this.targetRoomName.substring(var4 + 1, var5);
|
|
+ this.targetRoomName = this.targetRoomName.substring(0, var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ private void makeTeleportDialog(URL var1) {
|
|
+ if (this.showDialog) {
|
|
+ GammaFrame var2 = Console.getFrame();
|
|
+ if (var2 != null && var2.isShowing()) {
|
|
+ this.dialog = new TeleportDialog(var2, this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void startTeleport() {
|
|
+ if (activeTeleport != null) {
|
|
+ if (activeTeleport.doneCallback != null) {
|
|
+ activeTeleport.doneCallback.teleportStatus("overridden by new teleport", activeTeleport.targetURL);
|
|
+ }
|
|
+
|
|
+ activeTeleport.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ activeTeleport = this;
|
|
+ Console.setFreezeFrameEvents(true);
|
|
+ this.done = false;
|
|
+ Console.teleportNotification("", this.targetURL);
|
|
+ if (this.targetWorldURL != null) {
|
|
+ this.makeTeleportDialog(this.targetWorldURL);
|
|
+ World.load(this.targetWorldURL, this, this.forceWorldLoad);
|
|
+ } else {
|
|
+ Pilot var1 = Pilot.getActive();
|
|
+ World var2;
|
|
+ if (var1 != null && (var2 = var1.getWorld()) != null) {
|
|
+ this.makeTeleportDialog(var2.getSourceURL());
|
|
+ this.loadedURLSelf(var2, this.targetWorldURL, (String)null);
|
|
} else {
|
|
- var5 = new String(this.targetDimension);
|
|
+ this.stopTeleport("Pilot not in a room for intraworld teleport");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private Room stopTeleport(String var1) {
|
|
+ assert(this == activeTeleport);
|
|
+ this.done = true;
|
|
+ activeTeleport = null;
|
|
+ Console.setFreezeFrameEvents(false);
|
|
+ if (this.doneCallback != null) {
|
|
+ this.doneCallback.teleportStatus(var1, this.targetURL);
|
|
+ }
|
|
+
|
|
+ if (var1 != null && !this.forceNoWorldLoad) {
|
|
+ Console.teleportNotification(var1, this.targetURL);
|
|
+ Console.println(var1);
|
|
+ }
|
|
+
|
|
+ if (this.dialog != null) {
|
|
+ this.dialog.closeIt(true);
|
|
+ this.dialog = null;
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public synchronized void dialogDone(Object var1, boolean var2) {
|
|
+ if (activeTeleport != null) {
|
|
+ activeTeleport.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static String getReadableNameOfWorld(URL var0) {
|
|
+ String var1 = var0.getAbsolute();
|
|
+ String var2 = var1;
|
|
+ String var3 = null;
|
|
+ if (var1.startsWith("home:") && var1.length() > 6) {
|
|
+ var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
+ int var4 = var2.indexOf(47);
|
|
+ if (var4 > 0) {
|
|
+ var3 = var2.substring(0, var4);
|
|
+ if (var2.regionMatches(true, var4 + 1, var2, 0, var4)) {
|
|
+ var2 = var3;
|
|
+ String var5 = WorldsMarkPart.getExternalName(var3);
|
|
+ if (var5 != null) {
|
|
+ var2 = var5;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ int var6 = var2.indexOf(".world");
|
|
+ if (var6 > 0) {
|
|
+ var2 = var2.substring(0, var6);
|
|
+ }
|
|
+
|
|
+ var2 = "the " + var2 + " world";
|
|
+ }
|
|
+
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ public static String getPackageNameOfWorld(URL var0) {
|
|
+ String var1 = var0.getAbsolute();
|
|
+ String var3 = null;
|
|
+ if (var1.startsWith("home:") && var1.length() > 6) {
|
|
+ String var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
+ int var4 = var2.indexOf(47);
|
|
+ if (var4 > 0) {
|
|
+ var3 = var2.substring(0, var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
+ if (activeTeleport != this) {
|
|
+ if (var1 != null) {
|
|
+ var1.decRef();
|
|
+ }
|
|
+
|
|
+ } else {
|
|
+ String var4;
|
|
+ if (var3 == null && var1 instanceof World) {
|
|
+ var4 = this.targetRoomName;
|
|
+ if (var4 == null) {
|
|
+ var4 = ((World)var1).getDefaultRoomName();
|
|
+ }
|
|
+
|
|
+ Room var7 = ((World)var1).getRoom(var4);
|
|
+ if (var7 == null) {
|
|
+ this.stopTeleport("Error finding room " + this.targetRoomName);
|
|
+ } else if (var7.getVIPOnly() && !((World)var1).getConsole().getVIP()) {
|
|
+ this.stopTeleport("Only VIPs may go there.");
|
|
+ if (this.forceNoWorldLoad) {
|
|
+ Console.println(Console.message("Only-VIPs-there"));
|
|
+ }
|
|
+
|
|
+ } else {
|
|
+ Console.teleportNotification((String)null, this.targetURL);
|
|
+ Pilot var8 = Pilot.changeActiveRoom(var7);
|
|
+ if (this.targetDimension != null) {
|
|
+ var8.changeChannel(this.targetDimension);
|
|
+ }
|
|
+
|
|
+ var8.makeIdentity();
|
|
+ if (this.useDefCoordinates) {
|
|
+ var8.moveTo(var7.getDefaultPosition()).spin(var7.getDefaultOrientationAxis(), var7.getDefaultOrientation());
|
|
+ } else {
|
|
+ var8.moveTo(this.targetCoords).spin(this.targetAxis, this.targetRot);
|
|
+ }
|
|
+
|
|
+ this.stopTeleport((String)null);
|
|
+ }
|
|
+ } else {
|
|
+ if (var3 == null) {
|
|
+ var3 = "file " + var2 + " doesn't contain a World";
|
|
+ var1.decRef();
|
|
+ }
|
|
+
|
|
+ var4 = getReadableNameOfWorld(var2);
|
|
+ String var5 = getPackageNameOfWorld(var2);
|
|
+ Object[] var6 = new Object[]{new String(var4)};
|
|
+ this.stopTeleport(MessageFormat.format(Console.message("cant-teleport"), var6));
|
|
+ if (var5 != null && !this.forceNoWorldLoad) {
|
|
+ NetUpdate.loadWorld(var5, this.forceWorldLoad);
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = Point3PropertyEditor.make(new Property(this, var1, "X, Y, Z"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Point3(this.targetCoords);
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetCoords.copy((Point3)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = FloatPropertyEditor.make(new Property(this, var1, "Dir"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Float(this.targetRot);
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetRot = ((Float)var4).floatValue();
|
|
+ }
|
|
+ break;
|
|
+ case 2:
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make((new Property(this, var1, "Room Name")).allowSetNull());
|
|
+ } else if (var3 == 1) {
|
|
+ if (this.targetRoomName == null) {
|
|
+ var5 = "";
|
|
+ } else {
|
|
+ var5 = new String(this.targetRoomName);
|
|
+ }
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetRoomName = (String)var4;
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 3:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make((new Property(this, var1, "World URL")).allowSetNull(), "world");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.targetWorldURL;
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetWorldURL = (URL)var4;
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 4:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Use default coordinates"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(this.useDefCoordinates);
|
|
+ } else if (var3 == 2) {
|
|
+ this.useDefCoordinates = ((Boolean)var4).booleanValue();
|
|
+ }
|
|
+ break;
|
|
+ case 5:
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make((new Property(this, var1, "Dimension Name")).allowSetNull());
|
|
+ } else if (var3 == 1) {
|
|
+ if (this.targetDimension == null) {
|
|
+ var5 = "";
|
|
+ } else {
|
|
+ var5 = new String(this.targetDimension);
|
|
+ }
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetDimension = (String)var4;
|
|
+ if (this.targetDimension.equals("")) {
|
|
+ this.targetDimension = null;
|
|
+ }
|
|
+
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 6:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Show dialog"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(this.showDialog);
|
|
+ } else if (var3 == 2) {
|
|
+ this.showDialog = ((Boolean)var4).booleanValue();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 7, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(3, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.save(this.targetCoords);
|
|
+ var1.saveFloat(this.targetRot);
|
|
+ var1.save(this.targetAxis);
|
|
+ var1.saveString(this.targetRoomName);
|
|
+ URL.save(var1, this.targetWorldURL);
|
|
+ var1.saveBoolean(this.useDefCoordinates);
|
|
+ var1.saveString(this.targetDimension);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = (float)var1.restoreInt();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = null;
|
|
+ break;
|
|
+ case 1:
|
|
+ case 2:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = var1.restoreFloat();
|
|
+ this.targetAxis = (Point3)var1.restore();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = null;
|
|
+ break;
|
|
+ case 3:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = var1.restoreFloat();
|
|
+ this.targetAxis = (Point3)var1.restore();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = var1.restoreString();
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+
|
|
+ if (var2 < 2 && this.targetAxis.x == 0.0F && this.targetAxis.y == 0.0F && this.targetAxis.z == 1.0F) {
|
|
+ this.targetAxis.z = -1.0F;
|
|
+ this.targetRot = 360.0F - this.targetRot;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[" + this.asURL() + "]";
|
|
+ }
|
|
+
|
|
+ public String asURL() {
|
|
+ String var1;
|
|
+ if (this.targetWorldURL != null) {
|
|
+ var1 = this.targetWorldURL.getRelativeTo(this) + "#";
|
|
+ } else {
|
|
+ var1 = "#";
|
|
+ }
|
|
+
|
|
+ if (this.targetRoomName != null) {
|
|
+ var1 = var1 + this.targetRoomName;
|
|
+ }
|
|
+
|
|
+ if (this.targetDimension != null) {
|
|
+ var1 = var1 + "<" + this.targetDimension + ">";
|
|
+ }
|
|
+
|
|
+ if (!this.useDefCoordinates) {
|
|
+ var1 = var1 + "@" + this.targetCoords + "," + this.targetRot;
|
|
+ if (this.targetAxis.x != 0.0F || this.targetAxis.y != 0.0F || this.targetAxis.z != 1.0F) {
|
|
+ var1 = var1 + "," + this.targetAxis;
|
|
}
|
|
- } else if (var3 == 2) {
|
|
- this.targetDimension = (String)var4;
|
|
- if (this.targetDimension.equals("")) {
|
|
- this.targetDimension = null;
|
|
- }
|
|
-
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 6:
|
|
- if (var3 == 0) {
|
|
- var5 = BooleanPropertyEditor.make(new Property(this, var1, "Show dialog"), "No", "Yes");
|
|
- } else if (var3 == 1) {
|
|
- var5 = new Boolean(this.showDialog);
|
|
- } else if (var3 == 2) {
|
|
- this.showDialog = (Boolean)var4;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- var5 = super.properties(var1, var2 + 7, var3, var4);
|
|
- }
|
|
-
|
|
- return var5;
|
|
- }
|
|
-
|
|
- public void saveState(Saver var1) throws IOException {
|
|
- var1.saveVersion(3, classCookie);
|
|
- super.saveState(var1);
|
|
- var1.save(this.targetCoords);
|
|
- var1.saveFloat(this.targetRot);
|
|
- var1.save(this.targetAxis);
|
|
- var1.saveString(this.targetRoomName);
|
|
- URL.save(var1, this.targetWorldURL);
|
|
- var1.saveBoolean(this.useDefCoordinates);
|
|
- var1.saveString(this.targetDimension);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
- int var2 = var1.restoreVersion(classCookie);
|
|
- switch(var2) {
|
|
- case 0:
|
|
- super.restoreState(var1);
|
|
- this.targetCoords = (Point3)var1.restore();
|
|
- this.targetRot = (float)var1.restoreInt();
|
|
- this.targetRoomName = var1.restoreString();
|
|
- this.targetWorldURL = URL.restore(var1, ".world");
|
|
- this.useDefCoordinates = var1.restoreBoolean();
|
|
- this.targetDimension = null;
|
|
- break;
|
|
- case 1:
|
|
- case 2:
|
|
- super.restoreState(var1);
|
|
- this.targetCoords = (Point3)var1.restore();
|
|
- this.targetRot = var1.restoreFloat();
|
|
- this.targetAxis = (Point3)var1.restore();
|
|
- this.targetRoomName = var1.restoreString();
|
|
- this.targetWorldURL = URL.restore(var1, ".world");
|
|
- this.useDefCoordinates = var1.restoreBoolean();
|
|
- this.targetDimension = null;
|
|
- break;
|
|
- case 3:
|
|
- super.restoreState(var1);
|
|
- this.targetCoords = (Point3)var1.restore();
|
|
- this.targetRot = var1.restoreFloat();
|
|
- this.targetAxis = (Point3)var1.restore();
|
|
- this.targetRoomName = var1.restoreString();
|
|
- this.targetWorldURL = URL.restore(var1, ".world");
|
|
- this.useDefCoordinates = var1.restoreBoolean();
|
|
- this.targetDimension = var1.restoreString();
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
-
|
|
- if (var2 < 2 && this.targetAxis.x == 0.0F && this.targetAxis.y == 0.0F && this.targetAxis.z == 1.0F) {
|
|
- this.targetAxis.z = -1.0F;
|
|
- this.targetRot = 360.0F - this.targetRot;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[" + this.asURL() + "]";
|
|
- }
|
|
-
|
|
- public String asURL() {
|
|
- String var1;
|
|
- if (this.targetWorldURL != null) {
|
|
- var1 = this.targetWorldURL.getRelativeTo((SuperRoot)this) + "#";
|
|
- } else {
|
|
- var1 = "#";
|
|
- }
|
|
-
|
|
- if (this.targetRoomName != null) {
|
|
- var1 = var1 + this.targetRoomName;
|
|
- }
|
|
-
|
|
- if (this.targetDimension != null) {
|
|
- var1 = var1 + "<" + this.targetDimension + ">";
|
|
- }
|
|
-
|
|
- if (!this.useDefCoordinates) {
|
|
- var1 = var1 + "@" + this.targetCoords + "," + this.targetRot;
|
|
- if (this.targetAxis.x != 0.0F || this.targetAxis.y != 0.0F || this.targetAxis.z != 1.0F) {
|
|
- var1 = var1 + "," + this.targetAxis;
|
|
- }
|
|
- }
|
|
+ }
|
|
|
|
- return var1;
|
|
- }
|
|
+ return var1;
|
|
+ }
|
|
}
|
|
diff -ruN a/1904/NET/worlds/scape/TeleportDialog.java b/1904/NET/worlds/scape/TeleportDialog.java
|
|
--- a/1904/NET/worlds/scape/TeleportDialog.java 2020-08-06 15:46:10.000000000 -0500
|
|
+++ b/1904/NET/worlds/scape/TeleportDialog.java 2023-09-10 16:08:46.000000000 -0500
|
|
@@ -6,6 +6,7 @@
|
|
import NET.worlds.console.ImageButtonsCallback;
|
|
import NET.worlds.console.PolledDialog;
|
|
import NET.worlds.core.IniFile;
|
|
+import NET.worldsplus.Themer;
|
|
import java.awt.Component;
|
|
import java.awt.Rectangle;
|
|
import java.awt.Window;
|
|
@@ -16,12 +17,12 @@
|
|
public TeleportDialog(Window var1, DialogReceiver var2) {
|
|
super(var1, var2, Console.message("Teleporting"), true);
|
|
Rectangle[] var3 = new Rectangle[1];
|
|
- int var4 = IniFile.override().getIniInt("teleportCancelX", 61);
|
|
- int var5 = IniFile.override().getIniInt("teleportCancelY", 24);
|
|
- int var6 = IniFile.override().getIniInt("teleportCancelW", 84);
|
|
- int var7 = IniFile.override().getIniInt("teleportCancelH", 20);
|
|
+ int var4 = Themer.override().getIniInt("teleportCancelX", 61);
|
|
+ int var5 = Themer.override().getIniInt("teleportCancelY", 24);
|
|
+ int var6 = Themer.override().getIniInt("teleportCancelW", 84);
|
|
+ int var7 = Themer.override().getIniInt("teleportCancelH", 20);
|
|
var3[0] = new Rectangle(var4, var5, var6, var7);
|
|
- String var8 = IniFile.override().getIniString("teleportDlg", Console.message("hangon.gif"));
|
|
+ String var8 = Themer.themer.asset(Console.message("hangon.gif"));
|
|
this.ib = new ImageButtons(var8, var3, this);
|
|
this.ready();
|
|
}
|
|
diff -ruN a/1904/NET/worldsplus/ChatSaver.java b/1904/NET/worldsplus/ChatSaver.java
|
|
--- a/1904/NET/worldsplus/ChatSaver.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worldsplus/ChatSaver.java 2023-09-10 19:59:14.000000000 -0500
|
|
@@ -0,0 +1,71 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import NET.worlds.console.Console;
|
|
+import NET.worlds.core.IniFile;
|
|
+import NET.worlds.network.URL;
|
|
+import NET.worlds.scape.Pilot;
|
|
+
|
|
+import java.io.File;
|
|
+import java.io.FileWriter;
|
|
+import java.io.IOException;
|
|
+import java.text.SimpleDateFormat;
|
|
+import java.util.Arrays;
|
|
+import java.util.Date;
|
|
+import java.util.Vector;
|
|
+
|
|
+public class ChatSaver {
|
|
+
|
|
+ public static ChatSaver chatSaver;
|
|
+ private final static String folder = IniFile.modChatLog().getIniString("Location", "home:chats");
|
|
+ private final boolean enabled = IniFile.gamma().getIniInt("EnableChatLog", 1) == 1;
|
|
+ public static Vector chatBlacklist = parseChatBlacklist();
|
|
+
|
|
+ public ChatSaver() {
|
|
+ if (chatSaver == null) {
|
|
+ System.out.println("Initialized ChatSaver module...");
|
|
+ if (enabled) {
|
|
+ File fold = new File(URL.make(folder).unalias());
|
|
+ assert fold.exists() || fold.mkdir();
|
|
+ }
|
|
+ chatSaver = this;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private FileWriter grabWriter(String name) throws IOException {
|
|
+ String cname = stripInvalid(name);
|
|
+ File log = new File(URL.make(folder + "/" + cname + ".log").unalias());
|
|
+ assert log.exists() || log.createNewFile();
|
|
+ return new FileWriter(log, true);
|
|
+ }
|
|
+
|
|
+ private void save(String name, String from, String message) throws IOException {
|
|
+ if (enabled && !chatBlacklist.contains(name)) {
|
|
+ FileWriter writer = grabWriter(name);
|
|
+ writer.write("[" + getCurrentDate() + "] " + from + ": " + message);
|
|
+ writer.write(System.getProperty("line.separator"));
|
|
+ writer.close();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveRoom(String user, String message) throws IOException {
|
|
+ save(Pilot.getActiveRoom().toString(), user, message);
|
|
+ }
|
|
+
|
|
+ public void saveWhisper(String from, String to, String message) throws IOException {
|
|
+ save(from.equals(Console.getActive().getLongID()) ? to : from, from, message);
|
|
+ }
|
|
+
|
|
+ public String getCurrentDate() {
|
|
+ return new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date());
|
|
+ }
|
|
+
|
|
+ private static String stripInvalid(String s) {
|
|
+ return s.replaceAll("/(<[a-zA-Z0-9-_]+>)/i", "");
|
|
+ }
|
|
+
|
|
+ private static Vector parseChatBlacklist() {
|
|
+ String s = IniFile.modChatLog().getIniString("ChatBlacklist", "WORLDSMASTER,trade");
|
|
+ String[] s1 = s.split(",");
|
|
+ return new Vector(Arrays.asList(s1));
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worldsplus/IniUpdater.java b/1904/NET/worldsplus/IniUpdater.java
|
|
--- a/1904/NET/worldsplus/IniUpdater.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worldsplus/IniUpdater.java 2023-09-24 20:46:24.000000000 -0500
|
|
@@ -0,0 +1,37 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import NET.worlds.core.IniFile;
|
|
+
|
|
+public class IniUpdater {
|
|
+
|
|
+ private final int releaseVer = 12;
|
|
+ private final int currentVer = IniFile.modPlus().getIniInt("IniVersion", 11);
|
|
+
|
|
+ public IniUpdater() {
|
|
+ if (currentVer < releaseVer && currentVer != -1) {
|
|
+ switch (currentVer) {
|
|
+ case 11:
|
|
+ // Assuming we are updating from pre-1.7
|
|
+ IniFile oldPlus = IniFile.ini("Modules");
|
|
+ IniFile.gamma().setIniInt("DisableTalkAction", oldPlus.getIniInt("DisableTalkAction", 1));
|
|
+ IniFile.gamma().setIniInt("DisableAction2", oldPlus.getIniInt("DisableAction2", 1));
|
|
+ IniFile.gamma().setIniInt("AllowSleep", oldPlus.getIniInt("AllowSleep", 1));
|
|
+ IniFile.gamma().setIniInt("ColorfulTags", oldPlus.getIniInt("ColorfulTags", 0));
|
|
+ IniFile.gamma().setIniInt("EnableChatLog", oldPlus.getIniInt("LogChats", 1));
|
|
+ IniFile.modChatLog().setIniString("Location", oldPlus.getIniString("ChatFolder", "home:chats"));
|
|
+ IniFile oldFriendly = IniFile.ini("Friendly");
|
|
+ IniFile.modPrivacy().setIniInt("WhisperFeedback", oldFriendly.getIniInt("WhisperFeedback", 1));
|
|
+ IniFile.modPrivacy().setIniInt("TeleportFeedback", oldFriendly.getIniInt("TeleportFeedback", 1));
|
|
+ IniFile.modPrivacy().setIniInt("WhisperResponse", oldFriendly.getIniInt("WhisperResponse", 1));
|
|
+ IniFile.modPrivacy().setIniInt("TeleportResponse", oldFriendly.getIniInt("TeleportResponse", 0));
|
|
+ IniFile.modPrivacy().setIniInt("ShowStatusUpdate", oldFriendly.getIniInt("ShowStatusUpdate", 0));
|
|
+ IniFile.modPrivacy().setIniInt("WhisperPrivacy", IniFile.gamma().getIniInt("WhisperPrivacy", 0));
|
|
+ IniFile.modPrivacy().setIniInt("TeleportPrivacy", IniFile.gamma().getIniInt("TeleportPrivacy", 0));
|
|
+ break;
|
|
+ default:
|
|
+ break;
|
|
+ }
|
|
+ IniFile.modPlus().setIniInt("IniVersion", releaseVer);
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worldsplus/MumbleLink.java b/1904/NET/worldsplus/MumbleLink.java
|
|
--- a/1904/NET/worldsplus/MumbleLink.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worldsplus/MumbleLink.java 2023-08-21 23:27:18.000000000 -0500
|
|
@@ -0,0 +1,15 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import java.net.MalformedURLException;
|
|
+
|
|
+public class MumbleLink {
|
|
+
|
|
+ public MumbleLink() throws MalformedURLException {
|
|
+ initMumble();
|
|
+ }
|
|
+
|
|
+ private native void initMumble();
|
|
+
|
|
+ public native void updateMumble(String name, float posX, float posY, float posZ, float camX, float camY, float camZ, float direction);
|
|
+
|
|
+}
|
|
diff -ruN a/1904/NET/worldsplus/Themer.java b/1904/NET/worldsplus/Themer.java
|
|
--- a/1904/NET/worldsplus/Themer.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worldsplus/Themer.java 2023-09-10 19:13:02.000000000 -0500
|
|
@@ -0,0 +1,51 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import java.io.File;
|
|
+import java.io.IOException;
|
|
+import java.util.Vector;
|
|
+import NET.worlds.core.IniFile;
|
|
+
|
|
+public class Themer {
|
|
+ public static Themer themer;
|
|
+ private static File themedir = null;
|
|
+ private final String theme = IniFile.gamma().getIniString("InterfaceTheme", "");
|
|
+ private static IniFile override = null;
|
|
+
|
|
+ public Themer() {
|
|
+ if (themer == null) {
|
|
+ System.out.println("Initialized Themer module...");
|
|
+ File fold = new File(".\\themes");
|
|
+ assert fold.exists() || fold.mkdir();
|
|
+ themedir = fold;
|
|
+ themer = this;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static String[] getThemes() {
|
|
+ Vector themes = new Vector();
|
|
+ File[] files = themedir.listFiles();
|
|
+ for (int i = 0; i < files.length; i++) {
|
|
+ if (files[i].isDirectory()) {
|
|
+ themes.add(files[i].getName());
|
|
+ }
|
|
+ }
|
|
+ String[] outputarr = new String[themes.size()];
|
|
+ themes.toArray(outputarr);
|
|
+ return outputarr;
|
|
+ }
|
|
+
|
|
+ public String asset(String s) {
|
|
+ String fasset = ".\\themes\\" + theme + "\\" + s;
|
|
+ if (themedir != null || (new File(fasset)).exists())
|
|
+ return fasset;
|
|
+ else
|
|
+ return ".\\"+s;
|
|
+ }
|
|
+
|
|
+ public static IniFile override() {
|
|
+ if (override == null) {
|
|
+ override = new IniFile(themer.asset("override.ini"), "Runtime");
|
|
+ }
|
|
+ return override;
|
|
+ }
|
|
+}
|
|
diff -ruN a/1904/NET/worldsplus/WPlus.java b/1904/NET/worldsplus/WPlus.java
|
|
--- a/1904/NET/worldsplus/WPlus.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1904/NET/worldsplus/WPlus.java 2023-09-10 19:22:13.000000000 -0500
|
|
@@ -0,0 +1,14 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import java.text.SimpleDateFormat;
|
|
+import java.util.Date;
|
|
+
|
|
+public class WPlus {
|
|
+ static final String dateTime = new SimpleDateFormat("ddMMyyyyHHmmss").format(new Date());
|
|
+ private static final boolean dev = true;
|
|
+
|
|
+ // Hardcoded for reasons, I SWEAR
|
|
+ public static String getVersion(){
|
|
+ return dev ? dateTime + "-dev" : "1.8.0";
|
|
+ }
|
|
+}
|
|
diff -ruN a/1920/NET/worlds/console/AboutDialog.java b/1920/NET/worlds/console/AboutDialog.java
|
|
--- a/1920/NET/worlds/console/AboutDialog.java 2024-01-08 01:46:28.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/AboutDialog.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -3,6 +3,8 @@
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.Std;
|
|
import NET.worlds.network.NetUpdate;
|
|
+import NET.worldsplus.WPlus;
|
|
+
|
|
import java.awt.BorderLayout;
|
|
import java.awt.Button;
|
|
import java.awt.Color;
|
|
@@ -19,78 +21,77 @@
|
|
import java.util.Vector;
|
|
|
|
public class AboutDialog extends PolledDialog {
|
|
- private static final long serialVersionUID = -2810306367601133331L;
|
|
- public static final String JavaVersion = "1890a40";
|
|
- Button okButton = new Button(Console.message("OK"));
|
|
- private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
- private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
- String apptitle;
|
|
-
|
|
- AboutDialog(String apptitle, Frame frame) {
|
|
- super(frame, (DialogReceiver)null, Console.message("About") + Std.getProductName(), true);
|
|
- this.apptitle = apptitle;
|
|
- this.ready();
|
|
- }
|
|
-
|
|
- private Component setConstraints(GridBagLayout gbag, Component comp, GridBagConstraints c) {
|
|
- gbag.setConstraints(comp, c);
|
|
- return comp;
|
|
- }
|
|
-
|
|
- protected void build() {
|
|
- this.setBackground(Color.white);
|
|
- this.setLayout(new BorderLayout());
|
|
- this.add("North", new Filler(10, 10));
|
|
- this.add("South", new Filler(10, 10));
|
|
- this.add("East", new Filler(10, 10));
|
|
- this.add("West", new Filler(10, 10));
|
|
- GridBagLayout gbag = new GridBagLayout();
|
|
- Panel p = new Panel(gbag);
|
|
- p.setFont(font);
|
|
- GridBagConstraints c = new GridBagConstraints();
|
|
- c.fill = 0;
|
|
- c.weightx = 1.0;
|
|
- c.weighty = 1.0;
|
|
- c.gridwidth = 0;
|
|
- c.gridheight = 1;
|
|
- String logo = IniFile.override().getIniString("AboutLogo", Console.message("wlogo.gif"));
|
|
- p.add(this.setConstraints(gbag, new ImageCanvas(logo), c));
|
|
- c.weightx = 0.0;
|
|
- c.weighty = 0.0;
|
|
- p.add(this.setConstraints(gbag, new Label(this.apptitle), c));
|
|
- if (Gamma.getShaper() != null) {
|
|
- p.add(this.setConstraints(gbag, new Label(Console.message("about-box-build-date") + " " + Std.getBuildInfo() + ":" + "1890a40"), c));
|
|
- } else {
|
|
- p.add(this.setConstraints(gbag, new Label(Console.message("about-box-rev") + " " + Std.getVersion() + " : " + "1890a40"), c));
|
|
- }
|
|
-
|
|
- Vector worlds = NetUpdate.aboutWorlds();
|
|
- TextArea worldList = new TextArea(10, 40);
|
|
- worldList.setEditable(false);
|
|
- p.add(this.setConstraints(gbag, worldList, c));
|
|
- Enumeration e = worlds.elements();
|
|
-
|
|
- while(e.hasMoreElements()) {
|
|
- worldList.append((String)e.nextElement() + "\n");
|
|
- }
|
|
-
|
|
- p.add(this.setConstraints(gbag, new Label(Console.message("about-box-1")), c));
|
|
- p.add(this.setConstraints(gbag, new Label(Console.message("about-box-2")), c));
|
|
- this.okButton.setFont(bfont);
|
|
- p.add(this.setConstraints(gbag, this.okButton, c));
|
|
- this.add("Center", p);
|
|
- }
|
|
-
|
|
- public boolean action(Event event, Object what) {
|
|
- return event.target == this.okButton ? this.done(true) : false;
|
|
- }
|
|
-
|
|
- public boolean keyDown(Event event, int key) {
|
|
- return key != 27 && key != 10 ? super.keyDown(event, key) : this.done(true);
|
|
- }
|
|
-
|
|
- public void show() {
|
|
- super.show();
|
|
- this.okButton.requestFocus();
|
|
- }
|
|
+ Button okButton = new Button(Console.message("OK"));
|
|
+ private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
+ private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
+ String apptitle;
|
|
+
|
|
+ AboutDialog(String var1, Frame var2) {
|
|
+ super(var2, (DialogReceiver)null, Console.message("About") + Std.getProductName(), true);
|
|
+ this.apptitle = var1;
|
|
+ this.ready();
|
|
+ }
|
|
+
|
|
+ private Component setConstraints(GridBagLayout var1, Component var2, GridBagConstraints var3) {
|
|
+ var1.setConstraints(var2, var3);
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ protected void build() {
|
|
+ this.setBackground(Color.white);
|
|
+ this.setLayout(new BorderLayout());
|
|
+ this.add("North", new Filler(10, 10));
|
|
+ this.add("South", new Filler(10, 10));
|
|
+ this.add("East", new Filler(10, 10));
|
|
+ this.add("West", new Filler(10, 10));
|
|
+ GridBagLayout var1 = new GridBagLayout();
|
|
+ Panel var2 = new Panel(var1);
|
|
+ var2.setFont(font);
|
|
+ GridBagConstraints var3 = new GridBagConstraints();
|
|
+ var3.fill = 0;
|
|
+ var3.weightx = 1.0D;
|
|
+ var3.weighty = 1.0D;
|
|
+ var3.gridwidth = 0;
|
|
+ var3.gridheight = 1;
|
|
+ String var4 = IniFile.override().getIniString("AboutLogo", Console.message("wlogo.gif"));
|
|
+ var2.add(this.setConstraints(var1, new ImageCanvas(var4), var3));
|
|
+ var3.weightx = 0.0D;
|
|
+ var3.weighty = 0.0D;
|
|
+ var2.add(this.setConstraints(var1, new Label(this.apptitle), var3));
|
|
+ if (Gamma.getShaper() != null) {
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-build-date") + " " + Std.getBuildInfo()), var3));
|
|
+ } else {
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-rev") + " " + Std.getVersion()), var3));
|
|
+ }
|
|
+ var2.add(this.setConstraints(var1, new Label("Worlds+ by Wirlaburla " + WPlus.getVersion()), var3));
|
|
+
|
|
+ Vector var5 = NetUpdate.aboutWorlds();
|
|
+ TextArea var6 = new TextArea(10, 40);
|
|
+ var6.setEditable(false);
|
|
+ var2.add(this.setConstraints(var1, var6, var3));
|
|
+ Enumeration var7 = var5.elements();
|
|
+
|
|
+ while(var7.hasMoreElements()) {
|
|
+ var6.append((String)var7.nextElement() + "\n");
|
|
+ }
|
|
+
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-1")), var3));
|
|
+ var2.add(this.setConstraints(var1, new Label(Console.message("about-box-2")), var3));
|
|
+ this.okButton.setFont(bfont);
|
|
+ var2.add(this.setConstraints(var1, this.okButton, var3));
|
|
+ this.add("Center", var2);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ return var1.target == this.okButton ? this.done(true) : false;
|
|
+ }
|
|
+
|
|
+ public boolean keyDown(Event var1, int var2) {
|
|
+ return var2 != 27 && var2 != 10 ? super.keyDown(var1, var2) : this.done(true);
|
|
+ }
|
|
+
|
|
+ public void show() {
|
|
+ super.show();
|
|
+ this.okButton.requestFocus();
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/console/ChatSavePart.java b/1920/NET/worlds/console/ChatSavePart.java
|
|
--- a/1920/NET/worlds/console/ChatSavePart.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/ChatSavePart.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,49 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.io.BufferedReader;
|
|
+import java.io.FileWriter;
|
|
+import java.io.IOException;
|
|
+import java.io.StringReader;
|
|
+
|
|
+public class ChatSavePart implements DialogReceiver {
|
|
+
|
|
+ String chat;
|
|
+
|
|
+ ChatSavePart(String text) {
|
|
+ this.chat = text;
|
|
+ FileSysDialog fsd = new FileSysDialog(DefaultConsole.getFrame(), this, "Save Chat", 1, "Hypertext Markup|*.html|Plain Text|*.txt", "", false);
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var2) {
|
|
+ FileSysDialog var3 = (FileSysDialog)var1;
|
|
+ String var4 = var3.fileName();
|
|
+ this.doSave(var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean doSave(String path) {
|
|
+ try {
|
|
+ if (path != null) {
|
|
+ FileWriter textWriter = new FileWriter(path);
|
|
+ if (path.endsWith(".html") || path.endsWith(".htm")) {
|
|
+ BufferedReader bufReader = new BufferedReader(new StringReader(this.chat));
|
|
+ String line = null;
|
|
+ while( (line = bufReader.readLine()) != null )
|
|
+ {
|
|
+ textWriter.write(line + " <br>");
|
|
+ }
|
|
+ } else {
|
|
+ textWriter.write(this.chat);
|
|
+ }
|
|
+ textWriter.close();
|
|
+ Console.println("Saved chat!");
|
|
+ return true;
|
|
+ } else return false;
|
|
+ } catch (IOException var5) {
|
|
+ Console.println("Failed to save chat: " + var5.getMessage());
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+}
|
|
diff -ruN a/1920/NET/worlds/console/DefaultConsole.java b/1920/NET/worlds/console/DefaultConsole.java
|
|
--- a/1920/NET/worlds/console/DefaultConsole.java 2024-01-08 01:46:30.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/DefaultConsole.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,6 +1,12 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by Fernflower decompiler)
|
|
+//
|
|
+
|
|
package NET.worlds.console;
|
|
|
|
import NET.worlds.core.ArchiveMaker;
|
|
+import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.Std;
|
|
import NET.worlds.network.Galaxy;
|
|
@@ -31,6 +37,8 @@
|
|
import NET.worlds.scape.URLPropertyEditor;
|
|
import NET.worlds.scape.VehicleShape;
|
|
import NET.worlds.scape.World;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
import java.awt.BorderLayout;
|
|
import java.awt.CardLayout;
|
|
import java.awt.CheckboxMenuItem;
|
|
@@ -46,6 +54,7 @@
|
|
import java.awt.Menu;
|
|
import java.awt.MenuItem;
|
|
import java.awt.Panel;
|
|
+import java.awt.Point;
|
|
import java.awt.PopupMenu;
|
|
import java.awt.Rectangle;
|
|
import java.awt.Toolkit;
|
|
@@ -66,1992 +75,2081 @@
|
|
import java.util.Vector;
|
|
|
|
public class DefaultConsole extends Console implements DialogReceiver, ImageButtonsCallback, RemoteFileConst {
|
|
- MenuItem aboutItem;
|
|
- MenuItem statisticsItem;
|
|
- MenuItem upgradeItem;
|
|
- MenuItem channelItem;
|
|
- MenuItem infoItem;
|
|
- MenuItem sleepItem;
|
|
- MenuItem helpItem;
|
|
- MenuItem gettingStartedItem;
|
|
- MenuItem serverItem;
|
|
- MenuItem numVisItem;
|
|
- MenuItem checkAccountItem;
|
|
- MenuItem becomeVIPItem;
|
|
- MenuItem toggleVoiceChatItem;
|
|
- MenuItem chatItem;
|
|
- MenuItem shaperHelpItem;
|
|
- MenuItem inventoryItem;
|
|
- MenuItem checkInventoryItem;
|
|
- MenuItem bankItem;
|
|
- MenuItem ubuItem;
|
|
- MenuItem proxyServerItem;
|
|
- MenuItem musicManItem;
|
|
- MenuItem condenseItem;
|
|
- MenuItem expandItem;
|
|
- MenuItem i18nTest;
|
|
- MenuItem currentLang;
|
|
- Menu switchLang;
|
|
- Vector downItems = null;
|
|
- Vector langItems = null;
|
|
- Vector fontItems = null;
|
|
- static final String LANGUAGES = "languages.lst";
|
|
- static final String FONTS = "fonts.lst";
|
|
- Vector viewItems = null;
|
|
- Vector camSpeedItems = null;
|
|
- CheckboxMenuItem currentViewItem;
|
|
- CheckboxMenuItem currentCamSpeedItem;
|
|
- ImageButtons driveButton;
|
|
- ImageButtons quitButton;
|
|
- ImageButtons exploreButton;
|
|
- ImageButtons menuButtons;
|
|
- ImageButtons adCubeButton;
|
|
- String defaultAd = IniFile.override().getIniString("defaultAd", "home:adworlds.cmp");
|
|
- AdPart ad;
|
|
- ColorFiller adFiller;
|
|
- ChatPart chat;
|
|
- RenderCanvas render;
|
|
- Panel renderAndUniverse;
|
|
- UniversePanel universe;
|
|
- CardLayout renderCard;
|
|
- InventoryPart inventory;
|
|
- WorldsMarkPart marks;
|
|
- FriendsListPart friends;
|
|
- ActionsPart actions;
|
|
- MuteListPart mutes;
|
|
- MapPart map;
|
|
- SavedAvPart savedAvs;
|
|
- private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
- private static Font mfont = new Font(Console.message("MenuFont"), 0, 12);
|
|
- private static int chatLines = IniFile.gamma().getIniInt("ChatLines", 6);
|
|
- private static int maxWebSize = 540;
|
|
- CDControl cdcontrol;
|
|
- boolean playedCD;
|
|
- MenuItem cdPlayerItem;
|
|
- MenuItem volumeItem;
|
|
- MenuItem graphicsItem;
|
|
- MenuItem nametagItem;
|
|
- MenuItem chatBoxItem;
|
|
- MenuItem broadcastToRoom;
|
|
- MenuItem broadcastToAll;
|
|
- MenuItem bootSomeone;
|
|
- CheckboxMenuItem orthographicViewItem;
|
|
- MenuItem recorderPlayItem;
|
|
- MenuItem recorderRecItem;
|
|
- MenuItem recorderStopItem;
|
|
- boolean universeMode;
|
|
- private static final int[] menuButtonHeights = new int[]{23, 21, 21, 21, 21, 21, 25, -29};
|
|
- private Vector viewNames;
|
|
- private Vector speedNames;
|
|
- private static final int HELP = 0;
|
|
- private static final int OPTIONS = 1;
|
|
- private static final int WORLDSMAIL = 2;
|
|
- private static final int WORLDSMARK = 3;
|
|
- private static final int LETS = 4;
|
|
- private static final int ACTIONS = 5;
|
|
- private static final int VIP = 6;
|
|
- static String loadingString = Console.message("Loading");
|
|
- static String arrowKeyMsg = Console.message("Use-arrow-keys");
|
|
- String statusMessage;
|
|
- String overrideMessage;
|
|
- String lastStatus;
|
|
- int lastUpdateTime;
|
|
- boolean wasTeleporting;
|
|
- private int lastVMCheck;
|
|
- private int lastVMBigWarning;
|
|
- Component bottom;
|
|
- Component top;
|
|
- Label status;
|
|
- Label yourName;
|
|
- static String[] lNames = lpList();
|
|
- static int lLength;
|
|
- static MenuItem[] lLangs;
|
|
- static Locale[] newLocale;
|
|
- static String[][] lCodes;
|
|
- Vector lList;
|
|
- Vector sList;
|
|
- int[] lSizes;
|
|
- int dLength;
|
|
- MenuItem[] dLangs;
|
|
- Locale[] newdLocale;
|
|
- Vector flList;
|
|
- Vector fsList;
|
|
- int[] fSizes;
|
|
- int fLength;
|
|
- MenuItem[] dFonts;
|
|
- Locale[] newfLocale;
|
|
- static boolean wasDelta;
|
|
- static boolean doDrive;
|
|
- Panel mapPanel;
|
|
- private static String signIn;
|
|
- private static String signOut;
|
|
- private static String signingIn;
|
|
- private static String noMultiUser;
|
|
- private static String enable3D;
|
|
- private static String disable3D;
|
|
- private static String showTags;
|
|
- private static String hideTags;
|
|
- private static String enableClassicChat;
|
|
- private static String disableClassicChat;
|
|
- private static String configureChat;
|
|
- Menu chatLogMenu;
|
|
- AvMenu avatarMenu;
|
|
- private int chooseView;
|
|
- private int chooseCamSpeed;
|
|
- private static String sleepStatus;
|
|
- OkCancelDialog reloginDialog;
|
|
- private Object nextAvatarMutex;
|
|
- private URL nextAvatar;
|
|
- private CheckboxMenuItem nextAvatarItem;
|
|
- private CheckboxMenuItem curAvatarItem;
|
|
- private static String lastWorldName;
|
|
- private static String lowVMMsg;
|
|
- private boolean showedMidWarn;
|
|
- private static boolean startupMemCheck;
|
|
- public static int physMem;
|
|
- protected URL avatarURL;
|
|
- private static Object classCookie;
|
|
-
|
|
- static {
|
|
- lLength = lNames.length;
|
|
- lLangs = new MenuItem[lLength];
|
|
- newLocale = new Locale[lLength];
|
|
- lCodes = new String[lLength][2];
|
|
- signIn = Console.message("Sign-In");
|
|
- signOut = Console.message("Sign-Out");
|
|
- signingIn = Console.message("Signing-In");
|
|
- noMultiUser = Console.message("Network");
|
|
- enable3D = Console.message("Enable3D");
|
|
- disable3D = Console.message("Disable3D");
|
|
- showTags = Console.message("ShowNametags");
|
|
- hideTags = Console.message("HideNametags");
|
|
- enableClassicChat = Console.message("EnableClassicChat");
|
|
- disableClassicChat = Console.message("DisableClassicChat");
|
|
- configureChat = Console.message("Config-Chat");
|
|
- sleepStatus = Console.message("Sleeping");
|
|
- lastWorldName = "";
|
|
- lowVMMsg = Console.message("Low-virt");
|
|
- startupMemCheck = true;
|
|
- classCookie = new Object();
|
|
- }
|
|
-
|
|
- public UniversePanel getUniversePanel() {
|
|
- return this.universe;
|
|
- }
|
|
-
|
|
- public void printLine(String msg) {
|
|
- this.chat.println(msg);
|
|
- super.printLine(msg);
|
|
- }
|
|
-
|
|
- protected void printWhisperFrom(String from, String msg) {
|
|
- WhisperManager.whisperManager().printFrom(from, msg);
|
|
- }
|
|
-
|
|
- protected void printWhisperTo(String to, String msg) {
|
|
- WhisperManager.whisperManager().printTo(to, msg);
|
|
- }
|
|
-
|
|
- protected void startWhisperingTo(String to) {
|
|
- WhisperManager.whisperManager().startTo(to);
|
|
- }
|
|
-
|
|
- public DefaultConsole() {
|
|
- this.ad = new AdPart(URL.make(this.defaultAd));
|
|
- this.chat = new ChatPart();
|
|
- this.render = new RenderCanvas(this, new Dimension(560, 360));
|
|
- this.inventory = new InventoryPart();
|
|
- this.marks = new WorldsMarkPart();
|
|
- this.friends = new FriendsListPart();
|
|
- this.actions = new ActionsPart();
|
|
- this.mutes = new MuteListPart();
|
|
- this.map = new MapPart();
|
|
- this.savedAvs = new SavedAvPart();
|
|
- this.statusMessage = arrowKeyMsg;
|
|
- this.lastStatus = "";
|
|
- this.lastUpdateTime = 0;
|
|
- this.wasTeleporting = false;
|
|
- this.status = new UnpaddedLabel("", 2);
|
|
- this.yourName = new UnpaddedLabel("", 0);
|
|
- this.lList = new Vector();
|
|
- this.sList = new Vector();
|
|
- this.lSizes = new int[10];
|
|
- this.dLength = this.dpList(this.lList, this.sList, this.lSizes);
|
|
- this.dLangs = this.dLength == 0 ? null : new MenuItem[this.dLength];
|
|
- this.newdLocale = this.dLength == 0 ? null : new Locale[this.dLength];
|
|
- this.flList = new Vector();
|
|
- this.fsList = new Vector();
|
|
- this.fSizes = new int[10];
|
|
- this.fLength = this.fpList(this.flList, this.fsList, this.fSizes);
|
|
- this.dFonts = this.fLength == 0 ? null : new MenuItem[this.fLength];
|
|
- this.newfLocale = this.fLength == 0 ? null : new Locale[this.fLength];
|
|
- this.chooseView = -1;
|
|
- this.chooseCamSpeed = -1;
|
|
- this.nextAvatarMutex = new Object();
|
|
- this.init();
|
|
- this.loadViewNames();
|
|
- this.speedNames = new Vector();
|
|
- this.speedNames.addElement(new CameraSpeed("Slow", 1));
|
|
- this.speedNames.addElement(new CameraSpeed("Medium", 2));
|
|
- this.speedNames.addElement(new CameraSpeed("Fast", 3));
|
|
- }
|
|
-
|
|
- public void loadViewNames() {
|
|
- this.viewNames = new Vector();
|
|
- this.viewNames.addElement(new CameraView("First-person", 1));
|
|
- this.viewNames.addElement(new CameraView("Low-first-person", 2));
|
|
- this.viewNames.addElement(new CameraView("Waist", 3));
|
|
- this.viewNames.addElement(new CameraView("Shoulder", 4));
|
|
- this.viewNames.addElement(new CameraView("Head", 5));
|
|
- this.viewNames.addElement(new CameraView("Overhead", 6));
|
|
- this.viewNames.addElement(new CameraView("Behind", 7));
|
|
- this.viewNames.addElement(new CameraView("Wide-shot", 8));
|
|
- if (Gamma.getShaper() != null) {
|
|
- this.viewNames.addElement(new CameraView("Orthographic", 9));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setOrthoEnabled(boolean in) {
|
|
- if (this.orthographicViewItem != null) {
|
|
- this.orthographicViewItem.setEnabled(in);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void loadInit() {
|
|
- super.loadInit();
|
|
- }
|
|
-
|
|
- public void removeUseArrowStatusMsg() {
|
|
- if (this.statusMessage == arrowKeyMsg) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void overrideStatusMsg(String msg) {
|
|
- synchronized(this.status) {
|
|
- this.overrideMessage = msg;
|
|
- if (msg != null) {
|
|
- this.status.setText(msg);
|
|
- } else {
|
|
- this.status.setText(this.lastStatus);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public String message(String Id, Locale currentLocale) {
|
|
- Locale.setDefault(currentLocale);
|
|
- Console.println(currentLocale.getDisplayName());
|
|
-
|
|
- try {
|
|
- ResourceBundle messages = ResourceBundle.getBundle("MessagesBundle", currentLocale);
|
|
- return messages.getString(Id);
|
|
- } catch (MissingResourceException var4) {
|
|
- return "NO MESSAGE for " + Id;
|
|
- }
|
|
- }
|
|
-
|
|
- private void init() {
|
|
- this.addPart(this.render);
|
|
- this.addPart(this.chat);
|
|
- this.addPart(this.inventory);
|
|
- this.addPart(this.marks);
|
|
- this.addPart(this.friends);
|
|
- this.addPart(this.actions);
|
|
- this.addPart(this.mutes);
|
|
- this.addPart(this.ad);
|
|
- this.addPart(this.map);
|
|
- this.addPart(this.savedAvs);
|
|
- Panel drivePanel = new Panel(new FlowLayout(1, 0, 0));
|
|
- String driveGif = IniFile.override().getIniString("driveGif", "drive.gif");
|
|
- this.addPart(this.driveButton = new ImageButtons(driveGif, 81, 19, this));
|
|
- String quitGif = IniFile.override().getIniString("quitGif", Console.message("quit.gif"));
|
|
- this.addPart(this.quitButton = new ImageButtons(quitGif, 65, 19, this));
|
|
- String exploreGif = IniFile.override().getIniString("exploreGif", Console.message("explore.gif"));
|
|
- this.addPart(this.exploreButton = new ImageButtons(exploreGif, 98, 22, this));
|
|
- drivePanel.add(this.driveButton);
|
|
- this.driveButton.setDownUpHandler(new ImageButtonsCallback() {
|
|
- public Object imageButtonsCallback(Component who, int which) {
|
|
- if (which != -1) {
|
|
- DefaultConsole.this.startDrive();
|
|
- } else {
|
|
- DefaultConsole.this.driveButton.drawDown();
|
|
- }
|
|
-
|
|
- return this;
|
|
- }
|
|
- });
|
|
- Panel mid = new Panel();
|
|
- mid.setLayout(new GridLayout(1, 3));
|
|
- int bgR = IniFile.override().getIniInt("uiBackgroundRed", 49);
|
|
- int bgG = IniFile.override().getIniInt("uiBackgroundGreen", 0);
|
|
- int bgB = IniFile.override().getIniInt("uiBackgroundBlue", 255);
|
|
- mid.setBackground(new Color(bgR, bgG, bgB));
|
|
- mid.add(this.yourName);
|
|
- mid.add(drivePanel);
|
|
- mid.add(this.status);
|
|
- this.chat.line.setBackground(Color.black);
|
|
- this.chat.line.setForeground(Color.white);
|
|
- this.chat.line.setFont(font);
|
|
- Panel chatter = new InsetPanel(new BorderLayout(0, 3), 0, 0, 3, 0);
|
|
- chatter.add("North", mid);
|
|
- chatter.add("Center", this.chat.listen.getComponent());
|
|
- chatter.add("South", this.chat.line);
|
|
- this.chat.listen.setBackground(Color.black);
|
|
- this.chat.listen.setForeground(Color.white);
|
|
- this.chat.listen.setFont(font);
|
|
- Panel p = new Panel(new BorderLayout());
|
|
- new Panel(new BorderLayout());
|
|
- Panel r = new Panel(new BorderLayout());
|
|
- Panel s = new Panel(new BorderLayout());
|
|
- ColorFiller rtBlack = new ColorFiller(65, 19);
|
|
- rtBlack.setBackground(new Color(bgR, bgG, bgB));
|
|
- r.add("West", this.quitButton);
|
|
- r.add("East", rtBlack);
|
|
- int bgbR = IniFile.override().getIniInt("uiBackground2Red", 0);
|
|
- int bgbG = IniFile.override().getIniInt("uiBackground2Green", 0);
|
|
- int bgbB = IniFile.override().getIniInt("uiBackground2Blue", 0);
|
|
- s.add("North", r);
|
|
- s.add("Center", this.ad);
|
|
- if (chatLines > 6) {
|
|
- int h = chatLines * this.chat.listen.getComponent().getFontMetrics(this.chat.listen.getFont()).getHeight();
|
|
- h -= 96;
|
|
- if (h > 0) {
|
|
- this.adFiller = new ColorFiller(130, h);
|
|
- this.adFiller.setBackground(new Color(bgbR, bgbG, bgbB));
|
|
- s.add("South", this.adFiller);
|
|
- }
|
|
- }
|
|
-
|
|
- p.add("West", s);
|
|
- this.mapPanel = new Panel(new BorderLayout());
|
|
- this.mapPanel.add("Center", this.map);
|
|
- this.mapPanel.setBackground(Color.black);
|
|
- r = new Panel(new BorderLayout());
|
|
- ColorFiller qBlue = new ColorFiller(60, 19);
|
|
- qBlue.setBackground(new Color(bgR, bgG, bgB));
|
|
- r.add("North", qBlue);
|
|
- ColorFiller qBlack = new ColorFiller(60, 3);
|
|
- qBlack.setBackground(new Color(bgbR, bgbG, bgbB));
|
|
- r.add("South", qBlack);
|
|
- Panel q = new Panel(new BorderLayout());
|
|
- q.add("East", this.exploreButton);
|
|
- q.add("West", r);
|
|
- this.mapPanel.add("North", q);
|
|
- p.add("East", this.mapPanel);
|
|
- p.add("Center", chatter);
|
|
- this.bottom = p;
|
|
- this.renderCard = new CardLayout();
|
|
- this.renderAndUniverse = new Panel(this.renderCard);
|
|
- this.renderAndUniverse.add("render", this.render);
|
|
- Panel p = new InsetPanel(new BorderLayout(), 3, 3, 0, 0);
|
|
- p.add("Center", this.renderAndUniverse);
|
|
- int bgbR = IniFile.override().getIniInt("uiBackground3Red", 0);
|
|
- int bgbG = IniFile.override().getIniInt("uiBackground3Green", 0);
|
|
- int bgbB = IniFile.override().getIniInt("uiBackground3Blue", 0);
|
|
- rtBlack = new ColorFiller(97, 1);
|
|
- rtBlack.setBackground(new Color(bgbR, bgbG, bgbB));
|
|
- Panel rt = new Panel(new QuantizedStackedLayout(rtBlack));
|
|
- String panelGif = IniFile.override().getIniString("rtPanel", Console.message("rtpanel.gif"));
|
|
- this.addPart(this.menuButtons = new ImageButtons(panelGif, 97, menuButtonHeights, this));
|
|
- rt.add(rtBlack);
|
|
- rt.add(this.menuButtons);
|
|
- rt.add(this.friends);
|
|
- p.add("East", rt);
|
|
- this.top = p;
|
|
- }
|
|
-
|
|
- public void relayoutMap() {
|
|
- this.mapPanel.invalidate();
|
|
- this.mapPanel.validate();
|
|
- this.mapPanel.doLayout();
|
|
- this.mapPanel.repaint();
|
|
- }
|
|
-
|
|
- public void startDrive() {
|
|
- this.statusMessage = Console.message("Drag-mouse");
|
|
- doDrive = true;
|
|
- Window.makeJavaReleaseCapture();
|
|
- }
|
|
-
|
|
- public void setOnlineState(boolean enabled, boolean online) {
|
|
- synchronized(this) {
|
|
- if (this.serverItem != null) {
|
|
- this.serverItem.setEnabled(enabled);
|
|
- if (!enabled) {
|
|
- Galaxy g = this.getGalaxy();
|
|
- if (g != null && !g.isAnonymous()) {
|
|
- this.serverItem.setLabel(signingIn);
|
|
- } else {
|
|
- this.serverItem.setLabel(noMultiUser);
|
|
- }
|
|
- } else if (online) {
|
|
- this.serverItem.setLabel(signOut);
|
|
- } else {
|
|
- this.serverItem.setLabel(signIn);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleNametagsItem() {
|
|
- if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 0) {
|
|
- IniFile.gamma().setIniInt("SHOWNAMETAGS", 1);
|
|
- this.nametagItem.setLabel(hideTags);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("SHOWNAMETAGS", 0);
|
|
- this.nametagItem.setLabel(showTags);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- private void handleGraphicsItem() {
|
|
- if (IniFile.gamma().getIniInt("UserEnabled3DHardware", 0) == 0) {
|
|
- IniFile.gamma().setIniInt("UserEnabled3DHardware", 1);
|
|
- this.graphicsItem.setLabel(disable3D);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("UserEnabled3DHardware", 0);
|
|
- this.graphicsItem.setLabel(enable3D);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- private void handleChatBoxItem() {
|
|
- if (IniFile.gamma().getIniInt("classicChatBox", 1) == 0) {
|
|
- IniFile.gamma().setIniInt("classicChatBox", 1);
|
|
- this.chatBoxItem.setLabel(disableClassicChat);
|
|
- } else {
|
|
- IniFile.gamma().setIniInt("classicChatBox", 0);
|
|
- this.chatBoxItem.setLabel(enableClassicChat);
|
|
- }
|
|
-
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- }
|
|
-
|
|
- public AvMenu getAvatarMenu() {
|
|
- return this.avatarMenu;
|
|
- }
|
|
-
|
|
- public void inventoryChanged() {
|
|
- super.inventoryChanged();
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.buildSpecialGuestMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setMenusWRTVIP() {
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.setEnabled(this.getVIP());
|
|
- this.avatarMenu.customize.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.savedAvs != null) {
|
|
- this.savedAvs.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.chatLogMenu != null) {
|
|
- this.chatLogMenu.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- if (this.toggleVoiceChatItem != null) {
|
|
- this.toggleVoiceChatItem.setLabel(this.getVIP() && VoiceChat.voiceChatEnabled ? Console.message("Reject-Voice") : Console.message("Accept-Voice"));
|
|
- this.toggleVoiceChatItem.setEnabled(this.getVIP() && VoiceChat.voiceChatAvailable());
|
|
- }
|
|
-
|
|
- if (this.becomeVIPItem != null) {
|
|
- this.becomeVIPItem.setLabel(vip > 0 ? (vip > 1 ? Console.message("Youre-a-VIP") : Console.message("Become-full-VIP")) : Console.message("Become-VIP"));
|
|
- }
|
|
-
|
|
- if (this.numVisItem != null) {
|
|
- this.numVisItem.setEnabled(this.getVIP());
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void addBroadcastMenu() {
|
|
- if (this.bootSomeone == null) {
|
|
- if (IniFile.gamma().getIniInt("Broadcast", 0) != 0) {
|
|
- Menu menu = new Menu(Console.message("Broadcast"));
|
|
- menu.add(this.broadcastToRoom = new MenuItem(Console.message("Users")));
|
|
- menu.add(this.broadcastToAll = new MenuItem(Console.message("All-users")));
|
|
- this.addMenuItem(menu, "Options");
|
|
- }
|
|
-
|
|
- this.bootSomeone = new MenuItem(Console.message("Boot-user"));
|
|
- this.addMenuItem(this.bootSomeone, "Options");
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private Menu updateChatLogMenu() {
|
|
- if (this.chatLogMenu == null) {
|
|
- this.chatLogMenu = new Menu(Console.message("View-Chat"));
|
|
- } else {
|
|
- this.chatLogMenu.removeAll();
|
|
- }
|
|
-
|
|
- ActionListener logAction = new ActionListener() {
|
|
- public void actionPerformed(ActionEvent e) {
|
|
- (new SendURLAction("file:" + e.getActionCommand())).startBrowser();
|
|
- }
|
|
- };
|
|
- String[] list = this.logList();
|
|
- MenuItem item = null;
|
|
-
|
|
- for(int i = 0; i < list.length; ++i) {
|
|
- int si = list[i].indexOf(".glog.html");
|
|
- if (si > 6) {
|
|
- Object[] arguments = new Object[]{new String(list[i].substring(5, si))};
|
|
- item = new MenuItem(MessageFormat.format(Console.message("Chat-with"), arguments));
|
|
- } else {
|
|
- if (si <= 0) {
|
|
- continue;
|
|
- }
|
|
-
|
|
- item = new MenuItem(Console.message("General-chat"));
|
|
- }
|
|
-
|
|
- item.setActionCommand(list[i]);
|
|
- item.addActionListener(logAction);
|
|
- this.chatLogMenu.add(item);
|
|
- }
|
|
-
|
|
- return this.chatLogMenu;
|
|
- }
|
|
-
|
|
- private String[] logList() {
|
|
- File dir = new File(".");
|
|
- FilenameFilter f = new FilenameFilter() {
|
|
- public boolean accept(File dir, String name) {
|
|
- return name.startsWith("chat.") && name.endsWith(".glog.html");
|
|
- }
|
|
- };
|
|
- return dir.list(f);
|
|
- }
|
|
-
|
|
- private static String[] lpList() {
|
|
- File dir = new File(".");
|
|
- FilenameFilter f = new FilenameFilter() {
|
|
- public boolean accept(File dir, String name) {
|
|
- return name.startsWith("MessagesBundle") && name.endsWith(".properties");
|
|
- }
|
|
- };
|
|
- String[] list = dir.list(f);
|
|
- Collator sortCollator = Collator.getInstance();
|
|
- sortStrings(sortCollator, list);
|
|
- return list;
|
|
- }
|
|
-
|
|
- private int dpList(Vector lList, Vector sList, int[] lSizes) {
|
|
- String err = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "languages.lst"), lList, sList, lSizes);
|
|
- if (err != null) {
|
|
- System.out.println(err);
|
|
- return 0;
|
|
- } else {
|
|
- return lList.size();
|
|
- }
|
|
- }
|
|
-
|
|
- private int fpList(Vector lList, Vector sList, int[] lSizes) {
|
|
- String err = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "fonts.lst"), lList, sList, lSizes);
|
|
- if (err != null) {
|
|
- System.out.println(err);
|
|
- return 0;
|
|
- } else {
|
|
- return lList.size();
|
|
- }
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator collator, String[] words, Locale[] Locales, String[][] Codes) {
|
|
- for(int i = 0; i < words.length; ++i) {
|
|
- for(int j = i + 1; j < words.length; ++j) {
|
|
- if (collator.compare(words[i], words[j]) > 0) {
|
|
- String tmp = words[i];
|
|
- Locale ltmp = Locales[i];
|
|
- String c0 = Codes[i][0];
|
|
- String c1 = Codes[i][1];
|
|
- words[i] = words[j];
|
|
- Locales[i] = Locales[j];
|
|
- Codes[i][0] = Codes[j][0];
|
|
- Codes[i][1] = Codes[j][1];
|
|
- words[j] = tmp;
|
|
- Locales[j] = ltmp;
|
|
- Codes[j][0] = c0;
|
|
- Codes[j][1] = c1;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator collator, String[] words, Locale[] Locales, Vector CodeL, Vector CodeS) {
|
|
- for(int i = 0; i < words.length; ++i) {
|
|
- for(int j = i + 1; j < words.length; ++j) {
|
|
- if (collator.compare(words[i], words[j]) > 0) {
|
|
- String tmp = words[i];
|
|
- Locale ltmp = Locales[i];
|
|
- String c0 = (String)CodeL.elementAt(i);
|
|
- String c1 = (String)CodeS.elementAt(i);
|
|
- words[i] = words[j];
|
|
- Locales[i] = Locales[j];
|
|
- CodeL.setElementAt((String)CodeL.elementAt(j), i);
|
|
- CodeS.setElementAt((String)CodeS.elementAt(j), i);
|
|
- words[j] = tmp;
|
|
- Locales[j] = ltmp;
|
|
- CodeL.setElementAt(c0, j);
|
|
- CodeS.setElementAt(c1, j);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void sortStrings(Collator collator, String[] words) {
|
|
- for(int i = 0; i < words.length; ++i) {
|
|
- for(int j = i + 1; j < words.length; ++j) {
|
|
- if (collator.compare(words[i], words[j]) > 0) {
|
|
- String tmp = words[i];
|
|
- words[i] = words[j];
|
|
- words[j] = tmp;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void activate(Container c) {
|
|
- super.activate(c);
|
|
- c.setBackground(Color.black);
|
|
- c.setForeground(Color.white);
|
|
- c.setLayout(new BorderLayout());
|
|
- c.add("Center", this.top);
|
|
- c.add("South", this.bottom);
|
|
- this.chat.line.setBackground(Color.white);
|
|
- this.chat.line.setForeground(Color.black);
|
|
- boolean useShaper = Gamma.getShaper() != null;
|
|
- if (useShaper) {
|
|
- this.shaperHelpItem = this.addMenuItem(Console.message("using-shaper"), "Help");
|
|
- }
|
|
-
|
|
- if (NetUpdate.getInfoURL() != null) {
|
|
- this.helpItem = this.addMenuItem(Console.message("Help-Contents"), "Help");
|
|
- this.infoItem = this.addMenuItem(Console.message("Latest-info"), "Help");
|
|
- }
|
|
-
|
|
- Object[] arguments = new Object[]{new String(Std.getProductName())};
|
|
- this.aboutItem = this.addMenuItem(MessageFormat.format(Console.message("About-product"), arguments), "Help");
|
|
- int cameraMode = IniFile.gamma().getIniInt("CAM_MODE", 7);
|
|
- int cameraSpeed = IniFile.gamma().getIniInt("CAM_SPEED", 3);
|
|
- if (!useShaper && cameraMode == 9) {
|
|
- cameraMode = 7;
|
|
- }
|
|
-
|
|
- this.pilot.setOutsideCameraMode(cameraMode, cameraSpeed);
|
|
- Menu viewMenu = new Menu(Console.message("Change-View"));
|
|
- this.addMenuItem(viewMenu, "Options");
|
|
- MenuItem cameraVMenu = new MenuItem(Console.message("CAMERA-VIEW"));
|
|
- cameraVMenu.setFont(mfont);
|
|
- viewMenu.add(cameraVMenu);
|
|
- this.viewItems = new Vector();
|
|
-
|
|
- for(int i = 0; i < this.viewNames.size(); ++i) {
|
|
- CameraView currView = (CameraView)this.viewNames.elementAt(i);
|
|
- CheckboxMenuItem item = new CheckboxMenuItem(" " + Console.message(currView.viewName), cameraMode == currView.viewID);
|
|
- if (cameraMode == currView.viewID) {
|
|
- this.currentViewItem = item;
|
|
- }
|
|
-
|
|
- item.setFont(mfont);
|
|
- viewMenu.add(item);
|
|
- this.viewItems.addElement(item);
|
|
- if (currView.viewName == "Orthographic") {
|
|
- this.orthographicViewItem = item;
|
|
- }
|
|
- }
|
|
-
|
|
- viewMenu.addSeparator();
|
|
- MenuItem cameraSMenu = new MenuItem(Console.message("CAMERA-SPEED"));
|
|
- cameraSMenu.setFont(mfont);
|
|
- viewMenu.add(cameraSMenu);
|
|
- this.camSpeedItems = new Vector();
|
|
-
|
|
- for(int i = 0; i < this.speedNames.size(); ++i) {
|
|
- CameraSpeed currSpeed = (CameraSpeed)this.speedNames.elementAt(i);
|
|
- CheckboxMenuItem item = new CheckboxMenuItem(" " + Console.message(currSpeed.speedName), currSpeed.speedID == cameraSpeed);
|
|
- if (currSpeed.speedID == cameraSpeed) {
|
|
- this.currentCamSpeedItem = item;
|
|
- }
|
|
-
|
|
- item.setFont(mfont);
|
|
- viewMenu.add(item);
|
|
- this.camSpeedItems.addElement(item);
|
|
- }
|
|
-
|
|
- this.becomeVIPItem = this.addMenuItem(vip == 1 ? Console.message("Become-full-VIP") : Console.message("Become-VIP"), "VIP");
|
|
- this.addMenuItem(this.avatarMenu = new AvMenu(this, this.lastPilotRequested), "VIP");
|
|
- this.addMenuItem(this.savedAvs, "VIP");
|
|
- this.addMenuItem(this.avatarMenu.customize, "VIP");
|
|
- this.toggleVoiceChatItem = this.addMenuItem(Console.message("Enable-Voice"), "VIP");
|
|
- this.toggleVoiceChatItem.setEnabled(false);
|
|
- this.numVisItem = this.addMenuItem(Console.message("Num-Visible"), "VIP");
|
|
- if (NetUpdate.isInternalVersion() || IniFile.gamma().getIniInt("EnableTrading", 0) == 1) {
|
|
- this.inventoryItem = this.addMenuItem("My Stuff", "VIP");
|
|
- this.checkInventoryItem = this.addMenuItem("Check Inventory", "VIP");
|
|
- }
|
|
-
|
|
- if (NetUpdate.isInternalVersion() || IniFile.gamma().getIniInt("EnableBank", 0) == 1) {
|
|
- this.bankItem = this.addMenuItem("Access Bank Account", "VIP");
|
|
- }
|
|
-
|
|
- if (IniFile.gamma().getIniInt("EnableUBU", 0) == 1) {
|
|
- this.ubuItem = this.addMenuItem("U-B-U Vanatar", "VIP");
|
|
- }
|
|
-
|
|
- this.setMenusWRTVIP();
|
|
- this.proxyServerItem = this.addMenuItem(Console.message("Proxy-Server"), "Options");
|
|
- this.checkAccountItem = this.addMenuItem(Console.message("Account-Info"), "Options");
|
|
- if (useShaper) {
|
|
- this.statisticsItem = this.addMenuItem(Console.message("Display-Stat"), "Options");
|
|
- }
|
|
-
|
|
- this.upgradeItem = this.addMenuItem(Console.message("Upgrade-Now"), "Options");
|
|
- if (useShaper) {
|
|
- this.channelItem = this.addMenuItem(Console.message("Dimension-Sel"), "Options");
|
|
- }
|
|
-
|
|
- this.serverItem = this.addMenuItem(signIn, "Options");
|
|
- this.setOnlineState(this.galaxy.getOnlineEnabled(), this.galaxy.getOnline());
|
|
- Menu languageMenu;
|
|
- if (IniFile.gamma().getIniInt("recorderEnabled", 1) == 1) {
|
|
- languageMenu = new Menu(Console.message("Recorder"));
|
|
- this.addMenuItem(languageMenu, "Options");
|
|
- this.recorderRecItem = new MenuItem(Console.message("Record"));
|
|
- languageMenu.add(this.recorderRecItem);
|
|
- this.recorderStopItem = new MenuItem(Console.message("Stop"));
|
|
- languageMenu.add(this.recorderStopItem);
|
|
- this.recorderPlayItem = new MenuItem(Console.message("Play"));
|
|
- languageMenu.add(this.recorderPlayItem);
|
|
- }
|
|
-
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- languageMenu = new Menu(Console.message("Languages"));
|
|
- this.addMenuItem(languageMenu, "Options");
|
|
- Menu downloadFont = new Menu(Console.message("Download-Font"));
|
|
- languageMenu.add(downloadFont);
|
|
- downloadFont.setFont(mfont);
|
|
- this.fontItems = new Vector();
|
|
-
|
|
- for(int i = 0; i < this.fLength; ++i) {
|
|
- if (this.flList.elementAt(i) != null) {
|
|
- String code;
|
|
- if (this.fsList.elementAt(i) != null) {
|
|
- this.newfLocale[i] = new Locale((String)this.flList.elementAt(i), (String)this.fsList.elementAt(i));
|
|
- code = (String)this.flList.elementAt(i) + "_" + (String)this.fsList.elementAt(i);
|
|
- if (code.equals(Console.message(code))) {
|
|
- this.dFonts[i] = new MenuItem(this.newfLocale[i].getDisplayName());
|
|
- } else {
|
|
- this.dFonts[i] = new MenuItem(Console.message(code));
|
|
- }
|
|
- } else {
|
|
- code = (String)this.flList.elementAt(i);
|
|
- if (code.equals(Console.message(code))) {
|
|
- this.dFonts[i] = new MenuItem((String)this.flList.elementAt(i));
|
|
- } else {
|
|
- this.dFonts[i] = new MenuItem(Console.message(code));
|
|
- }
|
|
- }
|
|
-
|
|
- this.dFonts[i].setFont(mfont);
|
|
- downloadFont.add(this.dFonts[i]);
|
|
- this.fontItems.addElement(this.dFonts[i]);
|
|
- }
|
|
- }
|
|
-
|
|
- Menu downloadLanguage = new Menu(Console.message("Download-Language"));
|
|
- languageMenu.add(downloadLanguage);
|
|
- downloadLanguage.setFont(mfont);
|
|
- this.downItems = new Vector();
|
|
- String[] sLangs = new String[this.dLength];
|
|
-
|
|
- String lName;
|
|
- for(int i = 0; i < this.dLength; ++i) {
|
|
- if (this.lList.elementAt(i) != null) {
|
|
- this.newdLocale[i] = new Locale((String)this.lList.elementAt(i), (String)this.sList.elementAt(i));
|
|
- String lName0;
|
|
- if (i > 0) {
|
|
- Locale locale0 = new Locale((String)this.lList.elementAt(i - 1), (String)this.sList.elementAt(i - 1));
|
|
- lName0 = locale0.getDisplayName();
|
|
- } else {
|
|
- lName0 = this.newdLocale[i].getDisplayName();
|
|
- }
|
|
-
|
|
- String lName1 = this.newdLocale[i].getDisplayName();
|
|
- lName1 = lName1.substring(0, lName1.indexOf(40) - 1);
|
|
- String lName;
|
|
- if (i < this.dLength - 1) {
|
|
- Locale locale2 = new Locale((String)this.lList.elementAt(i + 1), (String)this.sList.elementAt(i + 1));
|
|
- lName = locale2.getDisplayName();
|
|
- lName = lName.substring(0, lName.indexOf(40) - 1);
|
|
- if (lName.equals(lName1)) {
|
|
- lName = this.newdLocale[i].getDisplayName();
|
|
- } else {
|
|
- lName = lName1;
|
|
- }
|
|
- } else if (i == this.dLength - 1) {
|
|
- lName0 = lName0.substring(0, lName0.indexOf(40) - 1);
|
|
- if (lName1.equals(lName0)) {
|
|
- lName = this.newdLocale[i].getDisplayName();
|
|
- } else {
|
|
- lName = lName1;
|
|
- }
|
|
- } else if (sLangs[i - 1].equals(lName1)) {
|
|
- lName = this.newdLocale[i].getDisplayName();
|
|
- } else {
|
|
- lName = lName1;
|
|
- }
|
|
-
|
|
- String code = (String)this.lList.elementAt(i) + "_" + (String)this.sList.elementAt(i);
|
|
- if (code.equals(Console.message(code))) {
|
|
- sLangs[i] = lName;
|
|
- } else {
|
|
- sLangs[i] = Console.message(code);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- Collator sortCollator = Collator.getInstance();
|
|
- sortStrings(sortCollator, sLangs, this.newdLocale, this.lList, this.sList);
|
|
-
|
|
- for(int i = 0; i < this.dLength; ++i) {
|
|
- this.dLangs[i] = new MenuItem(sLangs[i]);
|
|
- this.dLangs[i].setFont(mfont);
|
|
- downloadLanguage.add(this.dLangs[i]);
|
|
- this.downItems.addElement(this.dLangs[i]);
|
|
- }
|
|
-
|
|
- Menu switchLang = new Menu(Console.message("Switch-Language"));
|
|
- languageMenu.add(switchLang);
|
|
- switchLang.setFont(mfont);
|
|
- this.langItems = new Vector();
|
|
-
|
|
- int i;
|
|
- for(int i = 0; i < lLength; ++i) {
|
|
- i = lNames[i].indexOf(95);
|
|
- if (i < 0) {
|
|
- lCodes[i][0] = "en";
|
|
- lCodes[i][1] = "US";
|
|
- } else {
|
|
- int ipr = lNames[i].lastIndexOf(46);
|
|
- if (ipr < 0) {
|
|
- ipr = 0;
|
|
- }
|
|
-
|
|
- lCodes[i][0] = lNames[i].substring(i + 1, i + 3);
|
|
- if (ipr > i + 4) {
|
|
- lCodes[i][1] = lNames[i].substring(i + 4, ipr);
|
|
- } else {
|
|
- lCodes[i][1] = lCodes[i][0].toUpperCase();
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- String[] slLangs = new String[lLength];
|
|
-
|
|
- for(i = 0; i < lLength; ++i) {
|
|
- newLocale[i] = new Locale(lCodes[i][0], lCodes[i][1]);
|
|
- String lName0;
|
|
- if (i > 0) {
|
|
- Locale locale0 = new Locale(lCodes[i - 1][0], lCodes[i - 1][1]);
|
|
- lName0 = locale0.getDisplayName();
|
|
+ MenuItem aboutItem;
|
|
+ MenuItem statisticsItem;
|
|
+ MenuItem upgradeItem;
|
|
+ MenuItem channelItem;
|
|
+ MenuItem infoItem;
|
|
+ MenuItem sleepItem;
|
|
+ MenuItem helpItem;
|
|
+ MenuItem gettingStartedItem;
|
|
+ MenuItem serverItem;
|
|
+ MenuItem numVisItem;
|
|
+ MenuItem checkAccountItem;
|
|
+ MenuItem becomeVIPItem;
|
|
+ MenuItem toggleVoiceChatItem;
|
|
+ MenuItem shaperHelpItem;
|
|
+ MenuItem inventoryItem;
|
|
+ MenuItem proxyServerItem;
|
|
+ MenuItem musicManItem;
|
|
+ MenuItem condenseItem;
|
|
+ MenuItem expandItem;
|
|
+ MenuItem i18nTest;
|
|
+ MenuItem currentLang;
|
|
+ Menu switchLang;
|
|
+ Vector downItems = null;
|
|
+ Vector langItems = null;
|
|
+ Vector fontItems = null;
|
|
+ static final String LANGUAGES = "languages.lst";
|
|
+ static final String FONTS = "fonts.lst";
|
|
+ Vector viewItems = null;
|
|
+ Vector camSpeedItems = null;
|
|
+ CheckboxMenuItem currentViewItem;
|
|
+ CheckboxMenuItem currentCamSpeedItem;
|
|
+
|
|
+ Vector whisperItems = null;
|
|
+ Vector teleportItems = null;
|
|
+ CheckboxMenuItem currentWhisperItem;
|
|
+ CheckboxMenuItem currentTeleportItem;
|
|
+
|
|
+ ImageButtons driveButton;
|
|
+ ImageButtons quitButton;
|
|
+ ImageButtons exploreButton;
|
|
+ ImageButtons menuButtons;
|
|
+ String defaultAd = IniFile.override().getIniString("defaultAd", "home:adworlds.cmp");
|
|
+ AdPart ad;
|
|
+ ChatPart chat;
|
|
+ RenderCanvas render;
|
|
+ Panel renderAndUniverse;
|
|
+ UniversePanel universe;
|
|
+ CardLayout renderCard;
|
|
+ InventoryPart inventory;
|
|
+ WorldsMarkPart marks;
|
|
+ FriendsListPart friends;
|
|
+ ActionsPart actions;
|
|
+ MuteListPart mutes;
|
|
+ TarListPart tars;
|
|
+ MapPart map;
|
|
+ SavedAvPart savedAvs;
|
|
+ private static Font font = new Font(Console.message("ConsoleFont"), 0, 12);
|
|
+ private static Font mfont = new Font(Console.message("MenuFont"), 0, 12);
|
|
+ CDControl cdcontrol;
|
|
+ boolean playedCD;
|
|
+ MenuItem cdPlayerItem;
|
|
+ MenuItem volumeItem;
|
|
+ MenuItem graphicsItem;
|
|
+ MenuItem nametagItem;
|
|
+ MenuItem chatBoxItem;
|
|
+ MenuItem broadcastToRoom;
|
|
+ MenuItem broadcastToAll;
|
|
+ MenuItem bootSomeone;
|
|
+ MenuItem recorderPlayItem;
|
|
+ MenuItem recorderRecItem;
|
|
+ MenuItem recorderStopItem;
|
|
+ CheckboxMenuItem showWhispers;
|
|
+ CheckboxMenuItem showTeleports;
|
|
+ CheckboxMenuItem respondWhispers;
|
|
+ CheckboxMenuItem respondTeleports;
|
|
+ CheckboxMenuItem overrideWorldTeleport;
|
|
+ boolean universeMode;
|
|
+ private static final int[] menuButtonHeights = new int[]{23, 21, 21, 21, 21, 21, 25, -29};
|
|
+ private Vector viewNames;
|
|
+ private Vector speedNames;
|
|
+ private Vector whisperNames;
|
|
+ private Vector teleportNames;
|
|
+ private static final int HELP = 0;
|
|
+ private static final int OPTIONS = 1;
|
|
+ private static final int WORLDSMAIL = 2;
|
|
+ private static final int WORLDSMARK = 3;
|
|
+ private static final int LETS = 4;
|
|
+ private static final int ACTIONS = 5;
|
|
+ private static final int VIP = 6;
|
|
+ static String loadingString = Console.message("Loading");
|
|
+ static String arrowKeyMsg = Console.message("Use-arrow-keys");
|
|
+ String statusMessage;
|
|
+ String overrideMessage;
|
|
+ String lastStatus;
|
|
+ int lastUpdateTime;
|
|
+ boolean wasTeleporting;
|
|
+ private int lastVMCheck;
|
|
+ private int lastVMBigWarning;
|
|
+ Component bottom;
|
|
+ Component top;
|
|
+ Label status;
|
|
+ Label yourName;
|
|
+ static String[] lNames = lpList();
|
|
+ static int lLength;
|
|
+ static MenuItem[] lLangs;
|
|
+ static Locale[] newLocale;
|
|
+ static String[][] lCodes;
|
|
+ Vector lList;
|
|
+ Vector sList;
|
|
+ int[] lSizes;
|
|
+ int dLength;
|
|
+ MenuItem[] dLangs;
|
|
+ Locale[] newdLocale;
|
|
+ Vector flList;
|
|
+ Vector fsList;
|
|
+ int[] fSizes;
|
|
+ int fLength;
|
|
+ MenuItem[] dFonts;
|
|
+ Locale[] newfLocale;
|
|
+ static boolean wasDelta;
|
|
+ static boolean doDrive;
|
|
+ Panel mapPanel;
|
|
+ private static String signIn;
|
|
+ private static String signOut;
|
|
+ private static String signingIn;
|
|
+ private static String noMultiUser;
|
|
+ private static String enable3D;
|
|
+ private static String disable3D;
|
|
+ private static String showTags;
|
|
+ private static String hideTags;
|
|
+ private static String enableClassicChat;
|
|
+ private static String disableClassicChat;
|
|
+ Menu chatLogMenu;
|
|
+ AvMenu avatarMenu;
|
|
+ private int chooseView;
|
|
+ private int chooseCamSpeed;
|
|
+ private int chooseWhisper;
|
|
+ private int chooseTeleport;
|
|
+ private static String sleepStatus;
|
|
+ OkCancelDialog reloginDialog;
|
|
+ private Object nextAvatarMutex;
|
|
+ private URL nextAvatar;
|
|
+ private CheckboxMenuItem nextAvatarItem;
|
|
+ private CheckboxMenuItem curAvatarItem;
|
|
+ private static String lastWorldName;
|
|
+ private static String lowVMMsg;
|
|
+ private boolean showedMidWarn;
|
|
+ private static boolean startupMemCheck;
|
|
+ public static int physMem;
|
|
+ protected URL avatarURL;
|
|
+ private static Object classCookie;
|
|
+
|
|
+ public UniversePanel getUniversePanel() {
|
|
+ return this.universe;
|
|
+ }
|
|
+
|
|
+ public void printLine(String var1) {
|
|
+ this.chat.println(var1);
|
|
+ super.printLine(var1);
|
|
+ }
|
|
+
|
|
+ protected void printWhisperFrom(String var1, String var2) {
|
|
+ WhisperManager.whisperManager().printFrom(var1, var2);
|
|
+ }
|
|
+
|
|
+ protected void printWhisperTo(String var1, String var2) {
|
|
+ WhisperManager.whisperManager().printTo(var1, var2);
|
|
+ }
|
|
+
|
|
+ protected void startWhisperingTo(String var1) {
|
|
+ WhisperManager.whisperManager().startTo(var1);
|
|
+ }
|
|
+
|
|
+ public DefaultConsole() {
|
|
+ this.ad = new AdPart(URL.make(this.defaultAd));
|
|
+ this.chat = new ChatPart();
|
|
+ this.render = new RenderCanvas(this, new Dimension(560, 360));
|
|
+ this.inventory = new InventoryPart();
|
|
+ this.marks = new WorldsMarkPart();
|
|
+ this.friends = new FriendsListPart();
|
|
+ this.actions = new ActionsPart();
|
|
+ this.mutes = new MuteListPart();
|
|
+ this.tars = new TarListPart();
|
|
+ this.map = new MapPart();
|
|
+ this.savedAvs = new SavedAvPart();
|
|
+ this.statusMessage = arrowKeyMsg;
|
|
+ this.lastStatus = "";
|
|
+ this.lastUpdateTime = 0;
|
|
+ this.wasTeleporting = false;
|
|
+ this.status = new UnpaddedLabel("", 2);
|
|
+ this.yourName = new UnpaddedLabel("", 0);
|
|
+ this.lList = new Vector();
|
|
+ this.sList = new Vector();
|
|
+ this.lSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
+ this.dLength = this.dpList(this.lList, this.sList, this.lSizes);
|
|
+ this.dLangs = this.dLength == 0 ? null : new MenuItem[this.dLength];
|
|
+ this.newdLocale = this.dLength == 0 ? null : new Locale[this.dLength];
|
|
+ this.flList = new Vector();
|
|
+ this.fsList = new Vector();
|
|
+ this.fSizes = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
|
|
+ this.fLength = this.fpList(this.flList, this.fsList, this.fSizes);
|
|
+ this.dFonts = this.fLength == 0 ? null : new MenuItem[this.fLength];
|
|
+ this.newfLocale = this.fLength == 0 ? null : new Locale[this.fLength];
|
|
+ this.chooseView = -1;
|
|
+ this.chooseCamSpeed = -1;
|
|
+ this.chooseWhisper = -1;
|
|
+ this.chooseTeleport = -1;
|
|
+ this.nextAvatarMutex = new Object();
|
|
+ new ChatSaver();
|
|
+ this.init();
|
|
+ this.loadViewNames();
|
|
+ this.loadSpeedNames();
|
|
+ this.loadWhisperNames();
|
|
+ this.loadTeleportNames();
|
|
+ }
|
|
+
|
|
+ public void loadSpeedNames() {
|
|
+ this.speedNames = new Vector();
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Slow", 1));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Medium", 2));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Fast", 3));
|
|
+ this.speedNames.addElement(new DefaultConsole.CameraSpeed("Very Fast", 4));
|
|
+ }
|
|
+
|
|
+ public void loadViewNames() {
|
|
+ this.viewNames = new Vector();
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("First-person", 1));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Low-first-person", 2));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Waist", 3));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Shoulder", 4));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Head", 5));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Overhead", 6));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Behind", 7));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Wide-shot", 8));
|
|
+ this.viewNames.addElement(new DefaultConsole.CameraView("Orthographic", 9));
|
|
+ }
|
|
+
|
|
+ public void loadWhisperNames() {
|
|
+ this.whisperNames = new Vector();
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("Everyone", 0));
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("Friends", 1));
|
|
+ this.whisperNames.addElement(new DefaultConsole.WhisperPrivacy("No one", 2));
|
|
+ }
|
|
+
|
|
+ public void loadTeleportNames() {
|
|
+ this.teleportNames = new Vector();
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("Everyone", 0));
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("Friends", 1));
|
|
+ this.teleportNames.addElement(new DefaultConsole.TeleportPrivacy("No one", 2));
|
|
+ }
|
|
+
|
|
+ public void setOrthoEnabled(boolean var1) {
|
|
+
|
|
+ }
|
|
+
|
|
+ public void loadInit() {
|
|
+ super.loadInit();
|
|
+ }
|
|
+
|
|
+ public void removeUseArrowStatusMsg() {
|
|
+ if (this.statusMessage.equals(arrowKeyMsg)) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void overrideStatusMsg(String var1) {
|
|
+ synchronized(this.status) {
|
|
+ this.overrideMessage = var1;
|
|
+ if (var1 != null) {
|
|
+ this.status.setText(var1);
|
|
} else {
|
|
- lName0 = newLocale[i].getDisplayName();
|
|
+ this.status.setText(this.lastStatus);
|
|
}
|
|
|
|
- String lName1 = newLocale[i].getDisplayName();
|
|
- lName1 = lName1.substring(0, lName1.indexOf(40) - 1);
|
|
- if (i < lLength - 1) {
|
|
- Locale locale2 = new Locale(lCodes[i + 1][0], lCodes[i + 1][1]);
|
|
- String lName2 = locale2.getDisplayName();
|
|
- lName2 = lName2.substring(0, lName2.indexOf(40) - 1);
|
|
- if (lName2.equals(lName1)) {
|
|
- lName = newLocale[i].getDisplayName();
|
|
- } else {
|
|
- lName = lName1;
|
|
- }
|
|
- } else if (i == lLength - 1) {
|
|
- lName0 = lName0.substring(0, lName0.indexOf(40) - 1);
|
|
- if (lName1.equals(lName0)) {
|
|
- lName = newLocale[i].getDisplayName();
|
|
- } else {
|
|
- lName = lName1;
|
|
- }
|
|
- } else if (slLangs[i - 1].equals(lName1)) {
|
|
- lName = newLocale[i].getDisplayName();
|
|
- } else {
|
|
- lName = lName1;
|
|
- }
|
|
-
|
|
- String code = lCodes[i][0] + "_" + lCodes[i][1];
|
|
- if (code.equals(Console.message(code))) {
|
|
- slLangs[i] = lName;
|
|
- } else {
|
|
- slLangs[i] = Console.message(code);
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- sortStrings(sortCollator, slLangs, newLocale, lCodes);
|
|
-
|
|
- for(i = 0; i < lLength; ++i) {
|
|
- lLangs[i] = new MenuItem(slLangs[i]);
|
|
- lLangs[i].setFont(mfont);
|
|
- switchLang.add(lLangs[i]);
|
|
- this.langItems.addElement(lLangs[i]);
|
|
- }
|
|
-
|
|
- this.currentLang = new MenuItem(Console.message("Current-Language"));
|
|
- languageMenu.add(this.currentLang);
|
|
- this.currentLang.setFont(mfont);
|
|
- }
|
|
-
|
|
- if (useShaper) {
|
|
- this.condenseItem = this.addMenuItem(Console.message("Condense-Files"), "Options");
|
|
- this.expandItem = this.addMenuItem(Console.message("Expand-Files"), "Options");
|
|
- this.musicManItem = this.addMenuItem(Console.message("Music-Manager"), "Options");
|
|
- this.i18nTest = this.addMenuItem(Console.message("I18N-Test"), "Options");
|
|
- }
|
|
-
|
|
- this.cdPlayerItem = this.addMenuItem(Console.message("MusicM"), "Options");
|
|
- this.volumeItem = this.addMenuItem(Console.message("Volume-control"), "Options");
|
|
- if (RenderWare.get3DHardwareAvailable()) {
|
|
- if (RenderWare.get3DHardwareInUse()) {
|
|
- this.graphicsItem = this.addMenuItem(disable3D, "Options");
|
|
- } else {
|
|
- this.graphicsItem = this.addMenuItem(enable3D, "Options");
|
|
- }
|
|
- }
|
|
-
|
|
- if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1) {
|
|
- this.nametagItem = this.addMenuItem(hideTags, "Options");
|
|
- } else {
|
|
- this.nametagItem = this.addMenuItem(showTags, "Options");
|
|
- }
|
|
-
|
|
- if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
|
|
- this.chatBoxItem = this.addMenuItem(disableClassicChat, "Options");
|
|
- } else {
|
|
- this.chatBoxItem = this.addMenuItem(enableClassicChat, "Options");
|
|
- this.chatItem = this.addMenuItem(configureChat, "Options");
|
|
- }
|
|
-
|
|
- if (Gamma.loadProgress != null) {
|
|
- Gamma.loadProgress.setMessage("Preloading avatars...");
|
|
- Gamma.loadProgress.advance();
|
|
- }
|
|
-
|
|
- this.menuDone();
|
|
- getFrame().activate();
|
|
- LogFile.mailLogIfPresent(this.getSmtpServer());
|
|
- this.render.requestFocus();
|
|
- this.setMenusWRTVIP();
|
|
- this.bootSomeone = null;
|
|
- if (this.broadcastEnabled()) {
|
|
- this.addBroadcastMenu();
|
|
- }
|
|
-
|
|
- this.universeMode = false;
|
|
- }
|
|
-
|
|
- public void setVIP(boolean f) {
|
|
- super.setVIP(f);
|
|
- this.setMenusWRTVIP();
|
|
- this.setNameStr();
|
|
- }
|
|
-
|
|
- public void checkCourtesyVIP() {
|
|
- super.checkCourtesyVIP();
|
|
- this.setMenusWRTVIP();
|
|
- this.setNameStr();
|
|
- }
|
|
-
|
|
- public void setNameStr() {
|
|
- String nameStr = this.galaxy.getUsernameU();
|
|
- boolean isOnline = this.galaxy.getOnline();
|
|
- if (!isOnline) {
|
|
- this.yourName.setText(Console.message("Off-line"));
|
|
- } else {
|
|
- if (nameStr.length() > 0) {
|
|
- if (nameStr.regionMatches(true, 0, "VIP ", 0, 4)) {
|
|
- nameStr = nameStr.substring(4);
|
|
- }
|
|
-
|
|
- if (vip > 0) {
|
|
- if (vip > 1) {
|
|
- nameStr = Console.message("VIP") + " " + nameStr;
|
|
- } else {
|
|
- nameStr = Console.message("vip") + " " + nameStr;
|
|
- }
|
|
- }
|
|
-
|
|
- IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(nameStr));
|
|
- this.yourName.setText(Console.parseUnicode(nameStr));
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void enableBroadcast(boolean enabled) {
|
|
- super.enableBroadcast(enabled);
|
|
- if (enabled) {
|
|
- this.addBroadcastMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- super.deactivate();
|
|
- this.universeMode = false;
|
|
- }
|
|
-
|
|
- protected void setSleepMode(String mode) {
|
|
- super.setSleepMode(mode);
|
|
- if (mode != null && mode.equals(Console.message("asleep"))) {
|
|
- this.statusMessage = sleepStatus;
|
|
- } else if (this.statusMessage == sleepStatus) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void relogin() {
|
|
- if (this.serverItem.getLabel().equals(signOut)) {
|
|
- this.reloginDialog = new OkCancelDialog(getFrame(), this, Console.message("Re-login"), Console.message("Cancel"), Console.message("OK"), Console.message("auto-sign-out"), true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public boolean action(Event event, Object what) {
|
|
- if (event.target == this.aboutItem) {
|
|
- new AboutDialog(Std.getProductName(), getFrame());
|
|
- } else if (event.target == this.statisticsItem && this.statisticsItem != null) {
|
|
- new StatisticsWindow(getFrame());
|
|
- } else if (this.viewItems.contains(event.target)) {
|
|
- this.changeView((CheckboxMenuItem)event.target);
|
|
- } else if (this.camSpeedItems.contains(event.target)) {
|
|
- this.changeCamSpeed((CheckboxMenuItem)event.target);
|
|
- } else if (event.target == this.gettingStartedItem) {
|
|
- (new SendURLAction(this.getHelpGettingStarted())).startBrowser();
|
|
- } else {
|
|
- String code;
|
|
- String languageURL;
|
|
- if (event.target == this.shaperHelpItem) {
|
|
- languageURL = IniFile.override().getIniString("ShaperHelp", this.getScriptServer() + "shaperhelp.pl") + "?u=";
|
|
- code = IniFile.gamma().getIniString("lastchatname", "");
|
|
- if (!code.equals("")) {
|
|
- if (code.startsWith("VIP ")) {
|
|
- code = code.substring(4);
|
|
- }
|
|
-
|
|
- languageURL = languageURL + code;
|
|
- }
|
|
-
|
|
- (new SendURLAction(WebControlImp.processURL(languageURL))).startBrowser();
|
|
- } else if (event.target == this.helpItem) {
|
|
- languageURL = NetUpdate.getUpgradeServerURL();
|
|
- code = IniFile.override().getIniString("HelpDirectory", "help");
|
|
- String helpPage = IniFile.override().getIniString("HelpPage", Std.getVersion() + Console.message(".html"));
|
|
- if (wasHttpNoSuchFile(languageURL + code + "/" + helpPage)) {
|
|
- helpPage = IniFile.override().getIniString("HelpPage", Std.getVersion() + ".html");
|
|
- }
|
|
-
|
|
- (new SendURLAction(languageURL + code + "/" + helpPage)).startBrowser();
|
|
- } else if (event.target == this.infoItem) {
|
|
- languageURL = IniFile.override().getIniString("infoOverride", "");
|
|
- if (languageURL.equals("")) {
|
|
- NetUpdate.showInfo();
|
|
+ public String message(String var1, Locale var2) {
|
|
+ Locale.setDefault(var2);
|
|
+ Console.println(var2.getDisplayName());
|
|
+
|
|
+ try {
|
|
+ ResourceBundle var3 = ResourceBundle.getBundle("MessagesBundle", var2);
|
|
+ return var3.getString(var1);
|
|
+ } catch (MissingResourceException var4) {
|
|
+ return "NO MESSAGE for " + var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void init() {
|
|
+ this.addPart(this.render);
|
|
+ this.addPart(this.chat);
|
|
+ this.addPart(this.inventory);
|
|
+ this.addPart(this.marks);
|
|
+ this.addPart(this.friends);
|
|
+ this.addPart(this.actions);
|
|
+ this.addPart(this.mutes);
|
|
+ this.addPart(this.tars);
|
|
+ this.addPart(this.ad);
|
|
+ this.addPart(this.map);
|
|
+ this.addPart(this.savedAvs);
|
|
+ Panel var1 = new Panel(new FlowLayout(1, 0, 0));
|
|
+ String var2 = IniFile.override().getIniString("driveGif", "drive.gif");
|
|
+ this.addPart(this.driveButton = new ImageButtons(var2, 81, 19, this));
|
|
+ String var3 = IniFile.override().getIniString("quitGif", Console.message("quit.gif"));
|
|
+ this.addPart(this.quitButton = new ImageButtons(var3, 65, 19, this));
|
|
+ String var4 = IniFile.override().getIniString("exploreGif", Console.message("explore.gif"));
|
|
+ this.addPart(this.exploreButton = new ImageButtons(var4, 98, 22, this));
|
|
+ var1.add(this.driveButton);
|
|
+ this.driveButton.setDownUpHandler(new ImageButtonsCallback() {
|
|
+ public Object imageButtonsCallback(Component var1, int var2) {
|
|
+ if (var2 != -1) {
|
|
+ DefaultConsole.this.startDrive();
|
|
+ } else {
|
|
+ DefaultConsole.this.driveButton.drawDown();
|
|
+ }
|
|
+
|
|
+ return this;
|
|
+ }
|
|
+ });
|
|
+ Panel var5 = new Panel();
|
|
+ var5.setLayout(new GridLayout(1, 3));
|
|
+ int var6 = IniFile.override().getIniInt("uiBackgroundRed", 49);
|
|
+ int var7 = IniFile.override().getIniInt("uiBackgroundGreen", 0);
|
|
+ int var8 = IniFile.override().getIniInt("uiBackgroundBlue", 255);
|
|
+ var5.setBackground(new Color(var6, var7, var8));
|
|
+ var5.add(this.yourName);
|
|
+ var5.add(var1);
|
|
+ var5.add(this.status);
|
|
+ this.chat.line.setBackground(Color.black);
|
|
+ this.chat.line.setForeground(Color.white);
|
|
+ this.chat.line.setFont(font);
|
|
+ InsetPanel var9 = new InsetPanel(new BorderLayout(0, 3), 0, 0, 3, 0);
|
|
+ var9.add("North", var5);
|
|
+ var9.add("Center", this.chat.listen.getComponent());
|
|
+ var9.add("South", this.chat.line);
|
|
+ this.chat.listen.setBackground(Color.black);
|
|
+ this.chat.listen.setForeground(Color.white);
|
|
+ this.chat.listen.setFont(font);
|
|
+ Panel var10 = new Panel(new BorderLayout());
|
|
+ new Panel(new BorderLayout());
|
|
+ Panel var12 = new Panel(new BorderLayout());
|
|
+ Panel var13 = new Panel(new BorderLayout());
|
|
+ ColorFiller var14 = new ColorFiller(65, 19);
|
|
+ var14.setBackground(new Color(var6, var7, var8));
|
|
+ var12.add("West", this.quitButton);
|
|
+ var12.add("East", var14);
|
|
+ var13.add("North", var12);
|
|
+ var13.add("Center", this.ad);
|
|
+ var10.add("West", var13);
|
|
+ this.mapPanel = new Panel(new BorderLayout());
|
|
+ this.mapPanel.add("Center", this.map);
|
|
+ this.mapPanel.setBackground(Color.black);
|
|
+ var12 = new Panel(new BorderLayout());
|
|
+ ColorFiller var15 = new ColorFiller(60, 19);
|
|
+ var15.setBackground(new Color(var6, var7, var8));
|
|
+ var12.add("North", var15);
|
|
+ ColorFiller var16 = new ColorFiller(60, 3);
|
|
+ int var17 = IniFile.override().getIniInt("uiBackground2Red", 0);
|
|
+ int var18 = IniFile.override().getIniInt("uiBackground2Green", 0);
|
|
+ int var19 = IniFile.override().getIniInt("uiBackground2Blue", 0);
|
|
+ var16.setBackground(new Color(var17, var18, var19));
|
|
+ var12.add("South", var16);
|
|
+ Panel var11 = new Panel(new BorderLayout());
|
|
+ var11.add("East", this.exploreButton);
|
|
+ var11.add("West", var12);
|
|
+ this.mapPanel.add("North", var11);
|
|
+ var10.add("East", this.mapPanel);
|
|
+ var10.add("Center", var9);
|
|
+ this.bottom = var10;
|
|
+ this.renderCard = new CardLayout();
|
|
+ this.renderAndUniverse = new Panel(this.renderCard);
|
|
+ this.renderAndUniverse.add("render", this.render);
|
|
+ InsetPanel var20 = new InsetPanel(new BorderLayout(), 3, 3, 0, 0);
|
|
+ var20.add("Center", this.renderAndUniverse);
|
|
+ int var21 = IniFile.override().getIniInt("uiBackground3Red", 0);
|
|
+ int var22 = IniFile.override().getIniInt("uiBackground3Green", 0);
|
|
+ int var23 = IniFile.override().getIniInt("uiBackground3Blue", 0);
|
|
+ var14 = new ColorFiller(97, 1);
|
|
+ var14.setBackground(new Color(var21, var22, var23));
|
|
+ Panel var24 = new Panel(new QuantizedStackedLayout(var14));
|
|
+ String var25 = IniFile.override().getIniString("rtPanel", Console.message("rtpanel.gif"));
|
|
+ this.addPart(this.menuButtons = new ImageButtons(var25, 97, menuButtonHeights, this));
|
|
+ var24.add(var14);
|
|
+ var24.add(this.menuButtons);
|
|
+ var24.add(this.friends);
|
|
+ var20.add("East", var24);
|
|
+ this.top = var20;
|
|
+ }
|
|
+
|
|
+ public void relayoutMap() {
|
|
+ this.mapPanel.invalidate();
|
|
+ this.mapPanel.validate();
|
|
+ this.mapPanel.doLayout();
|
|
+ this.mapPanel.repaint();
|
|
+ }
|
|
+
|
|
+ public void startDrive() {
|
|
+ this.statusMessage = Console.message("Drag-mouse");
|
|
+ doDrive = true;
|
|
+ Window.makeJavaReleaseCapture();
|
|
+ }
|
|
+
|
|
+ public void setOnlineState(boolean var1, boolean var2) {
|
|
+ synchronized(this) {
|
|
+ if (this.serverItem != null) {
|
|
+ this.serverItem.setEnabled(var1);
|
|
+ if (!var1) {
|
|
+ Galaxy var4 = this.getGalaxy();
|
|
+ if (var4 != null && !var4.isAnonymous()) {
|
|
+ this.serverItem.setLabel(signingIn);
|
|
+ } else {
|
|
+ this.serverItem.setLabel(noMultiUser);
|
|
+ }
|
|
+ } else if (var2) {
|
|
+ this.serverItem.setLabel(signOut);
|
|
+ } else {
|
|
+ this.serverItem.setLabel(signIn);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleNametagsItem() {
|
|
+ if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 0) {
|
|
+ IniFile.gamma().setIniInt("SHOWNAMETAGS", 1);
|
|
+ this.nametagItem.setLabel(hideTags);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("SHOWNAMETAGS", 0);
|
|
+ this.nametagItem.setLabel(showTags);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ private void handleGraphicsItem() {
|
|
+ if (IniFile.gamma().getIniInt("UserEnabled3DHardware", 0) == 0) {
|
|
+ IniFile.gamma().setIniInt("UserEnabled3DHardware", 1);
|
|
+ this.graphicsItem.setLabel(disable3D);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("UserEnabled3DHardware", 0);
|
|
+ this.graphicsItem.setLabel(enable3D);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ private void handleChatBoxItem() {
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 0) {
|
|
+ IniFile.gamma().setIniInt("classicChatBox", 1);
|
|
+ this.chatBoxItem.setLabel(disableClassicChat);
|
|
+ } else {
|
|
+ IniFile.gamma().setIniInt("classicChatBox", 0);
|
|
+ this.chatBoxItem.setLabel(enableClassicChat);
|
|
+ }
|
|
+
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ }
|
|
+
|
|
+ public AvMenu getAvatarMenu() {
|
|
+ return this.avatarMenu;
|
|
+ }
|
|
+
|
|
+ public void inventoryChanged() {
|
|
+ super.inventoryChanged();
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.buildSpecialGuestMenu();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setMenusWRTVIP() {
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.setEnabled(this.getVIP());
|
|
+ this.avatarMenu.customize.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.savedAvs != null) {
|
|
+ this.savedAvs.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.chatLogMenu != null) {
|
|
+ this.chatLogMenu.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ if (this.toggleVoiceChatItem != null) {
|
|
+ this.toggleVoiceChatItem.setLabel(this.getVIP() && VoiceChat.voiceChatEnabled ? Console.message("Reject-Voice") : Console.message("Accept-Voice"));
|
|
+ this.toggleVoiceChatItem.setEnabled(this.getVIP() && VoiceChat.voiceChatAvailable());
|
|
+ }
|
|
+
|
|
+ if (this.becomeVIPItem != null) {
|
|
+ this.becomeVIPItem.setLabel(vip > 0 ? (vip > 1 ? Console.message("Youre-a-VIP") : Console.message("Become-full-VIP")) : Console.message("Become-VIP"));
|
|
+ }
|
|
+
|
|
+ if (this.numVisItem != null) {
|
|
+ this.numVisItem.setEnabled(this.getVIP());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void addBroadcastMenu() {
|
|
+ if (this.bootSomeone == null) {
|
|
+ if (IniFile.gamma().getIniInt("Broadcast", 0) != 0) {
|
|
+ Menu var1 = new Menu(Console.message("Broadcast"));
|
|
+ var1.add(this.broadcastToRoom = new MenuItem(Console.message("Users")));
|
|
+ var1.add(this.broadcastToAll = new MenuItem(Console.message("All-users")));
|
|
+ this.addMenuItem(var1, "Options");
|
|
+ }
|
|
+
|
|
+ this.bootSomeone = new MenuItem(Console.message("Boot-user"));
|
|
+ this.addMenuItem(this.bootSomeone, "Options");
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private Menu updateChatLogMenu() {
|
|
+ if (this.chatLogMenu == null) {
|
|
+ this.chatLogMenu = new Menu(Console.message("View-Chat"));
|
|
+ } else {
|
|
+ this.chatLogMenu.removeAll();
|
|
+ }
|
|
+
|
|
+ ActionListener var1 = new ActionListener() {
|
|
+ public void actionPerformed(ActionEvent var1) {
|
|
+ (new SendURLAction("file:" + var1.getActionCommand())).startBrowser();
|
|
+ }
|
|
+ };
|
|
+ String[] var2 = this.logList();
|
|
+ MenuItem var3 = null;
|
|
+
|
|
+ for(int var4 = 0; var4 < var2.length; ++var4) {
|
|
+ int var5 = var2[var4].indexOf(".glog.html");
|
|
+ if (var5 > 6) {
|
|
+ Object[] var6 = new Object[]{new String(var2[var4].substring(5, var5))};
|
|
+ var3 = new MenuItem(MessageFormat.format(Console.message("Chat-with"), var6));
|
|
} else {
|
|
- (new SendURLAction(languageURL)).startBrowser();
|
|
- }
|
|
- } else if (event.target == this.i18nTest) {
|
|
- Locale df = Locale.getDefault();
|
|
- Console.println("Default = " + df.getDisplayName());
|
|
- DateFormat fulldate = DateFormat.getDateTimeInstance(1, 1);
|
|
- Date today = new Date();
|
|
- Console.println("Today = " + fulldate.format(today));
|
|
- Locale[] list = DateFormat.getAvailableLocales();
|
|
- Console.println("Avaliable Locales are:");
|
|
-
|
|
- for(int i = 0; i < list.length; ++i) {
|
|
- Locale.setDefault(list[i]);
|
|
- Console.println(list[i].getDisplayName() + " " + list[i]);
|
|
- }
|
|
-
|
|
- new Locale("en", "US");
|
|
- Locale fr = new Locale("fr", "FR");
|
|
- Locale de = new Locale("de", "DE");
|
|
- Locale ja = new Locale("ja", "JP");
|
|
- Locale zh = new Locale("zh", "CN");
|
|
- Locale th = new Locale("th", "TH");
|
|
- Locale ru = new Locale("ru", "RU");
|
|
- Locale iw = new Locale("iw", "IL");
|
|
- Console.println("file.encoding = " + System.getProperty("file.encoding"));
|
|
- Console.println(this.message("test-language", fr));
|
|
- Console.println(this.message("test-language", de));
|
|
- Console.println(this.message("test-language", ja));
|
|
- Console.println(this.message("test-language", zh));
|
|
- Console.println(this.message("test-language", th));
|
|
- Console.println(this.message("test-language", ru));
|
|
- Console.println(this.message("test-language", iw));
|
|
- Console.println(this.message("test-language", df));
|
|
- } else if (event.target == this.checkAccountItem) {
|
|
- languageURL = IniFile.override().getIniString("accountOverride", "");
|
|
- if (languageURL.equals("")) {
|
|
- code = IniFile.override().getIniString("accountInfoPage", "account" + Console.message(".pl"));
|
|
- if (wasHttpNoSuchFile(this.getScriptServer() + code)) {
|
|
- code = IniFile.override().getIniString("accountInfoPage", "account.pl");
|
|
- }
|
|
+ if (var5 <= 0) {
|
|
+ continue;
|
|
+ }
|
|
+
|
|
+ var3 = new MenuItem(Console.message("General-chat"));
|
|
+ }
|
|
+
|
|
+ var3.setActionCommand(var2[var4]);
|
|
+ var3.addActionListener(var1);
|
|
+ this.chatLogMenu.add(var3);
|
|
+ }
|
|
+
|
|
+ return this.chatLogMenu;
|
|
+ }
|
|
+
|
|
+ private String[] logList() {
|
|
+ File var1 = new File(".");
|
|
+ FilenameFilter var2 = new FilenameFilter() {
|
|
+ public boolean accept(File var1, String var2) {
|
|
+ return var2.startsWith("chat.") && var2.endsWith(".glog.html");
|
|
+ }
|
|
+ };
|
|
+ return var1.list(var2);
|
|
+ }
|
|
+
|
|
+ private static String[] lpList() {
|
|
+ File var0 = new File(".");
|
|
+ FilenameFilter var1 = new FilenameFilter() {
|
|
+ public boolean accept(File var1, String var2) {
|
|
+ return var2.startsWith("MessagesBundle") && var2.endsWith(".properties");
|
|
+ }
|
|
+ };
|
|
+ String[] var2 = var0.list(var1);
|
|
+ Collator var3 = Collator.getInstance();
|
|
+ sortStrings(var3, var2);
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ private int dpList(Vector var1, Vector var2, int[] var3) {
|
|
+ String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "languages.lst"), var1, var2, var3);
|
|
+ if (var4 != null) {
|
|
+ System.out.println(var4);
|
|
+ return 0;
|
|
+ } else {
|
|
+ return var1.size();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private int fpList(Vector var1, Vector var2, int[] var3) {
|
|
+ String var4 = NetUpdate.getLanguages(URL.make(NetUpdate.getUpgradeServerURL() + "I18N/" + "fonts.lst"), var1, var2, var3);
|
|
+ if (var4 != null) {
|
|
+ System.out.println(var4);
|
|
+ return 0;
|
|
+ } else {
|
|
+ return var1.size();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1, Locale[] var2, String[][] var3) {
|
|
+ for(int var8 = 0; var8 < var1.length; ++var8) {
|
|
+ for(int var9 = var8 + 1; var9 < var1.length; ++var9) {
|
|
+ if (var0.compare(var1[var8], var1[var9]) > 0) {
|
|
+ String var4 = var1[var8];
|
|
+ Locale var5 = var2[var8];
|
|
+ String var6 = var3[var8][0];
|
|
+ String var7 = var3[var8][1];
|
|
+ var1[var8] = var1[var9];
|
|
+ var2[var8] = var2[var9];
|
|
+ var3[var8][0] = var3[var9][0];
|
|
+ var3[var8][1] = var3[var9][1];
|
|
+ var1[var9] = var4;
|
|
+ var2[var9] = var5;
|
|
+ var3[var9][0] = var6;
|
|
+ var3[var9][1] = var7;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1, Locale[] var2, Vector var3, Vector var4) {
|
|
+ for(int var9 = 0; var9 < var1.length; ++var9) {
|
|
+ for(int var10 = var9 + 1; var10 < var1.length; ++var10) {
|
|
+ if (var0.compare(var1[var9], var1[var10]) > 0) {
|
|
+ String var5 = var1[var9];
|
|
+ Locale var6 = var2[var9];
|
|
+ String var7 = (String)var3.elementAt(var9);
|
|
+ String var8 = (String)var4.elementAt(var9);
|
|
+ var1[var9] = var1[var10];
|
|
+ var2[var9] = var2[var10];
|
|
+ var3.setElementAt(var3.elementAt(var10), var9);
|
|
+ var4.setElementAt(var4.elementAt(var10), var9);
|
|
+ var1[var10] = var5;
|
|
+ var2[var10] = var6;
|
|
+ var3.setElementAt(var7, var10);
|
|
+ var4.setElementAt(var8, var10);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void sortStrings(Collator var0, String[] var1) {
|
|
+ for(int var3 = 0; var3 < var1.length; ++var3) {
|
|
+ for(int var4 = var3 + 1; var4 < var1.length; ++var4) {
|
|
+ if (var0.compare(var1[var3], var1[var4]) > 0) {
|
|
+ String var2 = var1[var3];
|
|
+ var1[var3] = var1[var4];
|
|
+ var1[var4] = var2;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void activate(Container var1) {
|
|
+ super.activate(var1);
|
|
+ var1.setBackground(Color.black);
|
|
+ var1.setForeground(Color.white);
|
|
+ var1.setLayout(new BorderLayout());
|
|
+ var1.add("Center", this.top);
|
|
+ var1.add("South", this.bottom);
|
|
+ this.chat.line.setBackground(Color.white);
|
|
+ this.chat.line.setForeground(Color.black);
|
|
+ boolean var2 = Gamma.getShaper() != null;
|
|
+ if (var2) {
|
|
+ this.shaperHelpItem = this.addMenuItem(Console.message("using-shaper"), "Help");
|
|
+ }
|
|
+
|
|
+ if (NetUpdate.getInfoURL() != null) {
|
|
+ this.helpItem = this.addMenuItem(Console.message("Help-Contents"), "Help");
|
|
+ this.infoItem = this.addMenuItem(Console.message("Latest-info"), "Help");
|
|
+ }
|
|
+
|
|
+ Object[] var3 = new Object[]{new String(Std.getProductName())};
|
|
+ this.aboutItem = this.addMenuItem(MessageFormat.format(Console.message("About-product"), var3), "Help");
|
|
+ int var4 = IniFile.gamma().getIniInt("CAM_MODE", 7);
|
|
+ int var5 = IniFile.gamma().getIniInt("CAM_SPEED", 4);
|
|
+
|
|
+ this.pilot.setOutsideCameraMode(var4, var5);
|
|
+ Menu var6 = new Menu(Console.message("Change-View"));
|
|
+ this.addMenuItem(var6, "Options");
|
|
+ MenuItem var7 = new MenuItem(Console.message("CAMERA-VIEW"));
|
|
+ var7.setFont(mfont);
|
|
+ var6.add(var7);
|
|
+ this.viewItems = new Vector();
|
|
+
|
|
+ for(int var8 = 0; var8 < this.viewNames.size(); ++var8) {
|
|
+ DefaultConsole.CameraView var9 = (DefaultConsole.CameraView)this.viewNames.elementAt(var8);
|
|
+ CheckboxMenuItem var10 = new CheckboxMenuItem(" " + Console.message(var9.viewName), var4 == var9.viewID);
|
|
+ if (var4 == var9.viewID) {
|
|
+ this.currentViewItem = var10;
|
|
+ }
|
|
+
|
|
+ var10.setFont(mfont);
|
|
+ var6.add(var10);
|
|
+ this.viewItems.addElement(var10);
|
|
+ }
|
|
+
|
|
+ var6.addSeparator();
|
|
+ MenuItem var25 = new MenuItem(Console.message("CAMERA-SPEED"));
|
|
+ var25.setFont(mfont);
|
|
+ var6.add(var25);
|
|
+ this.camSpeedItems = new Vector();
|
|
+
|
|
+ for(int var26 = 0; var26 < this.speedNames.size(); ++var26) {
|
|
+ DefaultConsole.CameraSpeed var28 = (DefaultConsole.CameraSpeed)this.speedNames.elementAt(var26);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.speedName), var28.speedID == var5);
|
|
+ if (var28.speedID == var5) {
|
|
+ this.currentCamSpeedItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ var6.add(var11);
|
|
+ this.camSpeedItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ Menu privacyMenu = new Menu(Console.message("privacy-settings"));
|
|
+ this.addMenuItem(privacyMenu, "Options");
|
|
+ int whisperP = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ int teleportP = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ int whisperShow = IniFile.modFriendly().getIniInt("WhisperFeedback", 1);
|
|
+ int teleportShow = IniFile.modFriendly().getIniInt("TeleportFeedback", 0);
|
|
+ int whisperSend = IniFile.modFriendly().getIniInt("WhisperResponse", 1);
|
|
+ int teleportSend = IniFile.modFriendly().getIniInt("TeleportResponse", 0);
|
|
+
|
|
+ Menu whisperMenu = new Menu(Console.message("whisper-settings"));
|
|
+ MenuItem whMenu = new MenuItem(Console.message("WHISPER-SETTINGS"));
|
|
+ whisperMenu.setFont(mfont);
|
|
+ whisperMenu.add(whMenu);
|
|
+ this.whisperItems = new Vector();
|
|
+ privacyMenu.add(whisperMenu);
|
|
+
|
|
+ for(int wi = 0; wi < this.whisperNames.size(); ++wi) {
|
|
+ DefaultConsole.WhisperPrivacy var28 = (DefaultConsole.WhisperPrivacy)this.whisperNames.elementAt(wi);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.whisperName), var28.whisperID == whisperP);
|
|
+ if (var28.whisperID == whisperP) {
|
|
+ this.currentWhisperItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ whisperMenu.add(var11);
|
|
+ this.whisperItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ whisperMenu.addSeparator();
|
|
+ this.showWhispers = new CheckboxMenuItem(Console.message("reject-menu"), whisperShow == 1);
|
|
+ this.respondWhispers = new CheckboxMenuItem(Console.message("response-menu"), whisperSend == 1);
|
|
+ whisperMenu.add(this.showWhispers);
|
|
+ whisperMenu.add(respondWhispers);
|
|
+
|
|
+ Menu teleportMenu = new Menu(Console.message("teleport-settings"));
|
|
+ MenuItem tpMenu = new MenuItem(Console.message("TELEPORT-SETTINGS"));
|
|
+ teleportMenu.setFont(mfont);
|
|
+ teleportMenu.add(tpMenu);
|
|
+ this.teleportItems = new Vector();
|
|
+ privacyMenu.add(teleportMenu);
|
|
+
|
|
+ for(int ti = 0; ti < this.teleportNames.size(); ++ti) {
|
|
+ DefaultConsole.TeleportPrivacy var28 = (DefaultConsole.TeleportPrivacy)this.teleportNames.elementAt(ti);
|
|
+ CheckboxMenuItem var11 = new CheckboxMenuItem(" " + Console.message(var28.teleportName), var28.teleportID == teleportP);
|
|
+ if (var28.teleportID == teleportP) {
|
|
+ this.currentTeleportItem = var11;
|
|
+ }
|
|
+
|
|
+ var11.setFont(mfont);
|
|
+ teleportMenu.add(var11);
|
|
+ this.teleportItems.addElement(var11);
|
|
+ }
|
|
+
|
|
+ teleportMenu.addSeparator();
|
|
+ this.showTeleports = new CheckboxMenuItem(Console.message("reject-menu"), teleportShow == 1);
|
|
+ this.respondTeleports = new CheckboxMenuItem(Console.message("response-menu"), teleportSend == 1);
|
|
+ teleportMenu.add(this.showTeleports);
|
|
+ teleportMenu.add(respondTeleports);
|
|
+
|
|
+
|
|
+ this.becomeVIPItem = this.addMenuItem(vip == 1 ? Console.message("Become-full-VIP") : Console.message("Become-VIP"), "VIP");
|
|
+ this.addMenuItem(this.avatarMenu = new AvMenu(this, this.lastPilotRequested), "VIP");
|
|
+ this.addMenuItem(this.savedAvs, "VIP");
|
|
+ this.addMenuItem(this.avatarMenu.customize, "VIP");
|
|
+ this.toggleVoiceChatItem = this.addMenuItem(Console.message("Enable-Voice"), "VIP");
|
|
+ this.toggleVoiceChatItem.setEnabled(false);
|
|
+ this.numVisItem = this.addMenuItem(Console.message("Num-Visible"), "VIP");
|
|
+ this.chatLogMenu = new Menu("Chat Log");
|
|
+ if (NetUpdate.isInternalVersion()) {
|
|
+ this.inventoryItem = this.addMenuItem("Check Inventory", "VIP");
|
|
+ }
|
|
+
|
|
+ this.setMenusWRTVIP();
|
|
+ this.proxyServerItem = this.addMenuItem(Console.message("Proxy-Server"), "Options");
|
|
+ this.checkAccountItem = this.addMenuItem(Console.message("Account-Info"), "Options");
|
|
+ if (var2) {
|
|
+ this.statisticsItem = this.addMenuItem(Console.message("Display-Stat"), "Options");
|
|
+ }
|
|
+
|
|
+ this.upgradeItem = this.addMenuItem(Console.message("Upgrade-Now"), "Options");
|
|
+ if (var2) {
|
|
+ this.channelItem = this.addMenuItem(Console.message("Dimension-Sel"), "Options");
|
|
+ }
|
|
+
|
|
+ this.serverItem = this.addMenuItem(signIn, "Options");
|
|
+ this.setOnlineState(this.galaxy.getOnlineEnabled(), this.galaxy.getOnline());
|
|
+ Menu var27;
|
|
+ if (IniFile.gamma().getIniInt("recorderEnabled", 1) == 1) {
|
|
+ var27 = new Menu(Console.message("Recorder"));
|
|
+ this.recorderRecItem = new MenuItem(Console.message("Record"));
|
|
+ var27.add(this.recorderRecItem);
|
|
+ this.recorderStopItem = new MenuItem(Console.message("Stop"));
|
|
+ var27.add(this.recorderStopItem);
|
|
+ this.recorderPlayItem = new MenuItem(Console.message("Play"));
|
|
+ var27.add(this.recorderPlayItem);
|
|
+ }
|
|
+
|
|
+ if (NetUpdate.isInternalVersion()) {
|
|
+ var27 = new Menu(Console.message("Languages"));
|
|
+ this.addMenuItem(var27, "Options");
|
|
+ Menu var29 = new Menu(Console.message("Download-Font"));
|
|
+ var27.add(var29);
|
|
+ var29.setFont(mfont);
|
|
+ this.fontItems = new Vector();
|
|
+
|
|
+ for(int var30 = 0; var30 < this.fLength; ++var30) {
|
|
+ if (this.flList.elementAt(var30) != null) {
|
|
+ String var12;
|
|
+ if (this.fsList.elementAt(var30) != null) {
|
|
+ this.newfLocale[var30] = new Locale((String)this.flList.elementAt(var30), (String)this.fsList.elementAt(var30));
|
|
+ var12 = (String)this.flList.elementAt(var30) + "_" + (String)this.fsList.elementAt(var30);
|
|
+ if (var12.equals(Console.message(var12))) {
|
|
+ this.dFonts[var30] = new MenuItem(this.newfLocale[var30].getDisplayName());
|
|
+ } else {
|
|
+ this.dFonts[var30] = new MenuItem(Console.message(var12));
|
|
+ }
|
|
+ } else {
|
|
+ var12 = (String)this.flList.elementAt(var30);
|
|
+ if (var12.equals(Console.message(var12))) {
|
|
+ this.dFonts[var30] = new MenuItem((String)this.flList.elementAt(var30));
|
|
+ } else {
|
|
+ this.dFonts[var30] = new MenuItem(Console.message(var12));
|
|
+ }
|
|
+ }
|
|
|
|
- (new SendURLAction(this.getScriptServer() + code, true)).startBrowser();
|
|
+ this.dFonts[var30].setFont(mfont);
|
|
+ var29.add(this.dFonts[var30]);
|
|
+ this.fontItems.addElement(this.dFonts[var30]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Menu var31 = new Menu(Console.message("Download-Language"));
|
|
+ var27.add(var31);
|
|
+ var31.setFont(mfont);
|
|
+ this.downItems = new Vector();
|
|
+ String[] var32 = new String[this.dLength];
|
|
+
|
|
+ String var17;
|
|
+ for(int var13 = 0; var13 < this.dLength; ++var13) {
|
|
+ if (this.lList.elementAt(var13) != null) {
|
|
+ this.newdLocale[var13] = new Locale((String)this.lList.elementAt(var13), (String)this.sList.elementAt(var13));
|
|
+ String var15;
|
|
+ if (var13 > 0) {
|
|
+ Locale var18 = new Locale((String)this.lList.elementAt(var13 - 1), (String)this.sList.elementAt(var13 - 1));
|
|
+ var15 = var18.getDisplayName();
|
|
+ } else {
|
|
+ var15 = this.newdLocale[var13].getDisplayName();
|
|
+ }
|
|
+
|
|
+ String var16 = this.newdLocale[var13].getDisplayName();
|
|
+ var16 = var16.substring(0, var16.indexOf(40) - 1);
|
|
+ String var14;
|
|
+ if (var13 < this.dLength - 1) {
|
|
+ Locale var20 = new Locale((String)this.lList.elementAt(var13 + 1), (String)this.sList.elementAt(var13 + 1));
|
|
+ var17 = var20.getDisplayName();
|
|
+ var17 = var17.substring(0, var17.indexOf(40) - 1);
|
|
+ if (var17.equals(var16)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+ } else if (var13 == this.dLength - 1) {
|
|
+ var15 = var15.substring(0, var15.indexOf(40) - 1);
|
|
+ if (var16.equals(var15)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+ } else if (var32[var13 - 1].equals(var16)) {
|
|
+ var14 = this.newdLocale[var13].getDisplayName();
|
|
+ } else {
|
|
+ var14 = var16;
|
|
+ }
|
|
+
|
|
+ String var21 = (String)this.lList.elementAt(var13) + "_" + (String)this.sList.elementAt(var13);
|
|
+ if (var21.equals(Console.message(var21))) {
|
|
+ var32[var13] = var14;
|
|
+ } else {
|
|
+ var32[var13] = Console.message(var21);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Collator var33 = Collator.getInstance();
|
|
+ sortStrings(var33, var32, this.newdLocale, this.lList, this.sList);
|
|
+
|
|
+ for(int var34 = 0; var34 < this.dLength; ++var34) {
|
|
+ this.dLangs[var34] = new MenuItem(var32[var34]);
|
|
+ this.dLangs[var34].setFont(mfont);
|
|
+ var31.add(this.dLangs[var34]);
|
|
+ this.downItems.addElement(this.dLangs[var34]);
|
|
+ }
|
|
+
|
|
+ Menu var37 = new Menu(Console.message("Switch-Language"));
|
|
+ var27.add(var37);
|
|
+ var37.setFont(mfont);
|
|
+ this.langItems = new Vector();
|
|
+
|
|
+ int var36;
|
|
+ for(int var35 = 0; var35 < lLength; ++var35) {
|
|
+ var36 = lNames[var35].indexOf(95);
|
|
+ if (var36 < 0) {
|
|
+ lCodes[var35][0] = "en";
|
|
+ lCodes[var35][1] = "US";
|
|
+ } else {
|
|
+ int var39 = lNames[var35].lastIndexOf(46);
|
|
+ if (var39 < 0) {
|
|
+ var39 = 0;
|
|
+ }
|
|
+
|
|
+ lCodes[var35][0] = lNames[var35].substring(var36 + 1, var36 + 3);
|
|
+ if (var39 > var36 + 4) {
|
|
+ lCodes[var35][1] = lNames[var35].substring(var36 + 4, var39);
|
|
+ } else {
|
|
+ lCodes[var35][1] = lCodes[var35][0].toUpperCase();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ String[] var38 = new String[lLength];
|
|
+
|
|
+ for(var36 = 0; var36 < lLength; ++var36) {
|
|
+ newLocale[var36] = new Locale(lCodes[var36][0], lCodes[var36][1]);
|
|
+ String var40;
|
|
+ if (var36 > 0) {
|
|
+ Locale var42 = new Locale(lCodes[var36 - 1][0], lCodes[var36 - 1][1]);
|
|
+ var40 = var42.getDisplayName();
|
|
+ } else {
|
|
+ var40 = newLocale[var36].getDisplayName();
|
|
+ }
|
|
+
|
|
+ String var19 = newLocale[var36].getDisplayName();
|
|
+ var19 = var19.substring(0, var19.indexOf(40) - 1);
|
|
+ if (var36 < lLength - 1) {
|
|
+ Locale var23 = new Locale(lCodes[var36 + 1][0], lCodes[var36 + 1][1]);
|
|
+ String var41 = var23.getDisplayName();
|
|
+ var41 = var41.substring(0, var41.indexOf(40) - 1);
|
|
+ if (var41.equals(var19)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+ } else if (var36 == lLength - 1) {
|
|
+ var40 = var40.substring(0, var40.indexOf(40) - 1);
|
|
+ if (var19.equals(var40)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+ } else if (var38[var36 - 1].equals(var19)) {
|
|
+ var17 = newLocale[var36].getDisplayName();
|
|
+ } else {
|
|
+ var17 = var19;
|
|
+ }
|
|
+
|
|
+ String var24 = lCodes[var36][0] + "_" + lCodes[var36][1];
|
|
+ if (var24.equals(Console.message(var24))) {
|
|
+ var38[var36] = var17;
|
|
+ } else {
|
|
+ var38[var36] = Console.message(var24);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ sortStrings(var33, var38, newLocale, lCodes);
|
|
+
|
|
+ for(var36 = 0; var36 < lLength; ++var36) {
|
|
+ lLangs[var36] = new MenuItem(var38[var36]);
|
|
+ lLangs[var36].setFont(mfont);
|
|
+ var37.add(lLangs[var36]);
|
|
+ this.langItems.addElement(lLangs[var36]);
|
|
+ }
|
|
+
|
|
+ this.currentLang = new MenuItem(Console.message("Current-Language"));
|
|
+ var27.add(this.currentLang);
|
|
+ this.currentLang.setFont(mfont);
|
|
+ }
|
|
+
|
|
+ if (var2) {
|
|
+ this.condenseItem = this.addMenuItem(Console.message("Condense-Files"), "Options");
|
|
+ this.expandItem = this.addMenuItem(Console.message("Expand-Files"), "Options");
|
|
+ this.musicManItem = this.addMenuItem(Console.message("Music-Manager"), "Options");
|
|
+ this.i18nTest = this.addMenuItem(Console.message("I18N-Test"), "Options");
|
|
+ }
|
|
+
|
|
+ this.cdPlayerItem = this.addMenuItem(Console.message("MusicM"), "Options");
|
|
+ this.volumeItem = this.addMenuItem(Console.message("Volume-control"), "Options");
|
|
+ if (RenderWare.get3DHardwareAvailable()) {
|
|
+ if (RenderWare.get3DHardwareInUse()) {
|
|
+ this.graphicsItem = this.addMenuItem(disable3D, "Options");
|
|
} else {
|
|
- (new SendURLAction(languageURL)).startBrowser();
|
|
- }
|
|
-
|
|
- this.relogin();
|
|
- } else if (event.target == this.upgradeItem) {
|
|
- NetUpdate.doUpdate(true);
|
|
- } else if (event.target == this.channelItem && this.channelItem != null) {
|
|
- Galaxy g = this.getGalaxy();
|
|
- code = "";
|
|
-
|
|
- assert g != null;
|
|
-
|
|
- if (g != null) {
|
|
- code = g.getChannel();
|
|
+ this.graphicsItem = this.addMenuItem(enable3D, "Options");
|
|
}
|
|
+ }
|
|
|
|
- new ChannelDialog(getFrame(), this, Console.message("Dimension-Sel"), code);
|
|
- } else if (event.target == this.becomeVIPItem) {
|
|
- languageURL = IniFile.override().getIniString("vipOverride", "");
|
|
- if (languageURL.equals("")) {
|
|
- code = IniFile.override().getIniString("vipPage", "vip" + Console.message(".pl"));
|
|
- if (wasHttpNoSuchFile(this.getScriptServer() + code)) {
|
|
- code = IniFile.override().getIniString("vipPage", "vip.pl");
|
|
- }
|
|
-
|
|
- (new SendURLAction(this.getScriptServer() + code, true)).startBrowser();
|
|
+ if (IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1) {
|
|
+ this.nametagItem = this.addMenuItem(hideTags, "Options");
|
|
+ } else {
|
|
+ this.nametagItem = this.addMenuItem(showTags, "Options");
|
|
+ }
|
|
+
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
|
|
+ this.chatBoxItem = this.addMenuItem(disableClassicChat, "Options");
|
|
+ } else {
|
|
+ this.chatBoxItem = this.addMenuItem(enableClassicChat, "Options");
|
|
+ }
|
|
+
|
|
+ if (Gamma.loadProgress != null) {
|
|
+ Gamma.loadProgress.setMessage("Preloading avatars...");
|
|
+ Gamma.loadProgress.advance();
|
|
+ }
|
|
+
|
|
+ this.menuDone();
|
|
+ getFrame().activate();
|
|
+ LogFile.mailLogIfPresent(this.getSmtpServer());
|
|
+ this.render.requestFocus();
|
|
+ this.setMenusWRTVIP();
|
|
+ this.bootSomeone = null;
|
|
+ if (this.broadcastEnabled()) {
|
|
+ this.addBroadcastMenu();
|
|
+ }
|
|
+
|
|
+ this.universeMode = false;
|
|
+ }
|
|
+
|
|
+ public void setVIP(boolean var1) {
|
|
+ super.setVIP(var1);
|
|
+ this.setMenusWRTVIP();
|
|
+ this.setNameStr();
|
|
+ }
|
|
+
|
|
+ public void checkCourtesyVIP() {
|
|
+ super.checkCourtesyVIP();
|
|
+ this.setMenusWRTVIP();
|
|
+ this.setNameStr();
|
|
+ }
|
|
+
|
|
+ public void setNameStr() {
|
|
+ String var1 = this.galaxy.getUsernameU();
|
|
+ boolean var2 = this.galaxy.getOnline();
|
|
+ if (!var2) {
|
|
+ this.yourName.setText(Console.message("Off-line"));
|
|
+ } else {
|
|
+ if (var1.length() > 0) {
|
|
+ if (var1.regionMatches(true, 0, "VIP ", 0, 4)) {
|
|
+ var1 = var1.substring(4);
|
|
+ }
|
|
+
|
|
+ if (vip > 0) {
|
|
+ if (vip > 1) {
|
|
+ var1 = Console.message("VIP") + " " + var1;
|
|
+ } else {
|
|
+ var1 = Console.message("vip") + " " + var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(var1));
|
|
+ this.yourName.setText(Console.parseUnicode(var1));
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void enableBroadcast(boolean var1) {
|
|
+ super.enableBroadcast(var1);
|
|
+ if (var1) {
|
|
+ this.addBroadcastMenu();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ super.deactivate();
|
|
+ this.universeMode = false;
|
|
+ }
|
|
+
|
|
+ protected void setSleepMode(String var1) {
|
|
+ super.setSleepMode(var1);
|
|
+ if (var1 != null && var1.equals(Console.message("asleep"))) {
|
|
+ this.statusMessage = sleepStatus;
|
|
+ } else if (this.statusMessage == sleepStatus) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void relogin() {
|
|
+ if (this.serverItem.getLabel().equals(signOut)) {
|
|
+ this.reloginDialog = new OkCancelDialog(getFrame(), this, Console.message("Re-login"), Console.message("Cancel"), Console.message("OK"), Console.message("auto-sign-out"), true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void toggleWhisperRejects() {
|
|
+ int mainVal = IniFile.modFriendly().getIniInt("WhisperFeedback", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modFriendly().setIniInt("WhisperFeedback", newVal ? 0 : 1);
|
|
+ this.showWhispers.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleWhisperResponse() {
|
|
+ int mainVal = IniFile.modFriendly().getIniInt("WhisperResponse", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modFriendly().setIniInt("WhisperResponse", newVal ? 0 : 1);
|
|
+ this.respondWhispers.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleTeleportRejects() {
|
|
+ int mainVal = IniFile.modFriendly().getIniInt("TeleportFeedback", 1);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modFriendly().setIniInt("TeleportFeedback", newVal ? 0 : 1);
|
|
+ this.showTeleports.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public void toggleTeleportResponse() {
|
|
+ int mainVal = IniFile.modFriendly().getIniInt("TeleportResponse", 0);
|
|
+ boolean newVal = mainVal == 1;
|
|
+ IniFile.modFriendly().setIniInt("TeleportResponse", mainVal == 1 ? 0 : 1);
|
|
+ this.respondTeleports.setState(!newVal);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if (var1.target == this.aboutItem) {
|
|
+ new AboutDialog(Std.getProductName(), getFrame());
|
|
+ } else if (var1.target == this.statisticsItem && this.statisticsItem != null) {
|
|
+ new StatisticsWindow(getFrame());
|
|
+ } else if (this.viewItems.contains(var1.target)) {
|
|
+ this.changeView((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.camSpeedItems.contains(var1.target)) {
|
|
+ this.changeCamSpeed((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.whisperItems.contains(var1.target)) {
|
|
+ this.changeWhispers((CheckboxMenuItem)var1.target);
|
|
+ } else if (this.teleportItems.contains(var1.target)) {
|
|
+ this.changeTeleport((CheckboxMenuItem)var1.target);
|
|
+ } else if (var1.target == this.showWhispers) {
|
|
+ toggleWhisperRejects();
|
|
+ } else if (var1.target == this.respondWhispers) {
|
|
+ toggleWhisperResponse();
|
|
+ } else if (var1.target == this.showTeleports) {
|
|
+ toggleTeleportRejects();
|
|
+ } else if (var1.target == this.respondTeleports) {
|
|
+ toggleTeleportResponse();
|
|
+ } else if (var1.target == this.gettingStartedItem) {
|
|
+ (new SendURLAction(this.getHelpGettingStarted())).startBrowser();
|
|
+ } else {
|
|
+ String var4;
|
|
+ String var15;
|
|
+ if (var1.target == this.shaperHelpItem) {
|
|
+ var15 = IniFile.override().getIniString("ShaperHelp", this.getScriptServer() + "shaperhelp.pl") + "?u=";
|
|
+ var4 = IniFile.gamma().getIniString("lastchatname", "");
|
|
+ if (!var4.equals("")) {
|
|
+ if (var4.startsWith("VIP ")) {
|
|
+ var4 = var4.substring(4);
|
|
+ }
|
|
+
|
|
+ var15 = var15 + var4;
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(WebControlImp.processURL(var15))).startBrowser();
|
|
+ } else if (var1.target == this.helpItem) {
|
|
+ var15 = NetUpdate.getUpgradeServerURL();
|
|
+ var4 = IniFile.override().getIniString("HelpDirectory", "help");
|
|
+ String var18 = IniFile.override().getIniString("HelpPage", Std.getVersion() + Console.message(".html"));
|
|
+ if (wasHttpNoSuchFile(var15 + var4 + "/" + var18)) {
|
|
+ var18 = IniFile.override().getIniString("HelpPage", Std.getVersion() + ".html");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(var15 + var4 + "/" + var18)).startBrowser();
|
|
+ } else if (var1.target == this.infoItem) {
|
|
+ var15 = IniFile.override().getIniString("infoOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ NetUpdate.showInfo();
|
|
+ } else {
|
|
+ (new SendURLAction(var15)).startBrowser();
|
|
+ }
|
|
+ } else if (var1.target == this.i18nTest) {
|
|
+ Locale var23 = Locale.getDefault();
|
|
+ Console.println("Default = " + var23.getDisplayName());
|
|
+ DateFormat var24 = DateFormat.getDateTimeInstance(1, 1);
|
|
+ Date var17 = new Date();
|
|
+ Console.println("Today = " + var24.format(var17));
|
|
+ Locale[] var19 = DateFormat.getAvailableLocales();
|
|
+ Console.println("Avaliable Locales are:");
|
|
+
|
|
+ for(int var7 = 0; var7 < var19.length; ++var7) {
|
|
+ Locale.setDefault(var19[var7]);
|
|
+ Console.println(var19[var7].getDisplayName() + " " + var19[var7]);
|
|
+ }
|
|
+
|
|
+ new Locale("en", "US");
|
|
+ Locale var8 = new Locale("fr", "FR");
|
|
+ Locale var9 = new Locale("de", "DE");
|
|
+ Locale var10 = new Locale("ja", "JP");
|
|
+ Locale var11 = new Locale("zh", "CN");
|
|
+ Locale var12 = new Locale("th", "TH");
|
|
+ Locale var13 = new Locale("ru", "RU");
|
|
+ Locale var14 = new Locale("iw", "IL");
|
|
+ Console.println("file.encoding = " + System.getProperty("file.encoding"));
|
|
+ Console.println(this.message("test-language", var8));
|
|
+ Console.println(this.message("test-language", var9));
|
|
+ Console.println(this.message("test-language", var10));
|
|
+ Console.println(this.message("test-language", var11));
|
|
+ Console.println(this.message("test-language", var12));
|
|
+ Console.println(this.message("test-language", var13));
|
|
+ Console.println(this.message("test-language", var14));
|
|
+ Console.println(this.message("test-language", var23));
|
|
+ } else if (var1.target == this.checkAccountItem) {
|
|
+ var15 = IniFile.override().getIniString("accountOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ var4 = IniFile.override().getIniString("accountInfoPage", "account" + Console.message(".pl"));
|
|
+ if (wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
+ var4 = IniFile.override().getIniString("accountInfoPage", "account.pl");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
+ } else {
|
|
+ (new SendURLAction(var15)).startBrowser();
|
|
+ }
|
|
+
|
|
+ this.relogin();
|
|
+ } else if (var1.target == this.upgradeItem) {
|
|
+ NetUpdate.doUpdate(true);
|
|
+ } else if (var1.target == this.channelItem && this.channelItem != null) {
|
|
+ Galaxy var22 = this.getGalaxy();
|
|
+ var4 = "";
|
|
+ assert(var22 != null);
|
|
+ if (var22 != null) {
|
|
+ var4 = var22.getChannel();
|
|
+ }
|
|
+
|
|
+ new ChannelDialog(getFrame(), this, Console.message("Dimension-Sel"), var4);
|
|
+ } else if (var1.target == this.becomeVIPItem) {
|
|
+ var15 = IniFile.override().getIniString("vipOverride", "");
|
|
+ if (var15.equals("")) {
|
|
+ var4 = IniFile.override().getIniString("vipPage", "vip" + Console.message(".pl"));
|
|
+ if (wasHttpNoSuchFile(this.getScriptServer() + var4)) {
|
|
+ var4 = IniFile.override().getIniString("vipPage", "vip.pl");
|
|
+ }
|
|
+
|
|
+ (new SendURLAction(this.getScriptServer() + var4, true)).startBrowser();
|
|
+ } else {
|
|
+ (new SendURLAction(var15, false)).startBrowser();
|
|
+ }
|
|
+
|
|
+ this.relogin();
|
|
+ } else if (var1.target == this.numVisItem) {
|
|
+ new SetNumVisibleAvs();
|
|
+ } else if (var1.target == this.inventoryItem) {
|
|
+ EquipAction var21 = new EquipAction();
|
|
+ var21.trigger((NET.worlds.scape.Event)null, (Persister)null);
|
|
+ } else if (var1.target == this.proxyServerItem) {
|
|
+ System.out.println("Triggering the Proxy Server dialog.");
|
|
+ ProxyServerDialog var20 = new ProxyServerDialog();
|
|
+ var20.show();
|
|
+ } else if (var1.target == this.toggleVoiceChatItem) {
|
|
+ VoiceChat.setVoiceChatEnabled(!VoiceChat.voiceChatEnabled);
|
|
+ this.setMenusWRTVIP();
|
|
+ } else if (var1.target == this.serverItem) {
|
|
+ this.handleServerItem();
|
|
+ } else if (var1.target == this.condenseItem) {
|
|
+ new ArchiveMaker(true);
|
|
+ } else if (var1.target == this.expandItem) {
|
|
+ new ArchiveMaker(false);
|
|
+ } else if (var1.target == this.musicManItem) {
|
|
+ MusicManager.showDialog();
|
|
+ } else if (var1.target == this.cdPlayerItem) {
|
|
+ if (this.cdcontrol == null) {
|
|
+ this.playedCD = true;
|
|
+ this.cdcontrol = new CDControl(getFrame(), this);
|
|
+ }
|
|
+ } else if (var1.target == this.volumeItem) {
|
|
+ if (!CDPlayerAction.launchVolumeControlApp()) {
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("No-Volume"), (String)null, Console.message("OK"), Console.message("Cannot-locate"), true);
|
|
+ }
|
|
+ } else if (var1.target == this.graphicsItem) {
|
|
+ this.handleGraphicsItem();
|
|
+ } else if (var1.target == this.nametagItem) {
|
|
+ this.handleNametagsItem();
|
|
+ } else if (var1.target == this.chatBoxItem) {
|
|
+ this.handleChatBoxItem();
|
|
+ } else if (var1.target == this.bootSomeone) {
|
|
+ new BootDialog(getFrame(), this, Console.message("Boot-user"));
|
|
+ } else if (var1.target == this.broadcastToRoom) {
|
|
+ startWhispering("room");
|
|
+ } else if (var1.target == this.broadcastToAll) {
|
|
+ startWhispering("world");
|
|
+ } else if (var1.target == this.currentLang) {
|
|
+ var15 = Locale.getDefault().toString();
|
|
+ if (var15 == Console.message(var15)) {
|
|
+ Console.println(Console.message("Current-Language") + " = " + Locale.getDefault().getDisplayName());
|
|
+ } else {
|
|
+ Console.println(Console.message("Current-Language") + " = " + Console.message(var15));
|
|
+ }
|
|
+ } else if (var1.target == this.recorderPlayItem) {
|
|
+ println(Console.message("BlackBoxPlay"));
|
|
+ BlackBox.getInstance().play();
|
|
+ } else if (var1.target == this.recorderRecItem) {
|
|
+ println(Console.message("BlackBoxRec"));
|
|
+ BlackBox.getInstance().record();
|
|
+ } else if (var1.target == this.recorderStopItem) {
|
|
+ println(Console.message("BlackBoxStop"));
|
|
+ BlackBox.getInstance().stop();
|
|
} else {
|
|
- (new SendURLAction(languageURL, false)).startBrowser();
|
|
- }
|
|
-
|
|
- this.relogin();
|
|
- } else if (event.target == this.numVisItem) {
|
|
- new SetNumVisibleAvs();
|
|
- } else if (event.target == this.inventoryItem) {
|
|
- EquipAction eAction = new EquipAction();
|
|
- eAction.trigger((NET.worlds.scape.Event)null, (Persister)null);
|
|
- } else if (event.target == this.checkInventoryItem) {
|
|
- (new SendURLAction(this.getScriptServer() + "inventory.pl", true)).startBrowser();
|
|
- } else if (event.target == this.bankItem) {
|
|
- (new SendURLAction(this.getScriptServer() + "bank.pl", true)).startBrowser();
|
|
- } else if (event.target == this.ubuItem) {
|
|
- languageURL = IniFile.gamma().getIniString("UbuDestURL", this.getScriptServer() + "ubu.pl");
|
|
- (new SendURLAction(languageURL, true)).startBrowser();
|
|
- } else if (event.target == this.proxyServerItem) {
|
|
- System.out.println("Triggering the Proxy Server dialog.");
|
|
- ProxyServerDialog psd = new ProxyServerDialog();
|
|
- psd.show();
|
|
- } else if (event.target == this.toggleVoiceChatItem) {
|
|
- VoiceChat.setVoiceChatEnabled(!VoiceChat.voiceChatEnabled);
|
|
- this.setMenusWRTVIP();
|
|
- } else if (event.target == this.serverItem) {
|
|
- this.handleServerItem();
|
|
- } else if (event.target == this.condenseItem) {
|
|
- new ArchiveMaker(true);
|
|
- } else if (event.target == this.expandItem) {
|
|
- new ArchiveMaker(false);
|
|
- } else if (event.target == this.musicManItem) {
|
|
- MusicManager.showDialog();
|
|
- } else if (event.target == this.cdPlayerItem) {
|
|
- if (this.cdcontrol == null) {
|
|
- this.playedCD = true;
|
|
- this.cdcontrol = new CDControl(getFrame(), this);
|
|
- }
|
|
- } else if (event.target == this.volumeItem) {
|
|
- if (!CDPlayerAction.launchVolumeControlApp()) {
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("No-Volume"), (String)null, Console.message("OK"), Console.message("Cannot-locate"), true);
|
|
- }
|
|
- } else if (event.target == this.graphicsItem) {
|
|
- this.handleGraphicsItem();
|
|
- } else if (event.target == this.nametagItem) {
|
|
- this.handleNametagsItem();
|
|
- } else if (event.target == this.chatBoxItem) {
|
|
- this.handleChatBoxItem();
|
|
- } else if (event.target == this.chatItem && this.chatItem != null) {
|
|
- new ChatDialog(getFrame(), this, Console.message("Chat-Configuration"), IniFile.gamma().getIniInt("ChatFontSize", 12), chatLines, IniFile.gamma().getIniInt("ChatLengthLimit", 20000));
|
|
- } else if (event.target == this.bootSomeone) {
|
|
- new BootDialog(getFrame(), this, Console.message("Boot-user"));
|
|
- } else if (event.target == this.broadcastToRoom) {
|
|
- startWhispering("room");
|
|
- } else if (event.target == this.broadcastToAll) {
|
|
- startWhispering("world");
|
|
- } else if (event.target == this.currentLang) {
|
|
- languageURL = Locale.getDefault().toString();
|
|
- if (languageURL == Console.message(languageURL)) {
|
|
- Console.println(Console.message("Current-Language") + " = " + Locale.getDefault().getDisplayName());
|
|
+ int var5;
|
|
+ String var6;
|
|
+ int var16;
|
|
+ if (this.fontItems != null && this.fontItems.contains(var1.target)) {
|
|
+ var15 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/font_";
|
|
+
|
|
+ for(var16 = 0; var16 < this.fLength; ++var16) {
|
|
+ if (var1.target == this.fontItems.elementAt(var16)) {
|
|
+ if (this.fsList.elementAt(var16) != null) {
|
|
+ var15 = var15 + this.flList.elementAt(var16) + "_" + this.fsList.elementAt(var16) + ".EXE";
|
|
+ } else {
|
|
+ var15 = var15 + this.flList.elementAt(var16) + ".EXE";
|
|
+ }
|
|
+
|
|
+ var5 = this.fSizes[var16];
|
|
+ var6 = var15.substring(var15.lastIndexOf(47) + 1, var15.length());
|
|
+ LanguageManager.handle(var15, var5, var6);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.downItems != null && this.downItems.contains(var1.target)) {
|
|
+ var15 = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/language_";
|
|
+
|
|
+ for(var16 = 0; var16 < this.dLength; ++var16) {
|
|
+ if (var1.target == this.downItems.elementAt(var16)) {
|
|
+ if (this.sList.elementAt(var16) != null) {
|
|
+ var15 = var15 + this.lList.elementAt(var16) + "_" + this.sList.elementAt(var16) + ".zip";
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var16) + "_" + this.sList.elementAt(var16));
|
|
+ } else {
|
|
+ var15 = var15 + this.lList.elementAt(var16) + ".zip";
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(var16));
|
|
+ }
|
|
+
|
|
+ var5 = this.lSizes[var16];
|
|
+ var6 = var15.substring(var15.lastIndexOf(47) + 1, var15.length());
|
|
+ LanguageManager.handle(var15, var5, var6);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.langItems != null && this.langItems.contains(var1.target)) {
|
|
+ for(int var3 = 0; var3 < lLength; ++var3) {
|
|
+ if (var1.target == this.langItems.elementAt(var3)) {
|
|
+ Locale.setDefault(newLocale[var3]);
|
|
+ var4 = newLocale[var3].toString();
|
|
+ if (var4 == Console.message(var4)) {
|
|
+ Console.println(message("Setting-to") + " " + newLocale[var3].getDisplayName());
|
|
+ } else {
|
|
+ Console.println(message("Setting-to") + " " + Console.message(var4));
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniString("DEFAULTLANGUAGE", lCodes[var3][0] + "_" + lCodes[var3][1]);
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ } else if (this.avatarMenu == null || !this.avatarMenu.action(var1, var2)) {
|
|
+ return super.action(var1, var2);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public void setCurrentAvatarItem(CheckboxMenuItem var1) {
|
|
+ if (this.curAvatarItem != null) {
|
|
+ this.curAvatarItem.setState(false);
|
|
+ }
|
|
+
|
|
+ this.curAvatarItem = var1;
|
|
+ if (this.curAvatarItem != null) {
|
|
+ this.curAvatarItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public CheckboxMenuItem getCurrentAvatarItem() {
|
|
+ return this.curAvatarItem;
|
|
+ }
|
|
+
|
|
+ public void deletedSavedAvatar(CheckboxMenuItem var1) {
|
|
+ if (this.curAvatarItem == var1) {
|
|
+ this.findAvatarMenuItem(this.getDefaultAvatarURL());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setNextAvatar(URL var1, CheckboxMenuItem var2) {
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ this.nextAvatar = var1;
|
|
+ this.nextAvatarItem = var2;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void findAvatarMenuItem(URL var1) {
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ if (this.nextAvatarItem == null) {
|
|
+ Object var3;
|
|
+ if ((this.savedAvs == null || (var3 = this.savedAvs.findMenuItem(var1)) == null) && (this.avatarMenu == null || (var3 = this.avatarMenu.findMenuItem(var1)) == null)) {
|
|
+ this.setCurrentAvatarItem((CheckboxMenuItem)null);
|
|
+ } else {
|
|
+ this.setCurrentAvatarItem((CheckboxMenuItem)var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private URL getHelpGettingStarted() {
|
|
+ IniFile var1 = new IniFile("InstalledWorlds");
|
|
+ String var2 = Console.message("Getting-started");
|
|
+ String var3 = var1.getIniString("InstalledWorld0", "");
|
|
+ if (!var3.equals("")) {
|
|
+ URL var4 = URL.make("home:" + var3 + "/" + var2);
|
|
+ File var5 = new File(var4.unalias());
|
|
+ if (var5.exists()) {
|
|
+ return var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return URL.make("home:" + var2);
|
|
+ }
|
|
+
|
|
+ private void changeView(CheckboxMenuItem var1) {
|
|
+ this.chooseView = this.viewItems.indexOf(var1);
|
|
+ if (var1 != this.currentViewItem) {
|
|
+ this.currentViewItem.setState(false);
|
|
+ this.currentViewItem = var1;
|
|
+ this.currentViewItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private int getView() {
|
|
+ return this.viewItems.indexOf(this.currentViewItem);
|
|
+ }
|
|
+
|
|
+ private void setView(int var1) {
|
|
+ this.changeView((CheckboxMenuItem)this.viewItems.elementAt(var1));
|
|
+ }
|
|
+
|
|
+ private void changeCamSpeed(CheckboxMenuItem var1) {
|
|
+ this.chooseCamSpeed = this.camSpeedItems.indexOf(var1);
|
|
+ if (var1 != this.currentCamSpeedItem) {
|
|
+ this.currentCamSpeedItem.setState(false);
|
|
+ this.currentCamSpeedItem = var1;
|
|
+ this.currentCamSpeedItem.setState(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void changeWhispers(CheckboxMenuItem var1) {
|
|
+ this.chooseWhisper = this.whisperItems.indexOf(var1);
|
|
+ if (var1 != this.currentWhisperItem) {
|
|
+ this.currentWhisperItem.setState(false);
|
|
+ this.currentWhisperItem = var1;
|
|
+ this.currentWhisperItem.setState(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void changeTeleport(CheckboxMenuItem var1) {
|
|
+ this.chooseTeleport = this.teleportItems.indexOf(var1);
|
|
+ if (var1 != this.currentTeleportItem) {
|
|
+ this.currentTeleportItem.setState(false);
|
|
+ this.currentTeleportItem = var1;
|
|
+ this.currentTeleportItem.setState(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void resetCamera() {
|
|
+ if (this.viewItems != null && this.camSpeedItems != null) {
|
|
+ this.chooseView = this.viewItems.indexOf(this.currentViewItem);
|
|
+ this.chooseCamSpeed = this.camSpeedItems.indexOf(this.currentCamSpeedItem);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleServerItem() {
|
|
+ if (!this.serverItem.getLabel().equals(signIn)) {
|
|
+ Galaxy.forceOffline(false);
|
|
+ } else {
|
|
+ this.getGalaxy().localForceOnline();
|
|
+ this.getGalaxy().waitForConnection(this);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public UniversePanel getUniverse() {
|
|
+ return this.universeMode ? this.universe : null;
|
|
+ }
|
|
+
|
|
+ public synchronized void setUniverseMode(boolean var1) {
|
|
+ if (var1 != this.universeMode) {
|
|
+ this.universeMode = var1;
|
|
+ if (this.universeMode) {
|
|
+ if (this.universe == null) {
|
|
+ this.universe = new UniversePanel(this);
|
|
+ this.renderAndUniverse.add("universe", this.universe);
|
|
+ }
|
|
+
|
|
+ this.renderCard.show(this.renderAndUniverse, "universe");
|
|
+ this.universe.startWatch();
|
|
+ this.render.requestFocus();
|
|
} else {
|
|
- Console.println(Console.message("Current-Language") + " = " + Console.message(languageURL));
|
|
- }
|
|
- } else if (event.target == this.recorderPlayItem) {
|
|
- println(Console.message("BlackBoxPlay"));
|
|
- BlackBox.getInstance().play();
|
|
- } else if (event.target == this.recorderRecItem) {
|
|
- println(Console.message("BlackBoxRec"));
|
|
- BlackBox.getInstance().record();
|
|
- } else if (event.target == this.recorderStopItem) {
|
|
- println(Console.message("BlackBoxStop"));
|
|
- BlackBox.getInstance().stop();
|
|
- } else {
|
|
- int sz;
|
|
- String fName;
|
|
- int i;
|
|
- if (this.fontItems != null && this.fontItems.contains(event.target)) {
|
|
- languageURL = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/font_";
|
|
-
|
|
- for(i = 0; i < this.fLength; ++i) {
|
|
- if (event.target == this.fontItems.elementAt(i)) {
|
|
- if (this.fsList.elementAt(i) != null) {
|
|
- languageURL = languageURL + (String)this.flList.elementAt(i) + "_" + (String)this.fsList.elementAt(i) + ".EXE";
|
|
- } else {
|
|
- languageURL = languageURL + (String)this.flList.elementAt(i) + ".EXE";
|
|
- }
|
|
-
|
|
- sz = this.fSizes[i];
|
|
- fName = languageURL.substring(languageURL.lastIndexOf(47) + 1, languageURL.length());
|
|
- LanguageManager.handle(languageURL, sz, fName);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.downItems != null && this.downItems.contains(event.target)) {
|
|
- languageURL = IniFile.gamma().getIniString("upgradeServer", "") + "/I18N/language_";
|
|
-
|
|
- for(i = 0; i < this.dLength; ++i) {
|
|
- if (event.target == this.downItems.elementAt(i)) {
|
|
- if (this.sList.elementAt(i) != null) {
|
|
- languageURL = languageURL + (String)this.lList.elementAt(i) + "_" + (String)this.sList.elementAt(i) + ".zip";
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(i) + "_" + (String)this.sList.elementAt(i));
|
|
- } else {
|
|
- languageURL = languageURL + (String)this.lList.elementAt(i) + ".zip";
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", (String)this.lList.elementAt(i));
|
|
- }
|
|
-
|
|
- sz = this.lSizes[i];
|
|
- fName = languageURL.substring(languageURL.lastIndexOf(47) + 1, languageURL.length());
|
|
- LanguageManager.handle(languageURL, sz, fName);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.langItems != null && this.langItems.contains(event.target)) {
|
|
- for(int i = 0; i < lLength; ++i) {
|
|
- if (event.target == this.langItems.elementAt(i)) {
|
|
- Locale.setDefault(newLocale[i]);
|
|
- code = newLocale[i].toString();
|
|
- if (code == Console.message(code)) {
|
|
- Console.println(message("Setting-to") + " " + newLocale[i].getDisplayName());
|
|
- } else {
|
|
- Console.println(message("Setting-to") + " " + Console.message(code));
|
|
- }
|
|
-
|
|
- IniFile.gamma().setIniString("DEFAULTLANGUAGE", lCodes[i][0] + "_" + lCodes[i][1]);
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Alert"), (String)null, Console.message("OK"), Console.message("Change-exit"), true);
|
|
- break;
|
|
- }
|
|
- }
|
|
- } else if (this.avatarMenu == null || !this.avatarMenu.action(event, what)) {
|
|
- return super.action(event, what);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public void setCurrentAvatarItem(CheckboxMenuItem item) {
|
|
- if (this.curAvatarItem != null) {
|
|
- this.curAvatarItem.setState(false);
|
|
- }
|
|
-
|
|
- this.curAvatarItem = item;
|
|
- if (this.curAvatarItem != null) {
|
|
- this.curAvatarItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public CheckboxMenuItem getCurrentAvatarItem() {
|
|
- return this.curAvatarItem;
|
|
- }
|
|
-
|
|
- public void deletedSavedAvatar(CheckboxMenuItem item) {
|
|
- if (this.curAvatarItem == item) {
|
|
- this.findAvatarMenuItem(this.getDefaultAvatarURL());
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setNextAvatar(URL url, CheckboxMenuItem item) {
|
|
- synchronized(this.nextAvatarMutex) {
|
|
- this.nextAvatar = url;
|
|
- this.nextAvatarItem = item;
|
|
- }
|
|
- }
|
|
-
|
|
- private void findAvatarMenuItem(URL url) {
|
|
- synchronized(this.nextAvatarMutex) {
|
|
- if (this.nextAvatarItem == null) {
|
|
- Object item;
|
|
- if ((this.savedAvs == null || (item = this.savedAvs.findMenuItem(url)) == null) && (this.avatarMenu == null || (item = this.avatarMenu.findMenuItem(url)) == null)) {
|
|
- this.setCurrentAvatarItem((CheckboxMenuItem)null);
|
|
+ this.renderCard.show(this.renderAndUniverse, "render");
|
|
+ if (physMem < 64000000) {
|
|
+ this.renderAndUniverse.remove(this.universe);
|
|
+ this.universe.stopWatch();
|
|
+ this.universe.flushImage();
|
|
+ this.universe = null;
|
|
+ }
|
|
+
|
|
+ this.renderAndUniverse.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void toggleUniverseMode() {
|
|
+ this.setUniverseMode(!this.universeMode);
|
|
+ }
|
|
+
|
|
+ public boolean isUniverseMode() {
|
|
+ return this.universeMode;
|
|
+ }
|
|
+
|
|
+ public Object imageButtonsCallback(Component var1, int var2) {
|
|
+ if (var1 != this.driveButton) {
|
|
+ if (var1 == this.quitButton) {
|
|
+ maybeQuit();
|
|
+ } else if (var1 == this.exploreButton) {
|
|
+ this.toggleUniverseMode();
|
|
+ } else if (var1 == this.menuButtons) {
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ return this.getMenu("Help");
|
|
+ case 1:
|
|
+ return this.getMenu("Options");
|
|
+ case 2:
|
|
+ String var3 = IniFile.override().getIniString("ProductName", "");
|
|
+ if (!var3.equalsIgnoreCase("RedLightWorld")) {
|
|
+ EMailPart.showMessage(this);
|
|
+ }
|
|
+ break;
|
|
+ case 3:
|
|
+ return (PopupMenu)this.marks.getMenu();
|
|
+ case 4:
|
|
+ return (PopupMenu)this.marks.getLetsMenu();
|
|
+ case 5:
|
|
+ this.actions.present();
|
|
+ break;
|
|
+ case 6:
|
|
+ return this.getMenu("VIP");
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public RenderCanvas getRender() {
|
|
+ return this.render;
|
|
+ }
|
|
+
|
|
+ public FriendsListPart getFriends() {
|
|
+ return this.friends;
|
|
+ }
|
|
+
|
|
+ public MuteListPart getMutes() {
|
|
+ return this.mutes;
|
|
+ }
|
|
+
|
|
+ public TarListPart getTars() {
|
|
+ return this.tars;
|
|
+ }
|
|
+
|
|
+ public void generateFrameEvents(FrameEvent var1) {
|
|
+ if (Window.getWindowState(Window.getFrameHandle()) == 1) {
|
|
+ this.goToSleep();
|
|
+ }
|
|
+
|
|
+ if (doDrive) {
|
|
+ doDrive = false;
|
|
+ this.render.drive();
|
|
+ wasDelta = true;
|
|
+ }
|
|
+
|
|
+ super.generateFrameEvents(var1);
|
|
+ Pilot var2 = Pilot.getActive();
|
|
+ GammaFrame var3 = getFrame();
|
|
+ String var4 = var3.getTitle();
|
|
+ String var5 = "";
|
|
+ if (var2 != null) {
|
|
+ World var6 = var2.getWorld();
|
|
+ if (var6 != null) {
|
|
+ String var7 = var6.getName();
|
|
+ if (var7 != null) {
|
|
+ var5 = var7;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!lastWorldName.equals(var5)) {
|
|
+ lastWorldName = var5;
|
|
+ String var14 = GammaFrame.getDefaultTitle();
|
|
+ if (var5.length() != 0) {
|
|
+ var14 = var14 + " - " + var5;
|
|
+ if (!this.playedCD) {
|
|
+ CDAudio.startupPlay();
|
|
+ this.playedCD = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var3.setTitle(var14);
|
|
+ }
|
|
+
|
|
+ if (var2 != null) {
|
|
+ if (this.chooseView != -1 || this.chooseCamSpeed != -1) {
|
|
+ int var15 = var2.getOutsideCameraMode();
|
|
+ int var16 = var2.getOutsideCameraSpeed();
|
|
+ int var8 = var15;
|
|
+ int var9 = var16;
|
|
+ if (this.chooseView != -1) {
|
|
+ var8 = ((DefaultConsole.CameraView)this.viewNames.elementAt(this.chooseView)).viewID;
|
|
+ }
|
|
+
|
|
+ if (this.chooseCamSpeed != -1) {
|
|
+ var9 = ((DefaultConsole.CameraSpeed)this.speedNames.elementAt(this.chooseCamSpeed)).speedID;
|
|
+ }
|
|
+
|
|
+ var2.setOutsideCameraMode(var8, var9);
|
|
+ if (var8 != 99) {
|
|
+ IniFile.gamma().setIniInt("CAM_MODE", var8);
|
|
+ IniFile.gamma().setIniInt("CAM_SPEED", var9);
|
|
+ }
|
|
+
|
|
+ this.chooseView = -1;
|
|
+ this.chooseCamSpeed = -1;
|
|
+ }
|
|
+
|
|
+ if (this.wasTeleporting != this.marks.isTeleporting()) {
|
|
+ this.wasTeleporting = this.marks.isTeleporting();
|
|
+ if (this.wasTeleporting) {
|
|
+ this.statusMessage = loadingString;
|
|
+ } else if (this.statusMessage == loadingString) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.checkVMWarning();
|
|
+ if (wasDelta && !this.render.getDeltaMode()) {
|
|
+ this.statusMessage = arrowKeyMsg;
|
|
+ wasDelta = false;
|
|
+ this.driveButton.drawCursed();
|
|
+ }
|
|
+
|
|
+ if (this.chooseWhisper != -1 || this.chooseTeleport != -1) {
|
|
+
|
|
+ int whisperValue = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ int teleportValue = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+
|
|
+ if (this.chooseWhisper != -1) {
|
|
+ whisperValue = ((WhisperPrivacy) this.whisperNames.elementAt(chooseWhisper)).whisperID;
|
|
+ }
|
|
+
|
|
+ if (this.chooseTeleport != -1) {
|
|
+ teleportValue = ((TeleportPrivacy) this.teleportNames.elementAt(chooseTeleport)).teleportID;
|
|
+ }
|
|
+
|
|
+ IniFile.gamma().setIniInt("WhisperPrivacy", whisperValue);
|
|
+ IniFile.gamma().setIniInt("TeleportPrivacy", teleportValue);
|
|
+
|
|
+ this.chooseWhisper = -1;
|
|
+ this.chooseTeleport = -1;
|
|
+ }
|
|
+
|
|
+ synchronized(this.status) {
|
|
+ if (this.statusMessage != this.lastStatus && this.overrideMessage == null) {
|
|
+ this.lastStatus = this.statusMessage;
|
|
+ this.status.setText(this.statusMessage);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ synchronized(this.nextAvatarMutex) {
|
|
+ if (this.nextAvatar != null) {
|
|
+ this.setAvatar(this.nextAvatar);
|
|
+ this.nextAvatar = null;
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.notifyOfChange();
|
|
+ }
|
|
+
|
|
+ if (this.nextAvatarItem != null) {
|
|
+ this.setCurrentAvatarItem(this.nextAvatarItem);
|
|
+ this.nextAvatarItem = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void checkVMWarning() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ if (var1 > this.lastVMCheck + 10000) {
|
|
+ StatMemNode var2 = StatMemNode.getNode();
|
|
+ var2.updateMemoryStatus();
|
|
+ if (var2._availPageMem < 0) {
|
|
+ var2._availPageMem = 2000000000;
|
|
+ }
|
|
+
|
|
+ if (var2._totPhysMem < 0) {
|
|
+ var2._totPhysMem = 2000000000;
|
|
+ }
|
|
+
|
|
+ physMem = var2._totPhysMem;
|
|
+ if (var2._availPageMem >= 4194304) {
|
|
+ if (var2._availPageMem > 5242880 && this.lastVMBigWarning != 0) {
|
|
+ if (var2._availPageMem > 10485760) {
|
|
+ Console.println(Console.message("plenty-virt"));
|
|
+ this.lastVMBigWarning = 0;
|
|
+ } else if (!this.showedMidWarn) {
|
|
+ Console.println(Console.message("plenty-virt-mem"));
|
|
+ this.showedMidWarn = true;
|
|
+ }
|
|
+
|
|
+ if (this.statusMessage == lowVMMsg) {
|
|
+ this.statusMessage = "";
|
|
+ }
|
|
+ }
|
|
} else {
|
|
- this.setCurrentAvatarItem((CheckboxMenuItem)item);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- private URL getHelpGettingStarted() {
|
|
- IniFile ini = new IniFile("InstalledWorlds");
|
|
- String helpName = Console.message("Getting-started");
|
|
- String w = ini.getIniString("InstalledWorld0", "");
|
|
- if (!w.equals("")) {
|
|
- URL name = URL.make("home:" + w + "/" + helpName);
|
|
- File f = new File(name.unalias());
|
|
- if (f.exists()) {
|
|
- return name;
|
|
- }
|
|
- }
|
|
-
|
|
- return URL.make("home:" + helpName);
|
|
- }
|
|
-
|
|
- private void changeView(CheckboxMenuItem item) {
|
|
- this.chooseView = this.viewItems.indexOf(item);
|
|
- if (item != this.currentViewItem) {
|
|
- this.currentViewItem.setState(false);
|
|
- this.currentViewItem = item;
|
|
- this.currentViewItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private int getView() {
|
|
- return this.viewItems.indexOf(this.currentViewItem);
|
|
- }
|
|
-
|
|
- private void setView(int view) {
|
|
- this.changeView((CheckboxMenuItem)this.viewItems.elementAt(view));
|
|
- }
|
|
-
|
|
- private void changeCamSpeed(CheckboxMenuItem item) {
|
|
- this.chooseCamSpeed = this.camSpeedItems.indexOf(item);
|
|
- if (item != this.currentCamSpeedItem) {
|
|
- this.currentCamSpeedItem.setState(false);
|
|
- this.currentCamSpeedItem = item;
|
|
- this.currentCamSpeedItem.setState(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void resetCamera() {
|
|
- if (this.viewItems != null && this.camSpeedItems != null) {
|
|
- this.chooseView = this.viewItems.indexOf(this.currentViewItem);
|
|
- this.chooseCamSpeed = this.camSpeedItems.indexOf(this.currentCamSpeedItem);
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleServerItem() {
|
|
- if (!this.serverItem.getLabel().equals(signIn)) {
|
|
- Galaxy.forceOffline(false);
|
|
- } else {
|
|
- this.getGalaxy().localForceOnline();
|
|
- this.getGalaxy().waitForConnection(this);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public UniversePanel getUniverse() {
|
|
- return this.universeMode ? this.universe : null;
|
|
- }
|
|
-
|
|
- public synchronized void setUniverseMode(boolean f) {
|
|
- if (f != this.universeMode) {
|
|
- this.universeMode = f;
|
|
- if (this.universeMode) {
|
|
- if (this.universe == null) {
|
|
- this.universe = new UniversePanel(this);
|
|
- this.renderAndUniverse.add("universe", this.universe);
|
|
- }
|
|
-
|
|
- this.renderCard.show(this.renderAndUniverse, "universe");
|
|
- this.universe.startWatch();
|
|
- this.render.requestFocus();
|
|
- } else {
|
|
- this.renderCard.show(this.renderAndUniverse, "render");
|
|
- if (physMem < 64000000) {
|
|
- this.renderAndUniverse.remove(this.universe);
|
|
- this.universe.stopWatch();
|
|
- this.universe.flushImage();
|
|
- this.universe = null;
|
|
- }
|
|
-
|
|
- this.renderAndUniverse.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void toggleUniverseMode() {
|
|
- this.setUniverseMode(!this.universeMode);
|
|
- }
|
|
-
|
|
- public boolean isUniverseMode() {
|
|
- return this.universeMode;
|
|
- }
|
|
-
|
|
- public Object imageButtonsCallback(Component who, int which) {
|
|
- if (who != this.driveButton) {
|
|
- if (who == this.quitButton) {
|
|
- maybeQuit();
|
|
- } else {
|
|
- String prodName;
|
|
- if (who == this.adCubeButton) {
|
|
- prodName = IniFile.gamma().getIniString("AdCubeURL", "http://www.worlds.com/");
|
|
- (new SendURLAction(prodName, true)).startBrowser();
|
|
- } else if (who == this.exploreButton) {
|
|
- this.toggleUniverseMode();
|
|
- } else if (who == this.menuButtons) {
|
|
- switch (which) {
|
|
- case 0:
|
|
- return this.getMenu("Help");
|
|
- case 1:
|
|
- return this.getMenu("Options");
|
|
- case 2:
|
|
- prodName = IniFile.override().getIniString("ProductName", "");
|
|
- if (!prodName.equalsIgnoreCase("RedLightWorld") && !prodName.equalsIgnoreCase("RedLightCenter")) {
|
|
- EMailPart.showMessage(this);
|
|
- }
|
|
- break;
|
|
- case 3:
|
|
- return (PopupMenu)this.marks.getMenu();
|
|
- case 4:
|
|
- return (PopupMenu)this.marks.getLetsMenu();
|
|
- case 5:
|
|
- this.actions.present();
|
|
- break;
|
|
- case 6:
|
|
- return this.getMenu("VIP");
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public RenderCanvas getRender() {
|
|
- return this.render;
|
|
- }
|
|
-
|
|
- public FriendsListPart getFriends() {
|
|
- return this.friends;
|
|
- }
|
|
-
|
|
- public MuteListPart getMutes() {
|
|
- return this.mutes;
|
|
- }
|
|
-
|
|
- public void generateFrameEvents(FrameEvent f) {
|
|
- if (Window.getWindowState(Window.getFrameHandle()) == 1) {
|
|
- this.goToSleep();
|
|
- }
|
|
-
|
|
- if (doDrive) {
|
|
- doDrive = false;
|
|
- this.render.drive();
|
|
- wasDelta = true;
|
|
- }
|
|
-
|
|
- super.generateFrameEvents(f);
|
|
- Pilot pilot = Pilot.getActive();
|
|
- GammaFrame frame = getFrame();
|
|
- String worldName = "";
|
|
- if (pilot != null) {
|
|
- World world = pilot.getWorld();
|
|
- if (world != null) {
|
|
- String name = world.getName();
|
|
- if (name != null) {
|
|
- worldName = name;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (!lastWorldName.equals(worldName)) {
|
|
- lastWorldName = worldName;
|
|
- String newTitle = GammaFrame.getDefaultTitle();
|
|
- if (worldName.length() != 0) {
|
|
- newTitle = newTitle + " - " + worldName;
|
|
- if (!this.playedCD) {
|
|
- CDAudio.startupPlay();
|
|
- this.playedCD = true;
|
|
- }
|
|
- }
|
|
-
|
|
- frame.setTitle(newTitle);
|
|
- }
|
|
-
|
|
- if (pilot != null) {
|
|
- if (this.chooseView != -1 || this.chooseCamSpeed != -1) {
|
|
- int oldCameraMode = pilot.getOutsideCameraMode();
|
|
- int oldCameraSpeed = pilot.getOutsideCameraSpeed();
|
|
- int cameraMode = oldCameraMode;
|
|
- int cameraSpeed = oldCameraSpeed;
|
|
- if (this.chooseView != -1) {
|
|
- cameraMode = ((CameraView)this.viewNames.elementAt(this.chooseView)).viewID;
|
|
- }
|
|
-
|
|
- if (this.chooseCamSpeed != -1) {
|
|
- cameraSpeed = ((CameraSpeed)this.speedNames.elementAt(this.chooseCamSpeed)).speedID;
|
|
- }
|
|
-
|
|
- pilot.setOutsideCameraMode(cameraMode, cameraSpeed);
|
|
- if (cameraMode != 99) {
|
|
- IniFile.gamma().setIniInt("CAM_MODE", cameraMode);
|
|
- IniFile.gamma().setIniInt("CAM_SPEED", cameraSpeed);
|
|
- }
|
|
-
|
|
- this.chooseView = -1;
|
|
- this.chooseCamSpeed = -1;
|
|
- }
|
|
-
|
|
- if (this.wasTeleporting != this.marks.isTeleporting()) {
|
|
- this.wasTeleporting = this.marks.isTeleporting();
|
|
- if (this.wasTeleporting) {
|
|
- this.statusMessage = loadingString;
|
|
- } else if (this.statusMessage == loadingString) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
- }
|
|
-
|
|
- this.checkVMWarning();
|
|
- if (wasDelta && !this.render.getDeltaMode()) {
|
|
- this.statusMessage = arrowKeyMsg;
|
|
- wasDelta = false;
|
|
- this.driveButton.drawCursed();
|
|
- }
|
|
-
|
|
- synchronized(this.status) {
|
|
- if (this.statusMessage != this.lastStatus && this.overrideMessage == null) {
|
|
- this.lastStatus = this.statusMessage;
|
|
- this.status.setText(this.statusMessage);
|
|
- }
|
|
- }
|
|
-
|
|
- synchronized(this.nextAvatarMutex) {
|
|
- if (this.nextAvatar != null) {
|
|
- this.setAvatar(this.nextAvatar);
|
|
- this.nextAvatar = null;
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.notifyOfChange();
|
|
- }
|
|
-
|
|
- if (this.nextAvatarItem != null) {
|
|
- this.setCurrentAvatarItem(this.nextAvatarItem);
|
|
- this.nextAvatarItem = null;
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- private void checkVMWarning() {
|
|
- int now = Std.getFastTime();
|
|
- if (now > this.lastVMCheck + 10000) {
|
|
- StatMemNode m = StatMemNode.getNode();
|
|
- m.updateMemoryStatus();
|
|
- if (m._availPageMem < 0) {
|
|
- m._availPageMem = 2000000000;
|
|
- }
|
|
-
|
|
- if (m._totPhysMem < 0) {
|
|
- m._totPhysMem = 2000000000;
|
|
- }
|
|
-
|
|
- physMem = m._totPhysMem;
|
|
- if (m._availPageMem >= 4194304) {
|
|
- if (m._availPageMem > 5242880 && this.lastVMBigWarning != 0) {
|
|
- if (m._availPageMem > 10485760) {
|
|
- Console.println(Console.message("plenty-virt"));
|
|
- this.lastVMBigWarning = 0;
|
|
- } else if (!this.showedMidWarn) {
|
|
- Console.println(Console.message("plenty-virt-mem"));
|
|
- this.showedMidWarn = true;
|
|
- }
|
|
-
|
|
- if (this.statusMessage == lowVMMsg) {
|
|
- this.statusMessage = "";
|
|
- }
|
|
- }
|
|
- } else {
|
|
- if (this.lastVMBigWarning == 0 || this.showedMidWarn || now > this.lastVMBigWarning + 300000) {
|
|
- Console.println(Console.message("Low-virt-mem"));
|
|
- this.lastVMBigWarning = now;
|
|
- this.showedMidWarn = false;
|
|
- }
|
|
-
|
|
- this.statusMessage = lowVMMsg;
|
|
- }
|
|
-
|
|
- Object[] arguments = new Object[]{new String(Std.getProductName()), new Integer(24)};
|
|
- if (startupMemCheck) {
|
|
- if (m._totPhysMem < 24000000) {
|
|
- String result = MessageFormat.format(Console.message("Mem-detected"), arguments);
|
|
- new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Too-Little-RAM"), (String)null, Console.message("OK"), result, true);
|
|
- }
|
|
-
|
|
- startupMemCheck = false;
|
|
- System.out.println("System has " + m._totPhysMem + " bytes of physical RAM");
|
|
- }
|
|
-
|
|
- this.lastVMCheck = now;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public URL getAvatarName() {
|
|
- return this.avatarURL;
|
|
- }
|
|
-
|
|
- public void setServerURL(URL serverURL) {
|
|
- super.setServerURL(serverURL);
|
|
- }
|
|
-
|
|
- public void dialogDone(Object who, boolean confirmed) {
|
|
- if (who instanceof QuitDialog) {
|
|
- if (confirmed) {
|
|
- Console.quit();
|
|
- }
|
|
- } else {
|
|
- String newChannel;
|
|
- if (who instanceof BootDialog) {
|
|
- if (confirmed) {
|
|
- BootDialog bd = (BootDialog)who;
|
|
- newChannel = bd.getBoot();
|
|
- if (!newChannel.equals("")) {
|
|
- Pilot.sendText("world", "!boot " + newChannel);
|
|
- }
|
|
- }
|
|
- } else {
|
|
- int oldFontSize;
|
|
- int oldLength;
|
|
- if (who instanceof ChannelDialog) {
|
|
- if (confirmed) {
|
|
- ChannelDialog cd = (ChannelDialog)who;
|
|
- newChannel = cd.getChannel();
|
|
- Pilot pilot = Pilot.getActive();
|
|
- String oldPos = pilot != null ? pilot.getURL() : null;
|
|
- if (oldPos != null) {
|
|
- oldFontSize = oldPos.indexOf("<");
|
|
- oldLength = oldPos.indexOf(">");
|
|
- if (oldFontSize >= 0 && oldLength > oldFontSize) {
|
|
- TeleportAction.teleport(oldPos.substring(0, oldFontSize + 1) + newChannel + oldPos.substring(oldLength), (TeleportStatus)null);
|
|
- }
|
|
- } else {
|
|
- Console.println(Console.message("cant-determine"));
|
|
- }
|
|
- }
|
|
- } else if (who instanceof ChatDialog) {
|
|
- if (confirmed) {
|
|
- ChatDialog cd = (ChatDialog)who;
|
|
- int newFontsize = cd.getFontsize();
|
|
- int newLines = cd.getLines();
|
|
- int newLength = cd.getLength();
|
|
- if (newLines < 6) {
|
|
- newLines = 6;
|
|
- }
|
|
-
|
|
- oldFontSize = IniFile.gamma().getIniInt("ChatFontSize", 12);
|
|
- oldLength = IniFile.gamma().getIniInt("ChatLengthLimit", 20000);
|
|
- if (newFontsize != oldFontSize || newLines != chatLines || newLength != oldLength) {
|
|
- if (newFontsize != oldFontSize) {
|
|
- IniFile.gamma().setIniInt("ChatFontSize", newFontsize);
|
|
- }
|
|
-
|
|
- if (newLines != chatLines) {
|
|
- chatLines = newLines;
|
|
- IniFile.gamma().setIniInt("ChatLines", newLines);
|
|
- }
|
|
-
|
|
- if (newLength != oldLength) {
|
|
- NewSharedTextArea.chatLengthLimit = newLength;
|
|
- ClassicSharedTextArea.chatLengthLimit = newLength;
|
|
- IniFile.gamma().setIniInt("ChatLengthLimit", newLength);
|
|
- }
|
|
-
|
|
- if (this.chat.listen.getComponent().getClass() == NewSharedTextArea.class) {
|
|
- try {
|
|
- NewSharedTextArea gta = (NewSharedTextArea)this.chat.listen.getComponent();
|
|
- gta.setFontSize(newFontsize);
|
|
- gta.setRows(newLines);
|
|
- gta.scrollToBottom();
|
|
- gta.setScrollBounds();
|
|
- } catch (Exception var10) {
|
|
+ if (this.lastVMBigWarning == 0 || this.showedMidWarn || var1 > this.lastVMBigWarning + 300000) {
|
|
+ Console.println(Console.message("Low-virt-mem"));
|
|
+ this.lastVMBigWarning = var1;
|
|
+ this.showedMidWarn = false;
|
|
+ }
|
|
+
|
|
+ this.statusMessage = lowVMMsg;
|
|
+ }
|
|
+
|
|
+ Object[] var3 = new Object[]{new String(Std.getProductName()), new Integer(24)};
|
|
+ if (startupMemCheck) {
|
|
+ if (var2._totPhysMem < 24000000) {
|
|
+ String var4 = MessageFormat.format(Console.message("Mem-detected"), var3);
|
|
+ new OkCancelDialog(getFrame(), (DialogReceiver)null, Console.message("Too-Little-RAM"), (String)null, Console.message("OK"), var4, true);
|
|
+ }
|
|
+
|
|
+ startupMemCheck = false;
|
|
+ System.out.println("System has " + var2._totPhysMem + " bytes of physical RAM");
|
|
+ }
|
|
+
|
|
+ this.lastVMCheck = var1;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public URL getAvatarName() {
|
|
+ return this.avatarURL;
|
|
+ }
|
|
+
|
|
+ public void setServerURL(URL var1) {
|
|
+ super.setServerURL(var1);
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var1 instanceof QuitDialog) {
|
|
+ if (var2) {
|
|
+ Console.quit();
|
|
+ }
|
|
+ } else {
|
|
+ String var4;
|
|
+ if (var1 instanceof BootDialog) {
|
|
+ if (var2) {
|
|
+ BootDialog var3 = (BootDialog)var1;
|
|
+ var4 = var3.getBoot();
|
|
+ if (!var4.equals("")) {
|
|
+ Pilot.sendText("world", "!boot " + var4);
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 instanceof ChannelDialog) {
|
|
+ if (var2) {
|
|
+ ChannelDialog var9 = (ChannelDialog)var1;
|
|
+ var4 = var9.getChannel();
|
|
+ Pilot var5 = Pilot.getActive();
|
|
+ String var6 = var5 != null ? var5.getURL() : null;
|
|
+ if (var6 != null) {
|
|
+ int var7 = var6.indexOf("<");
|
|
+ int var8 = var6.indexOf(">");
|
|
+ if (var7 >= 0 && var8 > var7) {
|
|
+ TeleportAction.teleport(var6.substring(0, var7 + 1) + var4 + var6.substring(var8), (TeleportStatus)null);
|
|
}
|
|
- }
|
|
-
|
|
- int h = chatLines * this.chat.listen.getComponent().getFontMetrics(this.chat.listen.getFont()).getHeight();
|
|
- h -= 96;
|
|
- if (h > 0 && this.adFiller != null) {
|
|
- this.adFiller.setHeight(h);
|
|
- }
|
|
-
|
|
- Console.frame.validate();
|
|
- Console.frame.repaint();
|
|
- }
|
|
- }
|
|
- } else if (who instanceof LoginWizard) {
|
|
- assert false;
|
|
- } else if (who instanceof CDControl) {
|
|
- if (this.cdcontrol == who) {
|
|
- this.cdcontrol = null;
|
|
- }
|
|
- } else if (who instanceof InternetConnectionDialog) {
|
|
- assert false;
|
|
- } else if (who == this.reloginDialog) {
|
|
- if (confirmed) {
|
|
- Galaxy.forceOffline(true);
|
|
- }
|
|
-
|
|
- this.reloginDialog = null;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setAvatar(URL url) {
|
|
- this.avatarURL = url;
|
|
- boolean isVIPAv = url.getInternal().toLowerCase().endsWith(".rwg");
|
|
- boolean hasAmnesty = url.equals(getDefaultURL()) && !this.getGalaxy().getOnline();
|
|
- if (!this.getVIP() && isVIPAv && !hasAmnesty) {
|
|
- Console.println(Console.message("Only-VIPs") + " '" + SelectAvatarAction.getPrettyAvatarName(url.getBase()) + "'.");
|
|
- } else if (VehicleShape.isVehicle(url)) {
|
|
- this.tempCarAvatar = url.getAbsolute();
|
|
- super.setAvatar(url);
|
|
- } else {
|
|
- this.tempCarAvatar = "";
|
|
- if (this.avatarMenu != null) {
|
|
- this.avatarMenu.customize.setEnabled(!url.getAbsolute().endsWith("mov"));
|
|
- }
|
|
-
|
|
- if (!url.equals(this.getDefaultAvatarURL())) {
|
|
- if (this.getVIPAvatars()) {
|
|
- if (!isVIPAv) {
|
|
- IniFile.gamma().setIniString("VIPAVATAR", "");
|
|
- } else {
|
|
- IniFile.gamma().setIniString("VIPAVATAR", url.getAbsolute());
|
|
- }
|
|
- }
|
|
-
|
|
- if (!isVIPAv) {
|
|
- IniFile.gamma().setIniString("AVATAR", url.getAbsolute());
|
|
- }
|
|
- }
|
|
-
|
|
- super.setAvatar(url);
|
|
- }
|
|
- }
|
|
-
|
|
- private CheckboxMenuItem findAvatar(Vector items, String name) {
|
|
- if (items != null) {
|
|
- int count = items.size();
|
|
-
|
|
- for(int i = 0; i < count; ++i) {
|
|
- CheckboxMenuItem item = (CheckboxMenuItem)items.elementAt(i);
|
|
- if (item.getLabel().equals(name)) {
|
|
- return item;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- protected void loadPilot(URL url) {
|
|
- super.loadPilot(url);
|
|
- this.findAvatarMenuItem(url);
|
|
- }
|
|
-
|
|
- public void setChatname(String chatname) {
|
|
- assert chatname != null;
|
|
-
|
|
- if (chatname.length() != 0) {
|
|
- String nameStr = (this.getVIP() ? (vip > 1 ? Console.message("VIP") + " " : Console.message("vip")) + " " : "") + "\"" + Console.parseUnicode(chatname) + "\"";
|
|
- this.yourName.setText(nameStr);
|
|
- IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(nameStr));
|
|
- } else {
|
|
- this.yourName.setText(Console.message("Off-line"));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void connectionCallback(Object caller, boolean connected) {
|
|
- super.connectionCallback(caller, connected);
|
|
- if (caller instanceof Galaxy) {
|
|
- if (caller != this.galaxy) {
|
|
- return;
|
|
- }
|
|
-
|
|
- if (connected) {
|
|
- WorldServer serv = this.getServerNew();
|
|
- this.friends.setServer(serv, this.getGalaxy().getIniSection());
|
|
- this.mutes.setServer(serv, this.getGalaxy().getIniSection());
|
|
- if (vip < 2) {
|
|
- Console.println(vip == 1 ? Console.message("Press-full-VIP") : Console.message("Press-VIP"));
|
|
- }
|
|
-
|
|
- PosableShape.downloadPermittedNames();
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void galaxyDisconnected() {
|
|
- super.galaxyDisconnected();
|
|
- this.getFriends().maybeServerDisconnect();
|
|
- }
|
|
-
|
|
- public boolean okToQuit() {
|
|
- int quitDlg = IniFile.override().getIniInt("QuitDialog", 1);
|
|
-
|
|
- try {
|
|
- if (quitDlg == 1) {
|
|
+ } else {
|
|
+ Console.println(Console.message("cant-determine"));
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 instanceof LoginWizard) {
|
|
+ assert(false);
|
|
+ } else if (var1 instanceof CDControl) {
|
|
+ if (this.cdcontrol == var1) {
|
|
+ this.cdcontrol = null;
|
|
+ }
|
|
+ } else if (var1 instanceof InternetConnectionDialog) {
|
|
+ assert(false);
|
|
+ } else if (var1 == this.reloginDialog) {
|
|
+ if (var2) {
|
|
+ Galaxy.forceOffline(true);
|
|
+ }
|
|
+
|
|
+ this.reloginDialog = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setAvatar(URL var1) {
|
|
+ this.avatarURL = var1;
|
|
+ boolean var2 = var1.getInternal().toLowerCase().endsWith(".rwg");
|
|
+ boolean var3 = var1.equals(getDefaultURL()) && !this.getGalaxy().getOnline();
|
|
+ if (!this.getVIPAvatars() && var2 && !var3) {
|
|
+ Console.println(Console.message("Only-VIPs") + " '" + SelectAvatarAction.getPrettyAvatarName(var1.getBase()) + "'.");
|
|
+ } else if (VehicleShape.isVehicle(var1)) {
|
|
+ this.tempCarAvatar = var1.getAbsolute();
|
|
+ super.setAvatar(var1);
|
|
+ } else {
|
|
+ this.tempCarAvatar = "";
|
|
+ if (this.avatarMenu != null) {
|
|
+ this.avatarMenu.customize.setEnabled(!var1.getAbsolute().endsWith("mov"));
|
|
+ }
|
|
+
|
|
+ if (!var1.equals(this.getDefaultAvatarURL())) {
|
|
+ if (this.getVIPAvatars()) {
|
|
+ if (!var2) {
|
|
+ IniFile.gamma().setIniString("VIPAVATAR", "");
|
|
+ } else {
|
|
+ IniFile.gamma().setIniString("VIPAVATAR", var1.getAbsolute());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!var2) {
|
|
+ IniFile.gamma().setIniString("AVATAR", var1.getAbsolute());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.setAvatar(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private CheckboxMenuItem findAvatar(Vector var1, String var2) {
|
|
+ if (var1 != null) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ CheckboxMenuItem var5 = (CheckboxMenuItem)var1.elementAt(var4);
|
|
+ if (var5.getLabel().equals(var2)) {
|
|
+ return var5;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ protected void loadPilot(URL var1) {
|
|
+ super.loadPilot(var1);
|
|
+ this.findAvatarMenuItem(var1);
|
|
+ }
|
|
+
|
|
+ public void setChatname(String var1) {
|
|
+ assert(var1 != null);
|
|
+ if (var1.length() != 0) {
|
|
+ String var2 = (this.getVIP() ? (vip > 1 ? Console.message("VIP") + " " : Console.message("vip")) + " " : "") + "\"" + Console.parseUnicode(var1) + "\"";
|
|
+ this.yourName.setText(var2);
|
|
+ IniFile.gamma().setIniString("LASTCHATNAME", parseExtended(var2));
|
|
+ } else {
|
|
+ this.yourName.setText(Console.message("Off-line"));
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void connectionCallback(Object var1, boolean var2) {
|
|
+ super.connectionCallback(var1, var2);
|
|
+ if (var1 instanceof Galaxy) {
|
|
+ if (var1 != this.galaxy) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ if (var2) {
|
|
+ WorldServer var3 = this.getServerNew();
|
|
+ this.friends.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ this.mutes.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ this.tars.setServer(var3, this.getGalaxy().getIniSection());
|
|
+ if (vip < 2) {
|
|
+ Console.println(vip == 1 ? Console.message("Press-full-VIP") : Console.message("Press-VIP"));
|
|
+ }
|
|
+
|
|
+ PosableShape.downloadPermittedNames();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void galaxyDisconnected() {
|
|
+ super.galaxyDisconnected();
|
|
+ this.getFriends().maybeServerDisconnect();
|
|
+ }
|
|
+
|
|
+ public boolean okToQuit() {
|
|
+ int var1 = IniFile.override().getIniInt("QuitDialog", 1);
|
|
+ if (var1 == 1) {
|
|
new QuitDialog(getFrame(), this);
|
|
return false;
|
|
- }
|
|
- } catch (Exception var3) {
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public Rectangle getBrowserPlacement() {
|
|
- String coords = IniFile.gamma().getIniString("BROWSERWINDOW", "");
|
|
- if (coords.length() != 0) {
|
|
- StringTokenizer tok = new StringTokenizer(coords, " ,");
|
|
-
|
|
- try {
|
|
- return new Rectangle(Integer.parseInt(tok.nextToken()), Integer.parseInt(tok.nextToken()), Integer.parseInt(tok.nextToken()), Integer.parseInt(tok.nextToken()));
|
|
- } catch (NumberFormatException var9) {
|
|
- } catch (NoSuchElementException var10) {
|
|
- }
|
|
- }
|
|
-
|
|
- int w = this.menuButtons.getLocationOnScreen().x - (int)((double)this.menuButtons.getSize().width * 0.7);
|
|
- int frameWidth = Window.getSystemMetrics(32);
|
|
- int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
|
|
- int minWidth = Math.min(screenWidth, 640) + 2 * frameWidth;
|
|
- int x = 0;
|
|
- if (w != minWidth) {
|
|
- if (w > minWidth) {
|
|
- x += w - minWidth;
|
|
- }
|
|
-
|
|
- w = minWidth;
|
|
- }
|
|
-
|
|
- if (w > screenWidth) {
|
|
- x += -frameWidth;
|
|
- }
|
|
-
|
|
- int h = this.chat.listen.getLocationOnScreen().y + this.chat.listen.getSize().height - this.chat.line.getSize().height;
|
|
- int y = 0;
|
|
- if (h > maxWebSize) {
|
|
- y += h - maxWebSize;
|
|
- h = maxWebSize;
|
|
- }
|
|
-
|
|
- return new Rectangle(x, y, w, h);
|
|
- }
|
|
-
|
|
- public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException {
|
|
- Object ret = null;
|
|
- switch (index - offset) {
|
|
- case 0:
|
|
- if (mode == 0) {
|
|
- ret = URLPropertyEditor.make(new Property(this, index, "Avatar"), "rwg;mov");
|
|
- } else if (mode == 1) {
|
|
- ret = this.lastPilotRequested;
|
|
- } else if (mode == 2) {
|
|
- this.setNextAvatar((URL)value, (CheckboxMenuItem)null);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (mode == 0) {
|
|
- ret = BooleanPropertyEditor.make(new Property(this, index, "Collect garbage"), "No", "Yes");
|
|
- } else if (mode == 1) {
|
|
- ret = new Boolean(false);
|
|
- } else if (mode == 2 && (Boolean)value) {
|
|
- System.gc();
|
|
- System.runFinalization();
|
|
- }
|
|
- break;
|
|
- default:
|
|
- ret = super.properties(index, offset + 2, mode, value);
|
|
- }
|
|
-
|
|
- return ret;
|
|
- }
|
|
-
|
|
- public void saveState(Saver s) throws IOException {
|
|
- s.saveVersion(0, classCookie);
|
|
- super.saveState(s);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- int vers = r.restoreVersion(classCookie);
|
|
- switch (vers) {
|
|
- case 0:
|
|
- super.restoreState(r);
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- public class CameraSpeed {
|
|
- public String speedName;
|
|
- public int speedID;
|
|
-
|
|
- public CameraSpeed(String sn, int sid) {
|
|
- this.speedName = sn;
|
|
- this.speedID = sid;
|
|
- }
|
|
- }
|
|
-
|
|
- public class CameraView {
|
|
- public String viewName;
|
|
- public int viewID;
|
|
-
|
|
- public CameraView(String vn, int vid) {
|
|
- this.viewName = vn;
|
|
- this.viewID = vid;
|
|
- }
|
|
- }
|
|
+ } else {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Rectangle getBrowserPlacement() {
|
|
+ String var1 = IniFile.gamma().getIniString("BROWSERWINDOW", "");
|
|
+ if (var1.length() != 0) {
|
|
+ StringTokenizer var2 = new StringTokenizer(var1, " ,");
|
|
+
|
|
+ try {
|
|
+ return new Rectangle(Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()), Integer.parseInt(var2.nextToken()));
|
|
+ } catch (NumberFormatException var10) {
|
|
+ } catch (NoSuchElementException var11) {
|
|
+ }
|
|
+ }
|
|
+
|
|
+ Point var12 = this.menuButtons.getLocationOnScreen();
|
|
+ int var3 = this.menuButtons.getLocationOnScreen().x - (int)((double)this.menuButtons.getSize().width * 0.7D);
|
|
+ int var4 = Window.getSystemMetrics(32);
|
|
+ int var5 = Toolkit.getDefaultToolkit().getScreenSize().width;
|
|
+ int var6 = Math.min(var5, 640) + 2 * var4;
|
|
+ int var7 = 0;
|
|
+ if (var3 != var6) {
|
|
+ if (var3 > var6) {
|
|
+ var7 += var3 - var6;
|
|
+ }
|
|
+
|
|
+ var3 = var6;
|
|
+ }
|
|
+
|
|
+ if (var3 > var5) {
|
|
+ var7 += -var4;
|
|
+ }
|
|
+
|
|
+ int var8 = this.chat.listen.getLocationOnScreen().y + this.chat.listen.getSize().height - this.chat.line.getSize().height;
|
|
+ int var9 = 0;
|
|
+ if (var8 > 540) {
|
|
+ var9 += var8 - 540;
|
|
+ var8 = 540;
|
|
+ }
|
|
+
|
|
+ return new Rectangle(var7, var9, var3, var8);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make(new Property(this, var1, "Avatar"), "rwg;mov;rwx");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.lastPilotRequested;
|
|
+ } else if (var3 == 2) {
|
|
+ this.setNextAvatar((URL)var4, (CheckboxMenuItem)null);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Collect garbage"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(false);
|
|
+ } else if (var3 == 2 && ((Boolean)var4).booleanValue()) {
|
|
+ System.gc();
|
|
+ System.runFinalization();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ lLength = lNames.length;
|
|
+ lLangs = new MenuItem[lLength];
|
|
+ newLocale = new Locale[lLength];
|
|
+ lCodes = new String[lLength][2];
|
|
+ signIn = Console.message("Sign-In");
|
|
+ signOut = Console.message("Sign-Out");
|
|
+ signingIn = Console.message("Signing-In");
|
|
+ noMultiUser = Console.message("Network");
|
|
+ enable3D = Console.message("Enable3D");
|
|
+ disable3D = Console.message("Disable3D");
|
|
+ showTags = Console.message("ShowNametags");
|
|
+ hideTags = Console.message("HideNametags");
|
|
+ enableClassicChat = Console.message("EnableClassicChat");
|
|
+ disableClassicChat = Console.message("DisableClassicChat");
|
|
+ sleepStatus = Console.message("Sleeping");
|
|
+ lastWorldName = "";
|
|
+ lowVMMsg = Console.message("Low-virt");
|
|
+ startupMemCheck = true;
|
|
+ classCookie = new Object();
|
|
+ }
|
|
+
|
|
+ private class CameraSpeed {
|
|
+ public String speedName;
|
|
+ public int speedID;
|
|
+
|
|
+ public CameraSpeed(String var2, int var3) {
|
|
+ this.speedName = var2;
|
|
+ this.speedID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class CameraView {
|
|
+ public String viewName;
|
|
+ public int viewID;
|
|
+
|
|
+ public CameraView(String var2, int var3) {
|
|
+ this.viewName = var2;
|
|
+ this.viewID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class WhisperPrivacy {
|
|
+ public String whisperName;
|
|
+ public int whisperID;
|
|
+
|
|
+ public WhisperPrivacy(String var2, int var3) {
|
|
+ this.whisperName = var2;
|
|
+ this.whisperID = var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private class TeleportPrivacy {
|
|
+ public String teleportName;
|
|
+ public int teleportID;
|
|
+
|
|
+ public TeleportPrivacy(String var2, int var3) {
|
|
+ this.teleportName = var2;
|
|
+ this.teleportID = var3;
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/console/FriendsListPart.java b/1920/NET/worlds/console/FriendsListPart.java
|
|
--- a/1920/NET/worlds/console/FriendsListPart.java 2024-01-08 01:46:28.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/FriendsListPart.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,15 +1,9 @@
|
|
package NET.worlds.console;
|
|
|
|
+import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.Std;
|
|
-import NET.worlds.network.BuddyListUpdateCmd;
|
|
-import NET.worlds.network.Galaxy;
|
|
-import NET.worlds.network.InfiniteWaitException;
|
|
-import NET.worlds.network.NetUpdate;
|
|
-import NET.worlds.network.PacketTooLargeException;
|
|
-import NET.worlds.network.WorldServer;
|
|
-import NET.worlds.network.netPacket;
|
|
-import NET.worlds.network.whisperCmd;
|
|
+import NET.worlds.network.*;
|
|
import NET.worlds.scape.AnimatedActionManager;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.FrameEvent;
|
|
@@ -19,6 +13,7 @@
|
|
import NET.worlds.scape.PosableShape;
|
|
import NET.worlds.scape.TeleportAction;
|
|
import NET.worlds.scape.TeleportStatus;
|
|
+
|
|
import java.awt.Color;
|
|
import java.awt.Container;
|
|
import java.awt.Dimension;
|
|
@@ -29,961 +24,976 @@
|
|
import java.awt.Menu;
|
|
import java.awt.MenuItem;
|
|
import java.awt.PopupMenu;
|
|
+import java.awt.Window;
|
|
import java.awt.image.ImageObserver;
|
|
import java.io.IOException;
|
|
import java.text.MessageFormat;
|
|
-import java.util.Collections;
|
|
-import java.util.Comparator;
|
|
import java.util.Enumeration;
|
|
import java.util.StringTokenizer;
|
|
import java.util.Vector;
|
|
|
|
-public class FriendsListPart extends QuantizedCanvas implements FramePart, DialogReceiver, DialogDisabled, NameListOwner, Comparator {
|
|
- private static final long serialVersionUID = 2875678557235430189L;
|
|
- private static final String oldIniItemName = "Friends";
|
|
- private static final String iniItemName = "Friend";
|
|
- private static int maxFriends = Gamma.shaperEnabled() ? 500 : 250;
|
|
- private static int absMaxFriends = 600;
|
|
- private static final String separator = ";";
|
|
- private static final String whereQuery = "&|+where?";
|
|
- private static final String whereResponse = "&|+where>";
|
|
- VoiceChat chatter = new VoiceChat();
|
|
- private static final int MOUSEMOVE = 0;
|
|
- private static final int MOUSEDRAG = 1;
|
|
- private static final int MOUSEDOWN = 2;
|
|
- private static final int MOUSEUP = 3;
|
|
- private static final int MOUSEENTER = 4;
|
|
- private static final int MOUSEEXIT = 5;
|
|
- private static final int BLANK = 0;
|
|
- private static final int NORMAL = 1;
|
|
- private static final int CURSED = 2;
|
|
- private static final int DOWN = 3;
|
|
- private static final int TELEPORT_IDLE = 0;
|
|
- private static final int TELEPORT_REQUEST_LOCATION = 1;
|
|
- private static final int TELEPORT_WAIT_FOR_LOCATION = 2;
|
|
- private static final int buttonWidth = 97;
|
|
- private static final int buttonHeight = 11;
|
|
- private static final int xText = 20;
|
|
- private static final int yText = 9;
|
|
- private static final int xTextClip = 94;
|
|
- private static Image friendsImage;
|
|
- private static Image moreFriendsImage;
|
|
- private static Font font;
|
|
- private static FriendsListPart active;
|
|
- private Vector friends = new Vector();
|
|
- private Vector onlineFriends = new Vector();
|
|
- private Vector mutedOnlineFriends = new Vector();
|
|
- private Vector serverUpdates = new Vector();
|
|
- private Object friendsMutex = new Object();
|
|
- private int cursedButton = -1;
|
|
- private int clickedButton = -1;
|
|
- private boolean clickedButtonDown;
|
|
- private PopupMenu menu;
|
|
- private MenuItem teleportItem = new MenuItem(Console.message("Go-There"));
|
|
- private MenuItem emailItem = new MenuItem(Console.message("E-Mail"));
|
|
- private MenuItem muteItem = new MenuItem(Console.message("Mute"));
|
|
- private MenuItem whisperItem = new MenuItem(Console.message("Whisper"));
|
|
- private MenuItem voiceChatItem = new MenuItem(Console.message("Voice-Chat"));
|
|
- private MenuItem infoItem = new MenuItem(Console.message("Personal-I"));
|
|
- private MenuItem tradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
- private PopupMenu droneMenu;
|
|
- private MenuItem droneAddItem = new MenuItem(Console.message("Add-2-friends"));
|
|
- private MenuItem droneEmailItem = new MenuItem(Console.message("E-Mail"));
|
|
- private MenuItem droneMuteItem = new MenuItem(Console.message("Mute"));
|
|
- private MenuItem droneWhisperItem = new MenuItem(Console.message("Whisper"));
|
|
- private MenuItem droneVoiceChatItem = new MenuItem(Console.message("Voice-Chat"));
|
|
- private MenuItem droneInfoItem = new MenuItem(Console.message("Personal-I"));
|
|
- private MenuItem droneTradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
- private String activeFriendName = "";
|
|
- private String teleportTarget;
|
|
- private int teleportState = 0;
|
|
- private int teleportWaitStartTime;
|
|
- private boolean teleportWaitSentMsg;
|
|
- private int friendsButtons;
|
|
- private int moreFriendsButton;
|
|
- private boolean moreFriendsActive;
|
|
- private MenuItem editItem;
|
|
- private Menu actionMenu;
|
|
- private MoreFriendsDialog moreFriendsDialog;
|
|
- private DefaultConsole console;
|
|
- private Galaxy galaxy;
|
|
- private IniFile serverSection;
|
|
- private boolean isDialogDisabled;
|
|
- private int showMenuY = -1;
|
|
- private static final String voiceChatWhisper = "&|+voicechat";
|
|
-
|
|
- public FriendsListPart() {
|
|
- AnimatedActionManager.get();
|
|
- String prodName;
|
|
- if (font == null) {
|
|
- prodName = IniFile.override().getIniString("friendsGif", "friends.gif");
|
|
- friendsImage = ImageCanvas.getSystemImage(prodName, this);
|
|
- String moreFriendsGif = IniFile.override().getIniString("moreFriendsGif", Console.message("mfriends.gif"));
|
|
- moreFriendsImage = ImageCanvas.getSystemImage(moreFriendsGif, this);
|
|
- int fontSize = new Integer(Console.message("FriendsPointSize"));
|
|
- font = new Font(Console.message("FriendsFont"), 0, fontSize);
|
|
- }
|
|
-
|
|
- this.teleportItem.setFont(font);
|
|
- this.emailItem.setFont(font);
|
|
- this.muteItem.setFont(font);
|
|
- this.whisperItem.setFont(font);
|
|
- this.tradeItem.setFont(font);
|
|
- this.voiceChatItem.setFont(font);
|
|
- this.infoItem.setFont(font);
|
|
- this.menu = new PopupMenu();
|
|
- this.menu.add(this.teleportItem);
|
|
- prodName = IniFile.override().getIniString("ProductName", "");
|
|
- if (!prodName.equalsIgnoreCase("RedLightWorld") && !prodName.equalsIgnoreCase("RedLightCenter")) {
|
|
- this.menu.add(this.emailItem);
|
|
- }
|
|
-
|
|
- this.menu.add(this.muteItem);
|
|
- this.menu.add(this.whisperItem);
|
|
- boolean allowTrading = IniFile.gamma().getIniInt("EnableTrading", 0) == 1 || NetUpdate.isInternalVersion();
|
|
- if (allowTrading) {
|
|
- this.menu.add(this.tradeItem);
|
|
- }
|
|
-
|
|
- this.menu.add(this.voiceChatItem);
|
|
- if (!VoiceChat.voiceChatAvailable()) {
|
|
- this.voiceChatItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.menu.add(this.infoItem);
|
|
- this.add(this.menu);
|
|
- this.droneAddItem.setFont(font);
|
|
- this.droneEmailItem.setFont(font);
|
|
- this.droneMuteItem.setFont(font);
|
|
- this.droneWhisperItem.setFont(font);
|
|
- this.droneTradeItem.setFont(font);
|
|
- this.droneVoiceChatItem.setFont(font);
|
|
- this.droneInfoItem.setFont(font);
|
|
- this.droneMenu = new PopupMenu();
|
|
- this.droneMenu.setFont(font);
|
|
- this.droneMenu.add(this.droneAddItem);
|
|
- this.droneMenu.add(this.droneEmailItem);
|
|
- this.droneMenu.add(this.droneMuteItem);
|
|
- this.droneMenu.add(this.droneWhisperItem);
|
|
- if (allowTrading) {
|
|
- this.droneMenu.add(this.droneTradeItem);
|
|
- }
|
|
-
|
|
- this.droneMenu.add(this.droneVoiceChatItem);
|
|
- if (!VoiceChat.voiceChatAvailable()) {
|
|
- this.droneVoiceChatItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.droneMenu.add(this.droneInfoItem);
|
|
- }
|
|
-
|
|
- public void update(Graphics g) {
|
|
- this.paint(g);
|
|
- }
|
|
-
|
|
- public void paint(Graphics g) {
|
|
- int height = this.getSize().height;
|
|
- int buttons = height / 11;
|
|
- synchronized(this.friendsMutex) {
|
|
- int count = this.onlineFriends.size();
|
|
- this.moreFriendsButton = buttons - 1;
|
|
- if (count >= buttons) {
|
|
- this.friendsButtons = buttons - 1;
|
|
- this.moreFriendsActive = true;
|
|
- } else {
|
|
- this.friendsButtons = count;
|
|
- this.moreFriendsActive = false;
|
|
- }
|
|
-
|
|
- int y = buttons * 11;
|
|
- int extra = height - y;
|
|
- if (extra > 0) {
|
|
- g.setColor(Color.black);
|
|
- g.fillRect(0, 0, 97, extra);
|
|
- }
|
|
-
|
|
- for(int i = 0; i < buttons; ++i) {
|
|
- int state = 1;
|
|
- if (i >= this.friendsButtons && !this.isMoreFriendsButton(i)) {
|
|
- state = 0;
|
|
- } else if (i == this.clickedButton) {
|
|
- state = this.clickedButtonDown ? 3 : 1;
|
|
- } else if (i == this.cursedButton) {
|
|
- state = 2;
|
|
- }
|
|
-
|
|
- this.drawButton(g, i, state);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public int getRemainder(int proposedHeight) {
|
|
- int buttons = proposedHeight / 11;
|
|
- int y = buttons * 11;
|
|
- return proposedHeight - y;
|
|
- }
|
|
-
|
|
- public Dimension preferredSize() {
|
|
- return new Dimension(97, 1);
|
|
- }
|
|
-
|
|
- public Dimension minimumSize() {
|
|
- return this.preferredSize();
|
|
- }
|
|
-
|
|
- public boolean mouseMove(Event e, int x, int y) {
|
|
- return this.buttonAction(x, y, 0);
|
|
- }
|
|
-
|
|
- public boolean mouseDown(Event e, int x, int y) {
|
|
- return this.buttonAction(x, y, 2);
|
|
- }
|
|
-
|
|
- public boolean mouseUp(Event e, int x, int y) {
|
|
- if (this.buttonAction(x, y, 3)) {
|
|
- if (this.showMenuY != -1) {
|
|
- this.menu.show(this, 0, this.showMenuY);
|
|
- this.showMenuY = -1;
|
|
- }
|
|
-
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mouseDrag(Event e, int x, int y) {
|
|
- return this.buttonAction(x, y, 1);
|
|
- }
|
|
-
|
|
- public boolean mouseEnter(Event e, int x, int y) {
|
|
- return this.buttonAction(x, y, 4);
|
|
- }
|
|
-
|
|
- public boolean mouseExit(Event e, int x, int y) {
|
|
- return this.buttonAction(x, y, 5);
|
|
- }
|
|
-
|
|
- public boolean handleEvent(Event event) {
|
|
- return this.isDialogDisabled ? false : super.handleEvent(event);
|
|
- }
|
|
-
|
|
- private void loadFriends() {
|
|
- if (this.friends.size() != 0) {
|
|
- this.friends.removeAllElements();
|
|
- }
|
|
-
|
|
- if (Console.getActive().broadcastEnabled()) {
|
|
- maxFriends = 600;
|
|
- }
|
|
-
|
|
- for(int i = 0; i < absMaxFriends; ++i) {
|
|
- String name = this.serverSection.getIniString("Friend" + i, "");
|
|
- if (name.length() == 0) {
|
|
- break;
|
|
- }
|
|
-
|
|
- if (isValidUserName(name) && !icontains(this.friends, name)) {
|
|
- this.friends.addElement(name);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.friends.size() == 0) {
|
|
- String friendsStr = this.serverSection.getIniString("Friends", "");
|
|
- StringTokenizer tokens = new StringTokenizer(friendsStr, ";");
|
|
-
|
|
- while(tokens.hasMoreTokens() && this.friends.size() < absMaxFriends) {
|
|
- String name = tokens.nextToken();
|
|
- if (isValidUserName(name) && !icontains(this.friends, name)) {
|
|
- this.friends.addElement(name);
|
|
- }
|
|
- }
|
|
+public class FriendsListPart extends QuantizedCanvas implements FramePart, DialogReceiver, DialogDisabled, NameListOwner {
|
|
|
|
- if (this.friends.size() != 0) {
|
|
- this.saveFriends();
|
|
- this.serverSection.setIniString("Friends", "");
|
|
- }
|
|
- }
|
|
-
|
|
- Collections.sort(this.friends, this);
|
|
- }
|
|
-
|
|
- void saveFriends() {
|
|
- if (this.serverSection != null) {
|
|
- int count = this.friends.size();
|
|
-
|
|
- for(int i = 0; i < count; ++i) {
|
|
- this.serverSection.setIniString("Friend" + i, (String)this.friends.elementAt(i));
|
|
- }
|
|
-
|
|
- this.serverSection.setIniString("Friend" + count, "");
|
|
- }
|
|
- }
|
|
-
|
|
- private boolean isMoreFriendsButton(int button) {
|
|
- return button == this.moreFriendsButton && this.moreFriendsActive;
|
|
- }
|
|
-
|
|
- private Graphics drawButton(Graphics g, int button, int state) {
|
|
- Image image = button == this.moreFriendsButton ? moreFriendsImage : friendsImage;
|
|
- if (g != null || (g = this.getGraphics()) != null) {
|
|
- int y = button * 11;
|
|
- Graphics g1 = g.create(0, y, 97, 11);
|
|
- g1.drawImage(image, -state * 97, 0, (ImageObserver)null);
|
|
- if (button >= 0 && button < this.friendsButtons && button < this.onlineFriends.size()) {
|
|
- g1.clipRect(0, 0, 94, 11);
|
|
- g1.setFont(font);
|
|
- g1.setColor(Color.white);
|
|
- g1.drawString((String)this.onlineFriends.elementAt(button), 20, 9);
|
|
- }
|
|
-
|
|
- g1.dispose();
|
|
- }
|
|
-
|
|
- return g;
|
|
- }
|
|
-
|
|
- private boolean buttonAction(int x, int y, int action) {
|
|
- synchronized(this.friendsMutex) {
|
|
- Graphics g = null;
|
|
- int button = y / 11;
|
|
- if ((button < 0 || button >= this.friendsButtons) && !this.isMoreFriendsButton(button)) {
|
|
- button = -1;
|
|
- }
|
|
-
|
|
- if (action != 0 && action != 4) {
|
|
- if (action == 5) {
|
|
- if (this.cursedButton != -1) {
|
|
- g = this.drawButton(g, this.cursedButton, 1);
|
|
- this.cursedButton = -1;
|
|
- }
|
|
-
|
|
- if (this.clickedButton != -1 && this.clickedButtonDown) {
|
|
- g = this.drawButton(g, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
- } else if (action == 2) {
|
|
- if (this.clickedButton != -1) {
|
|
- g = this.drawButton(g, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
-
|
|
- if ((this.clickedButton = button) != -1) {
|
|
- g = this.drawButton(g, this.clickedButton, 3);
|
|
- this.clickedButtonDown = true;
|
|
- }
|
|
- } else if (action == 1) {
|
|
- if (this.clickedButton != -1) {
|
|
- if (this.clickedButtonDown) {
|
|
- if (button != this.clickedButton) {
|
|
- g = this.drawButton(g, this.clickedButton, 1);
|
|
- this.clickedButtonDown = false;
|
|
- }
|
|
- } else if (button == this.clickedButton) {
|
|
- g = this.drawButton(g, this.clickedButton, 3);
|
|
- this.clickedButtonDown = true;
|
|
- }
|
|
- }
|
|
- } else if (action == 3) {
|
|
- this.cursedButton = button;
|
|
- if (this.clickedButtonDown) {
|
|
- if (this.cursedButton == this.clickedButton) {
|
|
- g = this.drawButton(g, this.clickedButton, 2);
|
|
- } else {
|
|
- g = this.drawButton(g, this.clickedButton, 1);
|
|
- }
|
|
-
|
|
- if (this.clickedButton == this.moreFriendsButton) {
|
|
- if (this.moreFriendsDialog == null) {
|
|
- this.moreFriendsDialog = new MoreFriendsDialog(this, this.menu, this.onlineFriends);
|
|
- }
|
|
- } else if (this.clickedButton >= 0 && this.clickedButton < this.onlineFriends.size()) {
|
|
- this.activeFriendName = (String)this.onlineFriends.elementAt(this.clickedButton);
|
|
-
|
|
- assert this.activeFriendName != null;
|
|
-
|
|
- this.showMenuY = (this.clickedButton + 1) * 11;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.cursedButton != this.clickedButton) {
|
|
- g = this.drawButton(g, this.cursedButton, 2);
|
|
- }
|
|
-
|
|
- this.clickedButtonDown = false;
|
|
- this.clickedButton = -1;
|
|
- }
|
|
- } else if (button != this.cursedButton) {
|
|
- g = this.drawButton(g, this.cursedButton, 1);
|
|
- g = this.drawButton(g, this.cursedButton = button, 2);
|
|
- }
|
|
-
|
|
- if (g != null) {
|
|
- g.dispose();
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- private static boolean sendMsg(WorldServer server, netPacket packet) {
|
|
- try {
|
|
- server.sendNetworkMsg(packet);
|
|
- return true;
|
|
- } catch (InfiniteWaitException var3) {
|
|
- } catch (PacketTooLargeException var4) {
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public void activate(Console c, Container f, Console prev) {
|
|
- active = this;
|
|
- this.console = (DefaultConsole)c;
|
|
- this.console.getRender().add(this.droneMenu);
|
|
- this.editItem = c.addMenuItem(Console.message("Edit-Friends"), "Options");
|
|
- this.editItem.setEnabled(this.friends != null);
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- active = null;
|
|
- this.editItem = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event event, Object what) {
|
|
- if (event.target == this.editItem) {
|
|
- new EditNamesDialog(this, Console.message("Edit-Friends2"), Console.message("Add-Friend"));
|
|
- return true;
|
|
- } else {
|
|
- return this.maybeFriendAction(event.target);
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent f) {
|
|
- int now;
|
|
- synchronized(this.friendsMutex) {
|
|
- now = this.serverUpdates.size();
|
|
- if (now != 0) {
|
|
- WorldServer server = this.console.getServerNew();
|
|
- if (server != null) {
|
|
- while(now-- != 0 && sendMsg(server, (netPacket)this.serverUpdates.elementAt(0))) {
|
|
- this.serverUpdates.removeElementAt(0);
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- synchronized(this) {
|
|
- if (this.teleportState == 1) {
|
|
- WorldServer server = this.console.getServerNew();
|
|
- if (server != null) {
|
|
- sendMsg(server, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
- this.teleportState = 2;
|
|
- this.teleportWaitStartTime = Std.getRealTime();
|
|
- this.teleportWaitSentMsg = false;
|
|
+ private static final String oldIniItemName = "Friends";
|
|
+ private static final String iniItemName = "Friend";
|
|
+ private static final String separator = ";";
|
|
+ private static final String whereQuery = "&|+where?";
|
|
+ private static final String whereResponse = "&|+where>";
|
|
+ VoiceChat chatter = new VoiceChat();
|
|
+ private static final int MOUSEMOVE = 0;
|
|
+ private static final int MOUSEDRAG = 1;
|
|
+ private static final int MOUSEDOWN = 2;
|
|
+ private static final int MOUSEUP = 3;
|
|
+ private static final int MOUSEENTER = 4;
|
|
+ private static final int MOUSEEXIT = 5;
|
|
+ private static final int BLANK = 0;
|
|
+ private static final int NORMAL = 1;
|
|
+ private static final int CURSED = 2;
|
|
+ private static final int DOWN = 3;
|
|
+ private static final int TELEPORT_IDLE = 0;
|
|
+ private static final int TELEPORT_REQUEST_LOCATION = 1;
|
|
+ private static final int TELEPORT_WAIT_FOR_LOCATION = 2;
|
|
+ private static final int buttonWidth = 97;
|
|
+ private static final int buttonHeight = 11;
|
|
+ private static final int xText = 20;
|
|
+ private static final int yText = 9;
|
|
+ private static final int xTextClip = 94;
|
|
+ private static Image friendsImage;
|
|
+ private static Image moreFriendsImage;
|
|
+ private static Font font;
|
|
+ public static FriendsListPart active;
|
|
+ public static Vector friends = new Vector();
|
|
+ private Vector onlineFriends = new Vector();
|
|
+ private Vector mutedOnlineFriends = new Vector();
|
|
+ private Vector serverUpdates = new Vector();
|
|
+ private Object friendsMutex = new Object();
|
|
+ private int cursedButton = -1;
|
|
+ private int clickedButton = -1;
|
|
+ private boolean clickedButtonDown;
|
|
+ private PopupMenu menu;
|
|
+ private MenuItem teleportItem = new MenuItem(Console.message("Go-There"));
|
|
+ private MenuItem fremoveItem = new MenuItem(Console.message("remove-friend"));
|
|
+ private MenuItem whereIsItem = new MenuItem(Console.message("where-is"));
|
|
+ private MenuItem emailItem = new MenuItem(Console.message("E-Mail"));
|
|
+ private MenuItem muteItem = new MenuItem(Console.message("Mute"));
|
|
+ private MenuItem whisperItem = new MenuItem(Console.message("Whisper"));
|
|
+ private MenuItem infoItem = new MenuItem(Console.message("Personal-I"));
|
|
+ private MenuItem tradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
+ private PopupMenu droneMenu;
|
|
+ private MenuItem droneAddItem = new MenuItem(Console.message("Add-2-friends"));
|
|
+ private MenuItem droneTarItem = new MenuItem(Console.message("disable-avatar"));
|
|
+ private MenuItem droneEmailItem = new MenuItem(Console.message("E-Mail"));
|
|
+ private MenuItem droneMuteItem = new MenuItem(Console.message("Mute"));
|
|
+ private MenuItem droneWhisperItem = new MenuItem(Console.message("Whisper"));
|
|
+ private MenuItem droneInfoItem = new MenuItem(Console.message("Personal-I"));
|
|
+ private MenuItem droneTradeItem = new MenuItem(Console.message("Talk-Trade"));
|
|
+ private String activeFriendName = "";
|
|
+ private String teleportTarget;
|
|
+ private int teleportState = 0;
|
|
+ private int teleportWaitStartTime;
|
|
+ private boolean teleportWaitSentMsg;
|
|
+ private int friendsButtons;
|
|
+ private int moreFriendsButton;
|
|
+ private boolean moreFriendsActive;
|
|
+ private MenuItem editItem;
|
|
+ private Menu actionMenu;
|
|
+ private MoreFriendsDialog moreFriendsDialog;
|
|
+ private DefaultConsole console;
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private boolean isDialogDisabled;
|
|
+ private int showMenuY = -1;
|
|
+
|
|
+
|
|
+ public FriendsListPart() {
|
|
+ AnimatedActionManager.get();
|
|
+ String var1;
|
|
+ if(font == null) {
|
|
+ var1 = IniFile.override().getIniString("friendsGif", "friends.gif");
|
|
+ friendsImage = ImageCanvas.getSystemImage(var1, this);
|
|
+ String var2 = IniFile.override().getIniString("moreFriendsGif", Console.message("mfriends.gif"));
|
|
+ moreFriendsImage = ImageCanvas.getSystemImage(var2, this);
|
|
+ int var3 = (new Integer(Console.message("FriendsPointSize"))).intValue();
|
|
+ font = new Font(Console.message("FriendsFont"), 0, var3);
|
|
+ }
|
|
+
|
|
+ this.teleportItem.setFont(font);
|
|
+ this.whereIsItem.setFont(font);
|
|
+ this.emailItem.setFont(font);
|
|
+ this.muteItem.setFont(font);
|
|
+ this.whisperItem.setFont(font);
|
|
+ this.tradeItem.setFont(font);
|
|
+ this.infoItem.setFont(font);
|
|
+ this.fremoveItem.setFont(font);
|
|
+ this.menu = new PopupMenu();
|
|
+ this.menu.add(this.teleportItem);
|
|
+ this.menu.add(this.whereIsItem);
|
|
+ this.menu.add(this.emailItem);
|
|
+ this.menu.add(this.muteItem);
|
|
+ this.menu.add(this.whisperItem);
|
|
+ if(NetUpdate.isInternalVersion()) {
|
|
+ this.menu.add(this.tradeItem);
|
|
+ }
|
|
+ this.menu.add(this.fremoveItem);
|
|
+
|
|
+ this.menu.add(this.infoItem);
|
|
+ this.add(this.menu);
|
|
+ this.droneAddItem.setFont(font);
|
|
+ this.droneTarItem.setFont(font);
|
|
+ this.droneEmailItem.setFont(font);
|
|
+ this.droneMuteItem.setFont(font);
|
|
+ this.droneWhisperItem.setFont(font);
|
|
+ this.droneTradeItem.setFont(font);
|
|
+ this.droneInfoItem.setFont(font);
|
|
+ this.droneMenu = new PopupMenu();
|
|
+ this.droneMenu.setFont(font);
|
|
+ this.droneMenu.add(this.droneAddItem);
|
|
+ this.droneMenu.add(this.droneTarItem);
|
|
+ this.droneMenu.add(this.droneEmailItem);
|
|
+ this.droneMenu.add(this.droneMuteItem);
|
|
+ this.droneMenu.add(this.droneWhisperItem);
|
|
+ this.droneMenu.add(this.droneTradeItem);
|
|
+ this.droneMenu.add(this.droneInfoItem);
|
|
+
|
|
+ this.add(this.droneMenu);
|
|
+ }
|
|
+
|
|
+ public void update(Graphics var1) {
|
|
+ this.paint(var1);
|
|
+ }
|
|
+
|
|
+ public void paint(Graphics var1) {
|
|
+ int var2 = this.size().height;
|
|
+ int var3 = var2 / 11;
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var5 = this.onlineFriends.size();
|
|
+ this.moreFriendsButton = var3 - 1;
|
|
+ if(var5 >= var3) {
|
|
+ this.friendsButtons = var3 - 1;
|
|
+ this.moreFriendsActive = true;
|
|
} else {
|
|
- Console.println(Console.message("Cant-go-there"));
|
|
- this.teleportState = 0;
|
|
+ this.friendsButtons = var5;
|
|
+ this.moreFriendsActive = false;
|
|
}
|
|
- }
|
|
|
|
- if (this.teleportState == 2) {
|
|
- now = Std.getRealTime();
|
|
- if (now > this.teleportWaitStartTime + 5000) {
|
|
- Object[] arguments;
|
|
- if (now > this.teleportWaitStartTime + 30000) {
|
|
- this.teleportState = 0;
|
|
- if (this.teleportWaitSentMsg) {
|
|
- arguments = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Cancel-teleport"), arguments));
|
|
- }
|
|
- } else if (!this.teleportWaitSentMsg) {
|
|
- arguments = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Delay-locating"), arguments));
|
|
- this.teleportWaitSentMsg = true;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void dialogDisable(boolean disable) {
|
|
- if (this.isDialogDisabled = disable) {
|
|
- this.cursedButton = -1;
|
|
- this.clickedButton = -1;
|
|
- this.clickedButtonDown = false;
|
|
- this.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setServer(WorldServer server, IniFile serverSection) {
|
|
- this.serverSection = serverSection;
|
|
- this.galaxy = server.getGalaxy();
|
|
-
|
|
- assert serverSection != null;
|
|
-
|
|
- assert this.galaxy != null;
|
|
-
|
|
- this.loadFriends();
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(true);
|
|
- }
|
|
-
|
|
- this.sendAll(server);
|
|
- }
|
|
-
|
|
- public void maybeServerDisconnect() {
|
|
- if (this.galaxy != null) {
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.clearAll();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean tryToRun(String s) {
|
|
- try {
|
|
- Runtime.getRuntime().exec(s);
|
|
- return true;
|
|
- } catch (IOException var2) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- private boolean maybeFriendAction(Object target) {
|
|
- if (target != this.emailItem && target != this.droneEmailItem) {
|
|
- if (target != this.whisperItem && target != this.droneWhisperItem) {
|
|
- if (target != this.voiceChatItem && target != this.droneVoiceChatItem) {
|
|
- if (target == this.droneAddItem) {
|
|
- if (this.mayAddNameListName(Console.getFrame())) {
|
|
- this.addNameListName(this.activeFriendName);
|
|
- }
|
|
- } else if (target == this.teleportItem) {
|
|
- synchronized(this) {
|
|
- this.teleportTarget = this.activeFriendName;
|
|
- if (this.teleportState == 2 && this.teleportWaitSentMsg) {
|
|
- Console.println(Console.message("Cancel-new-tele"));
|
|
- }
|
|
-
|
|
- this.teleportState = 1;
|
|
- }
|
|
- } else if (target != this.muteItem && target != this.droneMuteItem) {
|
|
- if (target != this.infoItem && target != this.droneInfoItem) {
|
|
- if (target != this.tradeItem && target != this.droneTradeItem) {
|
|
- return false;
|
|
- }
|
|
-
|
|
- WhisperManager.whisperManager().startToTrade(this.activeFriendName);
|
|
- } else {
|
|
- new PersonalInfoDownload(this.activeFriendName, this.console);
|
|
- }
|
|
- } else if (this.console.getMutes().mayAddNameListName(Console.getFrame())) {
|
|
- this.console.getMutes().addNameListName(this.activeFriendName);
|
|
- }
|
|
- } else {
|
|
- this.chatter.beginChat(this.activeFriendName, this.console);
|
|
+ int var6 = var3 * 11;
|
|
+ int var7 = var2 - var6;
|
|
+ if(var7 > 0) {
|
|
+ var1.setColor(Color.black);
|
|
+ var1.fillRect(0, 0, 97, var7);
|
|
}
|
|
- } else {
|
|
- Console.startWhispering(this.activeFriendName);
|
|
- }
|
|
- } else {
|
|
- EMailPart.showMessage(this.console, this.activeFriendName);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- private void clearAll() {
|
|
- if (this.galaxy != null) {
|
|
- synchronized(this.friendsMutex) {
|
|
- this.onlineFriends.removeAllElements();
|
|
- this.mutedOnlineFriends.removeAllElements();
|
|
- }
|
|
|
|
- if (active == this) {
|
|
- this.repaint();
|
|
- }
|
|
+ for(int var8 = 0; var8 < var3; ++var8) {
|
|
+ int var9 = 1;
|
|
+ if(var8 >= this.friendsButtons && !this.isMoreFriendsButton(var8)) {
|
|
+ var9 = 0;
|
|
+ } else if(var8 == this.clickedButton) {
|
|
+ var9 = this.clickedButtonDown?3:1;
|
|
+ } else if(var8 == this.cursedButton) {
|
|
+ var9 = 2;
|
|
+ }
|
|
|
|
- this.galaxy.sentFriendsList(false);
|
|
- }
|
|
+ this.drawButton(var1, var8, var9);
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- private void sendAll(WorldServer server) {
|
|
- if (!this.galaxy.sentFriendsList()) {
|
|
- synchronized(this.friendsMutex) {
|
|
- int count = this.friends.size();
|
|
- int i = 0;
|
|
-
|
|
- while(true) {
|
|
- if (i >= count) {
|
|
- break;
|
|
- }
|
|
-
|
|
- sendMsg(server, new BuddyListUpdateCmd((String)this.friends.elementAt(i), 1));
|
|
- ++i;
|
|
- }
|
|
- }
|
|
-
|
|
- this.galaxy.sentFriendsList(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private static String getWorldName(String url) {
|
|
- int rindex = url.indexOf(".world#");
|
|
- int windex;
|
|
- return rindex == -1 || (windex = url.lastIndexOf(47, rindex)) == -1 && (windex = url.lastIndexOf(58, rindex)) == -1 ? null : url.substring(windex + 1, rindex);
|
|
- }
|
|
-
|
|
- public static void processWhisper(WorldServer server, String user, String text) {
|
|
- if (active != null && active.galaxy == server.getGalaxy()) {
|
|
- active.instanceProcessWhisper(server, user, text);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private synchronized void instanceProcessWhisper(WorldServer server, String user, String text) {
|
|
- if (text.startsWith("&|+where?")) {
|
|
- Pilot pilot;
|
|
- String url;
|
|
- if ((pilot = Pilot.getActive()) != null && (url = pilot.getTeleportURL()) != null) {
|
|
- if (this.console.getSpecialGuest()) {
|
|
- int i = url.indexOf(60);
|
|
- int j = url.indexOf(62);
|
|
- url = url.substring(0, i) + url.substring(j + 1);
|
|
- }
|
|
-
|
|
- if (Pilot.getActive().getRoom().getAllowTeleport()) {
|
|
- sendMsg(server, new whisperCmd(user, "&|+where>" + url));
|
|
- }
|
|
- }
|
|
- } else if (text.startsWith("&|+where>")) {
|
|
- if (this.teleportState == 2 && this.teleportTarget.equals(user)) {
|
|
- String pos = text.substring("&|+where>".length());
|
|
- boolean valid = false;
|
|
- String targetWorld = getWorldName(pos);
|
|
- String url;
|
|
- if (!pos.startsWith("home:") && !pos.startsWith("http://")) {
|
|
- if (targetWorld != null && targetWorld.length() > 0) {
|
|
- Pilot pilot = Pilot.getActive();
|
|
- if (pilot != null) {
|
|
- url = pilot.getTeleportURL();
|
|
- if (url != null && targetWorld.equals(getWorldName(url))) {
|
|
- valid = true;
|
|
- pos = url.substring(0, url.lastIndexOf(35)) + pos.substring(pos.lastIndexOf(35));
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (!valid) {
|
|
- String s = WorldsMarkPart.findPackage(targetWorld);
|
|
- if (s != null) {
|
|
- valid = true;
|
|
- pos = "home:" + s + "/" + s + ".world" + pos.substring(pos.lastIndexOf(35));
|
|
- }
|
|
- }
|
|
- } else {
|
|
- valid = true;
|
|
+ public int getRemainder(int var1) {
|
|
+ int var2 = var1 / 11;
|
|
+ int var3 = var2 * 11;
|
|
+ return var1 - var3;
|
|
+ }
|
|
+
|
|
+ public Dimension preferredSize() {
|
|
+ return new Dimension(97, 1);
|
|
+ }
|
|
+
|
|
+ public Dimension minimumSize() {
|
|
+ return this.preferredSize();
|
|
+ }
|
|
+
|
|
+ public boolean mouseMove(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 0);
|
|
+ }
|
|
+
|
|
+ public boolean mouseDown(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 2);
|
|
+ }
|
|
+
|
|
+ public boolean mouseUp(Event var1, int var2, int var3) {
|
|
+ if(this.buttonAction(var2, var3, 3)) {
|
|
+ if(this.showMenuY != -1) {
|
|
+ this.menu.show(this, 0, this.showMenuY);
|
|
+ this.showMenuY = -1;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mouseDrag(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 1);
|
|
+ }
|
|
+
|
|
+ public boolean mouseEnter(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 4);
|
|
+ }
|
|
+
|
|
+ public boolean mouseExit(Event var1, int var2, int var3) {
|
|
+ return this.buttonAction(var2, var3, 5);
|
|
+ }
|
|
+
|
|
+ public boolean handleEvent(Event var1) {
|
|
+ return this.isDialogDisabled?false:super.handleEvent(var1);
|
|
+ }
|
|
+
|
|
+ private void loadFriends() {
|
|
+ if(this.friends.size() != 0) {
|
|
+ this.friends.removeAllElements();
|
|
+ }
|
|
+
|
|
+ for(int var2 = 0; var2 < Integer.MAX_VALUE; ++var2) {
|
|
+ String var1 = this.serverSection.getIniString("Friend" + var2, "");
|
|
+ if(((String)var1).length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if(isValidUserName((String)var1) && !icontains(this.friends, (String)var1)) {
|
|
+ this.friends.addElement(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.friends.size() == 0) {
|
|
+ String var5 = this.serverSection.getIniString("Friends", "");
|
|
+ StringTokenizer var4 = new StringTokenizer(var5, ";");
|
|
+
|
|
+ while(((StringTokenizer)var4).hasMoreTokens()) {
|
|
+ String var3 = ((StringTokenizer)var4).nextToken();
|
|
+ if(isValidUserName(var3) && !icontains(this.friends, var3)) {
|
|
+ this.friends.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.friends.size() != 0) {
|
|
+ this.saveFriends();
|
|
+ this.serverSection.setIniString("Friends", "");
|
|
}
|
|
+ }
|
|
+ }
|
|
|
|
- Object[] arguments;
|
|
- if (valid) {
|
|
- TeleportAction.teleport(pos, (TeleportStatus)null);
|
|
- if (this.teleportWaitSentMsg) {
|
|
- arguments = new Object[]{new String(this.teleportTarget)};
|
|
- Console.println(MessageFormat.format(Console.message("Found-tele"), arguments));
|
|
- }
|
|
+ void saveFriends() {
|
|
+ if(this.serverSection != null) {
|
|
+ int var1 = this.friends.size();
|
|
+
|
|
+ for(int var2 = 0; var2 < var1; ++var2) {
|
|
+ this.serverSection.setIniString("Friend" + var2, (String)this.friends.elementAt(var2));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Friend" + var1, "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private boolean isMoreFriendsButton(int var1) {
|
|
+ return var1 == this.moreFriendsButton && this.moreFriendsActive;
|
|
+ }
|
|
+
|
|
+ private Graphics drawButton(Graphics var1, int var2, int var3) {
|
|
+ Image var4 = var2 == this.moreFriendsButton?moreFriendsImage:friendsImage;
|
|
+ if(var1 != null || (var1 = this.getGraphics()) != null) {
|
|
+ int var5 = var2 * 11;
|
|
+ Graphics var6 = var1.create(0, var5, 97, 11);
|
|
+ var6.drawImage(var4, -var3 * 97, 0, (ImageObserver)null);
|
|
+ if(var2 >= 0 && var2 < this.friendsButtons && var2 < this.onlineFriends.size()) {
|
|
+ var6.clipRect(0, 0, 94, 11);
|
|
+ var6.setFont(font);
|
|
+ var6.setColor(Color.white);
|
|
+ var6.drawString((String)this.onlineFriends.elementAt(var2), 20, 9);
|
|
+ }
|
|
+
|
|
+ var6.dispose();
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ private boolean buttonAction(int var1, int var2, int var3) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ Graphics var5 = null;
|
|
+ int var6 = var2 / 11;
|
|
+ if((var6 < 0 || var6 >= this.friendsButtons) && !this.isMoreFriendsButton(var6)) {
|
|
+ var6 = -1;
|
|
+ }
|
|
+
|
|
+ if(var3 != 0 && var3 != 4) {
|
|
+ if(var3 == 5) {
|
|
+ if(this.cursedButton != -1) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
+ this.cursedButton = -1;
|
|
+ }
|
|
+
|
|
+ if(this.clickedButton != -1 && this.clickedButtonDown) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+ } else if(var3 == 2) {
|
|
+ if(this.clickedButton != -1) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+
|
|
+ if((this.clickedButton = var6) != -1) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
+ this.clickedButtonDown = true;
|
|
+ }
|
|
+ } else if(var3 == 1) {
|
|
+ if(this.clickedButton != -1) {
|
|
+ if(this.clickedButtonDown) {
|
|
+ if(var6 != this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ this.clickedButtonDown = false;
|
|
+ }
|
|
+ } else if(var6 == this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 3);
|
|
+ this.clickedButtonDown = true;
|
|
+ }
|
|
+ }
|
|
+ } else if(var3 == 3) {
|
|
+ this.cursedButton = var6;
|
|
+ if(this.clickedButtonDown) {
|
|
+ if(this.cursedButton == this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 2);
|
|
+ } else {
|
|
+ var5 = this.drawButton(var5, this.clickedButton, 1);
|
|
+ }
|
|
+
|
|
+ if(this.clickedButton == this.moreFriendsButton) {
|
|
+ if(this.moreFriendsDialog == null) {
|
|
+ this.moreFriendsDialog = new MoreFriendsDialog(this, this.menu, this.onlineFriends);
|
|
+ }
|
|
+ } else if(this.clickedButton >= 0 && this.clickedButton < this.onlineFriends.size()) {
|
|
+ this.activeFriendName = (String)this.onlineFriends.elementAt(this.clickedButton);
|
|
+ this.showMenuY = (this.clickedButton + 1) * 11;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.cursedButton != this.clickedButton) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 2);
|
|
+ }
|
|
+
|
|
+ this.clickedButtonDown = false;
|
|
+ this.clickedButton = -1;
|
|
+ }
|
|
+ } else if(var6 != this.cursedButton) {
|
|
+ var5 = this.drawButton(var5, this.cursedButton, 1);
|
|
+ var5 = this.drawButton(var5, this.cursedButton = var6, 2);
|
|
+ }
|
|
+
|
|
+ if(var5 != null) {
|
|
+ var5.dispose();
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private static boolean sendMsg(WorldServer var0, netPacket var1) {
|
|
+ try {
|
|
+ var0.sendNetworkMsg(var1);
|
|
+ return true;
|
|
+ } catch (InfiniteWaitException var3) {
|
|
+ } catch (PacketTooLargeException var4) {
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)var1;
|
|
+ this.editItem = var1.addMenuItem(Console.message("Edit-Friends"), "Options");
|
|
+ this.editItem.setEnabled(this.friends != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if(var1.target == this.editItem) {
|
|
+ new EditNamesDialog(this, Console.message("Edit-Friends2"), Console.message("Add-Friend"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return this.maybeFriendAction(var1.target);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ int var4;
|
|
+ synchronized(this.friendsMutex) {
|
|
+ var4 = this.serverUpdates.size();
|
|
+ if(var4 != 0) {
|
|
+ WorldServer var2 = this.console.getServerNew();
|
|
+ if(var2 != null) {
|
|
+ while(var4-- != 0 && sendMsg((WorldServer)var2, (netPacket)this.serverUpdates.elementAt(0))) {
|
|
+ this.serverUpdates.removeElementAt(0);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ synchronized(this) {
|
|
+ WorldServer var10;
|
|
+ if(this.teleportState == 1) {
|
|
+ var10 = this.console.getServerNew();
|
|
+ if(var10 != null) {
|
|
+ sendMsg(var10, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
+ this.teleportState = 2;
|
|
+ this.teleportWaitStartTime = Std.getRealTime();
|
|
+ this.teleportWaitSentMsg = false;
|
|
+ } else {
|
|
+ Console.println(Console.message("Cant-go-there"));
|
|
+ this.teleportState = 0;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.teleportState == 2) {
|
|
+ var4 = Std.getRealTime();
|
|
+ if(var4 > this.teleportWaitStartTime + 5000) {
|
|
+ Object[] var9;
|
|
+ if(var4 > this.teleportWaitStartTime + 30000) {
|
|
+ this.teleportState = 0;
|
|
+ if(this.teleportWaitSentMsg) {
|
|
+ var9 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Cancel-teleport"), (Object[])var9));
|
|
+ }
|
|
+ } else if(!this.teleportWaitSentMsg) {
|
|
+ var9 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Delay-locating"), (Object[])var9));
|
|
+ this.teleportWaitSentMsg = true;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(this.teleportState == -1) {
|
|
+ var10 = this.console.getServerNew();
|
|
+ if(var10 != null) {
|
|
+ sendMsg(var10, new whisperCmd(this.teleportTarget, "&|+where?"));
|
|
+ } else {
|
|
+ Console.println(Console.message("Cant-go-there"));
|
|
+ }
|
|
+
|
|
+ this.teleportState = -2;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void dialogDisable(boolean var1) {
|
|
+ if(this.isDialogDisabled = var1) {
|
|
+ this.cursedButton = -1;
|
|
+ this.clickedButton = -1;
|
|
+ this.clickedButtonDown = false;
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ assert(var2 != null);
|
|
+ assert(this.galaxy != null);
|
|
+ this.loadFriends();
|
|
+ if(this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ this.sendAll(var1);
|
|
+ }
|
|
+
|
|
+ public void maybeServerDisconnect() {
|
|
+ if(this.galaxy != null) {
|
|
+ if(this.editItem != null) {
|
|
+ this.editItem.setEnabled(false);
|
|
+ }
|
|
+
|
|
+ this.clearAll();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean tryToRun(String var0) {
|
|
+ try {
|
|
+ Runtime.getRuntime().exec(var0);
|
|
+ return true;
|
|
+ } catch (IOException var2) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private boolean maybeFriendAction(Object var1) {
|
|
+ if (var1 == this.fremoveItem || var1 == this.droneAddItem) {
|
|
+ if (this.mayAddNameListName(Console.getFrame())) {
|
|
+ if (!icontains(friends, this.activeFriendName)) {
|
|
+ this.addNameListName(this.activeFriendName);
|
|
+ Console.println(MessageFormat.format(Console.message("added-status"), new String[]{this.activeFriendName}));
|
|
+ } else {
|
|
+ this.removeNameListName(friends.indexOf(this.activeFriendName));
|
|
+ Console.println(MessageFormat.format(Console.message("removed-status"), new String[]{this.activeFriendName}));
|
|
+ }
|
|
+ }
|
|
+ } else if (var1 == this.droneTarItem) {
|
|
+ if (this.console.getTars().mayAddNameListName(Console.getFrame())) {
|
|
+ if (!icontains(this.console.getTars().tars, this.activeFriendName)) {
|
|
+ this.console.getTars().addNameListName(this.activeFriendName);
|
|
+ } else {
|
|
+ this.console.getTars().removeNameListName(this.console.getTars().tars.indexOf(this.activeFriendName));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ } else if (var1 == this.whisperItem || var1 == this.droneWhisperItem) {
|
|
+ Console.startWhispering(this.activeFriendName);
|
|
+ } else if (var1 == this.emailItem || var1 == this.droneEmailItem) {
|
|
+ EMailPart.showMessage(this.console, this.activeFriendName);
|
|
+ } else if (var1 == this.teleportItem || var1 == this.whereIsItem) {
|
|
+ synchronized (this) {
|
|
+ this.teleportTarget = this.activeFriendName;
|
|
+ if (this.teleportState == 2 && this.teleportWaitSentMsg) {
|
|
+ Console.println(Console.message("Cancel-new-tele"));
|
|
+ }
|
|
+
|
|
+ this.teleportState = var1 == this.teleportItem ? 1 : -1;
|
|
+ }
|
|
+ } else if (var1 == this.muteItem || var1 == this.droneMuteItem) {
|
|
+ this.console.getMutes().addNameListName(this.activeFriendName);
|
|
+ } else if (var1 == this.infoItem || var1 == this.droneInfoItem) {
|
|
+ new PersonalInfoDownload(this.activeFriendName, this.console);
|
|
+ } else if (var1 == this.tradeItem || var1 == this.droneTradeItem) {
|
|
+ WhisperManager.whisperManager().startToTrade(this.activeFriendName);
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ private void clearAll() {
|
|
+ if(this.galaxy != null) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ this.onlineFriends.removeAllElements();
|
|
+ this.mutedOnlineFriends.removeAllElements();
|
|
+ }
|
|
+
|
|
+ if(active == this) {
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ this.galaxy.sentFriendsList(false);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void sendAll(WorldServer var1) {
|
|
+ if(!this.galaxy.sentFriendsList()) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var3 = this.friends.size();
|
|
+ int var4 = 0;
|
|
+
|
|
+ while(true) {
|
|
+ if(var4 >= var3) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ sendMsg(var1, new BuddyListUpdateCmd((String)this.friends.elementAt(var4), 1));
|
|
+ ++var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.galaxy.sentFriendsList(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private static String getWorldName(String var0) {
|
|
+ int var1 = var0.indexOf(".world#");
|
|
+ int var2;
|
|
+ return var1 != -1 && ((var2 = var0.lastIndexOf(47, var1)) != -1 || (var2 = var0.lastIndexOf(58, var1)) != -1)?var0.substring(var2 + 1, var1):null;
|
|
+ }
|
|
+
|
|
+ public static void processWhisper(WorldServer var0, String var1, String var2) {
|
|
+ if(active != null && active.galaxy == var0.getGalaxy()) {
|
|
+ active.instanceProcessWhisper(var0, var1, var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private boolean allowTeleport(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && icontains(friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ private void sendTeleportReject(String var1) {
|
|
+ Object[] var2 = new Object[]{"teleport", var1};
|
|
+ Console.println(MessageFormat.format(Console.message("rejected"), var2));
|
|
+ }
|
|
+
|
|
+ private synchronized void instanceProcessWhisper(WorldServer var1, String var2, String var3) {
|
|
+ if(var3.startsWith("&|+where?")) {
|
|
+ if (allowTeleport(var2)) {
|
|
+ Pilot var4;
|
|
+ String var5;
|
|
+ if ((var4 = Pilot.getActive()) != null && (var5 = ((Pilot) var4).getTeleportURL()) != null) {
|
|
+ if (this.console.getSpecialGuest()) {
|
|
+ int var6 = var5.indexOf(60);
|
|
+ int var7 = var5.indexOf(62);
|
|
+ var5 = var5.substring(0, var6) + var5.substring(var7 + 1);
|
|
+ }
|
|
+
|
|
+ if (Pilot.getActive().getRoom().getAllowTeleport()) {
|
|
+ sendMsg(var1, new whisperCmd(var2, "&|+where>" + var5));
|
|
+ }
|
|
+ }
|
|
} else {
|
|
- arguments = new Object[]{new String(this.teleportTarget), new String(targetWorld)};
|
|
- url = MessageFormat.format(Console.message("Cant-go-world"), arguments);
|
|
- Console.println(url);
|
|
- }
|
|
-
|
|
- this.teleportState = 0;
|
|
- this.teleportTarget = null;
|
|
- }
|
|
- } else if (text.startsWith("&|+voicechat")) {
|
|
- this.chatter.handleChatWhisper(user, text, this.console);
|
|
- } else if (text.startsWith(VoiceChat.VCdebugCommand)) {
|
|
- VoiceChat.setExtra(text);
|
|
- } else if (text.startsWith(VoiceChat.VCdebugCommandReset)) {
|
|
- VoiceChat.resetExtra();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public int getNameListCount() {
|
|
- return this.friends.size();
|
|
- }
|
|
-
|
|
- public String getNameListName(int index) {
|
|
- return (String)this.friends.elementAt(index);
|
|
- }
|
|
-
|
|
- public void removeNameListName(int index) {
|
|
- synchronized(this.friendsMutex) {
|
|
- String name = (String)this.friends.elementAt(index);
|
|
- this.friends.removeElementAt(index);
|
|
- this.saveFriends();
|
|
- if ((index = iindexOf(this.onlineFriends, name)) != -1) {
|
|
- this.onlineFriends.removeElementAt(index);
|
|
- if (active == this) {
|
|
- this.repaint();
|
|
- }
|
|
- }
|
|
-
|
|
- if ((index = iindexOf(this.mutedOnlineFriends, name)) != -1) {
|
|
- this.mutedOnlineFriends.removeElementAt(index);
|
|
- }
|
|
-
|
|
- this.serverUpdates.addElement(new BuddyListUpdateCmd(name, 0));
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mayAddNameListName(java.awt.Window currentWindow) {
|
|
- if (this.friends.size() < maxFriends) {
|
|
- return true;
|
|
- } else {
|
|
- Object[] arguments = new Object[]{new String("" + maxFriends)};
|
|
- new OkCancelDialog(currentWindow, (DialogReceiver)null, Console.message("Too-many-names"), (String)null, Console.message("OK"), MessageFormat.format(Console.message("You-are-limitedF"), arguments), true);
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public int addNameListName(String name) {
|
|
- synchronized(this.friendsMutex) {
|
|
- int index = iindexOf(this.friends, name);
|
|
- if (index != -1) {
|
|
- return index;
|
|
- } else {
|
|
- this.friends.addElement(name);
|
|
- Collections.sort(this.friends, this);
|
|
+ if (IniFile.modFriendly().getIniInt("TeleportFeedback", 0) == 1) sendTeleportReject(var2);
|
|
+ if (IniFile.modFriendly().getIniInt("TeleportResponse", 0) == 1) sendMsg(var1, new whisperCmd(var2, Console.message("not-teleports")));
|
|
+ }
|
|
+ } else if(var3.startsWith("&|+where>")) {
|
|
+ boolean var11 = this.teleportState == 2 && this.teleportTarget.equals(var2);
|
|
+ if (var11 || this.teleportState == -2) {
|
|
+ String var10 = var3.substring("&|+where>".length());
|
|
+ boolean var12 = false;
|
|
+ String var13 = getWorldName((String) var10);
|
|
+ String var9;
|
|
+ if (!((String) var10).startsWith("home:") && !((String) var10).startsWith("http://")) {
|
|
+ if (var13 != null && var13.length() > 0) {
|
|
+ Pilot var8 = Pilot.getActive();
|
|
+ if (var8 != null) {
|
|
+ var9 = ((Pilot) var8).getTeleportURL();
|
|
+ if (var9 != null && var13.equals(getWorldName(var9))) {
|
|
+ var12 = true;
|
|
+ var10 = var9.substring(0, var9.lastIndexOf(35)) + ((String) var10).substring(((String) var10).lastIndexOf(35));
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (!var12) {
|
|
+ String var14 = WorldsMarkPart.findPackage(var13);
|
|
+ if (var14 != null) {
|
|
+ var12 = true;
|
|
+ var10 = "home:" + (String) var14 + "/" + (String) var14 + ".world" + ((String) var10).substring(((String) var10).lastIndexOf(35));
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ var12 = true;
|
|
+ }
|
|
+
|
|
+ Object[] var15;
|
|
+ if (var12) {
|
|
+ if (var11) {
|
|
+ TeleportAction.teleport((String) var10, (TeleportStatus) null);
|
|
+ } else {
|
|
+ Console.println(var2 + ": " + (String) var10);
|
|
+ }
|
|
+
|
|
+ if (this.teleportWaitSentMsg) {
|
|
+ var15 = new Object[]{new String(this.teleportTarget)};
|
|
+ Console.println(MessageFormat.format(Console.message("Found-tele"), (Object[]) var15));
|
|
+ }
|
|
+ } else {
|
|
+ var15 = new Object[]{new String(this.teleportTarget), new String(var13)};
|
|
+ var9 = MessageFormat.format(Console.message("Cant-go-world"), (Object[]) var15);
|
|
+ Console.println(var9);
|
|
+ }
|
|
+
|
|
+ this.teleportState = 0;
|
|
+ this.teleportTarget = null;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.friends.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int var1) {
|
|
+ return (String)this.friends.elementAt(var1);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int var1) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ String var3 = (String)this.friends.elementAt(var1);
|
|
+ this.friends.removeElementAt(var1);
|
|
this.saveFriends();
|
|
- this.serverUpdates.addElement(new BuddyListUpdateCmd(name, 1));
|
|
- return this.friends.size() - 1;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public int compare(String arg0, String arg1) {
|
|
- return arg0.compareToIgnoreCase(arg1);
|
|
- }
|
|
-
|
|
- public static void droneClick(Drone who, MouseDownEvent event) {
|
|
- if (active != null) {
|
|
- active.instanceDroneClick(who, event);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void instanceDroneClick(Drone who, MouseDownEvent event) {
|
|
- String tmp = who.getLongID();
|
|
- if (tmp != null) {
|
|
- this.activeFriendName = tmp;
|
|
- Object[] arguments = new Object[]{new String(this.activeFriendName)};
|
|
- this.droneAddItem = new MenuItem(MessageFormat.format(Console.message("Add-to-friends"), arguments));
|
|
- this.droneMenu.remove(0);
|
|
- this.droneAddItem.setFont(font);
|
|
- this.droneMenu.insert(this.droneAddItem, 0);
|
|
- this.droneAddItem.setEnabled(!icontains(this.friends, this.activeFriendName));
|
|
- if (this.actionMenu != null) {
|
|
- this.droneMenu.remove(this.actionMenu);
|
|
- }
|
|
-
|
|
- if (who instanceof PosableDrone) {
|
|
- PosableDrone pd = (PosableDrone)who;
|
|
- PosableShape ps = pd.getInternalPosableShape();
|
|
- if (ps != null) {
|
|
- this.actionMenu = new Menu(Console.message("Actions"));
|
|
- if (AnimatedActionManager.get().buildActionMenu(this.actionMenu, ps)) {
|
|
- this.droneMenu.add(this.actionMenu);
|
|
- this.actionMenu.addActionListener(AnimatedActionManager.get());
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- this.droneMenu.show(this.console.getRender(), event.x, event.y);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void processBuddyListNotify(WorldServer server, String name, int state) {
|
|
- Galaxy g = server.getGalaxy();
|
|
- Enumeration consoleList = g.getConsoles();
|
|
-
|
|
- Object c;
|
|
- FriendsListPart target;
|
|
- while(consoleList.hasMoreElements()) {
|
|
- c = consoleList.nextElement();
|
|
- if (c instanceof DefaultConsole) {
|
|
- target = ((DefaultConsole)c).getFriends();
|
|
- if (state < 2) {
|
|
- boolean muted = MuteListPart.isMuted(server, name);
|
|
- if (state == 1) {
|
|
- target.addOnlineFriend(name, muted);
|
|
- } else {
|
|
- target.removeOnlineFriend(name, muted);
|
|
- }
|
|
+ if((var1 = iindexOf(this.onlineFriends, var3)) != -1) {
|
|
+ this.onlineFriends.removeElementAt(var1);
|
|
+ if(active == this) {
|
|
+ this.repaint();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if((var1 = iindexOf(this.mutedOnlineFriends, var3)) != -1) {
|
|
+ this.mutedOnlineFriends.removeElementAt(var1);
|
|
+ }
|
|
+
|
|
+ this.serverUpdates.addElement(new BuddyListUpdateCmd(var3, 0));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window var1) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String var1) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ int var3 = iindexOf(this.friends, var1);
|
|
+ if(var3 != -1) {
|
|
+ return var3;
|
|
} else {
|
|
- assert name.length() == 0;
|
|
+ this.friends.addElement(var1);
|
|
+ this.saveFriends();
|
|
+ this.serverUpdates.addElement(new BuddyListUpdateCmd(var1, 1));
|
|
+ return this.friends.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static void droneClick(Drone var0, MouseDownEvent var1) {
|
|
+ if(active != null) {
|
|
+ active.instanceDroneClick(var0, var1);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private String parseVersion(int v) {
|
|
+ switch (v) {
|
|
+ case 2003110800:
|
|
+ return "1890";
|
|
+ case 2004081600:
|
|
+ return "1904";
|
|
+ case 2004111200:
|
|
+ return "1920a";
|
|
+ case 2012071402:
|
|
+ return "1920";
|
|
+ case 2020031200:
|
|
+ return "1922a10";
|
|
+ default:
|
|
+ return String.valueOf(v);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void instanceDroneClick(Drone var1, MouseDownEvent var2) {
|
|
+ String var3 = var1.getLongID();
|
|
+ if(var3 != null) {
|
|
+ this.activeFriendName = var3;
|
|
+ Object[] var4 = new Object[]{this.activeFriendName};
|
|
+ this.droneAddItem = new MenuItem(icontains(this.friends, this.activeFriendName) ? MessageFormat.format("Remove {0} from friends list", var4) : MessageFormat.format(Console.message("Add-to-friends"), var4));
|
|
+ this.droneTarItem = new MenuItem(this.console.getFriends().icontains(this.console.getTars().tars, this.activeFriendName) ? "Enable Avatar" : "Disable Avatar");
|
|
+
|
|
+ this.droneMenu.remove(0);
|
|
+ this.droneAddItem.setFont(font);
|
|
+ this.droneMenu.insert(this.droneAddItem, 0);
|
|
+
|
|
+ this.droneMenu.remove(1);
|
|
+ this.droneTarItem.setFont(font);
|
|
+ this.droneMenu.insert(this.droneTarItem, 1);
|
|
+
|
|
+ if(this.actionMenu != null) {
|
|
+ this.droneMenu.remove(this.actionMenu);
|
|
+ }
|
|
+
|
|
+ if(var1 instanceof PosableDrone) {
|
|
+ PosableDrone var5 = (PosableDrone)var1;
|
|
+ PosableShape var6 = var5.getInternalPosableShape();
|
|
+ if(var6 != null) {
|
|
+ this.actionMenu = new Menu(Console.message("Actions"));
|
|
+ if(AnimatedActionManager.get().buildActionMenu(this.actionMenu, var6)) {
|
|
+ this.droneMenu.add(this.actionMenu);
|
|
+ this.actionMenu.addActionListener(AnimatedActionManager.get());
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.droneMenu.show(this.console.getRender(), var2.x, var2.y);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void processBuddyListNotify(WorldServer var0, String var1, int var2) {
|
|
+ Galaxy var3 = var0.getGalaxy();
|
|
+ Enumeration var4 = var3.getConsoles();
|
|
+
|
|
+ Object var5;
|
|
+ NET.worlds.console.FriendsListPart var6;
|
|
+ while(var4.hasMoreElements()) {
|
|
+ var5 = var4.nextElement();
|
|
+ if(var5 instanceof DefaultConsole) {
|
|
+ var6 = ((DefaultConsole)var5).getFriends();
|
|
+ if(var2 < 2) {
|
|
+ boolean var7 = MuteListPart.isMuted(var0, var1);
|
|
+ if(var2 == 1) {
|
|
+ var6.addOnlineFriend(var1, var7);
|
|
+ } else {
|
|
+ var6.removeOnlineFriend(var1, var7);
|
|
+ }
|
|
+ } else {
|
|
+ assert(var1.length() == 0);
|
|
+ var6.clearAll();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if(var2 == 2) {
|
|
+ var4 = var3.getConsoles();
|
|
+
|
|
+ while(var4.hasMoreElements()) {
|
|
+ var5 = var4.nextElement();
|
|
+ if(var5 instanceof DefaultConsole) {
|
|
+ var6 = ((DefaultConsole)var5).getFriends();
|
|
+ var6.sendAll(var0);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static String ilookup(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var4;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public static int iindexOf(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return -1;
|
|
+ }
|
|
+
|
|
+ public static boolean icontains(Vector var0, String var1) {
|
|
+ return iindexOf(var0, var1) != -1;
|
|
+ }
|
|
+
|
|
+ public void changeMuteState(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(icontains(this.friends, var1)) {
|
|
+ if(var2) {
|
|
+ var1 = ilookup(this.onlineFriends, var1);
|
|
+ if(var1 != null) {
|
|
+ this.removeOnlineFriend(var1, false);
|
|
+ this.addOnlineFriend(var1, true);
|
|
+ }
|
|
+ } else {
|
|
+ var1 = ilookup(this.mutedOnlineFriends, var1);
|
|
+ if(var1 != null) {
|
|
+ this.removeOnlineFriend(var1, true);
|
|
+ this.addOnlineFriend(var1, false);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void listChanged() {
|
|
+ this.cursedButton = -1;
|
|
+ this.clickedButton = -1;
|
|
+ this.clickedButtonDown = false;
|
|
+ this.repaint();
|
|
+ }
|
|
+
|
|
+ private void addOnlineFriend(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(this.friends != null && icontains(this.friends, var1)) {
|
|
+ if(!var2 && !icontains(this.onlineFriends, var1)) {
|
|
+ this.onlineFriends.addElement(var1);
|
|
+ if(active == this) {
|
|
+ this.listChanged();
|
|
+ if(this.moreFriendsDialog != null) {
|
|
+ this.moreFriendsDialog.addName(var1);
|
|
+ }
|
|
+ if (IniFile.modFriendly().getIniInt("ShowStatusUpdate", 0) == 1) Console.println(MessageFormat.format("{0} is now online.", new String[]{var1}));
|
|
+ }
|
|
+ } else if(var2 && !icontains(this.mutedOnlineFriends, var1)) {
|
|
+ this.mutedOnlineFriends.addElement(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void removeOnlineFriend(String var1, boolean var2) {
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(!var2) {
|
|
+ int var4 = this.onlineFriends.indexOf(var1);
|
|
+ if(var4 != -1) {
|
|
+ this.onlineFriends.removeElementAt(var4);
|
|
+ if(active == this) {
|
|
+ this.listChanged();
|
|
+ if(this.moreFriendsDialog != null) {
|
|
+ this.moreFriendsDialog.removeName(var4);
|
|
+ }
|
|
+ if (IniFile.modFriendly().getIniInt("ShowStatusUpdate", 0) == 1) Console.println(MessageFormat.format("{0} quit.", new String[]{var1}));
|
|
+ }
|
|
+ }
|
|
+ } else {
|
|
+ this.mutedOnlineFriends.removeElement(var1);
|
|
+ }
|
|
|
|
- target.clearAll();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ System.out.println("TEST FRIEND");
|
|
+ synchronized(this.friendsMutex) {
|
|
+ if(var1 == this.moreFriendsDialog) {
|
|
+ this.moreFriendsDialog = null;
|
|
}
|
|
- }
|
|
- }
|
|
|
|
- if (state == 2) {
|
|
- consoleList = g.getConsoles();
|
|
-
|
|
- while(consoleList.hasMoreElements()) {
|
|
- c = consoleList.nextElement();
|
|
- if (c instanceof DefaultConsole) {
|
|
- target = ((DefaultConsole)c).getFriends();
|
|
- target.sendAll(server);
|
|
- break;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static String ilookup(Vector v, String name) {
|
|
- int count = v.size();
|
|
-
|
|
- for(int i = 0; i < count; ++i) {
|
|
- String ele = (String)v.elementAt(i);
|
|
- if (ele.equalsIgnoreCase(name)) {
|
|
- return ele;
|
|
- }
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public static int iindexOf(Vector v, String name) {
|
|
- int count = v.size();
|
|
-
|
|
- for(int i = 0; i < count; ++i) {
|
|
- String ele = (String)v.elementAt(i);
|
|
- if (ele.equalsIgnoreCase(name)) {
|
|
- return i;
|
|
- }
|
|
- }
|
|
-
|
|
- return -1;
|
|
- }
|
|
-
|
|
- public static boolean icontains(Vector v, String name) {
|
|
- return iindexOf(v, name) != -1;
|
|
- }
|
|
-
|
|
- public void changeMuteState(String name, boolean muted) {
|
|
- synchronized(this.friendsMutex) {
|
|
- if (icontains(this.friends, name)) {
|
|
- if (muted) {
|
|
- name = ilookup(this.onlineFriends, name);
|
|
- if (name != null) {
|
|
- this.removeOnlineFriend(name, false);
|
|
- this.addOnlineFriend(name, true);
|
|
- }
|
|
- } else {
|
|
- name = ilookup(this.mutedOnlineFriends, name);
|
|
- if (name != null) {
|
|
- this.removeOnlineFriend(name, true);
|
|
- this.addOnlineFriend(name, false);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- private void listChanged() {
|
|
- this.cursedButton = -1;
|
|
- this.clickedButton = -1;
|
|
- this.clickedButtonDown = false;
|
|
- this.repaint();
|
|
- }
|
|
-
|
|
- private void addOnlineFriend(String name, boolean muted) {
|
|
- synchronized(this.friendsMutex) {
|
|
- if (this.friends != null && icontains(this.friends, name)) {
|
|
- if (!muted && !icontains(this.onlineFriends, name)) {
|
|
- this.onlineFriends.addElement(name);
|
|
- if (active == this) {
|
|
- this.listChanged();
|
|
- if (this.moreFriendsDialog != null) {
|
|
- this.moreFriendsDialog.addName(name);
|
|
- }
|
|
- }
|
|
- } else if (muted && !icontains(this.mutedOnlineFriends, name)) {
|
|
- this.mutedOnlineFriends.addElement(name);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- private void removeOnlineFriend(String name, boolean muted) {
|
|
- synchronized(this.friendsMutex) {
|
|
- if (!muted) {
|
|
- int index = this.onlineFriends.indexOf(name);
|
|
- if (index != -1) {
|
|
- this.onlineFriends.removeElementAt(index);
|
|
- if (active == this) {
|
|
- this.listChanged();
|
|
- if (this.moreFriendsDialog != null) {
|
|
- this.moreFriendsDialog.removeName(index);
|
|
- }
|
|
- }
|
|
- }
|
|
- } else {
|
|
- this.mutedOnlineFriends.removeElement(name);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public void dialogDone(Object who, boolean confirmed) {
|
|
- synchronized(this.friendsMutex) {
|
|
- if (who == this.moreFriendsDialog) {
|
|
- this.moreFriendsDialog = null;
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public static boolean isValidUserName(String name) {
|
|
- String validChars = "_-";
|
|
- name = Console.parseUnicode(name);
|
|
- int length = name.length();
|
|
- if (length >= 2 && length <= 16) {
|
|
- char[] nameChars = name.toCharArray();
|
|
-
|
|
- for(int i = 0; i < length; ++i) {
|
|
- if (!Character.isLetterOrDigit(nameChars[i]) && validChars.indexOf(nameChars[i]) == -1) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isValidUserName(String var0) {
|
|
+ String var1 = "_-";
|
|
+ var0 = Console.parseUnicode(var0);
|
|
+ int var2 = var0.length();
|
|
+ if(var2 >= 2 && var2 <= 16) {
|
|
+ char[] var3 = var0.toCharArray();
|
|
+
|
|
+ for(int var4 = 0; var4 < var2; ++var4) {
|
|
+ if(!Character.isLetterOrDigit(var3[var4]) && var1.indexOf(var3[var4]) == -1) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
|
|
- void moreFriendsAction(String name, MenuItem function) {
|
|
- this.activeFriendName = name;
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
|
|
- assert this.activeFriendName != null;
|
|
+ void moreFriendsAction(String var1, MenuItem var2) {
|
|
+ this.activeFriendName = var1;
|
|
+ this.maybeFriendAction(var2);
|
|
+ }
|
|
|
|
- this.maybeFriendAction(function);
|
|
- }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/console/GammaTextArea.java b/1920/NET/worlds/console/GammaTextArea.java
|
|
--- a/1920/NET/worlds/console/GammaTextArea.java 2024-01-08 01:46:30.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/GammaTextArea.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,912 +1,835 @@
|
|
package NET.worlds.console;
|
|
|
|
+import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
-import NET.worlds.scape.SendURLAction;
|
|
-import NET.worlds.scape.TeleportAction;
|
|
-import NET.worlds.scape.TeleportStatus;
|
|
-import java.awt.Color;
|
|
-import java.awt.Dimension;
|
|
-import java.awt.Font;
|
|
-import java.awt.FontMetrics;
|
|
-import java.awt.Graphics;
|
|
-import java.awt.GridBagConstraints;
|
|
-import java.awt.GridBagLayout;
|
|
-import java.awt.MenuItem;
|
|
-import java.awt.Panel;
|
|
-import java.awt.PopupMenu;
|
|
-import java.awt.Scrollbar;
|
|
-import java.awt.Toolkit;
|
|
+import NET.worlds.network.URL;
|
|
+import NET.worlds.scape.*;
|
|
+
|
|
+import java.awt.*;
|
|
import java.awt.datatransfer.Clipboard;
|
|
import java.awt.datatransfer.ClipboardOwner;
|
|
import java.awt.datatransfer.StringSelection;
|
|
-import java.awt.event.ActionEvent;
|
|
-import java.awt.event.ActionListener;
|
|
-import java.awt.event.AdjustmentEvent;
|
|
-import java.awt.event.AdjustmentListener;
|
|
-import java.awt.event.FocusEvent;
|
|
+import java.awt.event.*;
|
|
import java.awt.event.KeyEvent;
|
|
import java.awt.event.MouseEvent;
|
|
-import java.awt.event.MouseWheelEvent;
|
|
+import java.io.*;
|
|
import java.util.StringTokenizer;
|
|
import java.util.Vector;
|
|
|
|
public class GammaTextArea extends Panel implements AdjustmentListener, ActionListener {
|
|
- private static final long serialVersionUID = 4042890054976563288L;
|
|
- public static final int SCROLLBARS_BOTH = 1;
|
|
- public static final int SCROLLBARS_VERTICAL_ONLY = 2;
|
|
- public static final int SCROLLBARS_HORIZONTAL_ONLY = 3;
|
|
- public static final int SCROLLBARS_NONE = 4;
|
|
- protected static final int _margin = 2;
|
|
- private int _width;
|
|
- private int _height;
|
|
- private StyledTextCanvas _canvas;
|
|
- private String _string;
|
|
- private Font _font;
|
|
- private int _currentStyle;
|
|
- private String _currentFontName;
|
|
- private int _currentPointSize;
|
|
- private Color _currentColor;
|
|
- private GammaTextScrollbar _vertBar;
|
|
- private GammaTextScrollbar _horzBar;
|
|
- private int _numLines;
|
|
- private int _canvasLines;
|
|
- private int _scrollLine;
|
|
- private Vector _lines;
|
|
- private Vector _pos;
|
|
- private int _lastpos = 0;
|
|
- protected int _curpos = 0;
|
|
- protected boolean _hasFocus;
|
|
- protected int selectionStart = -1;
|
|
- protected int selectionEnd = -1;
|
|
- private static final Color skyblue = new Color(135, 206, 255);
|
|
- private PopupMenu rightMenu;
|
|
- private MenuItem textCopyItem = new MenuItem(Console.message("Copy"));
|
|
- private MenuItem textCopyTextItem = new MenuItem(Console.message("Copy Text"));
|
|
- private MenuItem textCopyAllItem = new MenuItem(Console.message("Copy All"));
|
|
- private MenuItem textCopyAllTextItem = new MenuItem(Console.message("Copy All Text"));
|
|
- private MenuItem textOpenURLItem = new MenuItem(Console.message("Open URL"));
|
|
- static Color bgColor = null;
|
|
- private int _numColumns;
|
|
- private int _numRows;
|
|
- private static int scrollWheelStep = IniFile.gamma().getIniInt("ScrollWheelStep", 3);
|
|
- public static String boldStartTag = "<b>";
|
|
- public static String boldEndTag = "</b>";
|
|
- public static String italicStartTag = "<i>";
|
|
- public static String italicEndTag = "</i>";
|
|
- public static String colorStartMagentaTag = "<color=\"#FF00FF\">";
|
|
- public static String colorStartBlueTag = "<color=\"#0000FF\">";
|
|
- public static String colorStartRedTag = "<color=\"#FF0000\">";
|
|
- public static String colorStartGreenTag = "<color=\"#00FF00\">";
|
|
- public static String colorEndTag = "</color>";
|
|
- public static String colorMagenta2Tag = "<color=magenta>";
|
|
- public static String colorBlue2Tag = "<color=blue>";
|
|
- public static String colorRed2Tag = "<color=red>";
|
|
- public static String colorGreen2Tag = "<color=green>";
|
|
- public static String colorCyanTag = "<color=cyan>";
|
|
- public static String colorDarkGrayTag = "<color=darkgray>";
|
|
- public static String colorGrayTag = "<color=gray>";
|
|
- public static String colorOrangeTag = "<color=orange>";
|
|
- public static String colorPinkTag = "<color=pink>";
|
|
- public static String colorYellowTag = "<color=yellow>";
|
|
- public static String colorWhiteTag = "<color=white>";
|
|
- public static String colorLightGrayTag = "<color=lightgray>";
|
|
- public static EmoteHandler emotes = new EmoteHandler();
|
|
- protected static String[] tagList;
|
|
- private int lastWidth = 0;
|
|
- protected boolean selectionConversion = false;
|
|
- protected int _initialSelection = -1;
|
|
-
|
|
- static {
|
|
- tagList = new String[]{boldStartTag, boldEndTag, italicStartTag, italicEndTag, colorStartMagentaTag, colorStartRedTag, colorStartGreenTag, colorStartBlueTag, colorEndTag, colorMagenta2Tag, colorBlue2Tag, colorRed2Tag, colorGreen2Tag, colorCyanTag, colorDarkGrayTag, colorGrayTag, colorOrangeTag, colorPinkTag, colorYellowTag, colorWhiteTag, colorLightGrayTag};
|
|
- }
|
|
-
|
|
- public Font getFont() {
|
|
- return this._font;
|
|
- }
|
|
-
|
|
- public int getWidth() {
|
|
- return this._width;
|
|
- }
|
|
-
|
|
- public int getHeight() {
|
|
- return this._height;
|
|
- }
|
|
-
|
|
- public synchronized void setWidth(int w) {
|
|
- this._width = w - 4;
|
|
- }
|
|
-
|
|
- public synchronized void setHeight(int h) {
|
|
- this._height = h - 4;
|
|
- }
|
|
-
|
|
- public Vector getLines() {
|
|
- return this._lines;
|
|
- }
|
|
-
|
|
- public int getScrollLine() {
|
|
- return this._scrollLine;
|
|
- }
|
|
-
|
|
- public int getCanvasLines() {
|
|
- return this._canvasLines;
|
|
- }
|
|
-
|
|
- public int getNumLines() {
|
|
- return this._numLines;
|
|
- }
|
|
-
|
|
- public boolean getHasFocus() {
|
|
- return this._hasFocus;
|
|
- }
|
|
-
|
|
- public Scrollbar getVertScrollbar() {
|
|
- return this._vertBar;
|
|
- }
|
|
-
|
|
- static Color getBackgroundColor() {
|
|
- if (bgColor == null) {
|
|
- int bgR = IniFile.override().getIniInt("chatBgR", 255);
|
|
- int bgG = IniFile.override().getIniInt("chatBgG", 255);
|
|
- int bgB = IniFile.override().getIniInt("chatBgB", 203);
|
|
- bgColor = new Color(bgR, bgG, bgB);
|
|
- }
|
|
-
|
|
- return bgColor;
|
|
- }
|
|
-
|
|
- GammaTextArea(String text, int rows, int columns, int scrollbars) {
|
|
- this._string = text;
|
|
- this._numColumns = columns;
|
|
- this._numRows = rows;
|
|
- this._currentFontName = Console.message("GammaTextFont");
|
|
- this._currentStyle = 0;
|
|
- this._currentPointSize = IniFile.gamma().getIniInt("ChatFontSize", 12);
|
|
- this._currentColor = Color.black;
|
|
- this._canvas = new StyledTextCanvas();
|
|
- this.setFontSize(this._currentPointSize);
|
|
- this._lines = new Vector();
|
|
- this._pos = new Vector();
|
|
- this._lastpos = 0;
|
|
- this._hasFocus = false;
|
|
- this._numLines = this._scrollLine = this._canvasLines = 0;
|
|
- switch (scrollbars) {
|
|
- case 1:
|
|
- this._vertBar = new GammaTextScrollbar(1);
|
|
- this._horzBar = new GammaTextScrollbar(0);
|
|
- break;
|
|
- case 2:
|
|
- this._vertBar = new GammaTextScrollbar(1);
|
|
- this._horzBar = null;
|
|
- break;
|
|
- case 3:
|
|
- this._vertBar = null;
|
|
- this._horzBar = new GammaTextScrollbar(0);
|
|
- break;
|
|
- case 4:
|
|
- this._vertBar = this._horzBar = null;
|
|
- }
|
|
-
|
|
- GridBagLayout gridbag = new GridBagLayout();
|
|
- this.setLayout(gridbag);
|
|
- GridBagConstraints c = new GridBagConstraints();
|
|
- c.fill = 1;
|
|
- c.weightx = 1.0;
|
|
- c.weighty = 1.0;
|
|
- gridbag.setConstraints(this._canvas, c);
|
|
- this.add(this._canvas);
|
|
- if (this._vertBar != null) {
|
|
- c = new GridBagConstraints();
|
|
- c.fill = 3;
|
|
- c.gridwidth = 0;
|
|
- gridbag.setConstraints(this._vertBar, c);
|
|
- this.add(this._vertBar);
|
|
- this._vertBar.addAdjustmentListener(this);
|
|
- }
|
|
-
|
|
- if (this._horzBar != null) {
|
|
- c = new GridBagConstraints();
|
|
- c.fill = 2;
|
|
- c.gridwidth = 1;
|
|
- this.add(this._horzBar);
|
|
- this._horzBar.addAdjustmentListener(this);
|
|
- }
|
|
-
|
|
- this.enableEvents(131231L);
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- public synchronized void setFontSize(int fontsize) {
|
|
- this._currentPointSize = fontsize;
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- this.recalcSize();
|
|
- }
|
|
-
|
|
- public synchronized void setRows(int rows) {
|
|
- this._numRows = rows;
|
|
- this.recalcSize();
|
|
- }
|
|
-
|
|
- public synchronized void recalcSize() {
|
|
- FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
-
|
|
- assert fm != null;
|
|
-
|
|
- int w = fm.charWidth('M') * this._numColumns;
|
|
- int h = fm.getHeight() * this._numRows;
|
|
- this.setWidth(w);
|
|
- this.setHeight(h);
|
|
- this._canvas.setSize(w, h);
|
|
- this.setWidth(w);
|
|
- this.setHeight(h);
|
|
- }
|
|
-
|
|
- public void update(Graphics g) {
|
|
- this.paint(g);
|
|
- }
|
|
-
|
|
- protected synchronized void processMouseEvent(MouseEvent e) {
|
|
- if (e.isPopupTrigger()) {
|
|
- if (this.rightMenu != null && this.rightMenu.isEnabled()) {
|
|
- this.hideRightMenu();
|
|
- } else {
|
|
- this.showRightMenu(e.getX(), e.getY());
|
|
- }
|
|
- }
|
|
-
|
|
- super.processMouseEvent(e);
|
|
- }
|
|
-
|
|
- protected synchronized void processFocusEvent(FocusEvent e) {
|
|
- if (e.getID() == 1004) {
|
|
- this._hasFocus = true;
|
|
- } else if (e.getID() == 1005) {
|
|
- this._hasFocus = false;
|
|
- }
|
|
-
|
|
- this._canvas.repaint();
|
|
- super.processFocusEvent(e);
|
|
- }
|
|
-
|
|
- protected synchronized void processKeyEvent(KeyEvent e) {
|
|
- this._canvas.dispatchEvent(e);
|
|
- super.processKeyEvent(e);
|
|
- }
|
|
-
|
|
- protected synchronized void processMouseWheelEvent(MouseWheelEvent e) {
|
|
- if (e.getID() == 507) {
|
|
- int move = false;
|
|
- int move;
|
|
- if (e.getScrollType() == 0) {
|
|
- move = e.getScrollAmount() * e.getWheelRotation();
|
|
- } else {
|
|
- move = scrollWheelStep * e.getWheelRotation();
|
|
- }
|
|
-
|
|
- if (move != 0) {
|
|
- this._vertBar.setValue(this._vertBar.getValue() + move);
|
|
- this.requestFocus();
|
|
- this._canvas.sendDelayedMouseEvent(e);
|
|
- this.adjustmentValueChanged((AdjustmentEvent)null);
|
|
- }
|
|
- }
|
|
-
|
|
- super.processMouseWheelEvent(e);
|
|
- }
|
|
-
|
|
- public synchronized void adjustmentValueChanged(AdjustmentEvent e) {
|
|
- this._scrollLine = this._vertBar.getValue();
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- public void setEditable(boolean b) {
|
|
- if (b) {
|
|
- System.out.println("Can't set GammaTextArea to be editable.");
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public synchronized String getText() {
|
|
- return this._string;
|
|
- }
|
|
-
|
|
- public synchronized void setText(String s) {
|
|
- this._string = s;
|
|
- this.wordWrapAll();
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
- this._scrollLine = 0;
|
|
- }
|
|
-
|
|
- this.setScrollBounds();
|
|
- }
|
|
-
|
|
- public synchronized void repaint() {
|
|
- this._canvas.repaint();
|
|
- super.repaint();
|
|
- }
|
|
-
|
|
- public synchronized void paint(Graphics g) {
|
|
- this._canvas.paint(g);
|
|
- super.paint(g);
|
|
- }
|
|
-
|
|
- protected synchronized void wordWrapAll() {
|
|
- this._lines.removeAllElements();
|
|
- this._pos.removeAllElements();
|
|
- this._numLines = 0;
|
|
- this._lastpos = 0;
|
|
- this.wordWrap(this._string);
|
|
- }
|
|
-
|
|
- protected synchronized boolean isLastLineVisible() {
|
|
- if (!this._canvas.mouseActive && (this.selectionStart < 0 || this.selectionEnd <= this.selectionStart)) {
|
|
- return this._scrollLine >= this._numLines - this._canvasLines || this._numLines <= this._canvasLines;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- protected synchronized boolean handleTag(Graphics g, String word, int x, int y) {
|
|
- String lower = word.toLowerCase();
|
|
- int color;
|
|
- if (word.charAt(0) == '<') {
|
|
- for(color = 0; color < tagList.length; ++color) {
|
|
- if (lower.equals(tagList[color].toLowerCase())) {
|
|
- switch (color) {
|
|
- case 0:
|
|
- this._currentStyle |= 1;
|
|
- break;
|
|
- case 1:
|
|
- this._currentStyle &= -2;
|
|
- break;
|
|
- case 2:
|
|
- this._currentStyle |= 2;
|
|
- break;
|
|
- case 3:
|
|
- this._currentStyle &= -3;
|
|
- break;
|
|
- case 4:
|
|
- this._currentColor = Color.magenta;
|
|
- break;
|
|
- case 5:
|
|
- this._currentColor = Color.red;
|
|
- break;
|
|
- case 6:
|
|
- this._currentColor = Color.green;
|
|
- break;
|
|
- case 7:
|
|
- this._currentColor = Color.blue;
|
|
- break;
|
|
- case 8:
|
|
- this._currentColor = Color.black;
|
|
- break;
|
|
- case 9:
|
|
- this._currentColor = Color.magenta;
|
|
- break;
|
|
- case 10:
|
|
- this._currentColor = Color.blue;
|
|
- break;
|
|
- case 11:
|
|
- this._currentColor = Color.red;
|
|
- break;
|
|
- case 12:
|
|
- this._currentColor = Color.green;
|
|
- break;
|
|
- case 13:
|
|
- this._currentColor = Color.cyan;
|
|
- break;
|
|
- case 14:
|
|
- this._currentColor = Color.darkGray;
|
|
- break;
|
|
- case 15:
|
|
- this._currentColor = Color.gray;
|
|
- break;
|
|
- case 16:
|
|
- this._currentColor = Color.orange;
|
|
- break;
|
|
- case 17:
|
|
- this._currentColor = Color.pink;
|
|
- break;
|
|
- case 18:
|
|
- this._currentColor = Color.yellow;
|
|
- break;
|
|
- case 19:
|
|
- this._currentColor = Color.white;
|
|
- break;
|
|
- case 20:
|
|
- this._currentColor = Color.lightGray;
|
|
- }
|
|
-
|
|
- try {
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- } catch (IllegalArgumentException var8) {
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (lower.startsWith("<color=\"#") && word.length() > 15) {
|
|
- color = 0;
|
|
-
|
|
- try {
|
|
- int end = word.lastIndexOf(34);
|
|
- if (end < 10 || end > 15) {
|
|
- end = 15;
|
|
- }
|
|
-
|
|
- color = Integer.parseInt(word.substring(9, end).trim(), 16);
|
|
- } catch (Exception var10) {
|
|
- }
|
|
+ public static final int SCROLLBARS_BOTH = 1;
|
|
+ public static final int SCROLLBARS_VERTICAL_ONLY = 2;
|
|
+ public static final int SCROLLBARS_HORIZONTAL_ONLY = 3;
|
|
+ public static final int SCROLLBARS_NONE = 4;
|
|
+ protected static final int _margin = 2;
|
|
+ private int _width;
|
|
+ private int _height;
|
|
+ private StyledTextCanvas _canvas;
|
|
+ private String _string;
|
|
+ private Font _font;
|
|
+ private int _currentStyle;
|
|
+ private String _currentFontName;
|
|
+ private int _currentPointSize;
|
|
+ private Color _currentColor;
|
|
+ private GammaTextScrollbar _vertBar;
|
|
+ private GammaTextScrollbar _horzBar;
|
|
+ private int _numLines;
|
|
+ private int _canvasLines;
|
|
+ private int _scrollLine;
|
|
+ private Vector _lines;
|
|
+ private Vector _pos;
|
|
+ private int _lastpos = 0;
|
|
+ protected int _curpos = 0;
|
|
+ private boolean _hasFocus;
|
|
+ protected int selectionStart = -1;
|
|
+ protected int selectionEnd = -1;
|
|
+ private static final Color skyblue = new Color(135, 206, 255);
|
|
+ private PopupMenu rightMenu;
|
|
+ private MenuItem textCopyItem = new MenuItem(Console.message("Copy"));
|
|
+ private MenuItem textCopyTextItem = new MenuItem(Console.message("Copy Text"));
|
|
+ private MenuItem textCopyAllItem = new MenuItem(Console.message("Copy All"));
|
|
+ private MenuItem textCopyAllTextItem = new MenuItem(Console.message("Copy All Text"));
|
|
+ private MenuItem textSaveItem = new MenuItem(Console.message("Save All Text"));
|
|
+ private MenuItem textOpenURLItem = new MenuItem(Console.message("Open URL"));
|
|
+ static Color bgColor = null;
|
|
+ private int _numColumns;
|
|
+ private int _numRows;
|
|
+ private static int scrollWheelStep = IniFile.gamma().getIniInt("ScrollWheelStep", 3);
|
|
+ public static String boldStartTag = "<b>";
|
|
+ public static String boldEndTag = "</b>";
|
|
+ public static String italicStartTag = "<i>";
|
|
+ public static String italicEndTag = "</i>";
|
|
+ public static String colorStartMagentaTag = "<color=\"#FF00FF\">";
|
|
+ public static String colorStartBlueTag = "<color=\"#0000FF\">";
|
|
+ public static String colorStartRedTag = "<color=\"#FF0000\">";
|
|
+ public static String colorStartGreenTag = "<color=\"#00FF00\">";
|
|
+ public static String colorEndTag = "</color>";
|
|
+ public static String colorMagenta2Tag = "<color=magenta>";
|
|
+ public static String colorBlue2Tag = "<color=blue>";
|
|
+ public static String colorRed2Tag = "<color=red>";
|
|
+ public static String colorGreen2Tag = "<color=green>";
|
|
+ public static String colorCyanTag = "<color=cyan>";
|
|
+ public static String colorDarkGrayTag = "<color=darkgray>";
|
|
+ public static String colorGrayTag = "<color=gray>";
|
|
+ public static String colorOrangeTag = "<color=orange>";
|
|
+ public static String colorPinkTag = "<color=pink>";
|
|
+ public static String colorYellowTag = "<color=yellow>";
|
|
+ public static String colorWhiteTag = "<color=white>";
|
|
+ public static String colorLightGrayTag = "<color=lightgray>";
|
|
+ protected static String[] tagList;
|
|
+ private int lastWidth = 0;
|
|
+ protected boolean selectionConversion = false;
|
|
+ protected int _initialSelection = -1;
|
|
+
|
|
+ public Font getFont() {
|
|
+ return this._font;
|
|
+ }
|
|
+
|
|
+ public int getWidth() {
|
|
+ return this._width;
|
|
+ }
|
|
+
|
|
+ public int getHeight() {
|
|
+ return this._height;
|
|
+ }
|
|
+
|
|
+ public void setWidth(int var1) {
|
|
+ this._width = var1 - 4;
|
|
+ }
|
|
+
|
|
+ public void setHeight(int var1) {
|
|
+ this._height = var1 - 4;
|
|
+ }
|
|
+
|
|
+ public Vector getLines() {
|
|
+ return this._lines;
|
|
+ }
|
|
+
|
|
+ public int getScrollLine() {
|
|
+ return this._scrollLine;
|
|
+ }
|
|
+
|
|
+ public int getCanvasLines() {
|
|
+ return this._canvasLines;
|
|
+ }
|
|
+
|
|
+ public int getNumLines() {
|
|
+ return this._numLines;
|
|
+ }
|
|
+
|
|
+ public boolean getHasFocus() {
|
|
+ return this._hasFocus;
|
|
+ }
|
|
+
|
|
+ public Scrollbar getVertScrollbar() {
|
|
+ return this._vertBar;
|
|
+ }
|
|
+
|
|
+ static Color getBackgroundColor() {
|
|
+ if (bgColor == null) {
|
|
+ int bgR = IniFile.override().getIniInt("chatBgR", 255);
|
|
+ int bgG = IniFile.override().getIniInt("chatBgG", 255);
|
|
+ int bgB = IniFile.override().getIniInt("chatBgB", 203);
|
|
+ bgColor = new Color(bgR, bgG, bgB);
|
|
+ }
|
|
+
|
|
+ return bgColor;
|
|
+ }
|
|
+
|
|
+ GammaTextArea(String text, int rows, int columns, int scrollbars) {
|
|
+ this._string = text;
|
|
+ this._numColumns = columns;
|
|
+ this._numRows = rows;
|
|
+ this._currentFontName = Console.message("GammaTextFont");
|
|
+ this._currentStyle = 0;
|
|
+ this._currentPointSize = IniFile.gamma().getIniInt("ChatFontSize", 12);
|
|
+ this._currentColor = Color.black;
|
|
+ this._canvas = new StyledTextCanvas();
|
|
+ this.setFontSize(this._currentPointSize);
|
|
+ this._lines = new Vector();
|
|
+ this._pos = new Vector();
|
|
+ this._lastpos = 0;
|
|
+ this._hasFocus = false;
|
|
+ this._numLines = this._scrollLine = this._canvasLines = 0;
|
|
+ switch(scrollbars) {
|
|
+ case 1:
|
|
+ this._vertBar = new GammaTextScrollbar(1);
|
|
+ this._horzBar = new GammaTextScrollbar(0);
|
|
+ break;
|
|
+ case 2:
|
|
+ this._vertBar = new GammaTextScrollbar(1);
|
|
+ this._horzBar = null;
|
|
+ break;
|
|
+ case 3:
|
|
+ this._vertBar = null;
|
|
+ this._horzBar = new GammaTextScrollbar(0);
|
|
+ break;
|
|
+ case 4:
|
|
+ this._vertBar = this._horzBar = null;
|
|
+ }
|
|
+
|
|
+ GridBagLayout gridbag = new GridBagLayout();
|
|
+ this.setLayout(gridbag);
|
|
+ GridBagConstraints c = new GridBagConstraints();
|
|
+ c.fill = 1;
|
|
+ c.weightx = 1.0D;
|
|
+ c.weighty = 1.0D;
|
|
+ gridbag.setConstraints(this._canvas, c);
|
|
+ this.add(this._canvas);
|
|
+ if (this._vertBar != null) {
|
|
+ c = new GridBagConstraints();
|
|
+ c.fill = 3;
|
|
+ c.gridwidth = 0;
|
|
+ gridbag.setConstraints(this._vertBar, c);
|
|
+ this.add(this._vertBar);
|
|
+ this._vertBar.addAdjustmentListener(this);
|
|
+ }
|
|
+
|
|
+ if (this._horzBar != null) {
|
|
+ c = new GridBagConstraints();
|
|
+ c.fill = 2;
|
|
+ c.gridwidth = 1;
|
|
+ this.add(this._horzBar);
|
|
+ this._horzBar.addAdjustmentListener(this);
|
|
+ }
|
|
+
|
|
+ this.enableEvents(131231L);
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
+
|
|
+ public synchronized void setFontSize(int fontsize) {
|
|
+ this._currentPointSize = fontsize;
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ this.recalcSize();
|
|
+ }
|
|
+
|
|
+ public synchronized void recalcSize() {
|
|
+ FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new AssertionError();
|
|
+
|
|
+ int w = fm.charWidth('M') * this._numColumns;
|
|
+ int h = fm.getHeight() * this._numRows;
|
|
+ this.setWidth(w);
|
|
+ this.setHeight(h);
|
|
+ this._canvas.setSize(w, h);
|
|
+ this.setWidth(w);
|
|
+ this.setHeight(h);
|
|
+ }
|
|
+
|
|
+ public void update(Graphics var1) {
|
|
+ this.paint(var1);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processMouseEvent(MouseEvent e) {
|
|
+ if (e.isPopupTrigger()) {
|
|
+ if (this.rightMenu != null && this.rightMenu.isEnabled()) {
|
|
+ this.hideRightMenu();
|
|
+ } else {
|
|
+ this.showRightMenu(e.getX(), e.getY());
|
|
+ }
|
|
+ }
|
|
|
|
- this._currentColor = new Color(color);
|
|
+ super.processMouseEvent(e);
|
|
+ }
|
|
|
|
- try {
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- } catch (IllegalArgumentException var9) {
|
|
- }
|
|
+ protected synchronized void processFocusEvent(FocusEvent e) {
|
|
+ if (e.getID() == 1004) {
|
|
+ this._hasFocus = true;
|
|
+ } else if (e.getID() == 1005) {
|
|
+ this._hasFocus = false;
|
|
+ }
|
|
+
|
|
+ this._canvas.repaint();
|
|
+ super.processFocusEvent(e);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processKeyEvent(KeyEvent e) {
|
|
+ this._canvas.dispatchEvent(e);
|
|
+ super.processKeyEvent(e);
|
|
+ }
|
|
+
|
|
+ protected synchronized void processMouseWheelEvent(MouseWheelEvent e) {
|
|
+ if (e.getID() == 507) {
|
|
+ int move;
|
|
+ if (e.getScrollType() == 0) {
|
|
+ move = e.getScrollAmount() * e.getWheelRotation();
|
|
+ } else {
|
|
+ move = scrollWheelStep * e.getWheelRotation();
|
|
+ }
|
|
|
|
- return true;
|
|
- } else {
|
|
- return this.handleSmiley(g, lower, x, y);
|
|
- }
|
|
- }
|
|
-
|
|
- private synchronized boolean handleSmiley(Graphics g, String lower, int x, int y) {
|
|
- ImageCanvas image = emotes.getImage(lower);
|
|
- if (image != null) {
|
|
- this.drawImage(g, image, x, y);
|
|
- return true;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- private synchronized void drawImage(Graphics g, ImageCanvas image, int x, int y) {
|
|
- if (image != null && image.loaded_) {
|
|
- Dimension size = image.imageSize();
|
|
- if (g != null) {
|
|
- image.paint(g, x, (int)((double)y - size.getHeight()));
|
|
- }
|
|
-
|
|
- this.lastWidth = (int)((double)this.lastWidth - (size.getWidth() + 8.0));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- protected void ClearTags(Graphics g) {
|
|
- if (this._currentStyle != 0) {
|
|
- this._currentStyle = 0;
|
|
- this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
- }
|
|
-
|
|
- if (this._currentColor != Color.black) {
|
|
- this._currentColor = Color.black;
|
|
- }
|
|
-
|
|
- g.setFont(this._font);
|
|
- g.setColor(this._currentColor);
|
|
- }
|
|
-
|
|
- protected synchronized void wordWrap(String newText) {
|
|
- int canvasWidth = this._width;
|
|
- if (canvasWidth > 0) {
|
|
- StringTokenizer rawLines = new StringTokenizer(newText, "\n\r");
|
|
-
|
|
- label82:
|
|
- while(rawLines.hasMoreTokens()) {
|
|
- String rawLine = rawLines.nextToken();
|
|
- StringTokenizer words = new StringTokenizer(rawLine, "\n\r\t -", true);
|
|
- int lineWidth = 0;
|
|
- String thisLine = "";
|
|
- this.lastWidth = 0;
|
|
- FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
+ if (move != 0) {
|
|
+ this._vertBar.setValue(this._vertBar.getValue() + move);
|
|
+ this.requestFocus();
|
|
+ this._canvas.sendDelayedMouseEvent(e);
|
|
+ this.adjustmentValueChanged((AdjustmentEvent)null);
|
|
+ }
|
|
+ }
|
|
|
|
- assert fm != null;
|
|
+ super.processMouseWheelEvent(e);
|
|
+ }
|
|
|
|
- while(true) {
|
|
- while(true) {
|
|
- String word;
|
|
- do {
|
|
- do {
|
|
- if (!words.hasMoreTokens()) {
|
|
- if (!thisLine.equals("")) {
|
|
- this._pos.addElement(this._lastpos);
|
|
- this._lastpos += thisLine.length() + 1;
|
|
- ++this._numLines;
|
|
- this._lines.addElement(thisLine.trim());
|
|
- }
|
|
- continue label82;
|
|
- }
|
|
+ public synchronized void adjustmentValueChanged(AdjustmentEvent e) {
|
|
+ this._scrollLine = this._vertBar.getValue();
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
|
|
- word = words.nextToken();
|
|
- } while(word.equals("\n"));
|
|
- } while(word.equals("\r"));
|
|
-
|
|
- if (this.handleTag((Graphics)null, word, 0, 0)) {
|
|
- lineWidth -= this.lastWidth;
|
|
- thisLine = thisLine + word;
|
|
- if (words.hasMoreTokens()) {
|
|
- thisLine = thisLine + words.nextToken();
|
|
- }
|
|
-
|
|
- this.lastWidth = 0;
|
|
- fm = this._canvas.getFontMetrics(this._font);
|
|
-
|
|
- assert fm != null;
|
|
- } else {
|
|
- this.lastWidth = fm.stringWidth(word);
|
|
- if (this.lastWidth >= canvasWidth) {
|
|
- if (!thisLine.equals("")) {
|
|
- this._pos.addElement(this._lastpos);
|
|
- this._lastpos += thisLine.length();
|
|
- this._lines.addElement(thisLine.trim());
|
|
- ++this._numLines;
|
|
- lineWidth = 0;
|
|
- }
|
|
+ public void setEditable(boolean var1) {
|
|
+ if (var1) {
|
|
+ System.out.println("Can't set GammaTextArea to be editable.");
|
|
+ }
|
|
|
|
- while(this.lastWidth >= canvasWidth) {
|
|
- word = this.breakWord(word, fm);
|
|
- lineWidth = this.lastWidth = 0;
|
|
- thisLine = "";
|
|
- if (word != null && word.length() > 0) {
|
|
- this.lastWidth = fm.stringWidth(word);
|
|
- }
|
|
- }
|
|
- }
|
|
+ }
|
|
|
|
- lineWidth += this.lastWidth;
|
|
- if (lineWidth > 0 && word != null && word.length() > 0) {
|
|
- if (lineWidth >= canvasWidth) {
|
|
- this._pos.addElement(this._lastpos);
|
|
- this._lastpos += thisLine.length();
|
|
- this._lines.addElement(thisLine.trim());
|
|
- ++this._numLines;
|
|
- lineWidth = this.lastWidth;
|
|
- thisLine = "";
|
|
- }
|
|
+ public synchronized String getText() {
|
|
+ return this._string;
|
|
+ }
|
|
|
|
- thisLine = thisLine + word;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- protected String breakWord(String longWord, FontMetrics fm) {
|
|
- int lineWidth = 0;
|
|
- String thisLine = "";
|
|
-
|
|
- for(int c = 0; c < longWord.length(); ++c) {
|
|
- char ch = longWord.charAt(c);
|
|
- lineWidth += fm.charWidth(ch);
|
|
- if (lineWidth >= this._width) {
|
|
- this._pos.addElement(this._lastpos);
|
|
- this._lastpos += thisLine.length();
|
|
- this._lines.addElement(thisLine);
|
|
- ++this._numLines;
|
|
- lineWidth = fm.charWidth(ch);
|
|
- thisLine = "";
|
|
- }
|
|
-
|
|
- thisLine = thisLine + ch;
|
|
- }
|
|
-
|
|
- if (thisLine.length() > 0) {
|
|
- this._pos.addElement(this._lastpos);
|
|
- this._lastpos += thisLine.length();
|
|
- this._lines.addElement(thisLine);
|
|
- ++this._numLines;
|
|
- }
|
|
-
|
|
- return "";
|
|
- }
|
|
-
|
|
- public synchronized void rewrap() {
|
|
- if (this._width > 0 && this._height > 0) {
|
|
- this.wordWrapAll();
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
+ public synchronized void setText(String s) {
|
|
+ this._string = s;
|
|
+ this.wordWrapAll();
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
this._scrollLine = 0;
|
|
- }
|
|
+ }
|
|
|
|
- this.setScrollBounds();
|
|
- this._canvas.repaint();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public synchronized void setScrollBounds() {
|
|
- FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
-
|
|
- assert fm != null;
|
|
-
|
|
- int lineHeight = fm.getHeight();
|
|
- this._canvasLines = (this._height + fm.getDescent()) / lineHeight;
|
|
- if (this._vertBar != null) {
|
|
- if (this._numLines <= this._canvasLines) {
|
|
- this._vertBar.setEnabled(false);
|
|
- } else {
|
|
- this._vertBar.setEnabled(true);
|
|
- this._vertBar.setValues(this._scrollLine, this._canvasLines, 0, this._numLines);
|
|
- this._vertBar.setBlockIncrement(this._canvasLines);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public synchronized void append(String s) {
|
|
- this._string = this._string + s;
|
|
- this.wordWrap(s);
|
|
- this._scrollLine = this._numLines - this._canvasLines;
|
|
- if (this._scrollLine < 0) {
|
|
- this._scrollLine = 0;
|
|
- }
|
|
-
|
|
- this.setScrollBounds();
|
|
- }
|
|
-
|
|
- public synchronized void replaceRange(String s, int start, int end) {
|
|
- String newString = this._string.substring(0, start) + s + this._string.substring(end);
|
|
- this._string = newString;
|
|
- }
|
|
-
|
|
- public synchronized void drawLine(Graphics g, int lineNum, int y) {
|
|
- if (lineNum < this._pos.size()) {
|
|
- String thisLine = (String)this._lines.elementAt(lineNum);
|
|
-
|
|
- assert thisLine != null;
|
|
-
|
|
- this._curpos = (Integer)this._pos.elementAt(lineNum);
|
|
- StringTokenizer st = new StringTokenizer(thisLine, " \n\r", true);
|
|
- int x = 0;
|
|
- this.lastWidth = 0;
|
|
-
|
|
- while(st.hasMoreTokens()) {
|
|
- String word = st.nextToken();
|
|
- if (!this.handleTag(g, word, 2 + x, y + 2)) {
|
|
- this.drawString(g, word, 2 + x, y + 2);
|
|
- this.lastWidth = g.getFontMetrics().stringWidth(word);
|
|
- x += this.lastWidth;
|
|
- } else {
|
|
- x -= this.lastWidth;
|
|
- if (st.hasMoreTokens()) {
|
|
- this._curpos += st.nextToken().length();
|
|
- }
|
|
-
|
|
- this.lastWidth = 0;
|
|
- g.setFont(this._font);
|
|
- g.setColor(this._currentColor);
|
|
- this._curpos += word.length();
|
|
- }
|
|
- }
|
|
-
|
|
- this.ClearTags(g);
|
|
- }
|
|
- }
|
|
-
|
|
- private void drawString(Graphics g, String text, int x, int y) {
|
|
- FontMetrics fm = g.getFontMetrics();
|
|
- int startdist;
|
|
- int i;
|
|
- if (this.selectionConversion) {
|
|
- startdist = fm.getHeight();
|
|
- int pos = -1;
|
|
- if (y - startdist < this._canvas.mouseY) {
|
|
- if (y < this._canvas.mouseY) {
|
|
- if (y < this._canvas.mouseY) {
|
|
- if (this.selectionStart >= 0) {
|
|
- pos = this._curpos + text.length();
|
|
- }
|
|
- } else {
|
|
- this.selectionConversion = false;
|
|
- }
|
|
- } else if (x <= this._canvas.mouseX) {
|
|
- if (this._canvas.mouseX > x + g.getFontMetrics().stringWidth(text)) {
|
|
- if (this.selectionStart >= 0 && this._curpos >= this.selectionStart) {
|
|
- pos = this._curpos + text.length();
|
|
- }
|
|
- } else {
|
|
- if (this._canvas.mouseDoubleClick) {
|
|
- this._canvas.mouseDoubleClick = false;
|
|
- this.selectionStart = this._initialSelection = this._curpos;
|
|
- this.selectionEnd = this._curpos + text.length();
|
|
- pos = -1;
|
|
- } else {
|
|
- for(i = 0; i < text.length() - 1 && x + fm.stringWidth(text.substring(0, i + 1)) < this._canvas.mouseX; ++i) {
|
|
- }
|
|
+ this.setScrollBounds();
|
|
+ }
|
|
|
|
- pos = this._curpos + i;
|
|
- }
|
|
+ public synchronized void repaint() {
|
|
+ this._canvas.repaint();
|
|
+ super.repaint();
|
|
+ }
|
|
+
|
|
+ protected synchronized void wordWrapAll() {
|
|
+ this._lines.removeAllElements();
|
|
+ this._pos.removeAllElements();
|
|
+ this._numLines = 0;
|
|
+ this._lastpos = 0;
|
|
+ this.wordWrap(this._string);
|
|
+ }
|
|
+
|
|
+ protected synchronized boolean isLastLineVisible() {
|
|
+ if (!this._canvas.mouseActive && (this.selectionStart < 0 || this.selectionEnd <= this.selectionStart)) {
|
|
+ return this._scrollLine >= this._numLines - this._canvasLines || this._numLines <= this._canvasLines;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ protected synchronized boolean handleTag(Graphics g, String word, int x, int y) {
|
|
+ String lower = word.toLowerCase();
|
|
+ int color;
|
|
+ if (word.charAt(0) == '<') {
|
|
+ for (color = 0; color < tagList.length; ++color) {
|
|
+ if (lower.equals(tagList[color].toLowerCase())) {
|
|
+ switch (color) {
|
|
+ case 0:
|
|
+ this._currentStyle |= 1;
|
|
+ break;
|
|
+ case 1:
|
|
+ this._currentStyle &= -2;
|
|
+ break;
|
|
+ case 2:
|
|
+ this._currentStyle |= 2;
|
|
+ break;
|
|
+ case 3:
|
|
+ this._currentStyle &= -3;
|
|
+ break;
|
|
+ case 4:
|
|
+ this._currentColor = Color.magenta;
|
|
+ break;
|
|
+ case 5:
|
|
+ this._currentColor = Color.red;
|
|
+ break;
|
|
+ case 6:
|
|
+ this._currentColor = Color.green;
|
|
+ break;
|
|
+ case 7:
|
|
+ this._currentColor = Color.blue;
|
|
+ break;
|
|
+ case 8:
|
|
+ this._currentColor = Color.black;
|
|
+ break;
|
|
+ case 9:
|
|
+ this._currentColor = Color.magenta;
|
|
+ break;
|
|
+ case 10:
|
|
+ this._currentColor = Color.blue;
|
|
+ break;
|
|
+ case 11:
|
|
+ this._currentColor = Color.red;
|
|
+ break;
|
|
+ case 12:
|
|
+ this._currentColor = Color.green;
|
|
+ break;
|
|
+ case 13:
|
|
+ this._currentColor = Color.cyan;
|
|
+ break;
|
|
+ case 14:
|
|
+ this._currentColor = Color.darkGray;
|
|
+ break;
|
|
+ case 15:
|
|
+ this._currentColor = Color.gray;
|
|
+ break;
|
|
+ case 16:
|
|
+ this._currentColor = Color.orange;
|
|
+ break;
|
|
+ case 17:
|
|
+ this._currentColor = Color.pink;
|
|
+ break;
|
|
+ case 18:
|
|
+ this._currentColor = Color.yellow;
|
|
+ break;
|
|
+ case 19:
|
|
+ this._currentColor = Color.white;
|
|
+ break;
|
|
+ case 20:
|
|
+ this._currentColor = Color.lightGray;
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ } catch (IllegalArgumentException var4) {
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ } else return false;
|
|
+ }
|
|
+
|
|
+ protected void ClearTags(Graphics var1) {
|
|
+ if (this._currentStyle != 0) {
|
|
+ this._currentStyle = 0;
|
|
+ this._font = new Font(this._currentFontName, this._currentStyle, this._currentPointSize);
|
|
+ }
|
|
|
|
- this.selectionConversion = false;
|
|
- }
|
|
- } else {
|
|
- this.selectionConversion = false;
|
|
- }
|
|
- } else if (this.selectionStart >= 0 && this._curpos >= this.selectionStart) {
|
|
- this.selectionConversion = false;
|
|
- }
|
|
-
|
|
- if (pos >= 0) {
|
|
- if (this.selectionStart < 0) {
|
|
- this.selectionStart = this._initialSelection = pos;
|
|
- this.selectionEnd = this.selectionStart + 1;
|
|
- } else if (pos < this._initialSelection) {
|
|
- this.selectionStart = pos;
|
|
- this.selectionEnd = this._initialSelection + 1;
|
|
- } else {
|
|
- this.selectionStart = this._initialSelection;
|
|
- this.selectionEnd = pos + 1;
|
|
- }
|
|
- }
|
|
- }
|
|
+ if (this._currentColor != Color.black) {
|
|
+ this._currentColor = Color.black;
|
|
+ }
|
|
+
|
|
+ var1.setFont(this._font);
|
|
+ var1.setColor(this._currentColor);
|
|
+ }
|
|
+
|
|
+ protected synchronized void wordWrap(String newText) {
|
|
+ int canvasWidth = this._width;
|
|
+ if (canvasWidth > 0) {
|
|
+ StringTokenizer rawLines = new StringTokenizer(newText, "\n\r");
|
|
+
|
|
+ label82:
|
|
+ while(rawLines.hasMoreTokens()) {
|
|
+ String rawLine = rawLines.nextToken();
|
|
+ StringTokenizer words = new StringTokenizer(rawLine, "\n\r\t -", true);
|
|
+ int lineWidth = 0;
|
|
+ StringBuffer thisLine = new StringBuffer();
|
|
+ this.lastWidth = 0;
|
|
+ FontMetrics fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new AssertionError();
|
|
+
|
|
+ while(true) {
|
|
+ while(true) {
|
|
+ String word;
|
|
+ do {
|
|
+ do {
|
|
+ if (!words.hasMoreTokens()) {
|
|
+ if (!thisLine.toString().equals("")) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length() + 1;
|
|
+ ++this._numLines;
|
|
+ this._lines.addElement(thisLine.toString().trim());
|
|
+ }
|
|
+ continue label82;
|
|
+ }
|
|
+
|
|
+ word = words.nextToken();
|
|
+ } while(word.equals("\n"));
|
|
+ } while(word.equals("\r"));
|
|
+
|
|
+ if (this.handleTag((Graphics)null, word, 0, 0)) {
|
|
+ lineWidth -= this.lastWidth;
|
|
+ thisLine.append(word);
|
|
+ if (words.hasMoreTokens()) {
|
|
+ thisLine.append(words.nextToken());
|
|
+ }
|
|
+
|
|
+ this.lastWidth = 0;
|
|
+ fm = this._canvas.getFontMetrics(this._font);
|
|
+
|
|
+ if (fm == null) throw new AssertionError();
|
|
+ } else {
|
|
+ this.lastWidth = fm.stringWidth(word);
|
|
+ if (this.lastWidth >= canvasWidth) {
|
|
+ if (!thisLine.toString().equals("")) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length();
|
|
+ this._lines.addElement(thisLine.toString().trim());
|
|
+ ++this._numLines;
|
|
+ lineWidth = 0;
|
|
+ }
|
|
+
|
|
+ while(this.lastWidth >= canvasWidth) {
|
|
+ word = this.breakWord(word, fm);
|
|
+ lineWidth = this.lastWidth = 0;
|
|
+ thisLine = new StringBuffer();
|
|
+ if (word != null && word.length() > 0) {
|
|
+ this.lastWidth = fm.stringWidth(word);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ lineWidth += this.lastWidth;
|
|
+ if (lineWidth > 0 && word != null && word.length() > 0) {
|
|
+ if (lineWidth >= canvasWidth) {
|
|
+ this._pos.addElement(new Integer(this._lastpos));
|
|
+ this._lastpos += thisLine.length();
|
|
+ this._lines.addElement(thisLine.toString().trim());
|
|
+ ++this._numLines;
|
|
+ lineWidth = this.lastWidth;
|
|
+ thisLine = new StringBuffer();
|
|
+ }
|
|
|
|
- if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
- startdist = this.selectionStart - this._curpos;
|
|
- if (startdist > 0) {
|
|
- if (startdist < text.length()) {
|
|
- i = text.length();
|
|
- if (this._curpos + i >= this.selectionEnd) {
|
|
- i = this.selectionEnd - this._curpos;
|
|
- }
|
|
-
|
|
- this.drawHighlight(g, text.substring(startdist, i), x + fm.stringWidth(text.substring(0, startdist)), y);
|
|
- }
|
|
- } else if (this.selectionEnd > this._curpos) {
|
|
- if (this.selectionEnd - this._curpos < text.length()) {
|
|
- this.drawHighlight(g, text.substring(0, this.selectionEnd - this._curpos), x, y);
|
|
- } else {
|
|
- this.drawHighlight(g, text, x, y);
|
|
+ thisLine.append(word);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
}
|
|
- }
|
|
- }
|
|
|
|
- g.drawString(text, x, y);
|
|
- this._curpos += text.length();
|
|
- }
|
|
-
|
|
- private void drawHighlight(Graphics g, String text, int x, int y) {
|
|
- if (text != null && text.length() > 0) {
|
|
- Color c = g.getColor();
|
|
- g.setColor(skyblue);
|
|
- int height = g.getFontMetrics().getHeight();
|
|
- g.fillRect(x, y - (height - 2), g.getFontMetrics().stringWidth(text), height);
|
|
- g.setColor(c);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public int getSelectionStart() {
|
|
- return this.selectionStart;
|
|
- }
|
|
-
|
|
- public int getSelectionEnd() {
|
|
- return this.selectionEnd;
|
|
- }
|
|
-
|
|
- public void setSelectionStart(int position) {
|
|
- this.selectionStart = position;
|
|
- }
|
|
-
|
|
- public void setSelectionEnd(int position) {
|
|
- this.selectionEnd = position;
|
|
- }
|
|
-
|
|
- public synchronized String getSelectionText() {
|
|
- if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
- return this.selectionEnd >= this.getText().length() ? this.getText().substring(this.selectionStart) : this.getText().substring(this.selectionStart, this.selectionEnd);
|
|
- } else {
|
|
- return "";
|
|
- }
|
|
- }
|
|
-
|
|
- private void initRightMenu() {
|
|
- this.rightMenu = new PopupMenu();
|
|
- this.rightMenu.add(this.textCopyItem);
|
|
- this.rightMenu.add(this.textCopyTextItem);
|
|
- if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
- this.textCopyItem.setEnabled(true);
|
|
- this.textCopyTextItem.setEnabled(true);
|
|
- } else {
|
|
- this.textCopyItem.setEnabled(false);
|
|
- this.textCopyTextItem.setEnabled(false);
|
|
- }
|
|
-
|
|
- this.rightMenu.add(this.textCopyAllItem);
|
|
- this.rightMenu.add(this.textCopyAllTextItem);
|
|
- this.rightMenu.add(this.textOpenURLItem);
|
|
- this.rightMenu.addActionListener(this);
|
|
- this.add(this.rightMenu);
|
|
- }
|
|
-
|
|
- private void showRightMenu(int x, int y) {
|
|
- if (this.rightMenu == null) {
|
|
- this.initRightMenu();
|
|
- }
|
|
-
|
|
- this.rightMenu.show(this, x, y);
|
|
- }
|
|
-
|
|
- private void hideRightMenu() {
|
|
- this.remove(this.rightMenu);
|
|
- this.rightMenu = null;
|
|
- }
|
|
-
|
|
- public synchronized void actionPerformed(ActionEvent e) {
|
|
- String text = null;
|
|
- boolean doClean = false;
|
|
- if (e.getActionCommand() == this.textCopyItem.getActionCommand()) {
|
|
- text = this.getSelectionText();
|
|
- this.selectionStart = this.selectionEnd = -1;
|
|
- this.repaint();
|
|
- } else if (e.getActionCommand() == this.textCopyTextItem.getActionCommand()) {
|
|
- text = this.getSelectionText();
|
|
- doClean = true;
|
|
- this.selectionStart = this.selectionEnd = -1;
|
|
- this.repaint();
|
|
- } else if (e.getActionCommand() == this.textCopyAllItem.getActionCommand()) {
|
|
- text = this.getText();
|
|
- } else if (e.getActionCommand() == this.textCopyAllTextItem.getActionCommand()) {
|
|
- text = this.getText();
|
|
- doClean = true;
|
|
- } else if (e.getActionCommand() == this.textOpenURLItem.getActionCommand()) {
|
|
- text = this.getSelectionText().trim();
|
|
- if (text != null && text.length() > 5) {
|
|
- if (!text.startsWith("http://") && !text.startsWith("https://") && !text.startsWith("world:")) {
|
|
- text = "http://" + text;
|
|
- }
|
|
-
|
|
- if (text.startsWith("world:") || text.contains(".world#") || (text.startsWith("http") || text.startsWith("file:")) && text.endsWith(".world")) {
|
|
- if (text.startsWith("world:")) {
|
|
- text = text.substring(6);
|
|
- }
|
|
+ }
|
|
+ }
|
|
|
|
- TeleportAction.teleport(text, (TeleportStatus)null);
|
|
+ protected String breakWord(String var1, FontMetrics var2) {
|
|
+ int var3 = 0;
|
|
+ StringBuffer var4 = new StringBuffer();
|
|
+
|
|
+ for(int var5 = 0; var5 < var1.length(); ++var5) {
|
|
+ char var6 = var1.charAt(var5);
|
|
+ var3 += var2.charWidth(var6);
|
|
+ if (var3 >= this._width) {
|
|
+ this._lines.addElement(var4.toString());
|
|
+ ++this._numLines;
|
|
+ return var1.substring(var5);
|
|
+ }
|
|
+
|
|
+ var4.append(var6);
|
|
+ }
|
|
+
|
|
+ this._lines.addElement(var4.toString());
|
|
+ ++this._numLines;
|
|
+ return "";
|
|
+ }
|
|
+
|
|
+ public synchronized void rewrap() {
|
|
+ if (this._width > 0 && this._height > 0) {
|
|
+ this.wordWrapAll();
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
+ this._scrollLine = 0;
|
|
+ }
|
|
+
|
|
+ this.setScrollBounds();
|
|
+ this._canvas.repaint();
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private synchronized void setScrollBounds() {
|
|
+ FontMetrics var1 = this._canvas.getFontMetrics(this._font);
|
|
+ assert(var1 != null);
|
|
+ int var2 = var1.getHeight();
|
|
+ this._canvasLines = this._height / var2;
|
|
+ if (this._vertBar != null) {
|
|
+ if (this._numLines <= this._canvasLines) {
|
|
+ this._vertBar.setEnabled(false);
|
|
} else {
|
|
- (new SendURLAction(text)).startBrowser();
|
|
- }
|
|
+ this._vertBar.setEnabled(true);
|
|
+ this._vertBar.setValues(this._scrollLine, this._canvasLines, 0, this._numLines);
|
|
+ this._vertBar.setBlockIncrement(this._canvasLines);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public synchronized void append(String var1) {
|
|
+ this._string = this._string + var1;
|
|
+ this.wordWrap(var1);
|
|
+ this._scrollLine = this._numLines - this._canvasLines;
|
|
+ if (this._scrollLine < 0) {
|
|
+ this._scrollLine = 0;
|
|
+ }
|
|
+
|
|
+ this.setScrollBounds();
|
|
+ }
|
|
+
|
|
+ public synchronized void replaceRange(String var1, int var2, int var3) {
|
|
+ String var4 = this._string.substring(0, var2) + var1 + this._string.substring(var3);
|
|
+ this._string = var4;
|
|
+ }
|
|
|
|
+ public synchronized void drawLine(Graphics g, int lineNum, int y) {
|
|
+ if (lineNum < this._pos.size()) {
|
|
+ String thisLine = (String)this._lines.elementAt(lineNum);
|
|
+
|
|
+ if (thisLine == null) throw new AssertionError();
|
|
+
|
|
+ this._curpos = ((Integer)this._pos.elementAt(lineNum)).intValue();
|
|
+ StringTokenizer st = new StringTokenizer(thisLine, " \n\r", true);
|
|
+ int x = 0;
|
|
+ this.lastWidth = 0;
|
|
+
|
|
+ while(st.hasMoreTokens()) {
|
|
+ String word = st.nextToken();
|
|
+ if (!this.handleTag(g, word, 2 + x, y + 2)) {
|
|
+ this.drawString(g, word, 2 + x, y + 2);
|
|
+ this.lastWidth = g.getFontMetrics().stringWidth(word);
|
|
+ x += this.lastWidth;
|
|
+ } else {
|
|
+ x -= this.lastWidth;
|
|
+ if (st.hasMoreTokens()) {
|
|
+ this._curpos += st.nextToken().length();
|
|
+ }
|
|
+
|
|
+ this.lastWidth = 0;
|
|
+ g.setFont(this._font);
|
|
+ g.setColor(this._currentColor);
|
|
+ this._curpos += word.length();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.ClearTags(g);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void drawString(Graphics g, String text, int x, int y) {
|
|
+ FontMetrics fm = g.getFontMetrics();
|
|
+ int startdist;
|
|
+ int i;
|
|
+ if (this.selectionConversion) {
|
|
+ startdist = fm.getHeight();
|
|
+ int pos = -1;
|
|
+ if (y - startdist < this._canvas.mouseY) {
|
|
+ if (y < this._canvas.mouseY) {
|
|
+ if (y < this._canvas.mouseY) {
|
|
+ if (this.selectionStart >= 0) {
|
|
+ pos = this._curpos + text.length();
|
|
+ }
|
|
+ } else {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else if (x <= this._canvas.mouseX) {
|
|
+ if (this._canvas.mouseX > x + g.getFontMetrics().stringWidth(text)) {
|
|
+ if (this.selectionStart >= 0 && this._curpos >= this.selectionStart) {
|
|
+ pos = this._curpos + text.length();
|
|
+ }
|
|
+ } else {
|
|
+ if (this._canvas.mouseDoubleClick) {
|
|
+ this._canvas.mouseDoubleClick = false;
|
|
+ this.selectionStart = this._initialSelection = this._curpos;
|
|
+ this.selectionEnd = this._curpos + text.length();
|
|
+ pos = -1;
|
|
+ } else {
|
|
+ for(i = 0; i < text.length() - 1 && x + fm.stringWidth(text.substring(0, i + 1)) < this._canvas.mouseX; ++i) {
|
|
+ }
|
|
+
|
|
+ pos = this._curpos + i;
|
|
+ }
|
|
+
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+ } else if (this.selectionStart >= 0 && this._curpos >= this.selectionStart) {
|
|
+ this.selectionConversion = false;
|
|
+ }
|
|
+
|
|
+ if (pos >= 0) {
|
|
+ if (this.selectionStart < 0) {
|
|
+ this.selectionStart = this._initialSelection = pos;
|
|
+ this.selectionEnd = this.selectionStart + 1;
|
|
+ } else if (pos < this._initialSelection) {
|
|
+ this.selectionStart = pos;
|
|
+ this.selectionEnd = this._initialSelection + 1;
|
|
+ } else {
|
|
+ this.selectionStart = this._initialSelection;
|
|
+ this.selectionEnd = pos + 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ startdist = this.selectionStart - this._curpos;
|
|
+ if (startdist > 0) {
|
|
+ if (startdist < text.length()) {
|
|
+ i = text.length();
|
|
+ if (this._curpos + i >= this.selectionEnd) {
|
|
+ i = this.selectionEnd - this._curpos;
|
|
+ }
|
|
+
|
|
+ this.drawHighlight(g, text.substring(startdist, i), x + fm.stringWidth(text.substring(0, startdist)), y);
|
|
+ }
|
|
+ } else if (this.selectionEnd > this._curpos) {
|
|
+ if (this.selectionEnd - this._curpos < text.length()) {
|
|
+ this.drawHighlight(g, text.substring(0, this.selectionEnd - this._curpos), x, y);
|
|
+ } else {
|
|
+ this.drawHighlight(g, text, x, y);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ g.drawString(text, x, y);
|
|
+ this._curpos += text.length();
|
|
+ }
|
|
+
|
|
+ private void drawHighlight(Graphics g, String text, int x, int y) {
|
|
+ if (text != null && text.length() > 0) {
|
|
+ Color c = g.getColor();
|
|
+ g.setColor(skyblue);
|
|
+ int height = g.getFontMetrics().getHeight();
|
|
+ g.fillRect(x, y - (height - 2), g.getFontMetrics().stringWidth(text), height);
|
|
+ g.setColor(c);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public int getSelectionStart() {
|
|
+ return this.selectionStart;
|
|
+ }
|
|
+
|
|
+ public int getSelectionEnd() {
|
|
+ return this.selectionEnd;
|
|
+ }
|
|
+
|
|
+ public void setSelectionStart(int position) {
|
|
+ this.selectionStart = position;
|
|
+ }
|
|
+
|
|
+ public void setSelectionEnd(int position) {
|
|
+ this.selectionEnd = position;
|
|
+ }
|
|
+
|
|
+ public synchronized String getSelectionText() {
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ return this.getText().substring(this.selectionStart, this.selectionEnd);
|
|
+ } else {
|
|
+ return "";
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void initRightMenu() {
|
|
+ this.rightMenu = new PopupMenu();
|
|
+ this.rightMenu.add(this.textCopyItem);
|
|
+ this.rightMenu.add(this.textCopyTextItem);
|
|
+ if (this.selectionStart >= 0 && this.selectionEnd > this.selectionStart) {
|
|
+ this.textCopyItem.setEnabled(true);
|
|
+ this.textCopyTextItem.setEnabled(true);
|
|
+ } else {
|
|
+ this.textCopyItem.setEnabled(false);
|
|
+ this.textCopyTextItem.setEnabled(false);
|
|
+ }
|
|
+
|
|
+ this.rightMenu.add(this.textCopyAllItem);
|
|
+ this.rightMenu.add(this.textCopyAllTextItem);
|
|
+ this.rightMenu.add(this.textSaveItem);
|
|
+ this.rightMenu.add(this.textOpenURLItem);
|
|
+ this.rightMenu.addActionListener(this);
|
|
+ this.add(this.rightMenu);
|
|
+ }
|
|
+
|
|
+ private void showRightMenu(int x, int y) {
|
|
+ if (this.rightMenu == null) {
|
|
+ this.initRightMenu();
|
|
+ }
|
|
+
|
|
+ this.rightMenu.show(this, x, y);
|
|
+ }
|
|
+
|
|
+ private void hideRightMenu() {
|
|
+ this.remove(this.rightMenu);
|
|
+ this.rightMenu = null;
|
|
+ }
|
|
+
|
|
+ public synchronized void actionPerformed(ActionEvent e) {
|
|
+ String text = null;
|
|
+ boolean doClean = false;
|
|
+ if (e.getActionCommand() == this.textCopyItem.getActionCommand()) {
|
|
+ text = this.getSelectionText();
|
|
this.selectionStart = this.selectionEnd = -1;
|
|
this.repaint();
|
|
- }
|
|
+ } else if (e.getActionCommand() == this.textCopyTextItem.getActionCommand()) {
|
|
+ text = this.getSelectionText();
|
|
+ doClean = true;
|
|
+ this.selectionStart = this.selectionEnd = -1;
|
|
+ this.repaint();
|
|
+ } else if (e.getActionCommand() == this.textCopyAllItem.getActionCommand()) {
|
|
+ text = this.getText();
|
|
+ } else if (e.getActionCommand() == this.textCopyAllTextItem.getActionCommand()) {
|
|
+ text = this.getText();
|
|
+ doClean = true;
|
|
+ } else if (e.getActionCommand() == this.textOpenURLItem.getActionCommand()) {
|
|
+ text = this.getSelectionText().trim();
|
|
+ if (text != null && text.length() > 5) {
|
|
+ if (!text.startsWith("http://") && !text.startsWith("https://") && !text.startsWith("world:")) {
|
|
+ text = "http://" + text;
|
|
+ }
|
|
+
|
|
+ if (text.startsWith("world:") || text.indexOf(".world#") != -1 || (text.startsWith("http") || text.startsWith("file:")) && text.endsWith(".world")) {
|
|
+ if (text.startsWith("world:")) {
|
|
+ text = text.substring(6);
|
|
+ }
|
|
+
|
|
+ TeleportAction.teleport(text, (TeleportStatus)null);
|
|
+ } else {
|
|
+ (new SendURLAction(text)).startBrowser();
|
|
+ }
|
|
|
|
- this.hideRightMenu();
|
|
- return;
|
|
- }
|
|
-
|
|
- if (doClean) {
|
|
- StringTokenizer st = new StringTokenizer(text, " \n\r", true);
|
|
- String newText = "";
|
|
-
|
|
- while(st.hasMoreTokens()) {
|
|
- String word = st.nextToken();
|
|
- if (!this.handleTag((Graphics)null, word, 0, 0)) {
|
|
- newText = newText + word;
|
|
- } else {
|
|
- if (newText.length() > 0 && newText.substring(newText.length() - 1).toCharArray()[0] == ' ') {
|
|
- newText = newText.substring(0, newText.length() - 1);
|
|
- }
|
|
-
|
|
- if (st.hasMoreTokens()) {
|
|
- st.nextToken();
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- text = newText;
|
|
- }
|
|
-
|
|
- if (text != null && text.length() > 0) {
|
|
- Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
|
- clipboard.setContents(new StringSelection(text), (ClipboardOwner)null);
|
|
- }
|
|
+ this.selectionStart = this.selectionEnd = -1;
|
|
+ this.repaint();
|
|
+ }
|
|
|
|
- this.hideRightMenu();
|
|
- }
|
|
+ this.hideRightMenu();
|
|
+ return;
|
|
+ } else if (e.getActionCommand() == this.textSaveItem.getActionCommand()) {
|
|
+ new ChatSavePart(this._string);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ if (doClean) {
|
|
+ StringTokenizer st = new StringTokenizer(text, " \n\r", true);
|
|
+ String newText = "";
|
|
+
|
|
+ while(st.hasMoreTokens()) {
|
|
+ String word = st.nextToken();
|
|
+ if (!this.handleTag((Graphics)null, word, 0, 0)) {
|
|
+ newText = newText + word;
|
|
+ } else {
|
|
+ if (newText.length() > 0 && newText.substring(newText.length() - 1).toCharArray()[0] == ' ') {
|
|
+ newText = newText.substring(0, newText.length() - 1);
|
|
+ }
|
|
+
|
|
+ if (st.hasMoreTokens()) {
|
|
+ st.nextToken();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ text = newText;
|
|
+ }
|
|
+
|
|
+ if (text != null && text.length() > 0) {
|
|
+ Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
|
|
+ clipboard.setContents(new StringSelection(text), (ClipboardOwner)null);
|
|
+ }
|
|
+
|
|
+ this.hideRightMenu();
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ tagList = new String[]{boldStartTag, boldEndTag, italicStartTag, italicEndTag, colorStartMagentaTag, colorStartRedTag, colorStartGreenTag, colorStartBlueTag, colorEndTag, colorMagenta2Tag, colorBlue2Tag, colorRed2Tag, colorGreen2Tag, colorCyanTag, colorDarkGrayTag, colorGrayTag, colorOrangeTag, colorPinkTag, colorYellowTag, colorWhiteTag, colorLightGrayTag};
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/console/HiddenDrone.java b/1920/NET/worlds/console/HiddenDrone.java
|
|
--- a/1920/NET/worlds/console/HiddenDrone.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/HiddenDrone.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,4 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+public interface HiddenDrone {
|
|
+}
|
|
diff -ruN a/1920/NET/worlds/console/MuteListPart.java b/1920/NET/worlds/console/MuteListPart.java
|
|
--- a/1920/NET/worlds/console/MuteListPart.java 2024-01-08 01:46:30.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/MuteListPart.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -7,235 +7,246 @@
|
|
import NET.worlds.network.WorldServer;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.FrameEvent;
|
|
-import java.awt.Container;
|
|
-import java.awt.Event;
|
|
-import java.awt.MenuItem;
|
|
-import java.text.MessageFormat;
|
|
+
|
|
+import java.awt.*;
|
|
+import java.awt.Window;
|
|
import java.util.Enumeration;
|
|
import java.util.StringTokenizer;
|
|
import java.util.Vector;
|
|
|
|
public class MuteListPart implements FramePart, NameListOwner {
|
|
- private static final String oldIniItemName = "Mutes";
|
|
- private static final String iniItemName = "Mute";
|
|
- private static final int maxMutes = 50;
|
|
- private static final String separator = ";";
|
|
- private static MuteListPart active;
|
|
- private Vector mutes;
|
|
- private Vector syncMutes = new Vector();
|
|
- private MenuItem editItem;
|
|
- private MenuItem disableWhisperItem;
|
|
- private boolean rejectWhispers;
|
|
- private DefaultConsole console;
|
|
- private Galaxy galaxy;
|
|
- private IniFile serverSection;
|
|
- private Object mutesMutex = new Object();
|
|
- private Vector updates = new Vector();
|
|
-
|
|
- private void loadMutes() {
|
|
- this.mutes = new Vector();
|
|
-
|
|
- for(int i = 0; i < 50; ++i) {
|
|
- String name = this.serverSection.getIniString("Mute" + i, "");
|
|
- if (name.length() == 0) {
|
|
- break;
|
|
- }
|
|
-
|
|
- if (FriendsListPart.isValidUserName(name) && !FriendsListPart.icontains(this.mutes, name)) {
|
|
- this.mutes.addElement(name);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.mutes.size() == 0) {
|
|
- String mutesStr = this.serverSection.getIniString("Mutes", "");
|
|
- StringTokenizer tokens = new StringTokenizer(mutesStr, ";");
|
|
-
|
|
- while(tokens.hasMoreTokens() && this.mutes.size() < 50) {
|
|
- String name = tokens.nextToken();
|
|
- if (FriendsListPart.isValidUserName(name) && !FriendsListPart.icontains(this.mutes, name)) {
|
|
- this.mutes.addElement(name);
|
|
+ private static final String oldIniItemName = "Mutes";
|
|
+ private static final String iniItemName = "Mute";
|
|
+ private static final String separator = ";";
|
|
+ private static MuteListPart active;
|
|
+ private Vector mutes;
|
|
+ private Vector syncMutes = new Vector();
|
|
+ private MenuItem editItem;
|
|
+ private boolean rejectWhispers;
|
|
+ private boolean rejectTeleports;
|
|
+ private DefaultConsole console;
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private Object mutesMutex = new Object();
|
|
+ private Vector updates = new Vector();
|
|
+ public static RejectHandler rej = new RejectHandler();
|
|
+
|
|
+ public MuteListPart() {
|
|
+ System.out.println("Mutes Loaded");
|
|
+ }
|
|
+
|
|
+ private void loadMutes() {
|
|
+ this.mutes = new Vector();
|
|
+
|
|
+ for(int var1 = 0; var1 < 50; ++var1) {
|
|
+ String var2 = this.serverSection.getIniString("Mute" + var1, "");
|
|
+ if (var2.length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.mutes, var2)) {
|
|
+ this.mutes.addElement(var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.mutes.size() == 0) {
|
|
+ String var4 = this.serverSection.getIniString("Mutes", "");
|
|
+ StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
+
|
|
+ while(var5.hasMoreTokens() && this.mutes.size() < 50) {
|
|
+ String var3 = var5.nextToken();
|
|
+ if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.mutes, var3)) {
|
|
+ this.mutes.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.mutes.size() != 0) {
|
|
+ this.saveMutes();
|
|
+ this.serverSection.setIniString("Mutes", "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ void saveMutes() {
|
|
+ String var1 = "";
|
|
+ int var2 = this.mutes.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ this.serverSection.setIniString("Mute" + var3, (String)this.mutes.elementAt(var3));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Mute" + var2, "");
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)var1;
|
|
+ this.editItem = var1.addMenuItem(Console.message("Edit-Mute-List"), "Options");
|
|
+ this.editItem.setEnabled(this.mutes != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ if (var1.target == this.editItem) {
|
|
+ new EditNamesDialog(this, Console.message("Edit-Mute-List"), Console.message("Add-Mute-List"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ int var3 = this.updates.size();
|
|
+ if (var3 != 0) {
|
|
+ WorldServer var4 = this.console.getServerNew();
|
|
+ if (var4 != null) {
|
|
+ for(int var5 = 0; var5 < var3; ++var5) {
|
|
+ String var6 = (String)this.updates.elementAt(var5);
|
|
+ boolean var7 = this.mutes.contains(var6);
|
|
+ NetworkObject var8 = var4.getObject(new ObjID(var6));
|
|
+ if (var8 instanceof Drone) {
|
|
+ Drone var9 = (Drone)var8;
|
|
+ var9.muteStateChanged();
|
|
+ }
|
|
+
|
|
+ this.console.getFriends().changeMuteState(var6, var7);
|
|
+ }
|
|
+
|
|
+ this.updates.removeAllElements();
|
|
+ this.syncMutes = (Vector)this.mutes.clone();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ this.loadMutes();
|
|
+ if (this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean isMuted(WorldServer var0, String var1) {
|
|
+ if (var0 != null && var1 != null) {
|
|
+ Galaxy var2 = var0.getGalaxy();
|
|
+ Enumeration var3 = var2.getConsoles();
|
|
+
|
|
+ while(var3.hasMoreElements()) {
|
|
+ Object var4 = var3.nextElement();
|
|
+ if (var4 instanceof DefaultConsole) {
|
|
+ NET.worlds.console.MuteListPart var5 = ((DefaultConsole)var4).getMutes();
|
|
+ if (var5.mutes != null) {
|
|
+ return FriendsListPart.icontains(var5.mutes, var1);
|
|
+ }
|
|
+ }
|
|
}
|
|
- }
|
|
+ }
|
|
|
|
- if (this.mutes.size() != 0) {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static boolean isRejecting(WorldServer var0, String var5) {
|
|
+ if (var0 != null) {
|
|
+ Galaxy var1 = var0.getGalaxy();
|
|
+ Enumeration var2 = var1.getConsoles();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof DefaultConsole) {
|
|
+ MuteListPart var4 = ((DefaultConsole)var3).getMutes();
|
|
+ return var4.rejectWhispers || !allowWhisper(var5);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static boolean isRejectingTele(WorldServer var0, String var5) {
|
|
+ if (var0 != null) {
|
|
+ Galaxy var1 = var0.getGalaxy();
|
|
+ Enumeration var2 = var1.getConsoles();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof DefaultConsole) {
|
|
+ MuteListPart var4 = ((DefaultConsole)var3).getMutes();
|
|
+ return var4.rejectTeleports || !allowTeleport(var5);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ private static boolean allowWhisper(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("WhisperPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && FriendsListPart.icontains(FriendsListPart.friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ private static boolean allowTeleport(String player) {
|
|
+ int value = IniFile.gamma().getIniInt("TeleportPrivacy", 0);
|
|
+ if (value != 0) {
|
|
+ if (value == 1 && FriendsListPart.icontains(FriendsListPart.friends, player)) return true;
|
|
+ else return false;
|
|
+ } else return true;
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.mutes.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int var1) {
|
|
+ return (String)this.mutes.elementAt(var1);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ String var3 = (String)this.mutes.elementAt(var1);
|
|
+ this.mutes.removeElementAt(var1);
|
|
this.saveMutes();
|
|
- this.serverSection.setIniString("Mutes", "");
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- void saveMutes() {
|
|
- int count = this.mutes.size();
|
|
-
|
|
- for(int i = 0; i < count; ++i) {
|
|
- this.serverSection.setIniString("Mute" + i, (String)this.mutes.elementAt(i));
|
|
- }
|
|
-
|
|
- this.serverSection.setIniString("Mute" + count, "");
|
|
- }
|
|
-
|
|
- private void setDisableWhisper() {
|
|
- this.rejectWhispers = IniFile.gamma().getIniInt("RejectWhispers", 0) == 1;
|
|
- if (this.rejectWhispers) {
|
|
- this.disableWhisperItem.setLabel(Console.message("Accept-Whispers"));
|
|
- } else {
|
|
- this.disableWhisperItem.setLabel(Console.message("Reject-Whispers"));
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void activate(Console c, Container f, Console prev) {
|
|
- active = this;
|
|
- this.console = (DefaultConsole)c;
|
|
- this.editItem = c.addMenuItem(Console.message("Edit-Mute-List"), "Options");
|
|
- this.editItem.setEnabled(this.mutes != null);
|
|
- this.disableWhisperItem = c.addMenuItem(Console.message("Reject-Whispers"), "Options");
|
|
- this.setDisableWhisper();
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- active = null;
|
|
- this.editItem = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event event, Object what) {
|
|
- if (event.target == this.editItem) {
|
|
- new EditNamesDialog(this, Console.message("Edit-Mute-List"), Console.message("Add-Mute-List"));
|
|
- return true;
|
|
- } else {
|
|
- if (event.target == this.disableWhisperItem) {
|
|
- IniFile.gamma().setIniInt("RejectWhispers", this.rejectWhispers ? 0 : 1);
|
|
- this.setDisableWhisper();
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent f) {
|
|
- synchronized(this.mutesMutex) {
|
|
- int count = this.updates.size();
|
|
- if (count != 0) {
|
|
- WorldServer server = this.console.getServerNew();
|
|
- if (server != null) {
|
|
- for(int i = 0; i < count; ++i) {
|
|
- String name = (String)this.updates.elementAt(i);
|
|
- boolean muted = this.mutes.contains(name);
|
|
- NetworkObject obj = server.getObject(new ObjID(name));
|
|
- if (obj instanceof Drone) {
|
|
- Drone d = (Drone)obj;
|
|
- d.muteStateChanged();
|
|
- }
|
|
-
|
|
- this.console.getFriends().changeMuteState(name, muted);
|
|
- }
|
|
-
|
|
- this.updates.removeAllElements();
|
|
- this.syncMutes = (Vector)this.mutes.clone();
|
|
- }
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void setServer(WorldServer server, IniFile serverSection) {
|
|
- this.serverSection = serverSection;
|
|
- this.galaxy = server.getGalaxy();
|
|
- this.loadMutes();
|
|
- if (this.editItem != null) {
|
|
- this.editItem.setEnabled(true);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isMuted(WorldServer server, String name) {
|
|
- if (server != null && name != null) {
|
|
- Galaxy g = server.getGalaxy();
|
|
- Enumeration consoleList = g.getConsoles();
|
|
-
|
|
- while(consoleList.hasMoreElements()) {
|
|
- Object c = consoleList.nextElement();
|
|
- if (c instanceof DefaultConsole) {
|
|
- MuteListPart target = ((DefaultConsole)c).getMutes();
|
|
- if (target.mutes != null) {
|
|
- return FriendsListPart.icontains(target.mutes, name);
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public static boolean isRejecting(WorldServer server) {
|
|
- if (server != null) {
|
|
- Galaxy g = server.getGalaxy();
|
|
- Enumeration consoleList = g.getConsoles();
|
|
-
|
|
- while(consoleList.hasMoreElements()) {
|
|
- Object c = consoleList.nextElement();
|
|
- if (c instanceof DefaultConsole) {
|
|
- MuteListPart target = ((DefaultConsole)c).getMutes();
|
|
- if (target.rejectWhispers) {
|
|
- return true;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
- }
|
|
-
|
|
- public int getNameListCount() {
|
|
- return this.mutes.size();
|
|
- }
|
|
-
|
|
- public String getNameListName(int index) {
|
|
- return (String)this.mutes.elementAt(index);
|
|
- }
|
|
-
|
|
- public void removeNameListName(int index) {
|
|
- synchronized(this.mutesMutex) {
|
|
- String name = (String)this.mutes.elementAt(index);
|
|
- this.mutes.removeElementAt(index);
|
|
- this.saveMutes();
|
|
- if (!this.updates.contains(name)) {
|
|
- this.updates.addElement(name);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public boolean mayAddNameListName(java.awt.Window currentWindow) {
|
|
- if (this.mutes.size() < 50) {
|
|
- return true;
|
|
- } else {
|
|
- Object[] arguments = new Object[]{new String("50")};
|
|
- new OkCancelDialog(currentWindow, (DialogReceiver)null, Console.message("Too-many-names"), (String)null, Console.message("OK"), MessageFormat.format(Console.message("You-are-limitedM"), arguments), true);
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- public int addNameListName(String name) {
|
|
- synchronized(this.mutesMutex) {
|
|
- if (name.toLowerCase().startsWith("host")) {
|
|
- return -1;
|
|
- } else {
|
|
- int index = FriendsListPart.iindexOf(this.mutes, name);
|
|
- if (index != -1) {
|
|
- return index;
|
|
+ if (!this.updates.contains(var3)) {
|
|
+ this.updates.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window var1) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String var1) {
|
|
+ synchronized(this.mutesMutex) {
|
|
+ if (var1.toLowerCase().startsWith("host")) {
|
|
+ return -1;
|
|
} else {
|
|
- this.mutes.addElement(name);
|
|
- this.saveMutes();
|
|
- if (!this.updates.contains(name)) {
|
|
- this.updates.addElement(name);
|
|
- }
|
|
-
|
|
- return this.mutes.size() - 1;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
+ int var3 = FriendsListPart.iindexOf(this.mutes, var1);
|
|
+ if (var3 != -1) {
|
|
+ return var3;
|
|
+ } else {
|
|
+ this.mutes.addElement(var1);
|
|
+ this.saveMutes();
|
|
+ if (!this.updates.contains(var1)) {
|
|
+ this.updates.addElement(var1);
|
|
+ }
|
|
+
|
|
+ return this.mutes.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/console/OpenWhisperDialog.java b/1920/NET/worlds/console/OpenWhisperDialog.java
|
|
--- a/1920/NET/worlds/console/OpenWhisperDialog.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/OpenWhisperDialog.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,83 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by FernFlower decompiler)
|
|
+//
|
|
+
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.awt.Button;
|
|
+import java.awt.Event;
|
|
+import java.awt.Font;
|
|
+import java.awt.GridBagConstraints;
|
|
+import java.awt.GridBagLayout;
|
|
+import java.awt.Label;
|
|
+import java.awt.Panel;
|
|
+import java.awt.TextField;
|
|
+import java.awt.Window;
|
|
+
|
|
+public class OpenWhisperDialog extends PolledDialog {
|
|
+ private Button okButton = new Button(Console.message("OK"));
|
|
+ private Button cancelButton = new Button(Console.message("Cancel"));
|
|
+ private static Font font = new Font(Console.message("MenuFont"), 0, 12);
|
|
+ private static Font bfont = new Font(Console.message("ButtonFont"), 0, 12);
|
|
+ private TextField userField = new TextField("");
|
|
+
|
|
+ public OpenWhisperDialog(Window var1, DialogReceiver var2, String var3) {
|
|
+ super(var1, var2, var3, true);
|
|
+ this.ready();
|
|
+ }
|
|
+
|
|
+ public String getUser() {
|
|
+ return this.userField.getText();
|
|
+ }
|
|
+
|
|
+ protected void build() {
|
|
+ this.userField = new TextField("", 40);
|
|
+ this.userField.setFont(font);
|
|
+ GridBagLayout var1 = new GridBagLayout();
|
|
+ this.setLayout(var1);
|
|
+ GridBagConstraints var2 = new GridBagConstraints();
|
|
+ var2.fill = 0;
|
|
+ var2.weightx = 1.0D;
|
|
+ var2.weighty = 1.0D;
|
|
+ var2.gridwidth = 2;
|
|
+ var2.gridheight = 1;
|
|
+ this.add(var1, new Label(Console.message("Name")), var2);
|
|
+ var2.gridwidth = 0;
|
|
+ var2.fill = 2;
|
|
+ this.add(var1, this.userField, var2);
|
|
+ Panel var3 = new Panel();
|
|
+ this.okButton.setFont(font);
|
|
+ this.cancelButton.setFont(font);
|
|
+ var3.add(this.okButton);
|
|
+ var3.add(this.cancelButton);
|
|
+ var2.gridwidth = 0;
|
|
+ var2.fill = 0;
|
|
+ this.add(var1, var3, var2);
|
|
+ }
|
|
+
|
|
+ public void show() {
|
|
+ super.show();
|
|
+ this.userField.requestFocus();
|
|
+ this.userField.selectAll();
|
|
+ }
|
|
+
|
|
+ public boolean handleEvent(Event var1) {
|
|
+ return var1.id == 201 ? this.done(false) : super.handleEvent(var1);
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ Object var3 = var1.target;
|
|
+ if (var3 == this.cancelButton) {
|
|
+ this.done(false);
|
|
+ } else if (var3 == this.okButton) {
|
|
+ this.done(true);
|
|
+ }
|
|
+
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public boolean keyDown(Event var1, int var2) {
|
|
+ return var2 == 27 ? this.done(false) : super.keyDown(var1, var2);
|
|
+ }
|
|
+}
|
|
diff -ruN a/1920/NET/worlds/console/RejectHandler.java b/1920/NET/worlds/console/RejectHandler.java
|
|
--- a/1920/NET/worlds/console/RejectHandler.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/RejectHandler.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,37 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import java.util.ArrayList;
|
|
+import java.util.List;
|
|
+
|
|
+public class RejectHandler {
|
|
+
|
|
+ List whisperRej = null;
|
|
+ List teleportRej = null;
|
|
+
|
|
+ public RejectHandler () {
|
|
+ if (whisperRej == null) {
|
|
+ whisperRej = new ArrayList();
|
|
+ whisperRej.add("WORLDSMASTER");
|
|
+ }
|
|
+ if (teleportRej == null) {
|
|
+ teleportRej = new ArrayList();
|
|
+ teleportRej.add("WORLDSMASTER");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean rejectTeleport(String var1) {
|
|
+ return teleportRej.contains(var1);
|
|
+ }
|
|
+
|
|
+ public void addTeleportUser(String var1) {
|
|
+ teleportRej.add(var1);
|
|
+ }
|
|
+
|
|
+ public boolean rejectWhisper(String var1) {
|
|
+ return whisperRej.contains(var1);
|
|
+ }
|
|
+
|
|
+ public void addWhisperUser(String var1) {
|
|
+ whisperRej.add(var1);
|
|
+ }
|
|
+}
|
|
diff -ruN a/1920/NET/worlds/console/Shaper.java b/1920/NET/worlds/console/Shaper.java
|
|
--- a/1920/NET/worlds/console/Shaper.java 2024-01-08 01:46:32.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/Shaper.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,5 +1,6 @@
|
|
package NET.worlds.console;
|
|
|
|
+import NET.worlds.core.IniFile;
|
|
import NET.worlds.network.URL;
|
|
import NET.worlds.scape.LoadedURLSelf;
|
|
import NET.worlds.scape.Manifest;
|
|
@@ -9,273 +10,340 @@
|
|
import NET.worlds.scape.TeleportStatus;
|
|
import NET.worlds.scape.URLSelf;
|
|
import NET.worlds.scape.World;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
import java.awt.Container;
|
|
import java.awt.Event;
|
|
import java.awt.Menu;
|
|
import java.awt.MenuItem;
|
|
+import java.awt.event.ActionEvent;
|
|
+import java.awt.event.ActionListener;
|
|
+import java.io.FileWriter;
|
|
import java.io.IOException;
|
|
import java.util.Enumeration;
|
|
|
|
public class Shaper implements MainCallback, DialogReceiver, LoadedURLSelf {
|
|
- MenuItem newItem;
|
|
- MenuItem openItem;
|
|
- MenuItem saveItem;
|
|
- MenuItem propItem;
|
|
- MenuItem consolePropItem;
|
|
- MenuItem pilotPropItem;
|
|
- MenuItem undoItem;
|
|
- MenuItem cutItem;
|
|
- MenuItem copyItem;
|
|
- MenuItem pasteItem;
|
|
- MenuItem sortAttributesItem;
|
|
- MenuItem snapToolItem;
|
|
- MenuItem newLibraryItem;
|
|
- MenuItem newLibraryEntryItem;
|
|
- MenuItem iconsVisibleLibraryItem;
|
|
- Menu worldsMenu;
|
|
- MenuItem shaperVisibleItem;
|
|
- private World newWorldTemplate;
|
|
- private boolean makeNew = true;
|
|
- private static URL newworld = URL.make("home:NewWorld.world");
|
|
- private boolean quitFlag;
|
|
- private FileSaver fileSaver;
|
|
- private boolean worldListHasChanged = false;
|
|
-
|
|
- public Shaper() {
|
|
- Main.register(this);
|
|
- }
|
|
-
|
|
- public void activate(Console c, Container f, Console prev) {
|
|
- this.newItem = c.addMenuItem(Console.message("New"), "File", 78, false);
|
|
- this.openItem = c.addMenuItem(Console.message("Open"), "File", 79, false);
|
|
- this.saveItem = c.addMenuItem(Console.message("Save"), "File", 83, false);
|
|
- this.propItem = c.addMenuItem(Console.message("World-Prop"), "File");
|
|
- this.consolePropItem = c.addMenuItem(Console.message("Console-Prop"), "File");
|
|
- this.pilotPropItem = c.addMenuItem(Console.message("Pilot-Prop"), "File");
|
|
- this.undoItem = c.addMenuItem(Console.message("Undo"), "Edit", 90, false);
|
|
- c.getMenu("Edit").addSeparator();
|
|
- this.cutItem = c.addMenuItem(Console.message("Cut"), "Edit", 88, false);
|
|
- this.copyItem = c.addMenuItem(Console.message("Copy"), "Edit", 67, false);
|
|
- this.pasteItem = c.addMenuItem(Console.message("Paste"), "Edit", 86, false);
|
|
- this.sortAttributesItem = c.addMenuItem(Console.message("Sort-Attributes"), "Edit");
|
|
- this.snapToolItem = c.addMenuItem(Console.message("Snap-Tool-Settings"), "Edit");
|
|
- this.newLibraryItem = c.addMenuItem(Console.message("New-Library"), "Libraries");
|
|
- this.newLibraryEntryItem = c.addMenuItem(Console.message("New-Library-Entry"), "Libraries");
|
|
- this.iconsVisibleLibraryItem = c.addMenuItem(Console.message("Icons-On-Off"), "Libraries", 73, false);
|
|
- this.worldsMenu = c.getMenu("Worlds");
|
|
- this.worldListChange();
|
|
- this.shaperVisibleItem = c.addMenuItem(Console.message("Shaper-On-Off"), "Options");
|
|
- }
|
|
-
|
|
- public void deactivate() {
|
|
- this.worldsMenu = null;
|
|
- }
|
|
-
|
|
- public boolean action(Event event, Object what) {
|
|
- GammaFrame f = Console.getFrame();
|
|
- if (event.target == this.newItem) {
|
|
- this.makeNew = true;
|
|
- } else if (event.target == this.openItem) {
|
|
- new FileSysDialog(f, this, Console.message("Open-World"), 0, "World Save Files|*.world|World Class Files|*.class|World Files|*.class;*.world", "", true);
|
|
- } else if (event.target == this.saveItem) {
|
|
- new FileSysDialog(f, this, Console.message("Save-World"), 1, "World Save Files|*.world|World Manifest (text) Files|*.mft", this.getSaveName(), true);
|
|
- } else if (event.target == this.propItem) {
|
|
- if (Pilot.getActiveRoom() != null) {
|
|
- f.getEditTile().viewProperties(Pilot.getActiveWorld());
|
|
- }
|
|
- } else if (event.target == this.consolePropItem) {
|
|
- f.getEditTile().viewProperties(Console.getActive());
|
|
- } else if (event.target == this.pilotPropItem) {
|
|
- f.getEditTile().viewProperties(Pilot.getActive());
|
|
- } else if (event.target == this.sortAttributesItem) {
|
|
- new AttributeSortPanel(f);
|
|
- } else if (event.target == this.snapToolItem) {
|
|
- new SnapToolPanel(f);
|
|
- } else if (event.target == this.undoItem) {
|
|
- f.getEditTile().undo();
|
|
- } else if (event.target == this.cutItem) {
|
|
- f.getEditTile().cut();
|
|
- } else if (event.target == this.copyItem) {
|
|
- f.getEditTile().copy();
|
|
- } else if (event.target == this.pasteItem) {
|
|
- f.getEditTile().paste();
|
|
- } else if (event.target == this.newLibraryItem) {
|
|
- f.getLibrariesTile().addLibrary();
|
|
- } else if (event.target == this.newLibraryEntryItem) {
|
|
- f.getLibrariesTile().addElement();
|
|
- } else if (event.target == this.iconsVisibleLibraryItem) {
|
|
- f.getLibrariesTile().setIconsVisible(!f.getLibrariesTile().isIconsVisible());
|
|
- } else if (event.target == this.shaperVisibleItem) {
|
|
- f.setShaperVisible(!f.isShaperVisible());
|
|
- } else {
|
|
- int i = this.worldsMenu.getItemCount();
|
|
-
|
|
- do {
|
|
- --i;
|
|
- } while(i >= 0 && this.worldsMenu.getItem(i) != event.target);
|
|
-
|
|
- if (i < 0) {
|
|
+ MenuItem newItem;
|
|
+ MenuItem openItem;
|
|
+ MenuItem saveItem;
|
|
+ MenuItem propItem;
|
|
+ MenuItem consolePropItem;
|
|
+ MenuItem pilotPropItem;
|
|
+ MenuItem undoItem;
|
|
+ MenuItem cutItem;
|
|
+ MenuItem copyItem;
|
|
+ MenuItem pasteItem;
|
|
+ MenuItem sortAttributesItem;
|
|
+ MenuItem snapToolItem;
|
|
+ MenuItem newLibraryItem;
|
|
+ MenuItem newLibraryEntryItem;
|
|
+ MenuItem iconsVisibleLibraryItem;
|
|
+ Menu worldsMenu;
|
|
+ Menu whisperMenu;
|
|
+ MenuItem openWhisperItem;
|
|
+ MenuItem shaperVisibleItem;
|
|
+ private World newWorldTemplate;
|
|
+ private boolean makeNew = true;
|
|
+ private static URL newworld = URL.make("home:NewWorld.world");
|
|
+ private boolean quitFlag;
|
|
+ private FileSaver fileSaver;
|
|
+ private boolean worldListHasChanged = false;
|
|
+ private boolean whisperListHasChanged = false;
|
|
+
|
|
+ public Shaper() {
|
|
+ Main.register(this);
|
|
+ }
|
|
+
|
|
+ public void activate(Console var1, Container var2, Console var3) {
|
|
+ this.newItem = var1.addMenuItem(Console.message("New"), "File", 78, false);
|
|
+ this.openItem = var1.addMenuItem(Console.message("Open"), "File", 79, false);
|
|
+ this.saveItem = var1.addMenuItem(Console.message("Save"), "File", 83, false);
|
|
+ this.propItem = var1.addMenuItem(Console.message("World-Prop"), "File");
|
|
+ this.consolePropItem = var1.addMenuItem(Console.message("Console-Prop"), "File");
|
|
+ this.pilotPropItem = var1.addMenuItem(Console.message("Pilot-Prop"), "File");
|
|
+ this.undoItem = var1.addMenuItem(Console.message("Undo"), "Edit", 90, false);
|
|
+ var1.getMenu("Edit").addSeparator();
|
|
+ this.cutItem = var1.addMenuItem(Console.message("Cut"), "Edit", 88, false);
|
|
+ this.copyItem = var1.addMenuItem(Console.message("Copy"), "Edit", 67, false);
|
|
+ this.pasteItem = var1.addMenuItem(Console.message("Paste"), "Edit", 86, false);
|
|
+ this.sortAttributesItem = var1.addMenuItem(Console.message("Sort-Attributes"), "Edit");
|
|
+ this.snapToolItem = var1.addMenuItem(Console.message("Snap-Tool-Settings"), "Edit");
|
|
+ this.newLibraryItem = var1.addMenuItem(Console.message("New-Library"), "Libraries");
|
|
+ this.newLibraryEntryItem = var1.addMenuItem(Console.message("New-Library-Entry"), "Libraries");
|
|
+ this.iconsVisibleLibraryItem = var1.addMenuItem(Console.message("Icons-On-Off"), "Libraries", 73, false);
|
|
+ this.worldsMenu = var1.getMenu("Worlds");
|
|
+ this.whisperMenu = var1.getMenu("Whispers");
|
|
+ this.openWhisperItem = var1.addMenuItem(Console.message("Open Whisper"), "Whispers");
|
|
+ this.whisperMenu.addSeparator();
|
|
+
|
|
+ this.worldListChange();
|
|
+ this.whisperListChanged();
|
|
+
|
|
+ this.shaperVisibleItem = var1.addMenuItem(Console.message("Shaper-On-Off"), "Options");
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ this.worldsMenu = null;
|
|
+ this.whisperMenu = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event var1, Object var2) {
|
|
+ GammaFrame var3 = Console.getFrame();
|
|
+ if (var1.target == this.newItem) {
|
|
+ this.makeNew = true;
|
|
+ } else if (var1.target == this.openItem) {
|
|
+ new FileSysDialog(var3, this, Console.message("Open-World"), 0, "World Save Files|*.world|World Class Files|*.class|World Files|*.class;*.world", "", true);
|
|
+ } else if (var1.target == this.saveItem) {
|
|
+ new FileSysDialog(var3, this, Console.message("Save-World"), 1, "World Save Files|*.world|World Manifest (text) Files|*.mft", this.getSaveName(), true);
|
|
+ } else if (var1.target == this.propItem) {
|
|
+ if (Pilot.getActiveRoom() != null) {
|
|
+ var3.getEditTile().viewProperties(Pilot.getActiveWorld());
|
|
+ }
|
|
+ } else if (var1.target == this.consolePropItem) {
|
|
+ var3.getEditTile().viewProperties(Console.getActive());
|
|
+ } else if (var1.target == this.pilotPropItem) {
|
|
+ var3.getEditTile().viewProperties(Pilot.getActive());
|
|
+ } else if (var1.target == this.sortAttributesItem) {
|
|
+ new AttributeSortPanel(var3);
|
|
+ } else if (var1.target == this.snapToolItem) {
|
|
+ new SnapToolPanel(var3);
|
|
+ } else if (var1.target == this.undoItem) {
|
|
+ var3.getEditTile().undo();
|
|
+ } else if (var1.target == this.cutItem) {
|
|
+ var3.getEditTile().cut();
|
|
+ } else if (var1.target == this.copyItem) {
|
|
+ var3.getEditTile().copy();
|
|
+ } else if (var1.target == this.pasteItem) {
|
|
+ var3.getEditTile().paste();
|
|
+ } else if (var1.target == this.newLibraryItem) {
|
|
+ var3.getLibrariesTile().addLibrary();
|
|
+ } else if (var1.target == this.newLibraryEntryItem) {
|
|
+ var3.getLibrariesTile().addElement();
|
|
+ } else if (var1.target == this.iconsVisibleLibraryItem) {
|
|
+ var3.getLibrariesTile().setIconsVisible(!var3.getLibrariesTile().isIconsVisible());
|
|
+ } else if (var1.target == this.openWhisperItem) {
|
|
+ new OpenWhisperDialog(var3, this, Console.message("open-whisper"));
|
|
+ } else if (var1.target == this.shaperVisibleItem) {
|
|
+ var3.setShaperVisible(!var3.isShaperVisible());
|
|
+ } else {
|
|
return false;
|
|
- }
|
|
+ }
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public String getSaveName() {
|
|
+ return getSaveName(Pilot.getActive().getWorld());
|
|
+ }
|
|
+
|
|
+ public static String getSaveName(World var0) {
|
|
+ URL var1 = var0.getSourceURL();
|
|
+ String var2 = var1.unalias();
|
|
+ int var3 = var2.indexOf(58);
|
|
+ return var3 != -1 && var3 != 1 ? var1.getBase() : var2.replace('/', '\\');
|
|
+ }
|
|
+
|
|
+ public void dialogDone(Object var1, boolean var2) {
|
|
+ if (var2) {
|
|
+ if (var1 instanceof FileSysDialog) {
|
|
+ FileSysDialog var3 = (FileSysDialog) var1;
|
|
+ String var4 = var3.fileName();
|
|
+ if (var3.getMode() == 0) {
|
|
+ TeleportAction.teleport(var4, (TeleportStatus) null, true);
|
|
+ } else {
|
|
+ this.doSave(var4);
|
|
+ }
|
|
+ } else if (var1 instanceof OpenWhisperDialog) {
|
|
+ Console.startWhispering(((OpenWhisperDialog)var1).getUser());
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
+ this.newWorldTemplate = (World)var1;
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ if (this.quitFlag) {
|
|
+ if (this.fileSaver == null) {
|
|
+ this.fileSaver = new FileSaver();
|
|
+ }
|
|
+
|
|
+ switch(this.fileSaver.getState()) {
|
|
+ case 0:
|
|
+ GammaFrameState.saveBorder();
|
|
+ Main.end();
|
|
+ break;
|
|
+ case 2:
|
|
+ this.quitFlag = false;
|
|
+ this.fileSaver = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.newWorldTemplate != null) {
|
|
+ this.newWorldTemplate.incRef();
|
|
+ }
|
|
+
|
|
+ if (this.makeNew) {
|
|
+ this.makeNew = false;
|
|
+ if (this.newWorldTemplate == null) {
|
|
+ World.load(newworld, this, true);
|
|
+ } else {
|
|
+ World var1 = (World)this.newWorldTemplate.clone();
|
|
+ var1.setEdited(true);
|
|
+ TeleportAction.teleport(var1.getSourceURL().getAbsolute(), (TeleportStatus)null);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.worldListHasChanged) {
|
|
+ this.worldListHasChanged = false;
|
|
+ this.rebuildWorldsMenu();
|
|
+ }
|
|
+
|
|
+ if (this.whisperListHasChanged) {
|
|
+ this.whisperListHasChanged = false;
|
|
+ this.rebuildWhisperMenu();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void maybeQuit() {
|
|
+ this.quitFlag = true;
|
|
+ }
|
|
+
|
|
+ public void worldListChange() {
|
|
+ this.worldListHasChanged = true;
|
|
+ }
|
|
+
|
|
+ private void rebuildWorldsMenu() {
|
|
+ if (this.worldsMenu != null) {
|
|
+ while(this.worldsMenu.getItemCount() > 0) {
|
|
+ this.worldsMenu.remove(0);
|
|
+ }
|
|
+
|
|
+ Enumeration var1 = World.getWorlds();
|
|
+
|
|
+ while(true) {
|
|
+ World var2;
|
|
+ URL var3;
|
|
+ String var4;
|
|
+ do {
|
|
+ if (!var1.hasMoreElements()) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ var2 = (World)var1.nextElement();
|
|
+ var3 = var2.getSourceURL();
|
|
+ if (var3 == null) {
|
|
+ var4 = var2.getName();
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ var4 = var3.getAbsolute();
|
|
+ } while(var3.equals(newworld));
|
|
+
|
|
+ if (var2.getEdited()) {
|
|
+ var4 = var4 + " (changed)";
|
|
+ }
|
|
+
|
|
+ MenuItem newItem = new MenuItem(var4);
|
|
+ newItem.addActionListener(new ActionListener() {
|
|
+
|
|
+ public void actionPerformed(ActionEvent actionEvent) {
|
|
+ String var5 = ((MenuItem)actionEvent.getSource()).getLabel();
|
|
+ if (var5.endsWith(" (changed)")) {
|
|
+ var5 = var5.substring(0, var5.length() - 10);
|
|
+ }
|
|
+
|
|
+ TeleportAction.teleport(var5, (TeleportStatus) null);
|
|
+ }
|
|
+ });
|
|
+
|
|
+ this.worldsMenu.add(newItem);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void whisperListChanged() {
|
|
+ this.whisperListHasChanged = true;
|
|
+ }
|
|
+
|
|
+ private void rebuildWhisperMenu() {
|
|
+ if (this.whisperMenu != null) {
|
|
+ while(this.whisperMenu.getItemCount() - 2 > 0) {
|
|
+ this.whisperMenu.remove(2);
|
|
+ }
|
|
+
|
|
+ Enumeration var1 = WhisperManager.whisperManager().dialogs().elements();
|
|
+
|
|
+
|
|
+ while(true) {
|
|
+ WhisperDialog var2;
|
|
+ String var4;
|
|
+
|
|
+ do {
|
|
+ if (!var1.hasMoreElements()) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ var2 = (WhisperDialog) var1.nextElement();
|
|
+ var4 = var2.partner;
|
|
+ } while (var4 == null);
|
|
+
|
|
+ MenuItem newItem = new MenuItem(var4);
|
|
+ newItem.addActionListener(new ActionListener() {
|
|
+
|
|
+ public void actionPerformed(ActionEvent actionEvent) {
|
|
+ Console.startWhispering(((MenuItem)actionEvent.getSource()).getLabel());
|
|
+ }
|
|
+ });
|
|
+
|
|
+ this.whisperMenu.add(newItem);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void doSave(String var1) {
|
|
+ doSave(var1, Pilot.getActive().getWorld(), true);
|
|
+ }
|
|
+
|
|
+ public static boolean doSave(String var0, World var1, boolean var2) {
|
|
+ if (var2 && var0.endsWith(".mft")) {
|
|
+ try {
|
|
+ Manifest var6 = new Manifest(var0);
|
|
+ var6.saveProps(var1);
|
|
+ var6.done();
|
|
+ return true;
|
|
+ } catch (IOException var4) {
|
|
+ Console.println(Console.message("Error-manifest") + var4.toString());
|
|
+ }
|
|
+ } else {
|
|
+ if (var0.toLowerCase().endsWith(".wor")) {
|
|
+ var0 = var0.substring(0, var0.length() - 4);
|
|
+ }
|
|
+
|
|
+ if (!var0.toLowerCase().endsWith(".world")) {
|
|
+ var0 = var0 + ".world";
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ Saver var3 = new Saver(new URL(URL.getCurDir(), var0));
|
|
+ var3.save(var1);
|
|
+ var3.done();
|
|
+ var1.setEdited(false);
|
|
+ return true;
|
|
+ } catch (IOException var5) {
|
|
+ Console.println(Console.message("Error-saving") + var5.toString());
|
|
+ }
|
|
+ }
|
|
|
|
- String url = (String)what;
|
|
- if (url.endsWith(" (changed)")) {
|
|
- url = url.substring(0, url.length() - 10);
|
|
- }
|
|
-
|
|
- TeleportAction.teleport(url, (TeleportStatus)null);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public String getSaveName() {
|
|
- return getSaveName(Pilot.getActive().getWorld());
|
|
- }
|
|
-
|
|
- public static String getSaveName(World w) {
|
|
- URL url = w.getSourceURL();
|
|
- String name = url.unalias();
|
|
- int index = name.indexOf(58);
|
|
- return index != -1 && index != 1 ? url.getBase() : name.replace('/', '\\');
|
|
- }
|
|
-
|
|
- public void dialogDone(Object who, boolean confirmed) {
|
|
- if (confirmed) {
|
|
- FileSysDialog fileDialog = (FileSysDialog)who;
|
|
- String name = fileDialog.fileName();
|
|
- if (fileDialog.getMode() == 0) {
|
|
- TeleportAction.teleport(name, (TeleportStatus)null, true);
|
|
- } else {
|
|
- this.doSave(name);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void loadedURLSelf(URLSelf o, URL url, String err) {
|
|
- this.newWorldTemplate = (World)o;
|
|
- }
|
|
-
|
|
- public void mainCallback() {
|
|
- if (this.quitFlag) {
|
|
- if (this.fileSaver == null) {
|
|
- this.fileSaver = new FileSaver();
|
|
- }
|
|
-
|
|
- switch (this.fileSaver.getState()) {
|
|
- case 0:
|
|
- GammaFrameState.saveBorder();
|
|
- Main.end();
|
|
- case 1:
|
|
- default:
|
|
- break;
|
|
- case 2:
|
|
- this.quitFlag = false;
|
|
- this.fileSaver = null;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.newWorldTemplate != null) {
|
|
- this.newWorldTemplate.incRef();
|
|
- }
|
|
-
|
|
- if (this.makeNew) {
|
|
- this.makeNew = false;
|
|
- if (this.newWorldTemplate == null) {
|
|
- World.load(newworld, this, true);
|
|
- } else {
|
|
- World w = (World)this.newWorldTemplate.clone();
|
|
- w.setEdited(true);
|
|
- TeleportAction.teleport(w.getSourceURL().getAbsolute(), (TeleportStatus)null);
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.worldListHasChanged) {
|
|
- this.worldListHasChanged = false;
|
|
- this.rebuildWorldsMenu();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void maybeQuit() {
|
|
- this.quitFlag = true;
|
|
- }
|
|
-
|
|
- public void worldListChange() {
|
|
- this.worldListHasChanged = true;
|
|
- }
|
|
-
|
|
- private void rebuildWorldsMenu() {
|
|
- if (this.worldsMenu != null) {
|
|
- while(this.worldsMenu.getItemCount() > 0) {
|
|
- this.worldsMenu.remove(0);
|
|
- }
|
|
-
|
|
- Enumeration e = World.getWorlds();
|
|
-
|
|
- while(true) {
|
|
- World w;
|
|
- URL url;
|
|
- String name;
|
|
- do {
|
|
- if (!e.hasMoreElements()) {
|
|
- return;
|
|
- }
|
|
-
|
|
- w = (World)e.nextElement();
|
|
- url = w.getSourceURL();
|
|
- if (url == null) {
|
|
- name = w.getName();
|
|
- break;
|
|
- }
|
|
-
|
|
- name = url.getAbsolute();
|
|
- } while(url.equals(newworld));
|
|
-
|
|
- if (w.getEdited()) {
|
|
- name = name + " (changed)";
|
|
- }
|
|
-
|
|
- this.worldsMenu.add(new MenuItem(name));
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void doSave(String name) {
|
|
- doSave(name, Pilot.getActive().getWorld(), true);
|
|
- }
|
|
-
|
|
- public static boolean doSave(String name, World world, boolean allowManifest) {
|
|
- if (allowManifest && name.endsWith(".mft")) {
|
|
- try {
|
|
- Manifest mft = new Manifest(name);
|
|
- mft.saveProps(world);
|
|
- mft.done();
|
|
- return true;
|
|
- } catch (IOException var4) {
|
|
- Console.println(Console.message("Error-manifest") + var4.toString());
|
|
- }
|
|
- } else {
|
|
- if (name.toLowerCase().endsWith(".wor")) {
|
|
- name = name.substring(0, name.length() - 4);
|
|
- }
|
|
-
|
|
- if (!name.toLowerCase().endsWith(".world")) {
|
|
- name = name + ".world";
|
|
- }
|
|
-
|
|
- try {
|
|
- Saver saver = new Saver(new URL(URL.getCurDir(), name));
|
|
- saver.save(world);
|
|
- saver.done();
|
|
- world.setEdited(false);
|
|
- return true;
|
|
- } catch (IOException var5) {
|
|
- Console.println(Console.message("Error-saving") + var5.toString());
|
|
- }
|
|
- }
|
|
+ return false;
|
|
+ }
|
|
|
|
- return false;
|
|
- }
|
|
+ private boolean containsItem(Menu menu, MenuItem item) {
|
|
+ for (int e = 0; e < menu.getItemCount(); e++) {
|
|
+ MenuItem curItem = menu.getItem(e);
|
|
+ System.out.println(curItem + " / " + item);
|
|
+ if (curItem == item) return true;
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/console/StyledTextCanvas.java b/1920/NET/worlds/console/StyledTextCanvas.java
|
|
--- a/1920/NET/worlds/console/StyledTextCanvas.java 2024-01-08 01:46:30.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/StyledTextCanvas.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -12,196 +12,196 @@
|
|
import java.awt.event.MouseEvent;
|
|
|
|
class StyledTextCanvas extends Canvas {
|
|
- private static final long serialVersionUID = -2680423246934436331L;
|
|
- private MouseEvent delayedMouseEvent = null;
|
|
- protected int mouseX = -1;
|
|
- protected int mouseY = -1;
|
|
- protected int startX = -1;
|
|
- protected int startY = -1;
|
|
- protected int endX = -1;
|
|
- protected int endY = -1;
|
|
- protected long mouseWhen = 0L;
|
|
- protected boolean mouseActive = false;
|
|
- protected boolean mouseDoubleClick = false;
|
|
- protected static long doubleClickSpeed = (long)IniFile.override().getIniInt("DoubleClickSpeed", 300);
|
|
-
|
|
- public StyledTextCanvas() {
|
|
- this.enableEvents(61L);
|
|
- this.setEnabled(true);
|
|
- }
|
|
-
|
|
- public void sendDelayedMouseEvent(MouseEvent e) {
|
|
- synchronized(this.getParent()) {
|
|
- this.delayedMouseEvent = e;
|
|
- }
|
|
- }
|
|
-
|
|
- public void setBounds(int x, int y, int w, int h) {
|
|
- if (this.getParent() != null && w >= 0 && h >= 0) {
|
|
- synchronized(this.getParent()) {
|
|
- if (this.getParent() instanceof GammaTextArea) {
|
|
- GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
- gta.setWidth(w);
|
|
- gta.setHeight(h);
|
|
- gta.rewrap();
|
|
- }
|
|
+ private static final long serialVersionUID = -2680423246934436331L;
|
|
+ private MouseEvent delayedMouseEvent = null;
|
|
+ protected int mouseX = -1;
|
|
+ protected int mouseY = -1;
|
|
+ protected int startX = -1;
|
|
+ protected int startY = -1;
|
|
+ protected int endX = -1;
|
|
+ protected int endY = -1;
|
|
+ protected long mouseWhen = 0L;
|
|
+ protected boolean mouseActive = false;
|
|
+ protected boolean mouseDoubleClick = false;
|
|
+ protected static long doubleClickSpeed = (long)IniFile.override().getIniInt("DoubleClickSpeed", 300);
|
|
+
|
|
+ public StyledTextCanvas() {
|
|
+ this.enableEvents(61L);
|
|
+ this.setEnabled(true);
|
|
+ }
|
|
+
|
|
+ public void sendDelayedMouseEvent(MouseEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ this.delayedMouseEvent = e;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void setBounds(int x, int y, int w, int h) {
|
|
+ if (this.getParent() != null && w >= 0 && h >= 0) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (this.getParent() instanceof GammaTextArea) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ gta.setWidth(w);
|
|
+ gta.setHeight(h);
|
|
+ gta.rewrap();
|
|
+ }
|
|
+
|
|
+ super.setBounds(x, y, w, h);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ protected void processMouseMotionEvent(MouseEvent e) {
|
|
+ if (e.getID() == 506 && this.mouseActive) {
|
|
+ this.processMouseEvent(e);
|
|
+ }
|
|
+
|
|
+ super.processMouseMotionEvent(e);
|
|
+ }
|
|
+
|
|
+ protected void processMouseEvent(MouseEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (e.getID() == 500) {
|
|
+ if (this.mouseWhen > 0L && e.getWhen() - this.mouseWhen <= doubleClickSpeed) {
|
|
+ this.mouseDoubleClick = true;
|
|
+ this.mouseWhen = 0L;
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ this.getParent().repaint();
|
|
+ } else {
|
|
+ this.mouseDoubleClick = false;
|
|
+ this.mouseWhen = e.getWhen();
|
|
+ if (e.getButton() == 1 && !this.mouseActive && (e.getModifiers() & 1) == 0) {
|
|
+ ((GammaTextArea)this.getParent()).selectionStart = -1;
|
|
+ ((GammaTextArea)this.getParent()).selectionEnd = -1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ } else if (e.getID() == 501) {
|
|
+ if (e.getButton() == 1) {
|
|
+ if ((e.getModifiers() & 1) == 0) {
|
|
+ if (((GammaTextArea)this.getParent()).selectionStart >= 0 && ((GammaTextArea)this.getParent()).selectionEnd > ((GammaTextArea)this.getParent()).selectionStart) {
|
|
+ ((GammaTextArea)this.getParent()).selectionStart = -1;
|
|
+ ((GammaTextArea)this.getParent()).selectionEnd = -1;
|
|
+ } else {
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ this.mouseActive = true;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ }
|
|
+ } else {
|
|
+ this.mouseX = this.startX = this.endX = e.getX();
|
|
+ this.mouseY = this.startY = this.endY = e.getY();
|
|
+ this.mouseActive = true;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ }
|
|
+
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ } else if (!this.mouseActive || e.getID() != 506 && e.getID() != 507 && e.getID() != 507) {
|
|
+ if (e.getID() == 502) {
|
|
+ if (e.getButton() == 1 && this.mouseActive) {
|
|
+ this.mouseX = this.endX = e.getX();
|
|
+ this.mouseY = this.endY = e.getY();
|
|
+ this.mouseActive = false;
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = false;
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
|
|
- super.setBounds(x, y, w, h);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- protected void processMouseMotionEvent(MouseEvent e) {
|
|
- if (e.getID() == 506 && this.mouseActive) {
|
|
- this.processMouseEvent(e);
|
|
- }
|
|
-
|
|
- super.processMouseMotionEvent(e);
|
|
- }
|
|
-
|
|
- protected void processMouseEvent(MouseEvent e) {
|
|
- synchronized(this.getParent()) {
|
|
- if (e.getID() == 500) {
|
|
- if (this.mouseWhen > 0L && e.getWhen() - this.mouseWhen <= doubleClickSpeed) {
|
|
- this.mouseDoubleClick = true;
|
|
- this.mouseWhen = 0L;
|
|
- this.mouseX = this.startX = this.endX = e.getX();
|
|
- this.mouseY = this.startY = this.endY = e.getY();
|
|
- ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
- this.getParent().repaint();
|
|
+ this.getParent().requestFocus();
|
|
+ }
|
|
} else {
|
|
- this.mouseDoubleClick = false;
|
|
- this.mouseWhen = e.getWhen();
|
|
- if (e.getButton() == 1 && !this.mouseActive && (e.getModifiers() & 1) == 0) {
|
|
- ((GammaTextArea)this.getParent()).selectionStart = -1;
|
|
- ((GammaTextArea)this.getParent()).selectionEnd = -1;
|
|
- }
|
|
- }
|
|
-
|
|
- this.getParent().requestFocus();
|
|
- } else if (e.getID() == 501) {
|
|
- if (e.getButton() == 1) {
|
|
- if ((e.getModifiers() & 1) == 0) {
|
|
- if (((GammaTextArea)this.getParent()).selectionStart >= 0 && ((GammaTextArea)this.getParent()).selectionEnd > ((GammaTextArea)this.getParent()).selectionStart) {
|
|
- ((GammaTextArea)this.getParent()).selectionStart = -1;
|
|
- ((GammaTextArea)this.getParent()).selectionEnd = -1;
|
|
- } else {
|
|
- this.mouseX = this.startX = this.endX = e.getX();
|
|
- this.mouseY = this.startY = this.endY = e.getY();
|
|
- this.mouseActive = true;
|
|
- ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
- }
|
|
- } else {
|
|
- this.mouseX = this.startX = this.endX = e.getX();
|
|
- this.mouseY = this.startY = this.endY = e.getY();
|
|
- this.mouseActive = true;
|
|
- ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
- }
|
|
-
|
|
- this.getParent().repaint();
|
|
- }
|
|
-
|
|
- this.getParent().requestFocus();
|
|
- } else if (!this.mouseActive || e.getID() != 506 && e.getID() != 507 && e.getID() != 507) {
|
|
- if (e.getID() == 502) {
|
|
- if (e.getButton() == 1 && this.mouseActive) {
|
|
- this.mouseX = this.endX = e.getX();
|
|
- this.mouseY = this.endY = e.getY();
|
|
- this.mouseActive = false;
|
|
- ((GammaTextArea)this.getParent()).selectionConversion = false;
|
|
- this.getParent().repaint();
|
|
- }
|
|
-
|
|
- this.getParent().requestFocus();
|
|
- }
|
|
- } else {
|
|
- if ((e.getModifiers() & 16) != 0) {
|
|
- this.mouseX = this.endX = e.getX();
|
|
- this.mouseY = this.endY = e.getY();
|
|
- ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
- this.getParent().repaint();
|
|
- }
|
|
-
|
|
- this.getParent().requestFocus();
|
|
- }
|
|
-
|
|
- ((GammaTextArea)this.getParent()).processMouseEvent(e);
|
|
- super.processMouseEvent(e);
|
|
- }
|
|
- }
|
|
-
|
|
- public void update(Graphics g) {
|
|
- this.paint(g);
|
|
- }
|
|
-
|
|
- protected void processKeyEvent(KeyEvent e) {
|
|
- synchronized(this.getParent()) {
|
|
- if (e.getID() == 401) {
|
|
- Scrollbar s = null;
|
|
- if (this.getParent() instanceof GammaTextArea) {
|
|
- GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
- s = gta.getVertScrollbar();
|
|
- }
|
|
-
|
|
- if (e.getKeyCode() == 33) {
|
|
- if (s != null && s.isEnabled()) {
|
|
- s.dispatchEvent(e);
|
|
- }
|
|
- } else if (e.getKeyCode() == 34 && s != null && s.isEnabled()) {
|
|
- s.dispatchEvent(e);
|
|
- }
|
|
- }
|
|
-
|
|
- super.processKeyEvent(e);
|
|
- }
|
|
- }
|
|
-
|
|
- public void paint(Graphics g) {
|
|
- synchronized(this.getParent()) {
|
|
- if (this.getParent().isEnabled()) {
|
|
- GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
- Rectangle r = this.getBounds();
|
|
- if (r.width <= 0 || r.height <= 0) {
|
|
- return;
|
|
- }
|
|
-
|
|
- Image offImage = this.createImage(r.width, r.height);
|
|
- Graphics offGraphic = offImage.getGraphics();
|
|
- offGraphic.setColor(GammaTextArea.getBackgroundColor());
|
|
- offGraphic.fillRect(r.x, r.y, r.width, r.height);
|
|
- offGraphic.setColor(Color.black);
|
|
- if (gta.getHasFocus()) {
|
|
- offGraphic.setColor(Color.blue);
|
|
- offGraphic.drawRect(r.x, r.y, r.width - 1, r.height - 1);
|
|
- offGraphic.drawRect(r.x + 1, r.y + 1, r.width - 2, r.height - 2);
|
|
- offGraphic.setColor(Color.black);
|
|
- }
|
|
-
|
|
- offGraphic.setFont(gta.getFont());
|
|
- FontMetrics fm = offGraphic.getFontMetrics(gta.getFont());
|
|
- gta._curpos = 0;
|
|
- int i;
|
|
- if (gta.getNumLines() <= gta.getCanvasLines()) {
|
|
- for(i = 0; i < gta.getNumLines(); ++i) {
|
|
- gta.drawLine(offGraphic, i, (i + 1) * fm.getHeight() - fm.getDescent());
|
|
- }
|
|
- } else {
|
|
- i = gta.getScrollLine();
|
|
-
|
|
- for(int j = 1; i < gta.getNumLines(); ++j) {
|
|
- gta.drawLine(offGraphic, i, j * fm.getHeight() - fm.getDescent());
|
|
- ++i;
|
|
- }
|
|
- }
|
|
-
|
|
- g.drawImage(offImage, 0, 0, this);
|
|
- if (this.delayedMouseEvent != null) {
|
|
- this.processMouseEvent(this.delayedMouseEvent);
|
|
- this.delayedMouseEvent = null;
|
|
+ if ((e.getModifiers() & 16) != 0) {
|
|
+ this.mouseX = this.endX = e.getX();
|
|
+ this.mouseY = this.endY = e.getY();
|
|
+ ((GammaTextArea)this.getParent()).selectionConversion = true;
|
|
+ this.getParent().repaint();
|
|
+ }
|
|
+
|
|
+ this.getParent().requestFocus();
|
|
+ }
|
|
+
|
|
+ ((GammaTextArea)this.getParent()).processMouseEvent(e);
|
|
+ super.processMouseEvent(e);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void update(Graphics g) {
|
|
+ this.paint(g);
|
|
+ }
|
|
+
|
|
+ protected void processKeyEvent(KeyEvent e) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (e.getID() == 401) {
|
|
+ Scrollbar s = null;
|
|
+ if (this.getParent() instanceof GammaTextArea) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ s = gta.getVertScrollbar();
|
|
+ }
|
|
+
|
|
+ if (e.getKeyCode() == 33) {
|
|
+ if (s != null && s.isEnabled()) {
|
|
+ s.dispatchEvent(e);
|
|
+ }
|
|
+ } else if (e.getKeyCode() == 34 && s != null && s.isEnabled()) {
|
|
+ s.dispatchEvent(e);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.processKeyEvent(e);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void paint(Graphics g) {
|
|
+ synchronized(this.getParent()) {
|
|
+ if (this.getParent().isEnabled()) {
|
|
+ GammaTextArea gta = (GammaTextArea)this.getParent();
|
|
+ Rectangle r = this.getBounds();
|
|
+ if (r.width <= 0 || r.height <= 0) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ Image offImage = this.createImage(r.width, r.height);
|
|
+ Graphics offGraphic = offImage.getGraphics();
|
|
+ offGraphic.setColor(GammaTextArea.getBackgroundColor());
|
|
+ offGraphic.fillRect(r.x, r.y, r.width, r.height);
|
|
+ offGraphic.setColor(Color.black);
|
|
+ if (gta.getHasFocus()) {
|
|
+ offGraphic.setColor(Color.blue);
|
|
+ offGraphic.drawRect(r.x, r.y, r.width - 1, r.height - 1);
|
|
+ offGraphic.drawRect(r.x + 1, r.y + 1, r.width - 2, r.height - 2);
|
|
+ offGraphic.setColor(Color.black);
|
|
+ }
|
|
+
|
|
+ offGraphic.setFont(gta.getFont());
|
|
+ FontMetrics fm = offGraphic.getFontMetrics(gta.getFont());
|
|
+ gta._curpos = 0;
|
|
+ int i;
|
|
+ if (gta.getNumLines() <= gta.getCanvasLines()) {
|
|
+ for(i = 0; i < gta.getNumLines(); ++i) {
|
|
+ gta.drawLine(offGraphic, i, (i + 1) * fm.getHeight() - fm.getDescent());
|
|
+ }
|
|
+ } else {
|
|
+ i = gta.getScrollLine();
|
|
+
|
|
+ for(int j = 1; i < gta.getNumLines(); ++j) {
|
|
+ gta.drawLine(offGraphic, i, j * fm.getHeight() - fm.getDescent());
|
|
+ ++i;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ g.drawImage(offImage, 0, 0, this);
|
|
+ if (this.delayedMouseEvent != null) {
|
|
+ this.processMouseEvent(this.delayedMouseEvent);
|
|
+ this.delayedMouseEvent = null;
|
|
+ }
|
|
}
|
|
- }
|
|
|
|
- }
|
|
- }
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/console/TarListPart.java b/1920/NET/worlds/console/TarListPart.java
|
|
--- a/1920/NET/worlds/console/TarListPart.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/TarListPart.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,204 @@
|
|
+package NET.worlds.console;
|
|
+
|
|
+import NET.worlds.core.IniFile;
|
|
+import NET.worlds.network.Galaxy;
|
|
+import NET.worlds.network.NetworkObject;
|
|
+import NET.worlds.network.ObjID;
|
|
+import NET.worlds.network.WorldServer;
|
|
+import NET.worlds.scape.Drone;
|
|
+import NET.worlds.scape.FrameEvent;
|
|
+
|
|
+import java.awt.Window;
|
|
+import java.awt.*;
|
|
+import java.util.Enumeration;
|
|
+import java.util.StringTokenizer;
|
|
+import java.util.Vector;
|
|
+
|
|
+public class TarListPart implements FramePart, NameListOwner{
|
|
+ private Galaxy galaxy;
|
|
+ private IniFile serverSection;
|
|
+ private final String name = Console.message("edit-tar-list");
|
|
+ private static TarListPart active;
|
|
+ private DefaultConsole console;
|
|
+ private MenuItem editItem;
|
|
+ private Vector syncTars = new Vector();
|
|
+ public Vector tars;
|
|
+ private Object tarMutex = new Object();
|
|
+ private Vector updates = new Vector();
|
|
+
|
|
+ public void activate(Console console, Container container, Console console1) {
|
|
+ active = this;
|
|
+ this.console = (DefaultConsole)console;
|
|
+ this.editItem = console.addMenuItem(name, "Options");
|
|
+ this.editItem.setEnabled(this.tars != null);
|
|
+ }
|
|
+
|
|
+ public void deactivate() {
|
|
+ active = null;
|
|
+ this.editItem = null;
|
|
+ }
|
|
+
|
|
+ public boolean action(Event event, Object o) {
|
|
+ if (event.target == this.editItem) {
|
|
+ new EditNamesDialog(this, name, Console.message("add-to-tar"));
|
|
+ return true;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent frameEvent) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ int var3 = this.updates.size();
|
|
+ if (var3 != 0) {
|
|
+ WorldServer var4 = this.console.getServerNew();
|
|
+ if (var4 != null) {
|
|
+ for(int var5 = 0; var5 < var3; ++var5) {
|
|
+ String var6 = (String)this.updates.elementAt(var5);
|
|
+ boolean var7 = this.tars.contains(var6);
|
|
+ NetworkObject var8 = var4.getObject(new ObjID(var6));
|
|
+ if (var8 instanceof Drone) {
|
|
+ Drone var9 = (Drone)var8;
|
|
+ var9.avtStateChanged();
|
|
+ }
|
|
+
|
|
+ this.console.getFriends().changeMuteState(var6, var7);
|
|
+ }
|
|
+
|
|
+ this.updates.removeAllElements();
|
|
+ this.syncTars = (Vector)this.tars.clone();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public int getNameListCount() {
|
|
+ return this.tars.size();
|
|
+ }
|
|
+
|
|
+ public String getNameListName(int i) {
|
|
+ return (String)this.tars.elementAt(i);
|
|
+ }
|
|
+
|
|
+ public void removeNameListName(int i) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ String var3 = (String)this.tars.elementAt(i);
|
|
+ this.tars.removeElementAt(i);
|
|
+ this.saveTars();
|
|
+ if (!this.updates.contains(var3)) {
|
|
+ this.updates.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public boolean mayAddNameListName(Window window) {
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public int addNameListName(String s) {
|
|
+ synchronized(this.tarMutex) {
|
|
+ int var3 = TarListPart.iindexOf(this.tars, s);
|
|
+ if (var3 != -1) {
|
|
+ return var3;
|
|
+ } else {
|
|
+ this.tars.addElement(s);
|
|
+ this.saveTars();
|
|
+ if (!this.updates.contains(s)) {
|
|
+ this.updates.addElement(s);
|
|
+ }
|
|
+
|
|
+ return this.tars.size() - 1;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void loadTars() {
|
|
+ this.tars = new Vector();
|
|
+
|
|
+ for(int var1 = 0; var1 < 50; ++var1) {
|
|
+ String var2 = this.serverSection.getIniString("Tar" + var1, "");
|
|
+ if (var2.length() == 0) {
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ if (FriendsListPart.isValidUserName(var2) && !FriendsListPart.icontains(this.tars, var2)) {
|
|
+ this.tars.addElement(var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() == 0) {
|
|
+ String var4 = this.serverSection.getIniString("Tars", "");
|
|
+ StringTokenizer var5 = new StringTokenizer(var4, ";");
|
|
+
|
|
+ while(var5.hasMoreTokens() && this.tars.size() < 50) {
|
|
+ String var3 = var5.nextToken();
|
|
+ if (FriendsListPart.isValidUserName(var3) && !FriendsListPart.icontains(this.tars, var3)) {
|
|
+ this.tars.addElement(var3);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.tars.size() != 0) {
|
|
+ this.saveTars();
|
|
+ this.serverSection.setIniString("Tars", "");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ void saveTars() {
|
|
+ String var1 = "";
|
|
+ int var2 = this.tars.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ this.serverSection.setIniString("Tar" + var3, (String)this.tars.elementAt(var3));
|
|
+ }
|
|
+
|
|
+ this.serverSection.setIniString("Tar" + var2, "");
|
|
+ }
|
|
+
|
|
+ public void setServer(WorldServer var1, IniFile var2) {
|
|
+ this.serverSection = var2;
|
|
+ this.galaxy = var1.getGalaxy();
|
|
+ this.loadTars();
|
|
+ if (this.editItem != null) {
|
|
+ this.editItem.setEnabled(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isTarred(WorldServer ws, String s) {
|
|
+ if (ws != null && s != null) {
|
|
+ Galaxy var2 = ws.getGalaxy();
|
|
+ Enumeration var3 = var2.getConsoles();
|
|
+
|
|
+ while(var3.hasMoreElements()) {
|
|
+ Object var4 = var3.nextElement();
|
|
+ if (var4 instanceof DefaultConsole) {
|
|
+ TarListPart var5 = ((DefaultConsole)var4).getTars();
|
|
+ if (var5.tars != null) {
|
|
+ return TarListPart.icontains(var5.tars, s);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ public static int iindexOf(Vector var0, String var1) {
|
|
+ int var2 = var0.size();
|
|
+
|
|
+ for(int var3 = 0; var3 < var2; ++var3) {
|
|
+ String var4 = (String)var0.elementAt(var3);
|
|
+ if(var4.equalsIgnoreCase(var1)) {
|
|
+ return var3;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return -1;
|
|
+ }
|
|
+
|
|
+ public static boolean icontains(Vector var0, String var1) {
|
|
+ return iindexOf(var0, var1) != -1;
|
|
+ }
|
|
+}
|
|
diff -ruN a/1920/NET/worlds/console/WhisperManager.java b/1920/NET/worlds/console/WhisperManager.java
|
|
--- a/1920/NET/worlds/console/WhisperManager.java 2024-01-08 01:46:28.000000000 -0600
|
|
+++ b/1920/NET/worlds/console/WhisperManager.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,7 +1,11 @@
|
|
package NET.worlds.console;
|
|
|
|
-import NET.worlds.network.NetUpdate;
|
|
import NET.worlds.scape.InventoryManager;
|
|
+import NET.worlds.scape.Pilot;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
+import java.awt.Window;
|
|
+import java.io.IOException;
|
|
import java.util.Enumeration;
|
|
import java.util.Hashtable;
|
|
|
|
@@ -9,139 +13,163 @@
|
|
private static WhisperManager manager_;
|
|
private Hashtable dialogs_ = new Hashtable();
|
|
private Hashtable tradeDialogs_ = new Hashtable();
|
|
- private java.awt.Window parent;
|
|
+ private Window parent;
|
|
private String inventory = "";
|
|
final String tradeServerName = "TRADE";
|
|
- static GiftDialog outstandingGift;
|
|
|
|
- private WhisperManager() {
|
|
+
|
|
+ private WhisperManager()
|
|
+ {
|
|
+ this.dialogs_ = new Hashtable();
|
|
+ this.tradeDialogs_ = new Hashtable();
|
|
}
|
|
|
|
- public static WhisperManager whisperManager() {
|
|
+ public static WhisperManager whisperManager()
|
|
+ {
|
|
if (manager_ == null) {
|
|
manager_ = new WhisperManager();
|
|
}
|
|
-
|
|
return manager_;
|
|
}
|
|
|
|
- void setParent(java.awt.Window p) {
|
|
+ void setParent(Window p)
|
|
+ {
|
|
this.parent = p;
|
|
}
|
|
|
|
- public Hashtable dialogs() {
|
|
+ public Hashtable dialogs()
|
|
+ {
|
|
return this.dialogs_;
|
|
}
|
|
|
|
- public Hashtable tradeDialogs() {
|
|
+ public Hashtable tradeDialogs()
|
|
+ {
|
|
return this.tradeDialogs_;
|
|
}
|
|
|
|
- private WhisperDialog findWhisperDialog(String to) {
|
|
- return !this.dialogs_.containsKey(to) ? null : (WhisperDialog)this.dialogs_.get(to);
|
|
+ private WhisperDialog findWhisperDialog(String to)
|
|
+ {
|
|
+ if (!this.dialogs_.containsKey(to)) {
|
|
+ return null;
|
|
+ }
|
|
+ return (WhisperDialog)this.dialogs_.get(to);
|
|
}
|
|
|
|
- private TradeDialog findTradeDialog(String to) {
|
|
- return !this.tradeDialogs_.containsKey(to) ? null : (TradeDialog)this.tradeDialogs_.get(to);
|
|
+ private TradeDialog findTradeDialog(String to)
|
|
+ {
|
|
+ if (!this.tradeDialogs_.containsKey(to)) {
|
|
+ return null;
|
|
+ }
|
|
+ return (TradeDialog)this.tradeDialogs_.get(to);
|
|
}
|
|
|
|
- private WhisperDialog start(String to, boolean takeFocus) {
|
|
- WhisperDialog wd = this.findWhisperDialog(to);
|
|
+ private WhisperDialog start(String to, boolean takeFocus)
|
|
+ {
|
|
+ WhisperDialog wd = findWhisperDialog(to);
|
|
if (wd == null) {
|
|
this.dialogs_.put(to, wd = new WhisperDialog(this.parent, to));
|
|
}
|
|
-
|
|
if (takeFocus) {
|
|
wd.takeFocus();
|
|
}
|
|
-
|
|
wd.ready();
|
|
+ if (Gamma.shaperEnabled()) Gamma.shaper.whisperListChanged();
|
|
return wd;
|
|
}
|
|
|
|
- public void remove(String name) {
|
|
+ public void remove(String name)
|
|
+ {
|
|
this.dialogs_.remove(name);
|
|
}
|
|
|
|
- public void startTo(String to) {
|
|
- this.start(to, true);
|
|
+ public void startTo(String to)
|
|
+ {
|
|
+ WhisperDialog wd = start(to, true);
|
|
}
|
|
|
|
public TradeDialog startToTrade(String to) {
|
|
- TradeDialog wd = this.findTradeDialog(to);
|
|
+ TradeDialog wd = findTradeDialog(to);
|
|
if (wd == null) {
|
|
this.tradeDialogs_.put(to, wd = new TradeDialog(this.parent, to));
|
|
}
|
|
-
|
|
wd.takeFocus();
|
|
wd.ready();
|
|
wd.setTrading(true);
|
|
wd.whisperPart.println(Console.message("trade-start"));
|
|
+
|
|
return wd;
|
|
}
|
|
|
|
public void printFrom(String from, String msg) {
|
|
- if (msg.startsWith("&|+")) {
|
|
- if (msg.startsWith("&|+gift>") && from.equalsIgnoreCase("TRADE")) {
|
|
- maybeQueryGift(msg.substring(8));
|
|
- } else if (msg.startsWith("&|+inv>") && from.equalsIgnoreCase("TRADE")) {
|
|
- this.tradeMsg(msg.substring(7));
|
|
- } else if (msg.startsWith("&|+trade>")) {
|
|
- TradeDialog it = this.findTradeDialog(from);
|
|
- if (msg.equals("&|+trade>cancel") && (it == null || !it.isActive() || !it.isTrading)) {
|
|
- return;
|
|
- }
|
|
-
|
|
- it = this.startToTrade(from);
|
|
- it.print(msg);
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveWhisper(from, Pilot.getActive().getName(), msg);
|
|
+ } catch (IOException e) {
|
|
+ e.printStackTrace();
|
|
+ }
|
|
+ if (!msg.startsWith("&|+"))
|
|
+ {
|
|
+ WhisperDialog it = findWhisperDialog(from);
|
|
+ if ((msg.equals("&|+trade>cancel")) && (
|
|
+ (it == null) || (!it.isActive()) || (!it.isTrading))) {
|
|
+ return;
|
|
}
|
|
- } else {
|
|
- WhisperDialog it = this.findWhisperDialog(from);
|
|
- if (msg.equals("&|+trade>cancel") && (it == null || !it.isActive() || !it.isTrading)) {
|
|
+ it = start(from, false);
|
|
+ it.print(msg);
|
|
+ }
|
|
+ else if ((msg.startsWith("&|+gift>")) &&
|
|
+ (from.equalsIgnoreCase("TRADE")))
|
|
+ {
|
|
+ maybeQueryGift(msg.substring(8));
|
|
+ }
|
|
+ else if ((msg.startsWith("&|+inv>")) &&
|
|
+ (from.equalsIgnoreCase("TRADE")))
|
|
+ {
|
|
+ tradeMsg(msg.substring(7));
|
|
+ }
|
|
+ else if (msg.startsWith("&|+trade>"))
|
|
+ {
|
|
+ TradeDialog it = findTradeDialog(from);
|
|
+ if ((msg.equals("&|+trade>cancel")) && (
|
|
+ (it == null) || (!it.isActive()) || (!it.isTrading))) {
|
|
return;
|
|
}
|
|
-
|
|
- it = this.start(from, false);
|
|
+ it = startToTrade(from);
|
|
it.print(msg);
|
|
}
|
|
-
|
|
}
|
|
|
|
- public void tradeMsg(String newInv) {
|
|
- if (!newInv.equals(this.inventory)) {
|
|
- Enumeration e = this.tradeDialogs_.elements();
|
|
-
|
|
- while(e.hasMoreElements()) {
|
|
- TradeDialog wd = (TradeDialog)e.nextElement();
|
|
- wd.doneDeal();
|
|
+ public void tradeMsg(String var1) {
|
|
+ if (!var1.equals(this.inventory)) {
|
|
+ Enumeration var2 = this.tradeDialogs_.elements();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ TradeDialog var3 = (TradeDialog)var2.nextElement();
|
|
+ var3.doneDeal();
|
|
}
|
|
|
|
- InventoryManager.getInventoryManager().setInventory(newInv);
|
|
+ InventoryManager.getInventoryManager().setInventory(var1);
|
|
}
|
|
|
|
}
|
|
|
|
- public void printTo(String to, String msg) {
|
|
- if (!to.equals("world") && !to.equals("TRADE")) {
|
|
- if (!msg.startsWith("&|+") || msg.startsWith("&|+trade>")) {
|
|
- WhisperDialog it = this.start(to, false);
|
|
- it.send(msg);
|
|
+ public void printTo(String var1, String var2) {
|
|
+ try {
|
|
+ ChatSaver.chatSaver.saveWhisper(Console.getActive().getLongID(), var1, var2);
|
|
+ } catch (IOException e) {
|
|
+ e.printStackTrace();
|
|
+ }
|
|
+ if (!var1.equals("world") && !var1.equals("TRADE")) {
|
|
+ if (!var2.startsWith("&|+") || var2.startsWith("&|+trade>")) {
|
|
+ WhisperDialog var3 = this.start(var1, false);
|
|
+ var3.send(var2);
|
|
}
|
|
-
|
|
}
|
|
}
|
|
|
|
- public void giftDialogDone() {
|
|
- outstandingGift = null;
|
|
- }
|
|
-
|
|
public static void maybeQueryGift(String inv) {
|
|
- if (NetUpdate.isInternalVersion()) {
|
|
- Console c = Console.getActive();
|
|
- if (c != null && outstandingGift == null && !c.isSleeping()) {
|
|
- outstandingGift = new GiftDialog(inv, 3000000);
|
|
- }
|
|
-
|
|
+ Console c = Console.getActive();
|
|
+ if ((c != null)) {
|
|
+ TradeDialog.sendTradeMessage("&|+deal>TRADE ," + inv);
|
|
}
|
|
}
|
|
}
|
|
diff -ruN a/1920/NET/worlds/core/IniFile.java b/1920/NET/worlds/core/IniFile.java
|
|
--- a/1920/NET/worlds/core/IniFile.java 2024-01-08 01:46:26.000000000 -0600
|
|
+++ b/1920/NET/worlds/core/IniFile.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -7,27 +7,47 @@
|
|
private static IniFile gamma_ = null;
|
|
private static IniFile override_ = null;
|
|
|
|
- public IniFile(String section) {
|
|
+ public IniFile(String var1) {
|
|
this.file = null;
|
|
- this.section = section;
|
|
+ this.section = var1;
|
|
}
|
|
|
|
- public IniFile(String inifileName, String section) {
|
|
- this.file = inifileName;
|
|
- this.section = section;
|
|
+ private IniFile(String var1, String var2) {
|
|
+ this.file = var1;
|
|
+ this.section = var2;
|
|
}
|
|
|
|
- public static IniFile gamma() {
|
|
- if (gamma_ == null) {
|
|
- gamma_ = new IniFile("Gamma");
|
|
+ public static IniFile ini(String name) {
|
|
+ return ini(gamma_, name);
|
|
+ }
|
|
+
|
|
+ public static IniFile ini(IniFile ini, String name) {
|
|
+ if (!initialized) {
|
|
+ nativeInit();
|
|
+ initialized = true;
|
|
+ }
|
|
+
|
|
+ if (ini == null) {
|
|
+ ini = new IniFile(name);
|
|
}
|
|
+ return ini;
|
|
+ }
|
|
+
|
|
+ public static IniFile modModules() { return ini("Modules"); }
|
|
+
|
|
+ public static IniFile modPlus() { return ini("WorldsPlus"); }
|
|
|
|
+ public static IniFile modColorfulTags() { return ini("ColorfulTags"); }
|
|
+
|
|
+ public static IniFile modFriendly() { return ini("Friendly"); }
|
|
+
|
|
+ public static IniFile gamma() {
|
|
if (!initialized) {
|
|
nativeInit();
|
|
initialized = true;
|
|
}
|
|
|
|
- return gamma_;
|
|
+ return ini(gamma_, "Gamma");
|
|
}
|
|
|
|
public static IniFile override() {
|
|
diff -ruN a/1920/NET/worlds/network/textCmd.java b/1920/NET/worlds/network/textCmd.java
|
|
--- a/1920/NET/worlds/network/textCmd.java 2024-01-08 01:46:34.000000000 -0600
|
|
+++ b/1920/NET/worlds/network/textCmd.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,14 +1,12 @@
|
|
package NET.worlds.network;
|
|
|
|
-import NET.worlds.console.BBChatCommand;
|
|
-import NET.worlds.console.BlackBox;
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.GammaTextArea;
|
|
-import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.console.*;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.scape.Drone;
|
|
import NET.worlds.scape.Pilot;
|
|
import NET.worlds.scape.PosableDrone;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
import java.io.IOException;
|
|
|
|
public class textCmd extends receivedNetPacket {
|
|
@@ -20,112 +18,114 @@
|
|
this._commandType = 14;
|
|
}
|
|
|
|
- public textCmd(String text) {
|
|
+ public textCmd(String var1) {
|
|
super((ObjID)null, 14);
|
|
this._senderID = new ObjID("");
|
|
- this._text = text;
|
|
+ this._text = var1;
|
|
}
|
|
|
|
- void parseNetData(ServerInputStream data) throws IOException {
|
|
+ void parseNetData(ServerInputStream var1) throws IOException {
|
|
this._senderID = new ObjID();
|
|
- this._senderID.parseNetData(data);
|
|
- this._text = data.readUTF();
|
|
+ this._senderID.parseNetData(var1);
|
|
+ this._text = var1.readUTF();
|
|
}
|
|
|
|
int packetSize() {
|
|
return ServerOutputStream.utfLength(this._text) + 1 + this._senderID.packetSize() + super.packetSize();
|
|
}
|
|
|
|
- void send(ServerOutputStream o) throws IOException {
|
|
- super.send(o);
|
|
- this._senderID.send(o);
|
|
- o.writeUTF(this._text);
|
|
+ void send(ServerOutputStream var1) throws IOException {
|
|
+ super.send(var1);
|
|
+ this._senderID.send(var1);
|
|
+ var1.writeUTF(this._text);
|
|
}
|
|
|
|
- void process(WorldServer _serv) throws Exception {
|
|
- String name;
|
|
+ void process(WorldServer var1) throws Exception {
|
|
+ String var2;
|
|
if (this._senderID.longID() == null) {
|
|
- name = "[Unknown Name (#" + String.valueOf(this._senderID.shortID()) + ")]";
|
|
+ var2 = "[Unknown Name (#" + String.valueOf(this._senderID.shortID()) + ")]";
|
|
} else {
|
|
- name = this._senderID.longID();
|
|
- if (MuteListPart.isMuted(_serv, name)) {
|
|
+ var2 = this._senderID.longID();
|
|
+ if (MuteListPart.isMuted(var1, var2)) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
- handleActionText(_serv, this._text, name, this._senderID);
|
|
- if (!this._text.startsWith("&|+")) {
|
|
- this.displayText(name, this._text);
|
|
+ ChatSaver.chatSaver.saveChat(this._senderID.longID(), this._text);
|
|
+
|
|
+ handleActionText(var1, this._text, var2, this._senderID);
|
|
+ if (!this._text.startsWith("&|+") || (IniFile.modModules().getIniInt("DisableAction2", 1) == 1 && this._text.startsWith("&|+action2>"))) {
|
|
+ this.displayText(var2, this._text);
|
|
}
|
|
|
|
}
|
|
|
|
- protected void displayText(String name, String text) {
|
|
- String filteredName = FilthFilter.get().filterName(name);
|
|
- String line = "";
|
|
+ protected void displayText(String var1, String var2) {
|
|
+ String var3 = FilthFilter.get().filterName(var1);
|
|
+ String var4 = "";
|
|
if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
|
|
- line = filteredName + "> ";
|
|
- line = line + FilthFilter.get().filter(text);
|
|
- BlackBox.getInstance().submitEvent(new BBChatCommand(line));
|
|
- Console.println(line);
|
|
+ var4 = var3 + "> ";
|
|
+ var4 = var4 + FilthFilter.get().filter(var2);
|
|
+ BlackBox.getInstance().submitEvent(new BBChatCommand(var4));
|
|
+ Console.println(var4);
|
|
} else {
|
|
- boolean colored = false;
|
|
- if (Drone.isEmployeeAccount(name)) {
|
|
- line = GammaTextArea.colorStartBlueTag + " ";
|
|
- colored = true;
|
|
- } else if (name.toLowerCase().startsWith(Console.message("host"))) {
|
|
- line = GammaTextArea.colorStartRedTag + " ";
|
|
- colored = true;
|
|
- } else if (name.toLowerCase().startsWith(Console.message("guest-"))) {
|
|
- line = GammaTextArea.colorStartMagentaTag + " ";
|
|
- colored = true;
|
|
- }
|
|
-
|
|
- line = line + "<b> " + filteredName + "> </b> ";
|
|
- if (colored) {
|
|
- line = line + " " + GammaTextArea.colorEndTag + " ";
|
|
- }
|
|
-
|
|
- line = line + FilthFilter.get().filter(text);
|
|
- BlackBox.getInstance().submitEvent(new BBChatCommand(line));
|
|
- Console.println(line);
|
|
+ boolean var5 = false;
|
|
+ if (Drone.isEmployeeAccount(var1)) {
|
|
+ var4 = GammaTextArea.colorStartBlueTag + " ";
|
|
+ var5 = true;
|
|
+ } else if (var1.toLowerCase().startsWith(Console.message("host"))) {
|
|
+ var4 = GammaTextArea.colorStartRedTag + " ";
|
|
+ var5 = true;
|
|
+ } else if (var1.toLowerCase().startsWith(Console.message("guest-"))) {
|
|
+ var4 = GammaTextArea.colorStartMagentaTag + " ";
|
|
+ var5 = true;
|
|
+ }
|
|
+
|
|
+ var4 = var4 + "<b> " + var3 + "> </b> ";
|
|
+ if (var5) {
|
|
+ var4 = var4 + " " + GammaTextArea.colorEndTag + " ";
|
|
+ }
|
|
+
|
|
+ var4 = var4 + FilthFilter.get().filter(var2);
|
|
+ BlackBox.getInstance().submitEvent(new BBChatCommand(var4));
|
|
+ Console.println(var4);
|
|
}
|
|
}
|
|
|
|
- public static void handleActionText(WorldServer _serv, String msg, String name, ObjID senderID) {
|
|
- String senderAction;
|
|
- if (msg.startsWith("&|+action>")) {
|
|
- NetworkObject o = _serv.getObject(senderID);
|
|
- if (o == null) {
|
|
+ public static void handleActionText(WorldServer var0, String var1, String var2, ObjID var3) {
|
|
+ String var5;
|
|
+ if (var1.startsWith("&|+action>")) {
|
|
+ NetworkObject var4 = var0.getObject(var3);
|
|
+ if (var4 == null) {
|
|
return;
|
|
}
|
|
|
|
- senderAction = msg.substring(10);
|
|
- if (!(o instanceof PosableDrone)) {
|
|
+ var5 = var1.substring(10);
|
|
+ if (!(var4 instanceof PosableDrone)) {
|
|
return;
|
|
}
|
|
|
|
- ((PosableDrone)o).animate(senderAction);
|
|
+ ((PosableDrone)var4).animate(var5);
|
|
}
|
|
|
|
- if (msg.startsWith("&|+action2>")) {
|
|
- int idx = msg.indexOf("|sender|");
|
|
- senderAction = null;
|
|
- String receiverAction = null;
|
|
- if (idx != -1) {
|
|
- senderAction = msg.substring(idx);
|
|
- receiverAction = msg.substring(11, idx);
|
|
- NetworkObject o = _serv.getObject(senderID);
|
|
- if (o != null && o instanceof PosableDrone) {
|
|
- ((PosableDrone)o).animate(senderAction);
|
|
- Pilot.sendText("&|+action>" + senderAction);
|
|
+ if (var1.startsWith("&|+action2>") && IniFile.modModules().getIniInt("DisableAction2", 1) == 0) {
|
|
+ int var9 = var1.indexOf("|sender|");
|
|
+ var5 = null;
|
|
+ String var6 = null;
|
|
+ if (var9 != -1) {
|
|
+ var5 = var1.substring(var9);
|
|
+ var6 = var1.substring(11, var9);
|
|
+ NetworkObject var7 = var0.getObject(var3);
|
|
+ if (var7 != null && var7 instanceof PosableDrone) {
|
|
+ ((PosableDrone)var7).animate(var5);
|
|
+ Pilot.sendText("&|+action>" + var5);
|
|
}
|
|
} else {
|
|
- receiverAction = msg.substring(11);
|
|
+ var6 = var1.substring(11);
|
|
}
|
|
|
|
try {
|
|
- Console.getActive().getPilot().animate(receiverAction);
|
|
+ Console.getActive().getPilot().animate(var6);
|
|
} catch (Exception var8) {
|
|
System.out.println("Error animating pilot " + var8.toString());
|
|
}
|
|
@@ -133,7 +133,7 @@
|
|
|
|
}
|
|
|
|
- public String toString(WorldServer serv) {
|
|
- return "TEXT " + this._senderID.toString(serv) + ": " + this._text;
|
|
+ public String toString(WorldServer var1) {
|
|
+ return "TEXT " + this._senderID.toString(var1) + ": " + this._text;
|
|
}
|
|
}
|
|
diff -ruN a/1920/NET/worlds/network/whisperCmd.java b/1920/NET/worlds/network/whisperCmd.java
|
|
--- a/1920/NET/worlds/network/whisperCmd.java 2024-01-08 01:46:34.000000000 -0600
|
|
+++ b/1920/NET/worlds/network/whisperCmd.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -3,63 +3,85 @@
|
|
import NET.worlds.console.Console;
|
|
import NET.worlds.console.FriendsListPart;
|
|
import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.core.IniFile;
|
|
import NET.worlds.scape.WorldScriptManager;
|
|
+import NET.worlds.console.RejectHandler;
|
|
+import NET.worldsplus.ChatSaver;
|
|
+
|
|
+import java.io.IOException;
|
|
import java.text.MessageFormat;
|
|
|
|
public class whisperCmd extends textCmd {
|
|
- public static final byte WHISPERCMD = 17;
|
|
- private static String rejectMsg = Console.message("not-whispers");
|
|
+ public static final byte WHISPERCMD = 17;
|
|
+ private static String whisperRejMSG = Console.message("not-whispers");
|
|
+ private static String teleportRejMSG = Console.message("not-teleport");
|
|
+ private static String reject = Console.message("rejected");
|
|
+ RejectHandler rej = MuteListPart.rej;
|
|
+
|
|
+ public whisperCmd() {
|
|
+ this._commandType = 17;
|
|
+ }
|
|
+
|
|
+ public whisperCmd(String var1, String var2) {
|
|
+ super(var2);
|
|
+ WorldScriptManager.getInstance().onConversation(var1, var2);
|
|
+ this._commandType = 17;
|
|
+ this._objID = new ObjID(var1);
|
|
+ }
|
|
+
|
|
+ void process(WorldServer var1) {
|
|
+ String var2;
|
|
+ Object[] var3;
|
|
+ if (this._senderID.longID() == null) {
|
|
+ var3 = new Object[]{new String(String.valueOf(this._senderID.shortID()))};
|
|
+ var2 = MessageFormat.format(Console.message("Unknown-Name"), var3);
|
|
+ } else {
|
|
+ var2 = this._senderID.longID();
|
|
+ if (MuteListPart.isMuted(var1, var2)) {
|
|
+ try {
|
|
+ var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, Console.message("have-you-muted")));
|
|
+ } catch (InfiniteWaitException var4) {
|
|
+ } catch (PacketTooLargeException var5) {
|
|
+ }
|
|
|
|
- public whisperCmd() {
|
|
- this._commandType = 17;
|
|
- }
|
|
-
|
|
- public whisperCmd(String who, String text) {
|
|
- super(text);
|
|
- WorldScriptManager.getInstance().onConversation(who, text);
|
|
- this._commandType = 17;
|
|
- this._objID = new ObjID(who);
|
|
- }
|
|
-
|
|
- void process(WorldServer _serv) throws Exception {
|
|
- String name;
|
|
- Object[] arguments;
|
|
- if (this._senderID.longID() == null) {
|
|
- arguments = new Object[]{new String(String.valueOf(this._senderID.shortID()))};
|
|
- name = MessageFormat.format(Console.message("Unknown-Name"), arguments);
|
|
- } else {
|
|
- name = this._senderID.longID();
|
|
- if (MuteListPart.isMuted(_serv, name)) {
|
|
- try {
|
|
- _serv.sendNetworkMsg(new whisperCmd(name, Console.message("have-you-muted")));
|
|
- } catch (InfiniteWaitException var4) {
|
|
- } catch (PacketTooLargeException var5) {
|
|
+ return;
|
|
}
|
|
|
|
- return;
|
|
- }
|
|
+ if (!this._text.startsWith("&|+") && MuteListPart.isRejecting(var1, var2)) {
|
|
+ try {
|
|
+ if (!this._text.equals(whisperRejMSG)) {
|
|
+ var3 = new Object[]{"whisper", var2};
|
|
+ if (IniFile.modFriendly().getIniInt("WhisperFeedback", 1) == 1) Console.println(MessageFormat.format(Console.message("rejected"), var3));
|
|
+ if (!rej.rejectWhisper(var2)) {
|
|
+ if (IniFile.modFriendly().getIniInt("WhisperResponse", 1) == 1) var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, whisperRejMSG));
|
|
+ rej.addWhisperUser(var2);
|
|
+ }
|
|
+ }
|
|
+ } catch (InfiniteWaitException var6) { } catch (PacketTooLargeException var7) { }
|
|
+ return;
|
|
+ }
|
|
|
|
- if (!this._text.startsWith("&|+") && MuteListPart.isRejecting(_serv)) {
|
|
- try {
|
|
- if (!this._text.equals(rejectMsg)) {
|
|
- arguments = new Object[]{new String(name)};
|
|
- Console.println(MessageFormat.format(Console.message("You-rejected"), arguments));
|
|
- _serv.sendNetworkMsg(new whisperCmd(name, rejectMsg));
|
|
- }
|
|
- } catch (InfiniteWaitException var6) {
|
|
- } catch (PacketTooLargeException var7) {
|
|
+ if (this._text.startsWith("&|+where") && MuteListPart.isRejectingTele(var1, var2)) {
|
|
+ try {
|
|
+ if (!this._text.equals(teleportRejMSG)) {
|
|
+ var3 = new Object[]{"teleport", var2};
|
|
+ if (IniFile.modFriendly().getIniInt("TeleportFeedback", 1) == 1) Console.println(MessageFormat.format(Console.message("rejected"), var3));
|
|
+ if (!rej.rejectTeleport(var2)) {
|
|
+ if (IniFile.modFriendly().getIniInt("TeleportResponse", 0) == 1) var1.sendNetworkMsg(new NET.worlds.network.whisperCmd(var2, teleportRejMSG));
|
|
+ rej.addTeleportUser(var2);
|
|
+ }
|
|
+ }
|
|
+ } catch (InfiniteWaitException var6) { } catch (PacketTooLargeException var7) { }
|
|
+ return;
|
|
}
|
|
+ }
|
|
|
|
- return;
|
|
- }
|
|
- }
|
|
-
|
|
- FriendsListPart.processWhisper(_serv, name, this._text);
|
|
- handleActionText(_serv, this._text, name, this._senderID);
|
|
- Console.printWhisper(name, FilthFilter.get().filter(this._text));
|
|
- }
|
|
-
|
|
- public String toString(WorldServer serv) {
|
|
- return Console.message("WHISPER") + " " + this._senderID.toString(serv) + " --> " + this._objID.toString(serv) + ": " + this._text;
|
|
- }
|
|
+ FriendsListPart.processWhisper(var1, var2, this._text);
|
|
+ handleActionText(var1, this._text, var2, this._senderID);
|
|
+ Console.printWhisper(var2, FilthFilter.get().filter(this._text));
|
|
+ }
|
|
+
|
|
+ public String toString(WorldServer var1) {
|
|
+ return Console.message("WHISPER") + " " + this._senderID.toString(var1) + " --> " + this._objID.toString(var1) + ": " + this._text;
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/scape/Drone.java b/1920/NET/worlds/scape/Drone.java
|
|
--- a/1920/NET/worlds/scape/Drone.java 2024-01-08 01:46:34.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/Drone.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,877 +1,971 @@
|
|
package NET.worlds.scape;
|
|
|
|
-import NET.worlds.console.BBAppearDroneCommand;
|
|
-import NET.worlds.console.BBDisappearDroneCommand;
|
|
-import NET.worlds.console.BBDroneBitmapCommand;
|
|
-import NET.worlds.console.BBDroneDeltaPosCommand;
|
|
-import NET.worlds.console.BBMoveDroneCommand;
|
|
-import NET.worlds.console.BlackBox;
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.FriendsListPart;
|
|
-import NET.worlds.console.Main;
|
|
-import NET.worlds.console.MainCallback;
|
|
-import NET.worlds.console.MuteListPart;
|
|
+import NET.worlds.console.*;
|
|
+import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.ServerTableManager;
|
|
import NET.worlds.core.Std;
|
|
-import NET.worlds.network.FilthFilter;
|
|
-import NET.worlds.network.Galaxy;
|
|
-import NET.worlds.network.InfiniteWaitException;
|
|
-import NET.worlds.network.NetworkObject;
|
|
-import NET.worlds.network.ObjID;
|
|
-import NET.worlds.network.OldPropertyList;
|
|
-import NET.worlds.network.PacketTooLargeException;
|
|
-import NET.worlds.network.PropertyList;
|
|
-import NET.worlds.network.URL;
|
|
-import NET.worlds.network.WorldServer;
|
|
-import NET.worlds.network.net2Property;
|
|
-import NET.worlds.network.netProperty;
|
|
-import NET.worlds.network.propReqCmd;
|
|
-import java.awt.Color;
|
|
+import NET.worlds.network.*;
|
|
+
|
|
+import java.awt.*;
|
|
import java.io.IOException;
|
|
import java.net.MalformedURLException;
|
|
import java.util.Enumeration;
|
|
import java.util.Hashtable;
|
|
+import java.util.Random;
|
|
import java.util.Vector;
|
|
|
|
public abstract class Drone extends WObject implements NetworkObject, WobLoaded, MouseDownHandler, FrameHandler {
|
|
- private int _last_FrameTime;
|
|
- private int _last_PosTime;
|
|
- private int _vel_x;
|
|
- private int _vel_y;
|
|
- private int _vel_z;
|
|
- private int _vel_yaw;
|
|
- private int _last_x;
|
|
- private int _last_y;
|
|
- private int _last_z;
|
|
- private int _last_yaw;
|
|
- private int _x;
|
|
- private int _y;
|
|
- private int _z;
|
|
- private int _yaw;
|
|
- private boolean inited = false;
|
|
- protected WObject tag;
|
|
- protected WObject tagbg;
|
|
- private Console console;
|
|
- private float tagHeight;
|
|
- private Shape sleepBox;
|
|
- static boolean showNametags;
|
|
- private static String[] employeeAccounts;
|
|
- private static Hashtable employeeHash;
|
|
- public static Vector usableDrones;
|
|
- private int lastUsed;
|
|
- protected WorldServer _server;
|
|
- private String sleepMode;
|
|
- private static Object classCookie;
|
|
- private static Object classCookieInterpolatedDrone;
|
|
-
|
|
- static {
|
|
- Main.register(new Flusher());
|
|
- showNametags = IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1;
|
|
- employeeAccounts = ServerTableManager.instance().getTable("employeeAccounts");
|
|
- employeeHash = null;
|
|
- usableDrones = new Vector();
|
|
- classCookie = new Object();
|
|
- classCookieInterpolatedDrone = new Object();
|
|
- }
|
|
-
|
|
- public Drone(ObjID id, WorldServer serv) {
|
|
- if (serv != null) {
|
|
- assert id != null;
|
|
-
|
|
- this.attachToServer(serv.getLongID(id), serv);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- protected Drone(String longID, WorldServer serv) {
|
|
- assert longID != null;
|
|
-
|
|
- if (serv != null) {
|
|
- this.attachToServer(longID, serv);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void attachToServer(String longID, WorldServer serv) {
|
|
- if (serv != null) {
|
|
- assert Main.isMainThread();
|
|
-
|
|
- String nameWas = null;
|
|
- if (this.tag != null) {
|
|
- nameWas = this.getLongID();
|
|
- }
|
|
-
|
|
- this.getSharer().createDynamicFromNet();
|
|
- this.setName(longID);
|
|
- String nameIs = this.getLongID();
|
|
- this._server = serv;
|
|
- this._server.incRefCnt(this);
|
|
- this._server.regObject((String)nameIs, this);
|
|
-
|
|
- try {
|
|
- this._server.sendNetworkMsg(new propReqCmd(new ObjID(this.getLongID())));
|
|
- } catch (InfiniteWaitException var6) {
|
|
- } catch (PacketTooLargeException var7) {
|
|
- assert false;
|
|
- }
|
|
-
|
|
- if (nameIs.equals(nameWas)) {
|
|
- this.avatarHeightChangedTo(189.0F);
|
|
- } else {
|
|
- this.makeTag(false);
|
|
- }
|
|
-
|
|
- Main.register(new MakeSleepBox());
|
|
- }
|
|
- }
|
|
-
|
|
- private static void flushUnusedDrones() {
|
|
- synchronized(usableDrones) {
|
|
- int now = Std.getFastTime();
|
|
- int i = usableDrones.size();
|
|
-
|
|
- while(true) {
|
|
- --i;
|
|
- if (i < 0) {
|
|
- return;
|
|
- }
|
|
-
|
|
- Drone d = (Drone)usableDrones.elementAt(i);
|
|
- if (now > d.lastUsed + 2000) {
|
|
- usableDrones.removeElementAt(i);
|
|
- d.discard();
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public static boolean isEmployeeAccount(String name) {
|
|
- if (employeeHash == null) {
|
|
- employeeHash = new Hashtable();
|
|
-
|
|
- for(int i = 0; i < employeeAccounts.length; ++i) {
|
|
- employeeHash.put(employeeAccounts[i], employeeAccounts[i]);
|
|
- }
|
|
- }
|
|
-
|
|
- return employeeHash.get(name) != null;
|
|
- }
|
|
-
|
|
- public void makeTag(boolean force) {
|
|
- this.tagHeight = 195.0F;
|
|
- if (this.tag != null) {
|
|
- this.tagHeight = this.tag.getPosition().z;
|
|
- this.tag.detach();
|
|
- this.tag = null;
|
|
- }
|
|
-
|
|
- if (this.tagbg != null) {
|
|
- this.tagbg.detach();
|
|
- this.tagbg = null;
|
|
- }
|
|
-
|
|
- if ((this._server != null || force) && !(this instanceof MutedDrone) && showNametags) {
|
|
- String unfilteredName = this.getLongID();
|
|
- String name = FilthFilter.get().filterName(unfilteredName);
|
|
- if (name != null && !name.equals("")) {
|
|
- Texture[] tagText = new Texture[1];
|
|
- boolean hw = RenderWare.get3DHardwareInUse();
|
|
- boolean isHost = name.toLowerCase().startsWith(Console.message("host")) || name.toLowerCase().startsWith("host");
|
|
- if (isHost) {
|
|
- name = Console.message("host-upper") + name.substring(4);
|
|
- }
|
|
-
|
|
- boolean isSpecialGuest = name.toLowerCase().startsWith(Console.message("guest-")) || name.toLowerCase().startsWith("guest-");
|
|
- if (isSpecialGuest) {
|
|
- name = Console.message("guest-upper") + name.substring(5);
|
|
- }
|
|
-
|
|
- boolean isEmployee = isEmployeeAccount(name);
|
|
- Color bgColor;
|
|
- if (isSpecialGuest) {
|
|
- bgColor = Color.pink;
|
|
- } else if (isHost) {
|
|
- bgColor = Color.yellow;
|
|
- } else if (isEmployee) {
|
|
- bgColor = Color.cyan;
|
|
- } else {
|
|
- bgColor = Color.lightGray;
|
|
+ private int _last_FrameTime;
|
|
+ private int _last_PosTime;
|
|
+ private int _vel_x;
|
|
+ private int _vel_y;
|
|
+ private int _vel_z;
|
|
+ private int _vel_yaw;
|
|
+ private int _last_x;
|
|
+ private int _last_y;
|
|
+ private int _last_z;
|
|
+ private int _last_yaw;
|
|
+ private int _x;
|
|
+ private int _y;
|
|
+ private int _z;
|
|
+ private int _yaw;
|
|
+ private boolean inited = false;
|
|
+ protected WObject tag;
|
|
+ protected WObject tagbg;
|
|
+ private Console console;
|
|
+ private float tagHeight;
|
|
+ private Shape sleepBox;
|
|
+ static boolean showNametags;
|
|
+ private static String[] employeeAccounts;
|
|
+ private static Hashtable employeeHash;
|
|
+ public static Vector usableDrones;
|
|
+ private int lastUsed;
|
|
+ protected WorldServer _server;
|
|
+ private String sleepMode;
|
|
+ private static Object classCookie;
|
|
+ private static Object classCookieInterpolatedDrone;
|
|
+
|
|
+ public Drone(ObjID var1, WorldServer var2) {
|
|
+ if (var2 != null) {
|
|
+ assert(var1 != null);
|
|
+ this.attachToServer(var2.getLongID(var1), var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ protected Drone(String var1, WorldServer var2) {
|
|
+ assert(var1 != null);
|
|
+ if (var2 != null) {
|
|
+ this.attachToServer(var1, var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void attachToServer(String var1, WorldServer var2) {
|
|
+ if (var2 != null) {
|
|
+ assert(Main.isMainThread());
|
|
+ String var3 = null;
|
|
+ if (this.tag != null) {
|
|
+ var3 = this.getLongID();
|
|
+ }
|
|
+
|
|
+ this.getSharer().createDynamicFromNet();
|
|
+ this.setName(var1);
|
|
+ String var4 = this.getLongID();
|
|
+ this._server = var2;
|
|
+ this._server.incRefCnt(this);
|
|
+ this._server.regObject(var4, this);
|
|
+
|
|
+ try {
|
|
+ this._server.sendNetworkMsg(new propReqCmd(new ObjID(this.getLongID())));
|
|
+ } catch (InfiniteWaitException var6) {
|
|
+ } catch (PacketTooLargeException var7) {
|
|
+ assert(false);
|
|
}
|
|
|
|
- tagText[0] = new StringTexture(name, Console.message("TagFont"), 48, Color.black, hw ? new Color(254, 254, 254) : bgColor);
|
|
- int height = 14;
|
|
- int width = name.length() * 10;
|
|
- Hologram h = new Hologram((float)width, (float)height, tagText);
|
|
- h.setViewplaneAligned(true);
|
|
- h.raise(this.tagHeight);
|
|
- h.setScaleDist(300.0F);
|
|
- this.tag = h;
|
|
- this.tag.setVisible(true);
|
|
- this.tag.setBumpable(false);
|
|
- this.tag.setLocalShadowed(false);
|
|
- this.tag.setShadowedLocally(true);
|
|
- this.add(this.tag);
|
|
- if (hw) {
|
|
- Texture[] bgText = new Texture[]{new StringTexture(name, Console.message("TagFont"), 48, Color.black, bgColor)};
|
|
- Hologram h2 = new Hologram((float)width, (float)height, bgText);
|
|
- h2.setViewplaneAligned(true);
|
|
- h2.raise(this.tagHeight);
|
|
- h2.setScaleDist(300.0F);
|
|
- h2.setMaterial(new Material(0.75F, 0.0F, 0.0F, Color.white, (Texture)null, 0.5F, false, false));
|
|
- this.tagbg = h2;
|
|
- this.tagbg.setVisible(true);
|
|
- this.tagbg.setBumpable(false);
|
|
- this.tagbg.setLocalShadowed(false);
|
|
- this.tagbg.setShadowedLocally(true);
|
|
- this.add(this.tagbg);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- protected void avatarHeightChangedTo(float h) {
|
|
- if (this.tag != null) {
|
|
- this.tag.raise(h + 1.0F + 5.0F - this.tag.getPosition().z);
|
|
- }
|
|
-
|
|
- if (this.tagbg != null) {
|
|
- this.tagbg.raise(h + 1.0F + 5.0F - this.tagbg.getPosition().z);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void detachFromServer(boolean reuse) {
|
|
- assert Main.isMainThread();
|
|
-
|
|
- if (this._server != null) {
|
|
- this._server.delObject(new ObjID(this.getLongID()));
|
|
- this._server.decRefCnt(this);
|
|
- this._server = null;
|
|
- }
|
|
-
|
|
- if (reuse) {
|
|
- this.lastUsed = Std.getFastTime();
|
|
- synchronized(usableDrones) {
|
|
- usableDrones.addElement(this);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static Drone make(ObjID id, WorldServer serv) {
|
|
- synchronized(usableDrones) {
|
|
- if (!usableDrones.isEmpty() && id != null && serv != null) {
|
|
- String name = "!" + serv.getLongID(id);
|
|
-
|
|
- int i;
|
|
- Drone d;
|
|
- for(i = usableDrones.size() - 1; i > 0; --i) {
|
|
- d = (Drone)usableDrones.elementAt(i);
|
|
- if (d.getName().equals(name)) {
|
|
- break;
|
|
- }
|
|
- }
|
|
-
|
|
- d = (Drone)usableDrones.elementAt(i);
|
|
- if (!d.getName().equals(name) && usableDrones.size() < 5) {
|
|
- return new HoloDrone(id, serv);
|
|
+ if (var4.equals(var3)) {
|
|
+ this.avatarHeightChangedTo(189.0F);
|
|
} else {
|
|
- usableDrones.removeElementAt(i);
|
|
- d.attachToServer(serv.getLongID(id), serv);
|
|
- return d;
|
|
- }
|
|
- } else {
|
|
- return new HoloDrone(id, serv);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Drone() {
|
|
- }
|
|
-
|
|
- public boolean handle(MouseDownEvent event) {
|
|
- if (this._server != null && (event.key & 1) == 1) {
|
|
- FriendsListPart.droneClick(this, event);
|
|
- }
|
|
-
|
|
- return true;
|
|
- }
|
|
-
|
|
- public float animate(String action) {
|
|
- if (action.equalsIgnoreCase("_hdb")) {
|
|
- new BounceNametag();
|
|
- }
|
|
-
|
|
- return 0.0F;
|
|
- }
|
|
-
|
|
- public Vector getAnimationList() {
|
|
- return new Vector();
|
|
- }
|
|
-
|
|
- public void muteStateChanged() {
|
|
- this.setAvatarNow(this.getCurrentURL());
|
|
- }
|
|
-
|
|
- public boolean shouldBeMuted() {
|
|
- return MuteListPart.isMuted(this._server, this.getLongID());
|
|
- }
|
|
-
|
|
- private World getOwnerWorld() {
|
|
- WObject o = (WObject)this.getOwner();
|
|
- Room room = o == null ? null : o.getRoom();
|
|
- World w = room == null ? null : room.getWorld();
|
|
- return w;
|
|
- }
|
|
-
|
|
- public boolean shouldBeForcedHuman() {
|
|
- World w = this.getOwnerWorld();
|
|
- return w != null && w.getForceHuman();
|
|
- }
|
|
-
|
|
- public URL getCurrentURL() {
|
|
- return this instanceof PosableDrone ? ((PosableDrone)this).getPosableShapeURL() : this.getSourceURL();
|
|
- }
|
|
-
|
|
- public Drone setAvatarNow(URL url) {
|
|
- if (url == null) {
|
|
- return this;
|
|
- } else {
|
|
- if (this.shouldBeForcedHuman()) {
|
|
- url = PosableShape.getHuman(url);
|
|
- if (Console.getActive() != null) {
|
|
- Console.getActive().pendingPilot = url.toString();
|
|
- }
|
|
- }
|
|
-
|
|
- url = PosableShape.getPermitted(url, this.getWorld());
|
|
- boolean muted = this.shouldBeMuted();
|
|
- if (url.equals(this.getCurrentURL()) && muted == (this instanceof MutedDrone)) {
|
|
- return this;
|
|
- } else if (!url.endsWith(".rwx") && !url.endsWith(".rwg") && !url.endsWith(".mov")) {
|
|
- String s = url.getInternal();
|
|
- if (s.endsWith(".pilot")) {
|
|
- s = s.substring(0, s.length() - 6) + ".drone";
|
|
- } else if (!s.endsWith(".drone")) {
|
|
- s = s + ".drone";
|
|
+ this.makeTag(false);
|
|
}
|
|
|
|
- url = URL.make(s);
|
|
- if (url.equals(this.getSourceURL())) {
|
|
- return this;
|
|
+ Main.register(new Drone$MakeSleepBox(this));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private static void flushUnusedDrones() {
|
|
+ synchronized(usableDrones) {
|
|
+ int var1 = Std.getFastTime();
|
|
+ int var2 = usableDrones.size();
|
|
+
|
|
+ while(true) {
|
|
+ --var2;
|
|
+ if (var2 < 0) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ Drone var3 = (Drone)usableDrones.elementAt(var2);
|
|
+ if (var1 > var3.lastUsed + 2000) {
|
|
+ usableDrones.removeElementAt(var2);
|
|
+ var3.discard();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static boolean isEmployeeAccount(String var0) {
|
|
+ if (employeeHash == null) {
|
|
+ employeeHash = new Hashtable();
|
|
+
|
|
+ for(int var1 = 0; var1 < employeeAccounts.length; ++var1) {
|
|
+ employeeHash.put(employeeAccounts[var1], employeeAccounts[var1]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return employeeHash.get(var0) != null;
|
|
+ }
|
|
+
|
|
+ public void makeTag(boolean var1) {
|
|
+ this.tagHeight = 195.0F;
|
|
+ if (this.tag != null) {
|
|
+ this.tagHeight = this.tag.getZ();
|
|
+ this.tag.detach();
|
|
+ this.tag = null;
|
|
+ }
|
|
+
|
|
+ if (this.tagbg != null) {
|
|
+ this.tagbg.detach();
|
|
+ this.tagbg = null;
|
|
+ }
|
|
+
|
|
+ if ((this._server != null || var1) && !(this instanceof MutedDrone) && showNametags) {
|
|
+ String var2 = this.getLongID();
|
|
+ String var3 = FilthFilter.get().filterName(var2);
|
|
+ if (var3 != null && !var3.equals("")) {
|
|
+ Texture[] var4 = new Texture[1];
|
|
+ boolean isHost = var3.toLowerCase().startsWith(Console.message("host")) || var3.toLowerCase().startsWith("host");
|
|
+ if (isHost) {
|
|
+ var3 = Console.message("host-upper") + var3.substring(4);
|
|
+ }
|
|
+
|
|
+ boolean isGuest = var3.toLowerCase().startsWith(Console.message("guest-")) || var3.toLowerCase().startsWith("guest-");
|
|
+ if (isGuest) {
|
|
+ var3 = Console.message("guest-upper") + var3.substring(5);
|
|
+ }
|
|
+
|
|
+ boolean colorfulMod = IniFile.modModules().getIniInt("ColorfulTags", 0) == 1;
|
|
+ boolean randomizeTag = false, underline = false;
|
|
+ boolean transparent = IniFile.modColorfulTags().getIniInt("Transparent", 0) == 1;
|
|
+ boolean isTar = TarListPart.isTarred(_server, var3);
|
|
+ Color userTextColor, employeeTextColor, hostTextColor, guestTextColor, tarTextColor;
|
|
+ Color userTagColor, employeeTagColor, hostTagColor, guestTagColor, tarTagColor;
|
|
+ try {
|
|
+ if (colorfulMod) {
|
|
+ randomizeTag = IniFile.modColorfulTags().getIniInt("RandomizeColors", 0) == 1;
|
|
+ underline = IniFile.modColorfulTags().getIniInt("UnderlineStaff", 1) == 1;
|
|
+
|
|
+ /*
|
|
+ * Color Parsing
|
|
+ *
|
|
+ * This is setup like this so we don't have 3 values for each tag type. Keeps the INI clean.
|
|
+ * If the value isn't valid, given we are parsing a string into 3 ints, we should just use the default.
|
|
+ */
|
|
+
|
|
+ userTagColor = parseColor(IniFile.modColorfulTags().getIniString("UserTagColor", "192,192,192"));
|
|
+ userTextColor = parseColor(IniFile.modColorfulTags().getIniString("UserTextColor", "0,0,0"));
|
|
+
|
|
+ employeeTagColor = parseColor(IniFile.modColorfulTags().getIniString("EmployeeTagColor", "0,255,255"));
|
|
+ employeeTextColor = parseColor(IniFile.modColorfulTags().getIniString("EmployeeTextColor", "0,0,0"));
|
|
+
|
|
+ hostTagColor = parseColor(IniFile.modColorfulTags().getIniString("HostTagColor", "255,255,0"));
|
|
+ hostTextColor = parseColor(IniFile.modColorfulTags().getIniString("HostTextColor", "0,0,0"));
|
|
+
|
|
+ guestTagColor = parseColor(IniFile.modColorfulTags().getIniString("GuestTagColor", "255,192,203"));
|
|
+ guestTextColor = parseColor(IniFile.modColorfulTags().getIniString("GuestTextColor", "0,0,0"));
|
|
+
|
|
+ tarTagColor = parseColor(IniFile.modColorfulTags().getIniString("TarTagColor", "192,192,192"));
|
|
+ tarTextColor = parseColor(IniFile.modColorfulTags().getIniString("TarTextColor", "0,0,0"));
|
|
+ } else {
|
|
+ throw new Exception();
|
|
+ }
|
|
+ } catch (Exception e1) {
|
|
+ userTagColor = new Color(192,192,192);
|
|
+ userTextColor = new Color(0,0,0);
|
|
+ employeeTagColor = new Color(0,255,255);
|
|
+ employeeTextColor = new Color(0,0,0);
|
|
+ hostTagColor = new Color(255,255,0);
|
|
+ hostTextColor = new Color(0,0,0);
|
|
+ guestTagColor = new Color(255,192,203);
|
|
+ guestTextColor = new Color(0,0,0);
|
|
+ tarTagColor = new Color(192, 192, 192);
|
|
+ tarTextColor = new Color(0,0,0);
|
|
+ }
|
|
+ boolean isEmployee = isEmployeeAccount(var3);
|
|
+ Color curTextColor, curTagColor;
|
|
+ if (isGuest) {
|
|
+ curTagColor = guestTagColor;
|
|
+ curTextColor = guestTextColor;
|
|
+ } else if (isHost) {
|
|
+ curTagColor = hostTagColor;
|
|
+ curTextColor = hostTextColor;
|
|
+ } else if (isEmployee) {
|
|
+ curTagColor = employeeTagColor;
|
|
+ curTextColor = employeeTextColor;
|
|
+ } else if (isTar) {
|
|
+ curTagColor = tarTagColor;
|
|
+ curTextColor = tarTextColor;
|
|
+ } else {
|
|
+ curTagColor = userTagColor;
|
|
+ curTextColor = userTextColor;
|
|
+ }
|
|
+
|
|
+ if (randomizeTag && (!isEmployee && !isGuest && !isHost && !isTar)) {
|
|
+ Random rand = new Random();
|
|
+ Color randomized = new Color(
|
|
+ rand.nextInt((255) + 1),
|
|
+ rand.nextInt((255) + 1),
|
|
+ rand.nextInt((255) + 1)).brighter();
|
|
+ curTextColor = transparent ? randomized : userTextColor;
|
|
+ curTagColor = transparent ? userTagColor : randomized;
|
|
+ }
|
|
+
|
|
+ if (transparent) {
|
|
+ if (isEmployee || isGuest || isHost || isTar) curTextColor = curTagColor;
|
|
+ curTagColor = new Color(254,254,254);
|
|
+ }
|
|
+
|
|
+ boolean isSpecial = (isHost || isGuest || isEmployee);
|
|
+
|
|
+ var4[0] = new StringTexture(var3, Console.message("TagFont"), IniFile.modColorfulTags().getIniInt("Fontsize", 48), curTextColor, curTagColor);
|
|
+ byte var5 = 18;
|
|
+ int var11 = var3.length() * 12;
|
|
+ Hologram var12 = new Hologram((float)var11, (float)var5, var4);
|
|
+ var12.setViewplaneAligned(true);
|
|
+ var12.raise(this.tagHeight);
|
|
+ var12.setScaleDist(300.0F);
|
|
+ this.tag = var12;
|
|
+ this.tag.setVisible(true);
|
|
+ this.tag.setBumpable(false);
|
|
+ this.tag.setLocalShadowed(true);
|
|
+ this.tag.setShadowedLocally(true);
|
|
+ this.add(this.tag);
|
|
+ if (colorfulMod && isSpecial && underline && transparent) {
|
|
+ StringBuffer underscore = new StringBuffer();
|
|
+ for (int i = 0; i < var3.length(); i++) {
|
|
+ underscore.append("_");
|
|
+ }
|
|
+ Texture[] var13 = new Texture[]{new StringTexture(underscore.toString(), Console.message("TagFont"), 48, curTextColor, curTagColor)};
|
|
+ Hologram var14 = new Hologram((float) var11, (float) var5, var13);
|
|
+ var14.setViewplaneAligned(true);
|
|
+ var14.raise(this.tagHeight);
|
|
+ var14.setScaleDist(300.0F);
|
|
+ this.tagbg = var14;
|
|
+ this.tagbg.setVisible(true);
|
|
+ this.tagbg.setBumpable(false);
|
|
+ this.tagbg.setLocalShadowed(false);
|
|
+ this.tagbg.setShadowedLocally(true);
|
|
+ this.add(this.tagbg);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private Color parseColor(String tag) {
|
|
+ String[] spl = tag.split(",");
|
|
+ return new Color(Integer.parseInt(spl[0]), Integer.parseInt(spl[1]), Integer.parseInt(spl[2]));
|
|
+ }
|
|
+
|
|
+ protected void avatarHeightChangedTo(float var1) {
|
|
+ if (this.tag != null) {
|
|
+ this.tag.raise(var1 + 1.0F + 5.0F - this.tag.getZ());
|
|
+ }
|
|
+
|
|
+ if (this.tagbg != null) {
|
|
+ this.tagbg.raise(var1 + 1.0F + 5.0F - this.tagbg.getZ());
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void detachFromServer(boolean var1) {
|
|
+ assert(Main.isMainThread());
|
|
+ if (this._server != null) {
|
|
+ this._server.delObject(new ObjID(this.getLongID()));
|
|
+ this._server.decRefCnt(this);
|
|
+ this._server = null;
|
|
+ }
|
|
+
|
|
+ if (var1) {
|
|
+ this.lastUsed = Std.getFastTime();
|
|
+ synchronized(usableDrones) {
|
|
+ usableDrones.addElement(this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static Drone make(ObjID var0, WorldServer var1) {
|
|
+ synchronized(usableDrones) {
|
|
+ if (!usableDrones.isEmpty() && var0 != null && var1 != null) {
|
|
+ String var3 = "!" + var1.getLongID(var0);
|
|
+
|
|
+ int var4;
|
|
+ Drone var5;
|
|
+ for(var4 = usableDrones.size() - 1; var4 > 0; --var4) {
|
|
+ var5 = (Drone)usableDrones.elementAt(var4);
|
|
+ if (var5.getName().equals(var3)) {
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var5 = (Drone)usableDrones.elementAt(var4);
|
|
+ if (!var5.getName().equals(var3) && usableDrones.size() < 5) {
|
|
+ return new HoloDrone(var0, var1);
|
|
+ } else {
|
|
+ usableDrones.removeElementAt(var4);
|
|
+ var5.attachToServer(var1.getLongID(var0), var1);
|
|
+ return var5;
|
|
+ }
|
|
} else {
|
|
- new WobLoader(url, this);
|
|
- return this;
|
|
+ return new HoloDrone(var0, var1);
|
|
}
|
|
- } else {
|
|
- WObject o = (WObject)this.getOwner();
|
|
- if (o == null) {
|
|
- return this;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Drone() {
|
|
+ }
|
|
+
|
|
+ public boolean handle(MouseDownEvent var1) {
|
|
+ if (this._server != null && (var1.key & 1) == 1) {
|
|
+ FriendsListPart.droneClick(this, var1);
|
|
+ }
|
|
+
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ public float animate(String var1) {
|
|
+ if (var1.equalsIgnoreCase("_hdb")) {
|
|
+ new Drone$BounceNametag(this);
|
|
+ }
|
|
+
|
|
+ return 0.0F;
|
|
+ }
|
|
+
|
|
+ public Vector getAnimationList() {
|
|
+ return new Vector();
|
|
+ }
|
|
+
|
|
+ public void muteStateChanged() {
|
|
+ this.setAvatarNow(this.getCurrentURL());
|
|
+ }
|
|
+
|
|
+ public void tarStateChanged() {
|
|
+ this.setAvatarNow(this.getCurrentURL());
|
|
+ }
|
|
+
|
|
+ public void avtStateChanged() {
|
|
+ this.setAvatarNow(URL.make("avatar:holden.mov"));
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeMuted() {
|
|
+ return MuteListPart.isMuted(this._server, this.getLongID());
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeTarred() {
|
|
+ return TarListPart.isTarred(this._server, this.getLongID());
|
|
+ }
|
|
+
|
|
+ private World getOwnerWorld() {
|
|
+ WObject var1 = (WObject)this.getOwner();
|
|
+ Room var2 = var1 == null ? null : var1.getRoom();
|
|
+ World var3 = var2 == null ? null : var2.getWorld();
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public boolean shouldBeForcedHuman() {
|
|
+ return (this.getOwnerWorld() != null && this.getOwnerWorld().getForceHuman());
|
|
+ }
|
|
+
|
|
+ public URL getCurrentURL() {
|
|
+ return this instanceof PosableDrone ? ((PosableDrone)this).getPosableShapeURL() : this.getSourceURL();
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (var1 == null) {
|
|
+ return this;
|
|
+ } else {
|
|
+ if (this.shouldBeForcedHuman()) {
|
|
+ var1 = PosableShape.getHuman(var1);
|
|
+ if (Console.getActive() != null) {
|
|
+ Console.getActive().pendingPilot = var1.toString();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var1 = PosableShape.getPermitted(var1, this.getWorld());
|
|
+ boolean var2 = this.shouldBeMuted();
|
|
+ boolean var12 = this.shouldBeTarred();
|
|
+ if (var1.equals(this.getCurrentURL()) && (var2 == (this instanceof MutedDrone))) {
|
|
+ return this;
|
|
+ } else if (!var1.endsWith(".rwx") && !var1.endsWith(".rwg") && !var1.endsWith(".mov")) {
|
|
+ String var7 = var1.getInternal();
|
|
+ if (var7.endsWith(".pilot")) {
|
|
+ var7 = var7.substring(0, var7.length() - 6) + ".drone";
|
|
+ } else if (!var7.endsWith(".drone")) {
|
|
+ var7 = var7 + ".drone";
|
|
+ }
|
|
+
|
|
+ var1 = URL.make(var7);
|
|
+ if (var1.equals(this.getSourceURL())) {
|
|
+ return this;
|
|
+ } else {
|
|
+ new WobLoader(var1, this);
|
|
+ return this;
|
|
+ }
|
|
} else {
|
|
- WorldServer serv = this._server;
|
|
- String longID = this.getLongID();
|
|
- this.detachFromServer(false);
|
|
- this.detach();
|
|
- Object d;
|
|
- if (muted) {
|
|
- d = new MutedDrone(new ObjID(longID), serv, url);
|
|
- } else if (url.endsWith(".mov")) {
|
|
- d = new HoloDrone(new ObjID(longID), serv);
|
|
- ((Drone)d).setAvatarNow(url);
|
|
- } else {
|
|
- d = new PosableDrone(new ObjID(longID), serv, url);
|
|
- }
|
|
-
|
|
- if (serv != null) {
|
|
- ((Drone)d).transferFrom(this);
|
|
- ((Drone)d).addTo(o.getRoom());
|
|
- } else {
|
|
- ((Drone)d).makeIdentity().post(this);
|
|
- ((Drone)d).setName(this.getLongID());
|
|
- o.add((WObject)d);
|
|
- }
|
|
-
|
|
- return (Drone)d;
|
|
- }
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void wobLoaded(WobLoader loader, SuperRoot w) {
|
|
- if (w instanceof Drone) {
|
|
- assert w != null;
|
|
-
|
|
- Drone d = (Drone)w;
|
|
- d.setName(this.getLongID());
|
|
- if (this._server == null) {
|
|
- WObject o = (WObject)this.getOwner();
|
|
- this.detach();
|
|
- d.makeIdentity().post(this);
|
|
- o.add(d);
|
|
- } else {
|
|
- WorldServer serv = this._server;
|
|
- String longID = this.getLongID();
|
|
- this.detachFromServer(false);
|
|
- Room r = this.getRoom();
|
|
- this.detach();
|
|
- d.addTo(r);
|
|
- d.attachToServer(longID, serv);
|
|
- d.transferFrom(this);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public void addTo(Room r) {
|
|
- if (r != null) {
|
|
- Console c = r.getWorld().getConsole();
|
|
- if (this.console == null) {
|
|
- this.console = c;
|
|
- if (c != null) {
|
|
- Pilot.copySoul(c.getDroneSoulTemplate(), this);
|
|
- }
|
|
- }
|
|
-
|
|
- r.add(this);
|
|
- }
|
|
- }
|
|
-
|
|
- public void add(WObject w) {
|
|
- super.add(w);
|
|
- }
|
|
-
|
|
- protected void noteUnadding(SuperRoot child) {
|
|
- if (child instanceof WObject) {
|
|
- WObject w = (WObject)child;
|
|
- if (w.isDynamic()) {
|
|
- w.setVisible(true);
|
|
- }
|
|
- }
|
|
-
|
|
- super.noteUnadding(child);
|
|
- }
|
|
-
|
|
- public void setSleepMode(String mode) {
|
|
- if (!mode.equals(this.sleepMode)) {
|
|
- this.sleepMode = mode;
|
|
- Main.register(new MakeSleepBox());
|
|
- }
|
|
- }
|
|
-
|
|
- private void handleVAR_ASLEEP(String s) {
|
|
- if (s != null && s.length() > 2 && s.charAt(0) == 0) {
|
|
- s = s.substring(2);
|
|
- }
|
|
-
|
|
- this.setSleepMode(s);
|
|
- }
|
|
-
|
|
- public Drone handleVAR_BITMAP(String s) {
|
|
- if (s.equals("")) {
|
|
- return this;
|
|
- } else {
|
|
- BlackBox.getInstance().submitEvent(new BBDroneBitmapCommand(this.getName(), s));
|
|
- if (s.charAt(0) == 0) {
|
|
- s = s.substring(2);
|
|
- }
|
|
-
|
|
- try {
|
|
- return this.setAvatarNow(new URL(URL.getAvatar(), s));
|
|
- } catch (MalformedURLException var3) {
|
|
- Console.println(Console.message("Invalid-av") + s);
|
|
+ WObject var3 = (WObject)this.getOwner();
|
|
+ if (var3 == null) {
|
|
+ return this;
|
|
+ } else {
|
|
+ WorldServer var4 = this._server;
|
|
+ String var5 = this.getLongID();
|
|
+ this.detachFromServer(false);
|
|
+ this.detach();
|
|
+ Drone var6;
|
|
+ if (var2) {
|
|
+ var6 = new MutedDrone(new ObjID(var5), var4, var1);
|
|
+ } else if (var12) {
|
|
+ var6 = new TarredDrone(new ObjID(var5), var4, var1);
|
|
+ } else if (var1.endsWith(".mov")) {
|
|
+ var6 = new HoloDrone(new ObjID(var5), var4);
|
|
+ var6.setAvatarNow(var1);
|
|
+ } else {
|
|
+ var6 = new PosableDrone(new ObjID(var5), var4, var1);
|
|
+ }
|
|
+
|
|
+ if (var4 != null) {
|
|
+ var6.transferFrom(this);
|
|
+ var6.addTo(var3.getRoom());
|
|
+ } else {
|
|
+ var6.makeIdentity().post(this);
|
|
+ var6.setName(this.getLongID());
|
|
+ var3.add(var6);
|
|
+ }
|
|
+
|
|
+ return var6;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void wobLoaded(WobLoader var1, SuperRoot var2) {
|
|
+ if (var2 instanceof Drone) {
|
|
+ assert(var2 != null);
|
|
+ Drone var3 = (Drone)var2;
|
|
+ var3.setName(this.getLongID());
|
|
+ if (this._server == null) {
|
|
+ WObject var7 = (WObject)this.getOwner();
|
|
+ this.detach();
|
|
+ var3.makeIdentity().post(this);
|
|
+ var7.add(var3);
|
|
+ } else {
|
|
+ WorldServer var4 = this._server;
|
|
+ String var5 = this.getLongID();
|
|
+ this.detachFromServer(false);
|
|
+ Room var6 = this.getRoom();
|
|
+ this.detach();
|
|
+ var3.addTo(var6);
|
|
+ var3.attachToServer(var5, var4);
|
|
+ var3.transferFrom(this);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void addTo(Room var1) {
|
|
+ if (var1 != null) {
|
|
+ Console var2 = var1.getWorld().getConsole();
|
|
+ if (this.console == null) {
|
|
+ this.console = var2;
|
|
+ if (var2 != null) {
|
|
+ Pilot.copySoul(var2.getDroneSoulTemplate(), this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ var1.add(this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void add(WObject var1) {
|
|
+ super.add(var1);
|
|
+ }
|
|
+
|
|
+ protected void noteUnadding(SuperRoot var1) {
|
|
+ if (var1 instanceof WObject) {
|
|
+ WObject var2 = (WObject)var1;
|
|
+ if (var2.isDynamic()) {
|
|
+ var2.setVisible(true);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ super.noteUnadding(var1);
|
|
+ }
|
|
+
|
|
+ public void setSleepMode(String var1) {
|
|
+ if (!var1.equals(this.sleepMode)) {
|
|
+ this.sleepMode = var1;
|
|
+ Main.register(new Drone$MakeSleepBox(this));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private void handleVAR_ASLEEP(String var1) {
|
|
+ if (var1 != null && var1.length() > 2 && var1.charAt(0) == 0) {
|
|
+ var1 = var1.substring(2);
|
|
+ }
|
|
+
|
|
+ this.setSleepMode(var1);
|
|
+ }
|
|
+
|
|
+ public Drone handleVAR_BITMAP(String var1) {
|
|
+ if (var1.equals("")) {
|
|
return this;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Point3Temp getVelocity() {
|
|
- return Point3Temp.make((float)this._vel_x, (float)this._vel_y, (float)this._vel_z);
|
|
- }
|
|
-
|
|
- public int getYawRate() {
|
|
- return this._vel_yaw;
|
|
- }
|
|
-
|
|
- public boolean handle(FrameEvent fe) {
|
|
- if (this._server == null) {
|
|
- return true;
|
|
- } else {
|
|
- int timeNow = fe.time;
|
|
- this.interpolate(timeNow, this._server.getUpdateTime(), this);
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- public void interpolate(int timeNow, int updateTime, Transform target) {
|
|
- if (this.inited) {
|
|
- if (timeNow - this._last_PosTime > updateTime) {
|
|
- this._last_PosTime = timeNow;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = this._last_z - this._z;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
-
|
|
- assert this._vel_yaw >= 0;
|
|
-
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
- }
|
|
-
|
|
- double timeDiff = (double)(timeNow - this._last_FrameTime) / (double)updateTime;
|
|
- if (timeNow - this._last_FrameTime > updateTime) {
|
|
- timeDiff = 0.0;
|
|
- }
|
|
-
|
|
- this._x += (int)(timeDiff * (double)this._vel_x);
|
|
- this._y += (int)(timeDiff * (double)this._vel_y);
|
|
- this._z += (int)(timeDiff * (double)this._vel_z);
|
|
- this._yaw += (int)(timeDiff * (double)this._vel_yaw) % 360;
|
|
- target.makeIdentity().moveBy((float)this._x, (float)this._y, (float)this._z).yaw((float)this._yaw);
|
|
- this._last_FrameTime = timeNow;
|
|
- }
|
|
- }
|
|
-
|
|
- public void reset(short x, short y, short z, short yaw) {
|
|
- this._x = x;
|
|
- this._y = y;
|
|
- this._z = z;
|
|
- this._yaw = yaw;
|
|
- this._vel_x = this._vel_y = this._vel_z = 0;
|
|
- this._vel_yaw = 0;
|
|
- this._last_x = this._x;
|
|
- this._last_y = this._y;
|
|
- this._last_z = this._z;
|
|
- this._last_yaw = this._yaw;
|
|
- this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- protected void transferFrom(Drone i) {
|
|
- this.makeIdentity().post(i);
|
|
- this._x = i._x;
|
|
- this._y = i._y;
|
|
- this._z = i._z;
|
|
- this._yaw = i._yaw;
|
|
- this._vel_x = i._vel_x;
|
|
- this._vel_y = i._vel_y;
|
|
- this._vel_z = i._vel_z;
|
|
- this._vel_yaw = i._vel_yaw;
|
|
- this._last_x = i._last_x;
|
|
- this._last_y = i._last_y;
|
|
- this._last_z = i._last_z;
|
|
- this._last_yaw = i._last_yaw;
|
|
- this._last_PosTime = i._last_PosTime;
|
|
- this._last_FrameTime = i._last_FrameTime;
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void appear(Room rm, short x, short y, short z, short yaw) {
|
|
- assert rm != null;
|
|
-
|
|
- BlackBox.getInstance().submitEvent(new BBAppearDroneCommand(rm.toString(), this.getName(), x, y, z, yaw));
|
|
- if (this.getRoom() != rm) {
|
|
- this.detach();
|
|
- rm.add(this);
|
|
- }
|
|
-
|
|
- this.makeIdentity().moveBy((float)x, (float)y, (float)z).yaw((float)yaw);
|
|
- this._x = x;
|
|
- this._y = y;
|
|
- this._z = z;
|
|
- this._yaw = yaw;
|
|
- this._vel_x = this._vel_y = this._vel_z = 0;
|
|
- this._vel_yaw = 0;
|
|
- this._last_x = x;
|
|
- this._last_y = y;
|
|
- this._last_z = z;
|
|
- this._last_yaw = yaw;
|
|
- this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
- URL u = this.getCurrentURL();
|
|
- if (u != null) {
|
|
- this.setAvatarNow(u);
|
|
- }
|
|
-
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void disappear() {
|
|
- BlackBox.getInstance().submitEvent(new BBDisappearDroneCommand(this.getName()));
|
|
- this.detachFromServer(true);
|
|
- this.detach();
|
|
- }
|
|
-
|
|
- public void longLoc(short x, short y, short z, short yaw) {
|
|
- if (!(this.getOwner() instanceof Pilot)) {
|
|
- BlackBox.getInstance().submitEvent(new BBMoveDroneCommand(this.getName(), x, y, z, yaw));
|
|
- }
|
|
-
|
|
- this._last_x = x;
|
|
- this._last_y = y;
|
|
- this._last_z = z;
|
|
- this._last_yaw = yaw;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = this._last_z - this._z;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
-
|
|
- assert this._vel_yaw >= 0;
|
|
-
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
-
|
|
- this._last_PosTime = Std.getRealTime();
|
|
- this.inited = true;
|
|
- }
|
|
-
|
|
- public void property(OldPropertyList propList) {
|
|
- int end = propList.size();
|
|
-
|
|
- for(int i = 0; i < end; ++i) {
|
|
- netProperty tmpProp = propList.elementAt(i);
|
|
- switch (tmpProp.property()) {
|
|
- case 5:
|
|
- this.handleVAR_BITMAP(tmpProp.value());
|
|
- break;
|
|
- case 23:
|
|
- this.handleVAR_ASLEEP(tmpProp.value());
|
|
- break;
|
|
+ } else {
|
|
+ BlackBox.getInstance().submitEvent(new BBDroneBitmapCommand(this.getName(), var1));
|
|
+ if (var1.charAt(0) == 0) {
|
|
+ var1 = var1.substring(2);
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ return this.setAvatarNow(new URL(URL.getAvatar(), var1));
|
|
+ } catch (MalformedURLException var3) {
|
|
+ Console.println(Console.message("Invalid-av") + var1);
|
|
+ return this;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Point3Temp getVelocity() {
|
|
+ return Point3Temp.make((float)this._vel_x, (float)this._vel_y, (float)this._vel_z);
|
|
+ }
|
|
+
|
|
+ public int getYawRate() {
|
|
+ return this._vel_yaw;
|
|
+ }
|
|
+
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ if (this._server == null) {
|
|
+ return true;
|
|
+ } else {
|
|
+ int var2 = var1.time;
|
|
+ this.interpolate(var2, this._server.getUpdateTime(), this);
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void interpolate(int var1, int var2, Transform var3) {
|
|
+ if (this.inited) {
|
|
+ if (var1 - this._last_PosTime > var2) {
|
|
+ this._last_PosTime = var1;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = this._last_z - this._z;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ assert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ double var4 = (double)(var1 - this._last_FrameTime) / (double)var2;
|
|
+ if (var1 - this._last_FrameTime > var2) {
|
|
+ var4 = 0.0D;
|
|
+ }
|
|
+
|
|
+ this._x += (int)(var4 * (double)this._vel_x);
|
|
+ this._y += (int)(var4 * (double)this._vel_y);
|
|
+ this._z += (int)(var4 * (double)this._vel_z);
|
|
+ this._yaw += (int)(var4 * (double)this._vel_yaw) % 360;
|
|
+ var3.makeIdentity().moveBy((float)this._x, (float)this._y, (float)this._z).yaw((float)this._yaw);
|
|
+ this._last_FrameTime = var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void reset(short var1, short var2, short var3, short var4) {
|
|
+ this._x = var1;
|
|
+ this._y = var2;
|
|
+ this._z = var3;
|
|
+ this._yaw = var4;
|
|
+ this._vel_x = this._vel_y = this._vel_z = 0;
|
|
+ this._vel_yaw = 0;
|
|
+ this._last_x = this._x;
|
|
+ this._last_y = this._y;
|
|
+ this._last_z = this._z;
|
|
+ this._last_yaw = this._yaw;
|
|
+ this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ protected void transferFrom(Drone var1) {
|
|
+ this.makeIdentity().post(var1);
|
|
+ this._x = var1._x;
|
|
+ this._y = var1._y;
|
|
+ this._z = var1._z;
|
|
+ this._yaw = var1._yaw;
|
|
+ this._vel_x = var1._vel_x;
|
|
+ this._vel_y = var1._vel_y;
|
|
+ this._vel_z = var1._vel_z;
|
|
+ this._vel_yaw = var1._vel_yaw;
|
|
+ this._last_x = var1._last_x;
|
|
+ this._last_y = var1._last_y;
|
|
+ this._last_z = var1._last_z;
|
|
+ this._last_yaw = var1._last_yaw;
|
|
+ this._last_PosTime = var1._last_PosTime;
|
|
+ this._last_FrameTime = var1._last_FrameTime;
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void appear(Room var1, short var2, short var3, short var4, short var5) {
|
|
+ assert(var1 != null);
|
|
+ BlackBox.getInstance().submitEvent(new BBAppearDroneCommand(var1.toString(), this.getName(), var2, var3, var4, var5));
|
|
+ if (this.getRoom() != var1) {
|
|
+ this.detach();
|
|
+ var1.add(this);
|
|
+ }
|
|
+
|
|
+ this.makeIdentity().moveBy((float)var2, (float)var3, (float)var4).yaw((float)var5);
|
|
+ this._x = var2;
|
|
+ this._y = var3;
|
|
+ this._z = var4;
|
|
+ this._yaw = var5;
|
|
+ this._vel_x = this._vel_y = this._vel_z = 0;
|
|
+ this._vel_yaw = 0;
|
|
+ this._last_x = var2;
|
|
+ this._last_y = var3;
|
|
+ this._last_z = var4;
|
|
+ this._last_yaw = var5;
|
|
+ this._last_PosTime = this._last_FrameTime = Std.getRealTime();
|
|
+ URL var6 = this.getCurrentURL();
|
|
+ if (var6 != null) {
|
|
+ this.setAvatarNow(var6);
|
|
+ }
|
|
+
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void disappear() {
|
|
+ BlackBox.getInstance().submitEvent(new BBDisappearDroneCommand(this.getName()));
|
|
+ this.detachFromServer(true);
|
|
+ this.detach();
|
|
+ }
|
|
+
|
|
+ public void longLoc(short var1, short var2, short var3, short var4) {
|
|
+ if (!(this.getOwner() instanceof Pilot)) {
|
|
+ BlackBox.getInstance().submitEvent(new BBMoveDroneCommand(this.getName(), var1, var2, var3, var4));
|
|
+ }
|
|
+
|
|
+ this._last_x = var1;
|
|
+ this._last_y = var2;
|
|
+ this._last_z = var3;
|
|
+ this._last_yaw = var4;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = this._last_z - this._z;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ assert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+
|
|
+ this._last_PosTime = Std.getRealTime();
|
|
+ this.inited = true;
|
|
+ }
|
|
+
|
|
+ public void property(OldPropertyList var1) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ netProperty var2 = var1.elementAt(var4);
|
|
+ switch(var2.property()) {
|
|
+ case 5:
|
|
+ this.handleVAR_BITMAP(var2.value());
|
|
+ break;
|
|
+ case 23:
|
|
+ this.handleVAR_ASLEEP(var2.value());
|
|
+ break;
|
|
+ default:
|
|
+ byte[] var5 = new byte[var2.value().length()];
|
|
+ var2.value().getBytes(0, var2.value().length(), var5, 0);
|
|
+ this.getSharer().setFromNetData(var2.property(), var5);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void propertyUpdate(PropertyList var1) {
|
|
+ int var3 = var1.size();
|
|
+
|
|
+ for(int var4 = 0; var4 < var3; ++var4) {
|
|
+ net2Property var2 = var1.elementAt(var4);
|
|
+ switch(var2.property()) {
|
|
+ case 5:
|
|
+ this.handleVAR_BITMAP(var2.value());
|
|
+ break;
|
|
+ case 23:
|
|
+ this.handleVAR_ASLEEP(var2.value());
|
|
+ break;
|
|
+ default:
|
|
+ this.getSharer().setFromNetData(var2.property(), var2.data());
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void roomChange(Room var1, short var2, short var3, short var4, short var5) {
|
|
+ this.detach();
|
|
+ if (var1 != null) {
|
|
+ this.appear(var1, var2, var3, var4, var5);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void shortLoc(byte var1, byte var2, byte var3) {
|
|
+ if (!(this.getOwner() instanceof Pilot)) {
|
|
+ BlackBox.getInstance().submitEvent(new BBDroneDeltaPosCommand(this.getName(), var1, var2, var3));
|
|
+ }
|
|
+
|
|
+ this._last_x += var1;
|
|
+ this._last_y += var2;
|
|
+ this._last_yaw += var3;
|
|
+ this._last_yaw %= 360;
|
|
+ this._vel_x = this._last_x - this._x;
|
|
+ this._vel_y = this._last_y - this._y;
|
|
+ this._vel_z = 0;
|
|
+ this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
+ assert(this._vel_yaw >= 0);
|
|
+ if (this._vel_yaw > 180) {
|
|
+ this._vel_yaw -= 360;
|
|
+ }
|
|
+
|
|
+ this._last_PosTime = Std.getRealTime();
|
|
+ }
|
|
+
|
|
+ public void teleport(WorldServer var1, byte var2, byte var3, Room var4, short var5, short var6, short var7, short var8) {
|
|
+ assert(var1.getObject(new ObjID(this.getLongID())) == this);
|
|
+ Room var9 = this.getRoom();
|
|
+ switch(var2) {
|
|
+ default:
|
|
+ if (var9 != null) {
|
|
+ assert(var9 != null);
|
|
+ this.detach();
|
|
+ }
|
|
+ case 0:
|
|
+ switch(var3) {
|
|
+ case 0:
|
|
+ this.detachFromServer(true);
|
|
+ this.detach();
|
|
+ break;
|
|
+ default:
|
|
+ if (var4 == null) {
|
|
+ this.detach();
|
|
+ } else {
|
|
+ assert(var4 != null);
|
|
+ this.appear(var4, var5, var6, var7, var8);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public WorldServer getServer() {
|
|
+ return this._server;
|
|
+ }
|
|
+
|
|
+ public String getLongID() {
|
|
+ String var1 = this.getName();
|
|
+ if (var1.startsWith("!")) {
|
|
+ var1 = var1.substring(1);
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ public void register() {
|
|
+ assert(false);
|
|
+ }
|
|
+
|
|
+ public void galaxyDisconnected() {
|
|
+ assert(false);
|
|
+ }
|
|
+
|
|
+ public void reacquireServer(WorldServer var1) {
|
|
+ assert(false);
|
|
+ }
|
|
+
|
|
+ public void changeChannel(Galaxy var1, String var2, String var3) {
|
|
+ assert(false);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
default:
|
|
- byte[] data = new byte[tmpProp.value().length()];
|
|
- tmpProp.value().getBytes(0, tmpProp.value().length(), data, 0);
|
|
- this.getSharer().setFromNetData(tmpProp.property(), data);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void propertyUpdate(PropertyList propList) {
|
|
- int end = propList.size();
|
|
-
|
|
- for(int i = 0; i < end; ++i) {
|
|
- net2Property tmpProp = propList.elementAt(i);
|
|
- switch (tmpProp.property()) {
|
|
- case 5:
|
|
- this.handleVAR_BITMAP(tmpProp.value());
|
|
- break;
|
|
- case 23:
|
|
- this.handleVAR_ASLEEP(tmpProp.value());
|
|
- break;
|
|
+ var5 = super.properties(var1, var2 + 0, var3, var4);
|
|
+ return var5;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ if (this.console != null) {
|
|
+ System.out.println("Warning: saving drone " + this.getName() + " WITH soul, which won't restore correctly!");
|
|
+ }
|
|
+
|
|
+ var1.saveVersion(0, classCookieInterpolatedDrone);
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreStateDrone(Restorer var1) throws IOException, TooNewException {
|
|
+ var1.restoreVersion(classCookieInterpolatedDrone);
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ Enumeration var2 = this.getContents();
|
|
+
|
|
+ while(var2.hasMoreElements()) {
|
|
+ WObject var3 = (WObject)var2.nextElement();
|
|
+ if (var3 instanceof Hologram) {
|
|
+ Hologram var4 = (Hologram)var3;
|
|
+ if (var4.getMovieName() == null) {
|
|
+ this.tag = var4;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return;
|
|
default:
|
|
- this.getSharer().setFromNetData(tmpProp.property(), tmpProp.data());
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void roomChange(Room newRoom, short x, short y, short z, short yaw) {
|
|
- this.detach();
|
|
- if (newRoom != null) {
|
|
- this.appear(newRoom, x, y, z, yaw);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void shortLoc(byte dx, byte dy, byte dyaw) {
|
|
- if (!(this.getOwner() instanceof Pilot)) {
|
|
- BlackBox.getInstance().submitEvent(new BBDroneDeltaPosCommand(this.getName(), dx, dy, dyaw));
|
|
- }
|
|
-
|
|
- this._last_x += dx;
|
|
- this._last_y += dy;
|
|
- this._last_yaw += dyaw;
|
|
- this._last_yaw %= 360;
|
|
- this._vel_x = this._last_x - this._x;
|
|
- this._vel_y = this._last_y - this._y;
|
|
- this._vel_z = 0;
|
|
- this._vel_yaw = ((this._last_yaw - this._yaw) % 360 + 360) % 360;
|
|
-
|
|
- assert this._vel_yaw >= 0;
|
|
-
|
|
- if (this._vel_yaw > 180) {
|
|
- this._vel_yaw -= 360;
|
|
- }
|
|
-
|
|
- this._last_PosTime = Std.getRealTime();
|
|
- }
|
|
-
|
|
- public void teleport(WorldServer serv, byte exitType, byte entryType, Room newRoom, short x, short y, short z, short yaw) {
|
|
- assert serv.getObject(new ObjID(this.getLongID())) == this;
|
|
-
|
|
- Room curRoom = this.getRoom();
|
|
- switch (exitType) {
|
|
- default:
|
|
- if (curRoom != null) {
|
|
- assert curRoom != null;
|
|
-
|
|
- this.detach();
|
|
- }
|
|
- case 0:
|
|
- switch (entryType) {
|
|
- case 0:
|
|
- this.detachFromServer(true);
|
|
- this.detach();
|
|
- break;
|
|
- default:
|
|
- if (newRoom == null) {
|
|
- this.detach();
|
|
- } else {
|
|
- assert newRoom != null;
|
|
-
|
|
- this.appear(newRoom, x, y, z, yaw);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- public WorldServer getServer() {
|
|
- return this._server;
|
|
- }
|
|
-
|
|
- public String getLongID() {
|
|
- String name = this.getName();
|
|
- if (name.startsWith("!")) {
|
|
- name = name.substring(1);
|
|
- }
|
|
-
|
|
- return name;
|
|
- }
|
|
-
|
|
- public void register() {
|
|
- assert false;
|
|
-
|
|
- }
|
|
-
|
|
- public void galaxyDisconnected() {
|
|
- assert false;
|
|
-
|
|
- }
|
|
-
|
|
- public void reacquireServer(WorldServer oldServ) {
|
|
- assert false;
|
|
-
|
|
- }
|
|
-
|
|
- public void changeChannel(Galaxy g, String oldChannel, String newChannel) {
|
|
- assert false;
|
|
-
|
|
- }
|
|
-
|
|
- public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException {
|
|
- Object ret = null;
|
|
- int var10000 = index - offset;
|
|
- ret = super.properties(index, offset + 0, mode, value);
|
|
- return ret;
|
|
- }
|
|
-
|
|
- public void saveState(Saver s) throws IOException {
|
|
- if (this.console != null) {
|
|
- System.out.println("Warning: saving drone " + this.getName() + " WITH soul, which won't restore correctly!");
|
|
- }
|
|
-
|
|
- s.saveVersion(0, classCookieInterpolatedDrone);
|
|
- s.saveVersion(0, classCookie);
|
|
- super.saveState(s);
|
|
- }
|
|
-
|
|
- public void restoreStateDrone(Restorer r) throws IOException, TooNewException {
|
|
- r.restoreVersion(classCookieInterpolatedDrone);
|
|
- switch (r.restoreVersion(classCookie)) {
|
|
- case 0:
|
|
- super.restoreState(r);
|
|
- Enumeration e = this.getContents();
|
|
-
|
|
- while(e.hasMoreElements()) {
|
|
- WObject w = (WObject)e.nextElement();
|
|
- if (w instanceof Hologram) {
|
|
- Hologram h = (Hologram)w;
|
|
- if (h.getMovieName() == null) {
|
|
- this.tag = h;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- this.restoreStateDrone(r);
|
|
- }
|
|
-
|
|
- class BounceNametag implements MainCallback {
|
|
- int start;
|
|
- WObject origTag;
|
|
- WObject origTagbg;
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ this.restoreStateDrone(var1);
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static String access$000(Drone var0) {
|
|
+ return var0.sleepMode;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static Shape access$100(Drone var0) {
|
|
+ return var0.sleepBox;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static Shape access$102(Drone var0, Shape var1) {
|
|
+ return var0.sleepBox = var1;
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static void access$200() {
|
|
+ flushUnusedDrones();
|
|
+ }
|
|
+
|
|
+ // $FF: synthetic method
|
|
+ static float access$300(Drone var0) {
|
|
+ return var0.tagHeight;
|
|
+ }
|
|
+
|
|
+ static {
|
|
+ Main.register(new Drone$Flusher());
|
|
+ showNametags = IniFile.gamma().getIniInt("SHOWNAMETAGS", 1) == 1;
|
|
+ employeeAccounts = ServerTableManager.instance().getTable("employeeAccounts");
|
|
+ employeeHash = null;
|
|
+ usableDrones = new Vector();
|
|
+ classCookie = new Object();
|
|
+ classCookieInterpolatedDrone = new Object();
|
|
+ }
|
|
+}
|
|
|
|
- BounceNametag() {
|
|
- if (Drone.this.tag != null) {
|
|
+class Drone$MakeSleepBox implements MainCallback {
|
|
+
|
|
+ private final Drone this$0;
|
|
+
|
|
+
|
|
+ Drone$MakeSleepBox(Drone var1) {
|
|
+ this.this$0 = var1;
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ if(Drone.access$000(this.this$0) != null && Drone.access$000(this.this$0).equals(Console.message("asleep")) && (!(this.this$0 instanceof MutedDrone))) {
|
|
+ if(Drone.access$100(this.this$0) == null) {
|
|
+ Drone.access$102(this.this$0, new Shape());
|
|
+ Drone.access$100(this.this$0).setURL(URL.make("home:idle.rwg"));
|
|
+ Drone.access$100(this.this$0).setBumpable(false);
|
|
+ Drone.access$100(this.this$0).scale(100.0F);
|
|
+ Drone.access$100(this.this$0).spin(0.0F, 1.0F, 1.0F, 180.0F);
|
|
+ Drone.access$100(this.this$0).raise(189.0F);
|
|
+ this.this$0.add(Drone.access$100(this.this$0));
|
|
+ }
|
|
+ } else if(Drone.access$100(this.this$0) != null) {
|
|
+ Drone.access$100(this.this$0).detach();
|
|
+ Drone.access$102(this.this$0, (Shape)null);
|
|
+ }
|
|
+
|
|
+ Main.unregister(this);
|
|
+ }
|
|
+}
|
|
+
|
|
+class Drone$Flusher implements MainCallback {
|
|
+
|
|
+ int lastTime;
|
|
+
|
|
+
|
|
+ public void mainCallback() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ if(var1 > this.lastTime + 1000) {
|
|
+ Drone.access$200();
|
|
+ this.lastTime = var1;
|
|
+ }
|
|
+
|
|
+ }
|
|
+}
|
|
+
|
|
+class Drone$BounceNametag implements MainCallback {
|
|
+
|
|
+ int start;
|
|
+ WObject origTag;
|
|
+ WObject origTagbg;
|
|
+ private final Drone this$0;
|
|
+
|
|
+
|
|
+ Drone$BounceNametag(Drone var1) {
|
|
+ this.this$0 = var1;
|
|
+ if(var1.tag != null) {
|
|
this.start = Std.getFastTime();
|
|
- this.origTag = Drone.this.tag;
|
|
- this.origTagbg = Drone.this.tagbg;
|
|
+ this.origTag = var1.tag;
|
|
+ this.origTagbg = var1.tagbg;
|
|
Main.register(this);
|
|
- }
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
|
|
- public void mainCallback() {
|
|
- int now = Std.getFastTime();
|
|
- float h = Drone.this.tagHeight;
|
|
- if (now <= this.start + 6000 && this.origTag == Drone.this.tag && this.origTagbg == Drone.this.tagbg) {
|
|
- if (now < this.start + 1500) {
|
|
- h = Drone.this.tagHeight + 200.0F * ((float)(now - this.start) / 1500.0F);
|
|
+ public void mainCallback() {
|
|
+ int var1 = Std.getFastTime();
|
|
+ float var2 = Drone.access$300(this.this$0);
|
|
+ if(var1 <= this.start + 6000 && this.origTag == this.this$0.tag && this.origTagbg == this.this$0.tagbg) {
|
|
+ if(var1 < this.start + 1500) {
|
|
+ var2 = Drone.access$300(this.this$0) + 200.0F * ((float)(var1 - this.start) / 1500.0F);
|
|
} else {
|
|
- float t = (float)(now - this.start) / 1500.0F;
|
|
- h = (float)(200.0 * Math.pow(1.4140000343322754, (double)t) * Math.cos((double)(t * 3.14159F)));
|
|
+ float var3 = (float)(var1 - this.start) / 1500.0F;
|
|
+ var2 = (float)(200.0D * Math.pow(1.4140000343322754D, (double)var3) * Math.cos((double)(var3 * 3.14159F)));
|
|
}
|
|
- } else {
|
|
+ } else {
|
|
Main.unregister(this);
|
|
- }
|
|
+ }
|
|
|
|
- this.origTag.setZ(h);
|
|
- if (this.origTagbg != null) {
|
|
- this.origTagbg.setZ(h);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- static class Flusher implements MainCallback {
|
|
- int lastTime;
|
|
-
|
|
- public void mainCallback() {
|
|
- int now = Std.getFastTime();
|
|
- if (now > this.lastTime + 1000) {
|
|
- Drone.flushUnusedDrones();
|
|
- this.lastTime = now;
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
-
|
|
- class MakeSleepBox implements MainCallback {
|
|
- public void mainCallback() {
|
|
- if (Drone.this.sleepMode != null && Drone.this.sleepMode.equals(Console.message("asleep")) && !(Drone.this instanceof MutedDrone)) {
|
|
- if (Drone.this.sleepBox == null) {
|
|
- Drone.this.sleepBox = new Shape();
|
|
- Drone.this.sleepBox.setURL(URL.make("home:idle.rwg"));
|
|
- Drone.this.sleepBox.setBumpable(false);
|
|
- Drone.this.sleepBox.scale(100.0F);
|
|
- Drone.this.sleepBox.spin(0.0F, 1.0F, 1.0F, 180.0F);
|
|
- Drone.this.sleepBox.raise(189.0F);
|
|
- Drone.this.add(Drone.this.sleepBox);
|
|
- }
|
|
- } else if (Drone.this.sleepBox != null) {
|
|
- Drone.this.sleepBox.detach();
|
|
- Drone.this.sleepBox = null;
|
|
- }
|
|
-
|
|
- Main.unregister(this);
|
|
- }
|
|
- }
|
|
-}
|
|
+ this.origTag.setZ(var2);
|
|
+ if(this.origTagbg != null) {
|
|
+ this.origTagbg.setZ(var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+}
|
|
diff -ruN a/1920/NET/worlds/scape/HighJump.java b/1920/NET/worlds/scape/HighJump.java
|
|
--- a/1920/NET/worlds/scape/HighJump.java 2024-01-08 01:46:36.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/HighJump.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -9,42 +9,44 @@
|
|
int start;
|
|
SmoothDriver sd;
|
|
|
|
- public HighJump(String id, String name) {
|
|
- super(id, name);
|
|
+ public HighJump(String var1, String var2) {
|
|
+ super(var1, var2);
|
|
}
|
|
|
|
- public HighJump(String id, String name, int qty) {
|
|
- super(id, name, qty);
|
|
+ public HighJump(String var1, String var2, int var3) {
|
|
+ super(var1, var2, var3);
|
|
}
|
|
|
|
- public HighJump(HighJump in) {
|
|
- super(in);
|
|
+ public HighJump(HighJump var1) {
|
|
+ super(var1);
|
|
}
|
|
|
|
public InventoryItem cloneItem() {
|
|
return new HighJump(this);
|
|
}
|
|
|
|
- private SmoothDriver findSD(Pilot p) {
|
|
- Enumeration e = p.getHandlers();
|
|
+ private SmoothDriver findSD(Pilot var1) {
|
|
+ Enumeration var2 = var1.getHandlers();
|
|
|
|
- while(e.hasMoreElements()) {
|
|
- Object o = e.nextElement();
|
|
- if (o instanceof SmoothDriver) {
|
|
- return (SmoothDriver)o;
|
|
+ Object var3;
|
|
+ do {
|
|
+ if (!var2.hasMoreElements()) {
|
|
+ return null;
|
|
}
|
|
- }
|
|
|
|
- return null;
|
|
+ var3 = var2.nextElement();
|
|
+ } while(!(var3 instanceof SmoothDriver));
|
|
+
|
|
+ return (SmoothDriver)var3;
|
|
}
|
|
|
|
public boolean doAction() {
|
|
if (this.itemQuantity_ > 0) {
|
|
- Pilot p = Pilot.getActive();
|
|
- if (p == null) {
|
|
+ Pilot var1 = Pilot.getActive();
|
|
+ if (var1 == null) {
|
|
return false;
|
|
} else {
|
|
- this.sd = this.findSD(p);
|
|
+ this.sd = this.findSD(var1);
|
|
if (this.sd == null) {
|
|
return false;
|
|
} else {
|
|
@@ -63,13 +65,13 @@
|
|
}
|
|
|
|
public void mainCallback() {
|
|
- int now = Std.getFastTime();
|
|
- if (now > this.start + 6000) {
|
|
+ int var1 = Std.getFastTime();
|
|
+ if (var1 > this.start + 6000) {
|
|
Main.unregister(this);
|
|
this.sd.setEyeHeight(150.0F);
|
|
} else {
|
|
- float t = 1.0F - (float)Math.pow((double)(1.0F - (float)(now - this.start) / 3000.0F), 4.0);
|
|
- this.sd.setEyeHeight(150.0F + 150.0F * t);
|
|
+ float var2 = 1.0F - (float)Math.pow((double)(1.0F - (float)(var1 - this.start) / 3000.0F), 4.0D);
|
|
+ this.sd.setEyeHeight(150.0F + 150.0F * var2);
|
|
}
|
|
|
|
}
|
|
diff -ruN a/1920/NET/worlds/scape/InventoryManager.java b/1920/NET/worlds/scape/InventoryManager.java
|
|
--- a/1920/NET/worlds/scape/InventoryManager.java 2024-01-08 01:46:42.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/InventoryManager.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -18,9 +18,9 @@
|
|
private boolean initialized_ = false;
|
|
private Vector equipped_ = new Vector();
|
|
|
|
- public synchronized void setEquippedItems(Vector equippedItems) {
|
|
+ public synchronized void setEquippedItems(Vector var1) {
|
|
this.removeEquippedItems();
|
|
- this.equipped_ = equippedItems;
|
|
+ this.equipped_ = var1;
|
|
this.equipItems();
|
|
}
|
|
|
|
@@ -29,14 +29,14 @@
|
|
}
|
|
|
|
private synchronized void removeEquippedItems() {
|
|
- for(int i = 0; i < this.equipped_.size(); ++i) {
|
|
- EquippableItem itemToEquip = (EquippableItem)this.equipped_.elementAt(i);
|
|
- Shape ownedShape = itemToEquip.getOwnedShape();
|
|
- if (ownedShape != null) {
|
|
- ownedShape.detach();
|
|
+ for(int var1 = 0; var1 < this.equipped_.size(); ++var1) {
|
|
+ EquippableItem var2 = (EquippableItem)this.equipped_.elementAt(var1);
|
|
+ Shape var3 = var2.getOwnedShape();
|
|
+ if (var3 != null) {
|
|
+ var3.detach();
|
|
}
|
|
|
|
- itemToEquip.setOwnedShape((Shape)null);
|
|
+ var2.setOwnedShape((Shape)null);
|
|
}
|
|
|
|
}
|
|
@@ -44,35 +44,36 @@
|
|
private synchronized void equipItems() {
|
|
System.out.println("Equipped Items Size: " + this.equipped_.size());
|
|
|
|
- for(int i = 0; i < this.equipped_.size(); ++i) {
|
|
- Shape itemShape = new Shape();
|
|
- EquippableItem itemToEquip = (EquippableItem)this.equipped_.elementAt(i);
|
|
- if (itemToEquip != null) {
|
|
+ for(int var1 = 0; var1 < this.equipped_.size(); ++var1) {
|
|
+ Shape var2 = new Shape();
|
|
+ new String();
|
|
+ EquippableItem var7 = (EquippableItem)this.equipped_.elementAt(var1);
|
|
+ if (var7 != null) {
|
|
try {
|
|
- itemShape.setURL(new URL(itemToEquip.getModelLocation()));
|
|
- } catch (MalformedURLException var10) {
|
|
- System.out.println("Badly formed URL for " + itemToEquip.getItemName());
|
|
+ var2.setURL(new URL(var7.getModelLocation()));
|
|
+ } catch (MalformedURLException var12) {
|
|
+ System.out.println("Badly formed URL for " + var7.getItemName());
|
|
continue;
|
|
}
|
|
|
|
- float s = itemToEquip.getScale();
|
|
- itemShape.scale(s, s, s);
|
|
- itemShape.pitch((float)itemToEquip.getPitch());
|
|
- itemShape.roll((float)itemToEquip.getRoll());
|
|
- itemShape.yaw((float)itemToEquip.getYaw());
|
|
- itemShape.moveBy(itemToEquip.getXPos(), itemToEquip.getYPos(), itemToEquip.getZPos());
|
|
- int properLoc = itemToEquip.getBodyLocation();
|
|
- DeepEnumeration de = new DeepEnumeration();
|
|
- Pilot.getActive().getChildren(de);
|
|
-
|
|
- while(de.hasMoreElements()) {
|
|
- Object obj = de.nextElement();
|
|
- if (obj instanceof Shape) {
|
|
- Shape objShape = (Shape)obj;
|
|
- int partType = objShape.getBodPartNum();
|
|
- if (partType == properLoc) {
|
|
- objShape.add(itemShape);
|
|
- itemToEquip.setOwnedShape(itemShape);
|
|
+ float var6 = var7.getScale();
|
|
+ var2.scale(var6, var6, var6);
|
|
+ var2.pitch((float)var7.getPitch());
|
|
+ var2.roll((float)var7.getRoll());
|
|
+ var2.yaw((float)var7.getYaw());
|
|
+ var2.moveBy(var7.getXPos(), var7.getYPos(), var7.getZPos());
|
|
+ int var4 = var7.getBodyLocation();
|
|
+ DeepEnumeration var8 = new DeepEnumeration();
|
|
+ Pilot.getActive().getChildren(var8);
|
|
+
|
|
+ while(var8.hasMoreElements()) {
|
|
+ Object var9 = var8.nextElement();
|
|
+ if (var9 instanceof Shape) {
|
|
+ Shape var10 = (Shape)var9;
|
|
+ int var11 = var10.getBodPartNum();
|
|
+ if (var11 == var4) {
|
|
+ var10.add(var2);
|
|
+ var7.setOwnedShape(var2);
|
|
break;
|
|
}
|
|
}
|
|
@@ -83,219 +84,219 @@
|
|
}
|
|
|
|
public Vector getEquippableItems() {
|
|
- Vector retVal = new Vector();
|
|
- Enumeration invEnum = this.inventory_.elements();
|
|
+ Vector var1 = new Vector();
|
|
+ Enumeration var2 = this.inventory_.elements();
|
|
|
|
- while(invEnum.hasMoreElements()) {
|
|
- InventoryItem obj = (InventoryItem)invEnum.nextElement();
|
|
- if (obj instanceof EquippableItem) {
|
|
- retVal.addElement(obj);
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof EquippableItem) {
|
|
+ var1.addElement(var3);
|
|
}
|
|
}
|
|
|
|
- return retVal;
|
|
+ return var1;
|
|
}
|
|
|
|
public Vector getInventoryAvatars() {
|
|
- Vector retVal = new Vector();
|
|
- Enumeration invEnum = this.inventory_.elements();
|
|
+ Vector var1 = new Vector();
|
|
+ Enumeration var2 = this.inventory_.elements();
|
|
|
|
- while(invEnum.hasMoreElements()) {
|
|
- InventoryItem obj = (InventoryItem)invEnum.nextElement();
|
|
- if (obj instanceof InventoryAvatar) {
|
|
- retVal.addElement(obj);
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof InventoryAvatar) {
|
|
+ var1.addElement(var3);
|
|
}
|
|
}
|
|
|
|
- return retVal;
|
|
+ return var1;
|
|
}
|
|
|
|
public Hashtable getInventoryItems() {
|
|
return this.inventory_;
|
|
}
|
|
|
|
- public int checkInventoryFor(String nm) {
|
|
- InventoryItem it = (InventoryItem)this.inventory_.get(nm);
|
|
- return it != null ? it.getItemQuantity() : 0;
|
|
+ public int checkInventoryFor(String var1) {
|
|
+ InventoryItem var2 = (InventoryItem)this.inventory_.get(var1);
|
|
+ return var2 != null ? var2.getItemQuantity() : 0;
|
|
}
|
|
|
|
public Vector getInventoryActionList() {
|
|
- Vector retVal = new Vector();
|
|
- Enumeration invEnum = this.inventory_.elements();
|
|
+ Vector var1 = new Vector();
|
|
+ Enumeration var2 = this.inventory_.elements();
|
|
|
|
- while(invEnum.hasMoreElements()) {
|
|
- InventoryItem obj = (InventoryItem)invEnum.nextElement();
|
|
- if (obj instanceof InventoryAction) {
|
|
- retVal.addElement(obj);
|
|
+ while(var2.hasMoreElements()) {
|
|
+ Object var3 = var2.nextElement();
|
|
+ if (var3 instanceof InventoryAction) {
|
|
+ var1.addElement(var3);
|
|
}
|
|
}
|
|
|
|
- return retVal;
|
|
+ return var1;
|
|
}
|
|
|
|
- public void doInventoryAction(String act) {
|
|
- Vector actVector = this.getInventoryActionList();
|
|
+ public void doInventoryAction(String var1) {
|
|
+ Vector var2 = this.getInventoryActionList();
|
|
|
|
- for(int i = 0; i < actVector.size(); ++i) {
|
|
- InventoryAction invAct = (InventoryAction)actVector.elementAt(i);
|
|
- if (invAct.getItemName().equalsIgnoreCase(act)) {
|
|
- invAct.doAction();
|
|
- String msg = "&|+deal>trade " + invAct.getItemId() + ",";
|
|
- TradeDialog.sendTradeMessage(msg);
|
|
+ for(int var3 = 0; var3 < var2.size(); ++var3) {
|
|
+ InventoryAction var4 = (InventoryAction)var2.elementAt(var3);
|
|
+ if (var4.getItemName().equalsIgnoreCase(var1)) {
|
|
+ var4.doAction();
|
|
+ String var5 = "&|+deal>trade " + var4.getItemId() + ",";
|
|
+ TradeDialog.sendTradeMessage(var5);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
- public void setInventory(String invString) {
|
|
+ public void setInventory(String var1) {
|
|
this.initialized_ = true;
|
|
- Hashtable newInv = this.parseInventoryString(invString);
|
|
- this.inventory_ = newInv;
|
|
- Enumeration e = WhisperManager.whisperManager().tradeDialogs().elements();
|
|
-
|
|
- while(e.hasMoreElements()) {
|
|
- TradeDialog wd = (TradeDialog)e.nextElement();
|
|
- wd.setTrading(true);
|
|
+ Hashtable var2 = this.parseInventoryString(var1);
|
|
+ this.inventory_ = var2;
|
|
+ Enumeration var3 = WhisperManager.whisperManager().tradeDialogs().elements();
|
|
+
|
|
+ while(var3.hasMoreElements()) {
|
|
+ TradeDialog var4 = (TradeDialog)var3.nextElement();
|
|
+ var4.setTrading(true);
|
|
}
|
|
|
|
if (Console.getActive() != null) {
|
|
- Console a = Console.getActive();
|
|
- a.inventoryChanged();
|
|
- if (a.targetValid != a.isValidAv()) {
|
|
- a.resetAvatar();
|
|
+ Console var5 = Console.getActive();
|
|
+ var5.inventoryChanged();
|
|
+ if (var5.targetValid != var5.isValidAv()) {
|
|
+ var5.resetAvatar();
|
|
}
|
|
}
|
|
|
|
ActionsPart.updateActionDialog();
|
|
}
|
|
|
|
- public Hashtable parseInventoryString(String invString) {
|
|
- Hashtable newInventory = new Hashtable();
|
|
- if (invString == null) {
|
|
- return newInventory;
|
|
+ public Hashtable parseInventoryString(String var1) {
|
|
+ Hashtable var2 = new Hashtable();
|
|
+ if (var1 == null) {
|
|
+ return var2;
|
|
} else {
|
|
- int len = invString.length();
|
|
+ int var3 = var1.length();
|
|
|
|
- int countStart;
|
|
- int countLen;
|
|
- for(int itemStart = 0; itemStart < len; itemStart = countStart + countLen) {
|
|
- char ch = invString.charAt(itemStart);
|
|
- if (ch < 'A' || ch > 'Z') {
|
|
- System.out.println("Bad inventory: " + invString);
|
|
- return newInventory;
|
|
+ int var8;
|
|
+ int var9;
|
|
+ for(int var4 = 0; var4 < var3; var4 = var8 + var9) {
|
|
+ char var5 = var1.charAt(var4);
|
|
+ if (var5 < 'A' || var5 > 'Z') {
|
|
+ System.out.println("Bad inventory: " + var1);
|
|
+ return var2;
|
|
}
|
|
|
|
- int descLen;
|
|
- for(descLen = 1; itemStart + descLen < len; ++descLen) {
|
|
- ch = invString.charAt(itemStart + descLen);
|
|
- if (ch < 'a' || ch > 'z') {
|
|
+ int var6;
|
|
+ for(var6 = 1; var4 + var6 < var3; ++var6) {
|
|
+ var5 = var1.charAt(var4 + var6);
|
|
+ if (var5 < 'a' || var5 > 'z') {
|
|
break;
|
|
}
|
|
}
|
|
|
|
- String shortName = invString.substring(itemStart, itemStart + descLen);
|
|
- countStart = itemStart + descLen;
|
|
+ String var7 = var1.substring(var4, var4 + var6);
|
|
+ var8 = var4 + var6;
|
|
|
|
- for(countLen = 0; countLen + countStart < len; ++countLen) {
|
|
- ch = invString.charAt(countStart + countLen);
|
|
- if (ch < '0' || ch > '9') {
|
|
+ for(var9 = 0; var9 + var8 < var3; ++var9) {
|
|
+ var5 = var1.charAt(var8 + var9);
|
|
+ if (var5 < '0' || var5 > '9') {
|
|
break;
|
|
}
|
|
}
|
|
|
|
- int count = 1;
|
|
- if (countLen > 0) {
|
|
- count = Integer.parseInt(invString.substring(countStart, countStart + countLen));
|
|
+ int var10 = 1;
|
|
+ if (var9 > 0) {
|
|
+ var10 = Integer.parseInt(var1.substring(var8, var8 + var9));
|
|
}
|
|
|
|
- InventoryItem foundItem = (InventoryItem)this.masterList_.get(shortName);
|
|
- if (foundItem != null) {
|
|
- InventoryItem newItem = foundItem.cloneItem();
|
|
- newItem.setQuantity(count);
|
|
- newInventory.put(shortName, newItem);
|
|
+ InventoryItem var11 = (InventoryItem)this.masterList_.get(var7);
|
|
+ if (var11 != null) {
|
|
+ InventoryItem var12 = var11.cloneItem();
|
|
+ var12.setQuantity(var10);
|
|
+ var2.put(var7, var12);
|
|
}
|
|
}
|
|
|
|
- return newInventory;
|
|
+ return var2;
|
|
}
|
|
}
|
|
|
|
- public String properCase(String s) {
|
|
- return s.equals("") ? s : s.substring(0, 1).toUpperCase() + s.substring(1);
|
|
+ public String properCase(String var1) {
|
|
+ return var1.equals("") ? var1 : var1.substring(0, 1).toUpperCase() + var1.substring(1);
|
|
}
|
|
|
|
- public String getSingular(String sn) {
|
|
- InventoryItem item = (InventoryItem)this.masterList_.get(sn);
|
|
- return item != null ? item.getItemName() : "unknown" + sn;
|
|
+ public String getSingular(String var1) {
|
|
+ InventoryItem var2 = (InventoryItem)this.masterList_.get(var1);
|
|
+ return var2 != null ? var2.getItemName() : "unknown" + var1;
|
|
}
|
|
|
|
- public String getPlural(String sn) {
|
|
- return this.getSingular(sn) + "s";
|
|
+ public String getPlural(String var1) {
|
|
+ return this.getSingular(var1) + "s";
|
|
}
|
|
|
|
- public String itemName(String sn, int num) {
|
|
- if (num == 1) {
|
|
- return "a " + this.getSingular(sn);
|
|
+ public String itemName(String var1, int var2) {
|
|
+ if (var2 == 1) {
|
|
+ return "a " + this.getSingular(var1);
|
|
} else {
|
|
- String retVal = num + " " + this.getPlural(sn);
|
|
- return retVal;
|
|
+ String var3 = "" + var2 + " " + this.getPlural(var1);
|
|
+ return var3;
|
|
}
|
|
}
|
|
|
|
- public String itemName(InventoryItem item) {
|
|
- return this.itemName(item.getItemId(), item.getItemQuantity());
|
|
+ public String itemName(InventoryItem var1) {
|
|
+ return this.itemName(var1.getItemId(), var1.getItemQuantity());
|
|
}
|
|
|
|
private InventoryManager() {
|
|
- ServerTableManager stm = ServerTableManager.instance();
|
|
- int invVersion = stm.getFileVersion();
|
|
- String[] invStrings = stm.getTable("invList");
|
|
- String[] graphicStrings = new String[0];
|
|
- if (invVersion > 1) {
|
|
- graphicStrings = stm.getTable("graphicList");
|
|
- }
|
|
-
|
|
- URL defaultImageURL = URL.make("home:..\\default.gif");
|
|
- if (invStrings != null) {
|
|
- int numStringsPerItem = 12;
|
|
-
|
|
- for(int i = 0; i < invStrings.length; i += numStringsPerItem) {
|
|
- String id = invStrings[i];
|
|
- String name = invStrings[i + 2];
|
|
- String model = invStrings[i + 3];
|
|
- int loc = Double.valueOf(invStrings[i + 4]).intValue();
|
|
- float scale = Double.valueOf(invStrings[i + 5]).floatValue();
|
|
- int pitch = Double.valueOf(invStrings[i + 6]).intValue();
|
|
- int roll = Double.valueOf(invStrings[i + 7]).intValue();
|
|
- int yaw = Double.valueOf(invStrings[i + 8]).intValue();
|
|
- float xPos = Double.valueOf(invStrings[i + 9]).floatValue();
|
|
- float yPos = Double.valueOf(invStrings[i + 10]).floatValue();
|
|
- float zPos = Double.valueOf(invStrings[i + 11]).floatValue();
|
|
- URL graphic = null;
|
|
- if (invVersion > 1 && graphicStrings.length > i / 6 + 1) {
|
|
- String gString = graphicStrings[i / 6 + 1];
|
|
- if (gString != "default") {
|
|
- graphic = URL.make(gString);
|
|
+ ServerTableManager var1 = ServerTableManager.instance();
|
|
+ int var2 = var1.getFileVersion();
|
|
+ String[] var3 = var1.getTable("invList");
|
|
+ String[] var4 = new String[0];
|
|
+ if (var2 > 1) {
|
|
+ var4 = var1.getTable("graphicList");
|
|
+ }
|
|
+
|
|
+ URL var5 = URL.make("home:..\\default.gif");
|
|
+ if (var3 != null) {
|
|
+ byte var6 = 12;
|
|
+
|
|
+ for(int var19 = 0; var19 < var3.length; var19 += var6) {
|
|
+ String var7 = var3[var19];
|
|
+ String var8 = var3[var19 + 2];
|
|
+ String var9 = var3[var19 + 3];
|
|
+ int var10 = Double.valueOf(var3[var19 + 4]).intValue();
|
|
+ float var14 = Double.valueOf(var3[var19 + 5]).floatValue();
|
|
+ int var11 = Double.valueOf(var3[var19 + 6]).intValue();
|
|
+ int var12 = Double.valueOf(var3[var19 + 7]).intValue();
|
|
+ int var13 = Double.valueOf(var3[var19 + 8]).intValue();
|
|
+ float var15 = Double.valueOf(var3[var19 + 9]).floatValue();
|
|
+ float var16 = Double.valueOf(var3[var19 + 10]).floatValue();
|
|
+ float var17 = Double.valueOf(var3[var19 + 11]).floatValue();
|
|
+ URL var18 = null;
|
|
+ if (var2 > 1 && var4.length > var19 / 6 + 1) {
|
|
+ String var20 = var4[var19 / 6 + 1];
|
|
+ if (var20 != "default") {
|
|
+ var18 = URL.make(var20);
|
|
}
|
|
}
|
|
|
|
- if (graphic == null) {
|
|
- graphic = defaultImageURL;
|
|
+ if (var18 == null) {
|
|
+ var18 = var5;
|
|
}
|
|
|
|
- Object newItem;
|
|
- if (id.charAt(0) == 'H') {
|
|
- newItem = InventoryAction.createAction(id, name, 1);
|
|
- } else if (id.charAt(0) == 'W') {
|
|
- newItem = new EquippableItem(id, name, 1, model, scale, loc, xPos, yPos, zPos, pitch, roll, yaw);
|
|
- } else if (id.charAt(0) == 'V') {
|
|
- newItem = new InventoryAvatar(id, name, 1);
|
|
+ Object var21;
|
|
+ if (var7.charAt(0) == 'H') {
|
|
+ var21 = InventoryAction.createAction(var7, var8, 1);
|
|
+ } else if (var7.charAt(0) == 'W') {
|
|
+ var21 = new EquippableItem(var7, var8, 1, var9, var14, var10, var15, var16, var17, var11, var12, var13);
|
|
+ } else if (var7.charAt(0) == 'V') {
|
|
+ var21 = new InventoryAvatar(var7, var8, 1);
|
|
} else {
|
|
- newItem = new InventoryItem(id, name, 1);
|
|
+ var21 = new InventoryItem(var7, var8, 1);
|
|
}
|
|
|
|
- ((InventoryItem)newItem).setItemGraphicLocation(graphic);
|
|
- this.masterList_.put(id, newItem);
|
|
+ ((InventoryItem)var21).setItemGraphicLocation(var18);
|
|
+ this.masterList_.put(var7, var21);
|
|
}
|
|
}
|
|
|
|
diff -ruN a/1920/NET/worlds/scape/MutedDrone.java b/1920/NET/worlds/scape/MutedDrone.java
|
|
--- a/1920/NET/worlds/scape/MutedDrone.java 2024-01-08 01:46:38.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/MutedDrone.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,43 +1,44 @@
|
|
package NET.worlds.scape;
|
|
|
|
+import NET.worlds.console.HiddenDrone;
|
|
import NET.worlds.network.ObjID;
|
|
import NET.worlds.network.URL;
|
|
import NET.worlds.network.WorldServer;
|
|
import java.io.IOException;
|
|
|
|
-public class MutedDrone extends Drone {
|
|
- private static Object classCookie = new Object();
|
|
+public class MutedDrone extends Drone implements HiddenDrone {
|
|
+ private static Object classCookie = new Object();
|
|
|
|
- public MutedDrone(ObjID objID, WorldServer serv, URL url) {
|
|
- super(objID, serv);
|
|
- this.setSourceURL(url);
|
|
- }
|
|
-
|
|
- public MutedDrone() {
|
|
- }
|
|
-
|
|
- public Drone setAvatarNow(URL url) {
|
|
- if (this.shouldBeMuted()) {
|
|
- this.setSourceURL(url);
|
|
- return this;
|
|
- } else {
|
|
- return super.setAvatarNow(url);
|
|
- }
|
|
- }
|
|
-
|
|
- public void saveState(Saver s) throws IOException {
|
|
- s.saveVersion(1, classCookie);
|
|
- super.saveState(s);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- int vers = r.restoreVersion(classCookie);
|
|
- switch (vers) {
|
|
- case 1:
|
|
- super.restoreState(r);
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
+ public MutedDrone(ObjID var1, WorldServer var2, URL var3) {
|
|
+ super(var1, var2);
|
|
+ this.setSourceURL(var3);
|
|
+ }
|
|
+
|
|
+ public MutedDrone() {
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (this.shouldBeMuted()) {
|
|
+ this.setSourceURL(var1);
|
|
+ return this;
|
|
+ } else {
|
|
+ return super.setAvatarNow(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(1, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/scape/ParallelAction.java b/1920/NET/worlds/scape/ParallelAction.java
|
|
--- a/1920/NET/worlds/scape/ParallelAction.java 2024-01-08 01:46:38.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/ParallelAction.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,137 +1,136 @@
|
|
package NET.worlds.scape;
|
|
|
|
+import NET.worlds.core.Debug;
|
|
import java.io.IOException;
|
|
import java.util.Enumeration;
|
|
import java.util.Vector;
|
|
|
|
public class ParallelAction extends Action implements RunningActionCallback {
|
|
- protected static final int NONE = 0;
|
|
- protected static final int FIRST = 1;
|
|
- protected static final int ALL = -1;
|
|
- protected Vector actions = new Vector();
|
|
- protected int waitState = -1;
|
|
- protected int waitingFor = 0;
|
|
- protected Object currentRun = null;
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- public Persister trigger(Event evt, Persister seqID) {
|
|
- if (seqID == null) {
|
|
- if (this.waitingFor == 0) {
|
|
- this.currentRun = new Object();
|
|
- if (this.waitState == -1) {
|
|
- this.waitingFor = this.actions.size();
|
|
- seqID = this;
|
|
- } else if (this.waitState == 1) {
|
|
- this.waitingFor = 1;
|
|
- seqID = this;
|
|
- } else {
|
|
- this.waitingFor = 0;
|
|
- seqID = null;
|
|
- }
|
|
+ protected static final int NONE = 0;
|
|
+ protected static final int FIRST = 1;
|
|
+ protected static final int ALL = -1;
|
|
+ protected Vector actions = new Vector();
|
|
+ protected int waitState = -1;
|
|
+ protected int waitingFor = 0;
|
|
+ protected Object currentRun = null;
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public ParallelAction() {
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (var2 == null) {
|
|
+ if (this.waitingFor == 0) {
|
|
+ this.currentRun = new Object();
|
|
+ if (this.waitState == -1) {
|
|
+ this.waitingFor = this.actions.size();
|
|
+ var2 = this;
|
|
+ } else if (this.waitState == 1) {
|
|
+ this.waitingFor = 1;
|
|
+ var2 = this;
|
|
+ } else {
|
|
+ this.waitingFor = 0;
|
|
+ var2 = null;
|
|
+ }
|
|
|
|
- RunningActionHandler.trigger((Vector)this.actions, this.getWorld(), evt, this, this.currentRun);
|
|
- }
|
|
- } else if (this.waitingFor == 0) {
|
|
- seqID = null;
|
|
- }
|
|
-
|
|
- return (Persister)seqID;
|
|
- }
|
|
-
|
|
- public void actionDone(Action a, Event e, Object o) {
|
|
- if (this.waitingFor > 0 && o == this.currentRun) {
|
|
- --this.waitingFor;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void setWaitForAll() {
|
|
- this.waitState = -1;
|
|
- }
|
|
-
|
|
- public void setWaitForFirst() {
|
|
- this.waitState = 1;
|
|
- }
|
|
-
|
|
- public void setWaitForNone() {
|
|
- this.waitState = 0;
|
|
- }
|
|
-
|
|
- public void addComponent(Action act) {
|
|
- assert act != null;
|
|
-
|
|
- this.actions.addElement(act);
|
|
- }
|
|
-
|
|
- public void insertComponent(Action act, int index) {
|
|
- assert act != null;
|
|
-
|
|
- this.actions.insertElementAt(act, index);
|
|
- }
|
|
-
|
|
- public boolean removeComponent(Action act) {
|
|
- assert act != null;
|
|
-
|
|
- return this.actions.removeElement(act);
|
|
- }
|
|
-
|
|
- public Enumeration getComponents() {
|
|
- return this.actions.elements();
|
|
- }
|
|
-
|
|
- public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException {
|
|
- Object ret = null;
|
|
- switch (index - offset) {
|
|
- case 0:
|
|
- if (mode == 0) {
|
|
- ret = ObjectPropertyAdder.make(new VectorProperty(this, index, "Components"), this.getRoot(), "NET.worlds.scape.Action");
|
|
- } else if (mode == 1) {
|
|
- ret = this.actions.clone();
|
|
- } else if (mode == 4) {
|
|
- this.actions.removeElement(value);
|
|
- } else if (mode == 3) {
|
|
- this.actions.addElement((Action)value);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (mode == 0) {
|
|
- String[] names = new String[]{"None", "First", "All"};
|
|
- int[] values = new int[]{0, 1, -1};
|
|
- ret = EnumPropertyEditor.make(new Property(this, index, "Wait for"), names, values);
|
|
- } else if (mode == 1) {
|
|
- ret = new Integer(this.waitState);
|
|
- } else if (mode == 2) {
|
|
- this.waitState = (Integer)value;
|
|
+ RunningActionHandler.trigger(this.actions, this.getWorld(), var1, this, this.currentRun);
|
|
}
|
|
- break;
|
|
- default:
|
|
- ret = super.properties(index, offset + 2, mode, value);
|
|
- }
|
|
-
|
|
- return ret;
|
|
- }
|
|
-
|
|
- public void saveState(Saver s) throws IOException {
|
|
- s.saveVersion(2, classCookie);
|
|
- super.saveState(s);
|
|
- s.saveVector(this.actions);
|
|
- s.saveInt(this.waitState);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- switch (r.restoreVersion(classCookie)) {
|
|
- case 1:
|
|
- super.restoreState(r);
|
|
- this.actions = r.restoreVector();
|
|
- break;
|
|
- case 2:
|
|
- super.restoreState(r);
|
|
- this.actions = r.restoreVector();
|
|
- this.waitState = r.restoreInt();
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
+ } else if (this.waitingFor == 0) {
|
|
+ var2 = null;
|
|
+ }
|
|
+
|
|
+ return (Persister)var2;
|
|
+ }
|
|
+
|
|
+ public void actionDone(Action var1, Event var2, Object var3) {
|
|
+ if (this.waitingFor > 0 && var3 == this.currentRun) {
|
|
+ --this.waitingFor;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void setWaitForAll() {
|
|
+ this.waitState = -1;
|
|
+ }
|
|
+
|
|
+ public void setWaitForFirst() {
|
|
+ this.waitState = 1;
|
|
+ }
|
|
+
|
|
+ public void setWaitForNone() {
|
|
+ this.waitState = 0;
|
|
+ }
|
|
+
|
|
+ public void addComponent(Action var1) {
|
|
+ assert(var1 != null);
|
|
+ this.actions.addElement(var1);
|
|
+ }
|
|
+
|
|
+ public void insertComponent(Action var1, int var2) {
|
|
+ assert(var1 != null);
|
|
+ this.actions.insertElementAt(var1, var2);
|
|
+ }
|
|
+
|
|
+ public boolean removeComponent(Action var1) {
|
|
+ assert(var1 != null);
|
|
+ return this.actions.removeElement(var1);
|
|
+ }
|
|
+
|
|
+ public Enumeration getComponents() {
|
|
+ return this.actions.elements();
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = ObjectPropertyAdder.make(new VectorProperty(this, var1, "Components"), this.getRoot(), "NET.worlds.scape.Action");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.actions.clone();
|
|
+ } else if (var3 == 4) {
|
|
+ this.actions.removeElement(var4);
|
|
+ } else if (var3 == 3) {
|
|
+ this.actions.addElement((Action)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = IntegerPropertyEditor.make(new Property(this, var1, "Wait for"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Integer(this.waitState);
|
|
+ } else if (var3 == 2) {
|
|
+ this.waitState = ((Integer)var4).intValue();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 2, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(2, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.saveVector(this.actions);
|
|
+ var1.saveInt(this.waitState);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ this.actions = var1.restoreVector();
|
|
+ break;
|
|
+ case 2:
|
|
+ super.restoreState(var1);
|
|
+ this.actions = var1.restoreVector();
|
|
+ this.waitState = var1.restoreInt();
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/scape/PosableShape.java b/1920/NET/worlds/scape/PosableShape.java
|
|
--- a/1920/NET/worlds/scape/PosableShape.java 2024-01-08 01:46:36.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/PosableShape.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -3,6 +3,7 @@
|
|
import NET.worlds.console.AvMenu;
|
|
import NET.worlds.console.Console;
|
|
import NET.worlds.console.DefaultConsole;
|
|
+import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.core.ServerTableManager;
|
|
import NET.worlds.core.Std;
|
|
@@ -60,62 +61,28 @@
|
|
protected Vector expressionChanges;
|
|
private static Object classCookie;
|
|
|
|
- static {
|
|
- int i;
|
|
- if (!NetUpdate.isInternalVersion()) {
|
|
- for(i = 0; i < secretList.length; ++i) {
|
|
- secretNames.put(secretList[i], secretList[i]);
|
|
- }
|
|
- }
|
|
-
|
|
- for(i = 0; i < permittedList.length; i += 2) {
|
|
- if (secretNames.get(permittedList[i]) == null) {
|
|
- permittedNames.addElement(permittedList[i]);
|
|
- if (permittedList[i + 1].indexOf("DgT") >= 0) {
|
|
- faceNames.addElement(permittedList[i]);
|
|
- }
|
|
- }
|
|
-
|
|
- if (permittedList[i + 1] != null) {
|
|
- permittedHash.put(permittedList[i], permittedList[i + 1]);
|
|
- }
|
|
- }
|
|
-
|
|
- for(i = 1; i < humanList.length; i += 2) {
|
|
- humanHash.put(humanList[i - 1], humanList[i]);
|
|
- }
|
|
-
|
|
- for(i = 0; i < faceList.length; i += 2) {
|
|
- faceTextures.put(faceList[i], faceList[i + 1]);
|
|
- }
|
|
-
|
|
- gotServerAvatarList = false;
|
|
- serverAvatarListError = false;
|
|
- classCookie = new Object();
|
|
- }
|
|
-
|
|
public static URL getDefaultURL() {
|
|
return defaultURL;
|
|
}
|
|
|
|
- public PosableShape(URL url) {
|
|
+ public PosableShape(URL var1) {
|
|
this.runPrepFigure = this.setPrepFigure;
|
|
this.animator = null;
|
|
this.recomputeHeight = false;
|
|
this.firstURL = true;
|
|
this.doLOD = false;
|
|
- this.setURL(url);
|
|
+ this.setURL(var1);
|
|
}
|
|
|
|
- public PosableShape(URL url, boolean isAW) {
|
|
+ public PosableShape(URL var1, boolean var2) {
|
|
this.runPrepFigure = this.setPrepFigure;
|
|
this.animator = null;
|
|
this.recomputeHeight = false;
|
|
this.firstURL = true;
|
|
this.doLOD = false;
|
|
- this.setPrepFigure = isAW;
|
|
+ this.setPrepFigure = var2;
|
|
this.runPrepFigure = this.setPrepFigure;
|
|
- this.setURL(url);
|
|
+ this.setURL(var1);
|
|
}
|
|
|
|
public PosableShape() {
|
|
@@ -143,9 +110,9 @@
|
|
super.markVoid();
|
|
}
|
|
|
|
- public synchronized void recursiveAddRwChildren(WObject parent) {
|
|
+ public synchronized void recursiveAddRwChildren(WObject var1) {
|
|
if (!this.hasClump()) {
|
|
- super.recursiveAddRwChildren(parent);
|
|
+ super.recursiveAddRwChildren(var1);
|
|
this.getRoom().addPrerenderHandler(this);
|
|
if (this.isFullyLoaded() && this.figureType != -1) {
|
|
DroneAnimator.addtype(this.figureType);
|
|
@@ -159,7 +126,7 @@
|
|
}
|
|
}
|
|
|
|
- public void notifyShapeLoaded(Shape s) {
|
|
+ public void notifyShapeLoaded(Shape var1) {
|
|
this.recomputeHeight = true;
|
|
}
|
|
|
|
@@ -167,35 +134,35 @@
|
|
return this.clumpID != 0 ? this.getJointedObjectToWorldMatrix(Transform.make()) : super.getObjectToWorldMatrix();
|
|
}
|
|
|
|
- public static int getFigureType(URL url) {
|
|
- String bodyType = getBodyType(url);
|
|
- return bodyType == null ? -1 : DroneAnimator.getnameindex(bodyType);
|
|
+ public static int getFigureType(URL var0) {
|
|
+ String var1 = getBodyType(var0);
|
|
+ return var1 == null ? -1 : DroneAnimator.getnameindex(var1);
|
|
}
|
|
|
|
- public static int getFigureType(String bodyType) {
|
|
- bodyType = getBodyType(bodyType);
|
|
- return bodyType == null ? -1 : DroneAnimator.getnameindex(bodyType);
|
|
+ public static int getFigureType(String var0) {
|
|
+ var0 = getBodyType(var0);
|
|
+ return var0 == null ? -1 : DroneAnimator.getnameindex(var0);
|
|
}
|
|
|
|
- protected void download(URL pUrl) {
|
|
- PendingDrone pd = PosableDroneLoader.makePendingDrone((PosableDrone)null, pUrl);
|
|
- Enumeration e = getComponentAvatars(pd.getUrl());
|
|
- if (e != null) {
|
|
- while(e.hasMoreElements()) {
|
|
- String avURL = (String)e.nextElement();
|
|
- pd.download(URL.make(avURL));
|
|
+ protected void download(URL var1) {
|
|
+ PendingDrone var2 = PosableDroneLoader.makePendingDrone((PosableDrone)null, var1);
|
|
+ Enumeration var3 = getComponentAvatars(var2.getUrl());
|
|
+ if (var3 != null) {
|
|
+ while(var3.hasMoreElements()) {
|
|
+ String var4 = (String)var3.nextElement();
|
|
+ var2.download(URL.make(var4));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
- public synchronized void setURL(URL newName) {
|
|
- if (newName != this.url && (newName == null || !newName.equals(this.url))) {
|
|
- if (newName == null || !newName.toString().startsWith("avatar:lod")) {
|
|
- if (newName != null) {
|
|
- this.download(newName);
|
|
- int newType = getFigureType(newName);
|
|
- if (newType != this.figureType) {
|
|
+ public synchronized void setURL(URL var1) {
|
|
+ if (var1 != this.url && (var1 == null || !var1.equals(this.url))) {
|
|
+ if (var1 == null || !var1.toString().startsWith("avatar:lod")) {
|
|
+ if (var1 != null) {
|
|
+ this.download(var1);
|
|
+ int var2 = getFigureType(var1);
|
|
+ if (var2 != this.figureType) {
|
|
if (this.animator != null) {
|
|
this.animator.endanimations();
|
|
if (this.figureType != -1) {
|
|
@@ -204,12 +171,12 @@
|
|
}
|
|
|
|
this.animator = null;
|
|
- this.figureType = newType;
|
|
+ this.figureType = var2;
|
|
this.animationList = null;
|
|
}
|
|
}
|
|
|
|
- this.setBaseLODURL(newName);
|
|
+ this.setBaseLODURL(var1);
|
|
if (forceLODLevel != -1 && this.numDetailLevels > 0 && this.doLOD) {
|
|
this.setLOD(0.0F);
|
|
return;
|
|
@@ -217,197 +184,197 @@
|
|
}
|
|
|
|
this.removeSubparts();
|
|
- if (newName != null && newName.getAbsolute().startsWith("avatar:")) {
|
|
+ if (var1 != null && var1.getAbsolute().startsWith("avatar:")) {
|
|
try {
|
|
- this.createSubparts(newName);
|
|
+ this.createSubparts(var1);
|
|
} catch (MalformedURLException var3) {
|
|
- System.out.println("Received bogus PosableShape URL: " + newName);
|
|
+ System.out.println("Received bogus PosableShape URL: " + var1);
|
|
return;
|
|
}
|
|
}
|
|
|
|
- super.setURL(newName);
|
|
+ super.setURL(var1);
|
|
}
|
|
}
|
|
|
|
- private String scanName(String s) {
|
|
- int start;
|
|
- char c;
|
|
- for(start = this.scanPos; (c = s.charAt(this.scanPos)) >= 'a' && c <= 'z' || c == '_'; ++this.scanPos) {
|
|
+ private String scanName(String var1) {
|
|
+ int var2;
|
|
+ char var3;
|
|
+ for(var2 = this.scanPos; (var3 = var1.charAt(this.scanPos)) >= 'a' && var3 <= 'z' || var3 == '_'; ++this.scanPos) {
|
|
}
|
|
|
|
- return s.substring(start, this.scanPos);
|
|
+ return var1.substring(var2, this.scanPos);
|
|
}
|
|
|
|
- public static String readName(String s, int pos) {
|
|
- char c;
|
|
+ public static String readName(String var0, int var1) {
|
|
+ char var3;
|
|
try {
|
|
- while((c = s.charAt(pos)) >= 'a' && c <= 'z' || c == '_') {
|
|
- ++pos;
|
|
+ while((var3 = var0.charAt(var1)) >= 'a' && var3 <= 'z' || var3 == '_') {
|
|
+ ++var1;
|
|
}
|
|
} catch (StringIndexOutOfBoundsException var4) {
|
|
}
|
|
|
|
- return s.substring(pos, pos);
|
|
+ return var0.substring(var1, var1);
|
|
}
|
|
|
|
- private int scanInt(String s) {
|
|
- int start = this.scanPos;
|
|
+ private int scanInt(String var1) {
|
|
+ int var2 = this.scanPos;
|
|
|
|
- int val;
|
|
- char c;
|
|
- for(val = 0; (c = s.charAt(this.scanPos)) >= '0' && c <= '9'; ++this.scanPos) {
|
|
- val = 10 * val + (c - 48);
|
|
+ int var3;
|
|
+ char var4;
|
|
+ for(var3 = 0; (var4 = var1.charAt(this.scanPos)) >= '0' && var4 <= '9'; ++this.scanPos) {
|
|
+ var3 = 10 * var3 + (var4 - 48);
|
|
}
|
|
|
|
- return val;
|
|
+ return var3;
|
|
}
|
|
|
|
- private static Material scanTexture(String name, int frame) {
|
|
- if (frame <= 0) {
|
|
- name = "avatar:" + name + ".cmp";
|
|
+ private static Material scanTexture(String var0, int var1) {
|
|
+ if (var1 <= 0) {
|
|
+ var0 = "avatar:" + var0 + ".cmp";
|
|
} else {
|
|
- name = "avatar:" + name + frame + "s*.mov";
|
|
+ var0 = "avatar:" + var0 + var1 + "s*.mov";
|
|
}
|
|
|
|
- Material m = new Material(0.32F, 0.55F, 0.0F, colorTable[3], (Texture)null, 1.0F, true, false);
|
|
- m.loadTexture(URL.make(name));
|
|
- return m;
|
|
+ Material var2 = new Material(0.32F, 0.55F, 0.0F, colorTable[3], (Texture)null, 1.0F, true, false);
|
|
+ var2.loadTexture(URL.make(var0));
|
|
+ return var2;
|
|
}
|
|
|
|
- public static Material readTexture(String s, int p) {
|
|
- int frame;
|
|
- char c;
|
|
- for(frame = 0; (c = s.charAt(p)) >= '0' && c <= '9'; ++p) {
|
|
- frame = 10 * frame + (c - 48);
|
|
+ public static Material readTexture(String var0, int var1) {
|
|
+ int var2;
|
|
+ char var3;
|
|
+ for(var2 = 0; (var3 = var0.charAt(var1)) >= '0' && var3 <= '9'; ++var1) {
|
|
+ var2 = 10 * var2 + (var3 - 48);
|
|
}
|
|
|
|
- return scanTexture(readName(s, p), frame);
|
|
+ return scanTexture(readName(var0, var1), var2);
|
|
}
|
|
|
|
- public static boolean isValidTexture(String s) {
|
|
- int len = s.length();
|
|
+ public static boolean isValidTexture(String var0) {
|
|
+ int var1 = var0.length();
|
|
|
|
- char c;
|
|
- int i;
|
|
- for(i = 0; i < len && (c = s.charAt(i)) >= '0' && c <= '9'; ++i) {
|
|
+ char var2;
|
|
+ int var3;
|
|
+ for(var3 = 0; var3 < var1 && (var2 = var0.charAt(var3)) >= '0' && var2 <= '9'; ++var3) {
|
|
}
|
|
|
|
- while(i < len) {
|
|
- if (((c = s.charAt(i)) < 'a' || c > 'z') && c != '_') {
|
|
+ while(var3 < var1) {
|
|
+ if (((var2 = var0.charAt(var3)) < 'a' || var2 > 'z') && var2 != '_') {
|
|
return false;
|
|
}
|
|
|
|
- ++i;
|
|
+ ++var3;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
- private static int scanBase64(char c) {
|
|
- int i = base64.indexOf(c);
|
|
- return i < 0 ? 0 : i;
|
|
+ private static int scanBase64(char var0) {
|
|
+ int var1 = base64.indexOf(var0);
|
|
+ return var1 < 0 ? 0 : var1;
|
|
}
|
|
|
|
- public static Material readColor(String s, int p) {
|
|
- char c = s.charAt(p++);
|
|
- Material m = null;
|
|
- int color;
|
|
- if (c == '_') {
|
|
- color = s.charAt(p++) - 65;
|
|
- if (color >= 0 && color < colorTable.length) {
|
|
- m = new Material(0.32F, 0.55F, 0.0F, colorTable[color], (Texture)null, 1.0F, true, false);
|
|
+ public static Material readColor(String var0, int var1) {
|
|
+ char var2 = var0.charAt(var1++);
|
|
+ Material var3 = null;
|
|
+ int var4;
|
|
+ if (var2 == '_') {
|
|
+ var4 = var0.charAt(var1++) - 65;
|
|
+ if (var4 >= 0 && var4 < colorTable.length) {
|
|
+ var3 = new Material(0.32F, 0.55F, 0.0F, colorTable[var4], (Texture)null, 1.0F, true, false);
|
|
} else {
|
|
- m = origMat;
|
|
+ var3 = origMat;
|
|
}
|
|
} else {
|
|
- color = 4 * scanBase64(c);
|
|
- int g = 4 * scanBase64(s.charAt(p++));
|
|
- int b = 4 * scanBase64(s.charAt(p++));
|
|
- m = new Material(0.32F, 0.55F, 0.0F, new Color(color, g, b), (Texture)null, 1.0F, true, false);
|
|
+ var4 = 4 * scanBase64(var2);
|
|
+ int var5 = 4 * scanBase64(var0.charAt(var1++));
|
|
+ int var6 = 4 * scanBase64(var0.charAt(var1++));
|
|
+ var3 = new Material(0.32F, 0.55F, 0.0F, new Color(var4, var5, var6), (Texture)null, 1.0F, true, false);
|
|
}
|
|
|
|
- return m;
|
|
+ return var3;
|
|
}
|
|
|
|
- private Material scanColor(String s) {
|
|
- Material m = readColor(s, this.scanPos);
|
|
- if (s.charAt(this.scanPos) == '_') {
|
|
+ private Material scanColor(String var1) {
|
|
+ Material var2 = readColor(var1, this.scanPos);
|
|
+ if (var1.charAt(this.scanPos) == '_') {
|
|
this.scanPos += 2;
|
|
} else {
|
|
this.scanPos += 3;
|
|
}
|
|
|
|
- return m;
|
|
+ return var2;
|
|
}
|
|
|
|
- private float getScale(char c) {
|
|
- if (c >= 'a' && c <= 'z') {
|
|
- return 1.0F - (float)(c - 97 + 1) * 0.025615385F;
|
|
+ private float getScale(char var1) {
|
|
+ if (var1 >= 'a' && var1 <= 'z') {
|
|
+ return 1.0F - (float)(var1 - 97 + 1) * 0.025615385F;
|
|
} else {
|
|
- return c >= 'A' && c <= 'Z' ? 1.0F / (1.0F - (float)(c - 65 + 1) * 0.025615385F) : 1.0F;
|
|
+ return var1 >= 'A' && var1 <= 'Z' ? 1.0F / (1.0F - (float)(var1 - 65 + 1) * 0.025615385F) : 1.0F;
|
|
}
|
|
}
|
|
|
|
- private Material getMat(char c, Vector mats) {
|
|
- int matNum = c - 97;
|
|
- if (matNum < mats.size()) {
|
|
- Material m = (Material)mats.elementAt(matNum);
|
|
- return m == origMat ? origMat : (Material)m.clone();
|
|
+ private Material getMat(char var1, Vector var2) {
|
|
+ int var3 = var1 - 97;
|
|
+ if (var3 < var2.size()) {
|
|
+ Material var4 = (Material)var2.elementAt(var3);
|
|
+ return var4 == origMat ? origMat : (Material)var4.clone();
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
- private Shape getLimb(String s, String bodyType, int pos, int partNum, Shape parent, Vector mats, boolean loadNow) {
|
|
- int end = s.length() - 4;
|
|
- if (bodyType == null) {
|
|
- if (parent instanceof PosableShape) {
|
|
- bodyType = "";
|
|
+ private Shape getLimb(String var1, String var2, int var3, int var4, Shape var5, Vector var6, boolean var7) {
|
|
+ int var8 = var1.length() - 4;
|
|
+ if (var2 == null) {
|
|
+ if (var5 instanceof PosableShape) {
|
|
+ var2 = "";
|
|
} else {
|
|
- bodyType = Shape.getBodBase(parent.getURL());
|
|
- if (parent.getURL().toString().indexOf("lod/") != -1) {
|
|
- bodyType = "lod/" + bodyType;
|
|
+ var2 = Shape.getBodBase(var5.getURL());
|
|
+ if (var5.getURL().toString().indexOf("lod/") != -1) {
|
|
+ var2 = "lod/" + var2;
|
|
}
|
|
}
|
|
}
|
|
|
|
- Shape shape = new Shape();
|
|
- Shape subshape = shape;
|
|
- shape.setURL(URL.make("avatar:" + bodyType + partNum / 10 + partNum % 10 + ".bod"));
|
|
- int clumpsUsed = 0;
|
|
- Material lastMat = null;
|
|
- int delay = 0;
|
|
- int lastTime = 0;
|
|
- String actName = null;
|
|
- boolean haveAddedChange = false;
|
|
- if (pos > 0) {
|
|
- this.scanPos = pos + 1;
|
|
+ Shape var9 = new Shape();
|
|
+ Object var10 = var9;
|
|
+ var9.setURL(URL.make("avatar:" + var2 + var4 / 10 + var4 % 10 + ".bod"));
|
|
+ int var11 = 0;
|
|
+ Material var12 = null;
|
|
+ int var13 = 0;
|
|
+ int var14 = 0;
|
|
+ Object var15 = null;
|
|
+ boolean var16 = false;
|
|
+ if (var3 > 0) {
|
|
+ this.scanPos = var3 + 1;
|
|
|
|
while(true) {
|
|
- char c = s.charAt(this.scanPos++);
|
|
- int num;
|
|
- if (c >= 'A' && c <= 'Z') {
|
|
- if (c != 'G') {
|
|
- if (c == 'S') {
|
|
- char xScale = s.charAt(this.scanPos++);
|
|
- char yScale = s.charAt(this.scanPos++);
|
|
- char zScale = s.charAt(this.scanPos++);
|
|
- if (xScale == 'Z' && yScale == 'Z' && zScale == 'Z') {
|
|
+ char var17 = var1.charAt(this.scanPos++);
|
|
+ int var21;
|
|
+ if (var17 >= 'A' && var17 <= 'Z') {
|
|
+ if (var17 != 'G') {
|
|
+ if (var17 == 'S') {
|
|
+ char var22 = var1.charAt(this.scanPos++);
|
|
+ char var19 = var1.charAt(this.scanPos++);
|
|
+ char var20 = var1.charAt(this.scanPos++);
|
|
+ if (var22 == 'Z' && var19 == 'Z' && var20 == 'Z') {
|
|
this.runPrepFigure = false;
|
|
}
|
|
|
|
- ((Shape)subshape).scale(this.getScale(xScale), this.getScale(yScale), this.getScale(zScale));
|
|
- } else if (c != 'Q') {
|
|
- if (c == 'C') {
|
|
- assert false;
|
|
- } else if (c == 'D') {
|
|
- delay += (int)(1000.0 * (Math.pow(1.0932, (double)scanBase64(s.charAt(this.scanPos++))) - 0.8999999761581421));
|
|
- } else if (c == 'A') {
|
|
- this.scanName(s);
|
|
+ ((Shape)var10).scale(this.getScale(var22), this.getScale(var19), this.getScale(var20));
|
|
+ } else if (var17 != 'Q') {
|
|
+ if (var17 == 'C') {
|
|
+ throw new AssertionError();
|
|
+ } else if (var17 == 'D') {
|
|
+ var13 += (int)(1000.0D * (Math.pow(1.0932D, (double)scanBase64(var1.charAt(this.scanPos++))) - 0.8999999761581421D));
|
|
+ } else if (var17 == 'A') {
|
|
+ this.scanName(var1);
|
|
this.animationList = null;
|
|
} else {
|
|
- if (c != 'T' && c != 'C') {
|
|
+ if (var17 != 'T' && var17 != 'C') {
|
|
--this.scanPos;
|
|
break;
|
|
}
|
|
@@ -416,175 +383,188 @@
|
|
}
|
|
}
|
|
} else {
|
|
- num = this.scanInt(s);
|
|
- if (num <= 0 || num > 99) {
|
|
- num = partNum;
|
|
+ var21 = this.scanInt(var1);
|
|
+ if (var21 <= 0 || var21 > 99) {
|
|
+ var21 = var4;
|
|
}
|
|
|
|
- bodyType = this.scanName(s);
|
|
- if (bodyType.equals("")) {
|
|
+ var2 = this.scanName(var1);
|
|
+ if (var2.equals("")) {
|
|
break;
|
|
}
|
|
|
|
- ((Shape)subshape).setURL(URL.make("avatar:" + bodyType + num / 10 + num % 10 + ".bod"));
|
|
+ ((Shape)var10).setURL(URL.make("avatar:" + var2 + var21 / 10 + var21 % 10 + ".bod"));
|
|
}
|
|
- } else if (c >= 'a') {
|
|
- Material m = this.getMat(c, mats);
|
|
- if (m != null) {
|
|
- if (delay == 0) {
|
|
- delay = 50;
|
|
+ } else if (var17 >= 'a') {
|
|
+ Material var18 = this.getMat(var17, var6);
|
|
+ if (var18 != null) {
|
|
+ if (var13 == 0) {
|
|
+ var13 = 50;
|
|
}
|
|
|
|
- lastTime += delay;
|
|
- if (lastMat != null) {
|
|
- if (!haveAddedChange) {
|
|
- haveAddedChange = true;
|
|
- this.addChange(lastTime - delay, lastMat, (Shape)subshape);
|
|
+ var14 += var13;
|
|
+ if (var12 != null) {
|
|
+ if (!var16) {
|
|
+ var16 = true;
|
|
+ this.addChange(var14 - var13, var12, (Shape)var10);
|
|
}
|
|
|
|
- this.addChange(lastTime, m, (Shape)subshape);
|
|
+ this.addChange(var14, var18, (Shape)var10);
|
|
}
|
|
|
|
- if (m != origMat) {
|
|
- ((Shape)subshape).setMaterial(m);
|
|
+ if (var18 != origMat) {
|
|
+ ((Shape)var10).setMaterial(var18);
|
|
}
|
|
|
|
- lastMat = m;
|
|
- delay = 0;
|
|
+ var12 = var18;
|
|
+ var13 = 0;
|
|
}
|
|
} else {
|
|
- if (c < '0' || c > '9') {
|
|
+ if (var17 < '0' || var17 > '9') {
|
|
break;
|
|
}
|
|
|
|
--this.scanPos;
|
|
- num = this.scanInt(s) - clumpsUsed;
|
|
- ++clumpsUsed;
|
|
- subshape = new SubclumpShape();
|
|
- ((Shape)subshape).setURL(URL.make("system:subclump" + num));
|
|
- shape.add((WObject)subshape);
|
|
- lastMat = null;
|
|
- haveAddedChange = false;
|
|
- lastTime = 0;
|
|
- delay = 0;
|
|
+ var21 = this.scanInt(var1) - var11;
|
|
+ ++var11;
|
|
+ var10 = new SubclumpShape();
|
|
+ ((Shape)var10).setURL(URL.make("system:subclump" + var21));
|
|
+ var9.add((WObject)var10);
|
|
+ var12 = null;
|
|
+ var16 = false;
|
|
+ var14 = 0;
|
|
+ var13 = 0;
|
|
}
|
|
|
|
- if (this.scanPos > end) {
|
|
- this.scanPos = end;
|
|
- return parent;
|
|
+ if (this.scanPos > var8) {
|
|
+ this.scanPos = var8;
|
|
+ return var5;
|
|
}
|
|
}
|
|
}
|
|
|
|
- if (bodyType.equals("")) {
|
|
- return parent;
|
|
+ if (var2.equals("")) {
|
|
+ return var5;
|
|
} else {
|
|
- shape.addLoadListener(this);
|
|
- if (ProgressiveAdder.get().enabled() && !loadNow) {
|
|
- ProgressiveAdder.get().scheduleForAdd(parent, shape);
|
|
+ var9.addLoadListener(this);
|
|
+ if (ProgressiveAdder.get().enabled() && !var7) {
|
|
+ ProgressiveAdder.get().scheduleForAdd(var5, var9);
|
|
} else {
|
|
- parent.add(shape);
|
|
+ var5.add(var9);
|
|
}
|
|
|
|
if (this.subparts == null) {
|
|
- this.subparts = shape;
|
|
+ this.subparts = var9;
|
|
}
|
|
|
|
- return shape;
|
|
+ return var9;
|
|
}
|
|
}
|
|
|
|
- private void addChange(int when, Material mat, Shape s) {
|
|
- TimedMatChange t = new TimedMatChange();
|
|
- t.when = when;
|
|
- t.mat = mat;
|
|
- t.limb = s;
|
|
- mat.setKeepLoaded(true);
|
|
- int i = 0;
|
|
+ private void addChange(int var1, Material var2, Shape var3) {
|
|
+ PosableShape.TimedMatChange var4 = new PosableShape.TimedMatChange();
|
|
+ var4.when = var1;
|
|
+ var4.mat = var2;
|
|
+ var4.limb = var3;
|
|
+ var2.setKeepLoaded(true);
|
|
+ int var5 = 0;
|
|
if (this.expressionChanges == null) {
|
|
this.expressionChanges = new Vector();
|
|
this.expressionStart = Std.getRealTime();
|
|
this.nextChange = 0;
|
|
} else {
|
|
- for(i = this.expressionChanges.size(); i > 0; --i) {
|
|
- TimedMatChange o = (TimedMatChange)this.expressionChanges.elementAt(i - 1);
|
|
- if (when >= o.when) {
|
|
+ for(var5 = this.expressionChanges.size(); var5 > 0; --var5) {
|
|
+ PosableShape.TimedMatChange var6 = (PosableShape.TimedMatChange)this.expressionChanges.elementAt(var5 - 1);
|
|
+ if (var1 >= var6.when) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
- this.expressionChanges.insertElementAt(t, i);
|
|
+ this.expressionChanges.insertElementAt(var4, var5);
|
|
}
|
|
|
|
- public static Enumeration getComponentAvatars(URL pUrl) {
|
|
- if (pUrl == null) {
|
|
+ public static Enumeration getComponentAvatars(URL var0) {
|
|
+ if (var0 == null) {
|
|
return null;
|
|
} else {
|
|
- Vector v = new Vector();
|
|
- String urlString = pUrl.getAbsolute();
|
|
- if (urlString.startsWith("avatar:") && urlString.endsWith(".rwg")) {
|
|
- String baseAv = urlString.substring(7, urlString.indexOf(46));
|
|
- v.addElement("avatar:" + baseAv + ".rwg");
|
|
- int pos = urlString.indexOf(46);
|
|
- int len = urlString.length() - 4;
|
|
+ Vector var1 = new Vector();
|
|
+ String var2 = var0.getAbsolute();
|
|
+ if (var2.startsWith("avatar:") && var2.endsWith(".rwg")) {
|
|
+ String var3 = var2.substring(7, var2.indexOf(46));
|
|
+ var1.addElement("avatar:" + var3 + ".rwg");
|
|
+ int var4 = var2.indexOf(46);
|
|
+ int var5 = var2.length() - 4;
|
|
|
|
while(true) {
|
|
while(true) {
|
|
- char c;
|
|
+ char var6;
|
|
do {
|
|
do {
|
|
- if (pos >= len) {
|
|
- return v.elements();
|
|
+ if (var4 >= var5) {
|
|
+ return var1.elements();
|
|
}
|
|
|
|
- c = urlString.charAt(pos++);
|
|
- } while(c < 'A');
|
|
- } while(c > 'Z');
|
|
-
|
|
- switch (c) {
|
|
- case 'A':
|
|
- case 'Q':
|
|
- case 'T':
|
|
- default:
|
|
- break;
|
|
- case 'C':
|
|
- c = urlString.charAt(pos++);
|
|
- if (c == '_') {
|
|
- ++pos;
|
|
- } else {
|
|
- pos += 2;
|
|
- }
|
|
- break;
|
|
- case 'D':
|
|
- ++pos;
|
|
- break;
|
|
- case 'G':
|
|
- while(pos < len) {
|
|
- c = urlString.charAt(pos);
|
|
- if (c < '0' || c > '9') {
|
|
- break;
|
|
- }
|
|
-
|
|
- ++pos;
|
|
+ var6 = var2.charAt(var4++);
|
|
+ } while(var6 < 'A');
|
|
+ } while(var6 > 'Z');
|
|
+
|
|
+ switch(var6) {
|
|
+ case 'A':
|
|
+ case 'B':
|
|
+ case 'E':
|
|
+ case 'F':
|
|
+ case 'H':
|
|
+ case 'I':
|
|
+ case 'J':
|
|
+ case 'K':
|
|
+ case 'L':
|
|
+ case 'M':
|
|
+ case 'N':
|
|
+ case 'O':
|
|
+ case 'P':
|
|
+ case 'Q':
|
|
+ case 'R':
|
|
+ case 'T':
|
|
+ default:
|
|
+ break;
|
|
+ case 'C':
|
|
+ var6 = var2.charAt(var4++);
|
|
+ if (var6 == '_') {
|
|
+ ++var4;
|
|
+ } else {
|
|
+ var4 += 2;
|
|
+ }
|
|
+ break;
|
|
+ case 'D':
|
|
+ ++var4;
|
|
+ break;
|
|
+ case 'G':
|
|
+ while(var4 < var5) {
|
|
+ var6 = var2.charAt(var4);
|
|
+ if (var6 < '0' || var6 > '9') {
|
|
+ break;
|
|
}
|
|
|
|
- String bodyType;
|
|
- for(bodyType = ""; pos < len; ++pos) {
|
|
- c = urlString.charAt(pos);
|
|
- if (c >= '0' && c <= '9' || c < 'a' || c > 'z') {
|
|
- break;
|
|
- }
|
|
+ ++var4;
|
|
+ }
|
|
|
|
- bodyType = bodyType + c;
|
|
+ String var7;
|
|
+ for(var7 = ""; var4 < var5; ++var4) {
|
|
+ var6 = var2.charAt(var4);
|
|
+ if (var6 >= '0' && var6 <= '9' || var6 < 'a' || var6 > 'z') {
|
|
+ break;
|
|
}
|
|
|
|
- if (bodyType != "" && bodyType.length() > 1) {
|
|
- v.addElement("avatar:" + bodyType + ".rwg");
|
|
- }
|
|
- break;
|
|
- case 'S':
|
|
- pos += 3;
|
|
+ var7 = var7 + var6;
|
|
+ }
|
|
+
|
|
+ if (var7 != "" && var7.length() > 1) {
|
|
+ var1.addElement("avatar:" + var7 + ".rwg");
|
|
+ }
|
|
+ break;
|
|
+ case 'S':
|
|
+ var4 += 3;
|
|
}
|
|
}
|
|
}
|
|
@@ -594,36 +574,48 @@
|
|
}
|
|
}
|
|
|
|
- public static int skipLimb(String s, int pos) {
|
|
- int len = s.length() - 4;
|
|
+ public static int skipLimb(String var0, int var1) {
|
|
+ int var2 = var0.length() - 4;
|
|
|
|
- while(pos < len) {
|
|
- char c = s.charAt(pos++);
|
|
- if (c >= 'A' && c <= 'Z') {
|
|
- switch (c) {
|
|
- case 'A':
|
|
- case 'G':
|
|
- case 'Q':
|
|
- case 'T':
|
|
- break;
|
|
- case 'C':
|
|
- c = s.charAt(pos++);
|
|
- if (c == '_') {
|
|
- ++pos;
|
|
- } else {
|
|
- pos += 2;
|
|
- }
|
|
- break;
|
|
- case 'D':
|
|
- ++pos;
|
|
- break;
|
|
- case 'S':
|
|
- pos += 3;
|
|
- break;
|
|
- default:
|
|
- return pos - 1;
|
|
+ while(var1 < var2) {
|
|
+ char var3 = var0.charAt(var1++);
|
|
+ if (var3 >= 'A' && var3 <= 'Z') {
|
|
+ switch(var3) {
|
|
+ case 'A':
|
|
+ case 'G':
|
|
+ case 'Q':
|
|
+ case 'T':
|
|
+ break;
|
|
+ case 'B':
|
|
+ case 'E':
|
|
+ case 'F':
|
|
+ case 'H':
|
|
+ case 'I':
|
|
+ case 'J':
|
|
+ case 'K':
|
|
+ case 'L':
|
|
+ case 'M':
|
|
+ case 'N':
|
|
+ case 'O':
|
|
+ case 'P':
|
|
+ case 'R':
|
|
+ default:
|
|
+ return var1 - 1;
|
|
+ case 'C':
|
|
+ var3 = var0.charAt(var1++);
|
|
+ if (var3 == '_') {
|
|
+ ++var1;
|
|
+ } else {
|
|
+ var1 += 2;
|
|
+ }
|
|
+ break;
|
|
+ case 'D':
|
|
+ ++var1;
|
|
+ break;
|
|
+ case 'S':
|
|
+ var1 += 3;
|
|
}
|
|
- } else if ((c < 'a' || c > 'z') && (c < '0' || c > '9')) {
|
|
+ } else if ((var3 < 'a' || var3 > 'z') && (var3 < '0' || var3 > '9')) {
|
|
break;
|
|
}
|
|
}
|
|
@@ -631,82 +623,82 @@
|
|
return -1;
|
|
}
|
|
|
|
- private String findStarts(String s, int end, int[] offs, String bodyType, Vector mats) {
|
|
- String lastTextureName = bodyType;
|
|
+ private String findStarts(String var1, int var2, int[] var3, String var4, Vector var5) {
|
|
+ String var6 = var4;
|
|
|
|
label84:
|
|
- while(this.scanPos < end) {
|
|
- char section = s.charAt(this.scanPos);
|
|
- if (section >= 'A' && section <= 'Z') {
|
|
- offs[section - 65] = this.scanPos++;
|
|
+ while(this.scanPos < var2) {
|
|
+ char var7 = var1.charAt(this.scanPos);
|
|
+ if (var7 >= 'A' && var7 <= 'Z') {
|
|
+ var3[var7 - 65] = this.scanPos++;
|
|
|
|
- char c;
|
|
+ char var8;
|
|
do {
|
|
do {
|
|
while(true) {
|
|
- if (this.scanPos >= end) {
|
|
+ if (this.scanPos >= var2) {
|
|
continue label84;
|
|
}
|
|
|
|
- c = s.charAt(this.scanPos++);
|
|
- if (c < 'A' || c > 'Z') {
|
|
+ var8 = var1.charAt(this.scanPos++);
|
|
+ if (var8 < 'A' || var8 > 'Z') {
|
|
break;
|
|
}
|
|
|
|
- if (c == 'G') {
|
|
- this.scanInt(s);
|
|
- this.scanName(s);
|
|
- } else if (c == 'S') {
|
|
+ if (var8 == 'G') {
|
|
+ this.scanInt(var1);
|
|
+ this.scanName(var1);
|
|
+ } else if (var8 == 'S') {
|
|
this.scanPos += 3;
|
|
- } else if (c != 'Q') {
|
|
- if (c != 'C' && c != 'T') {
|
|
- if (c == 'D') {
|
|
+ } else if (var8 != 'Q') {
|
|
+ if (var8 != 'C' && var8 != 'T') {
|
|
+ if (var8 == 'D') {
|
|
++this.scanPos;
|
|
} else {
|
|
- if (c != 'A') {
|
|
+ if (var8 != 'A') {
|
|
--this.scanPos;
|
|
continue label84;
|
|
}
|
|
|
|
- this.scanName(s);
|
|
+ this.scanName(var1);
|
|
}
|
|
} else {
|
|
- int start = this.scanPos - 1;
|
|
- char letter = (char)(97 + mats.size());
|
|
- Material mat;
|
|
- int num;
|
|
- if (c == 'C') {
|
|
- mat = this.scanColor(s);
|
|
+ int var9 = this.scanPos - 1;
|
|
+ char var10 = (char)(97 + var5.size());
|
|
+ Material var11;
|
|
+ int var12;
|
|
+ if (var8 == 'C') {
|
|
+ var11 = this.scanColor(var1);
|
|
} else {
|
|
- num = this.scanInt(s);
|
|
- String name = this.scanName(s);
|
|
- if (name.equals("")) {
|
|
- name = lastTextureName;
|
|
+ var12 = this.scanInt(var1);
|
|
+ String var13 = this.scanName(var1);
|
|
+ if (var13.equals("")) {
|
|
+ var13 = var6;
|
|
} else {
|
|
- lastTextureName = name;
|
|
+ var6 = var13;
|
|
}
|
|
|
|
- mat = scanTexture(name, num);
|
|
+ var11 = scanTexture(var13, var12);
|
|
}
|
|
|
|
- mats.addElement(mat);
|
|
- s = s.substring(0, start) + 'Q' + letter + s.substring(this.scanPos);
|
|
- num = this.scanPos - start - 2;
|
|
- this.scanPos -= num;
|
|
- end -= num;
|
|
+ var5.addElement(var11);
|
|
+ var1 = var1.substring(0, var9) + 'Q' + var10 + var1.substring(this.scanPos);
|
|
+ var12 = this.scanPos - var9 - 2;
|
|
+ this.scanPos -= var12;
|
|
+ var2 -= var12;
|
|
}
|
|
}
|
|
}
|
|
- } while(c >= '0' && c <= '9');
|
|
- } while(c >= 'a' && c <= 'z');
|
|
+ } while(var8 >= '0' && var8 <= '9');
|
|
+ } while(var8 >= 'a' && var8 <= 'z');
|
|
|
|
- return s.substring(0, this.scanPos - 1) + ".rwg";
|
|
+ return var1.substring(0, this.scanPos - 1) + ".rwg";
|
|
}
|
|
|
|
- return s;
|
|
+ return var1;
|
|
}
|
|
|
|
- return s;
|
|
+ return var1;
|
|
}
|
|
|
|
public static Vector getPermittedNames() {
|
|
@@ -720,55 +712,55 @@
|
|
public static void downloadPermittedNames() {
|
|
if (!gotServerAvatarList) {
|
|
serverAvatarListError = false;
|
|
- WorldServer w = Pilot.getActive().getServer();
|
|
- if (w != null && w.getGalaxy() != null) {
|
|
- String avatarList = Console.getActive().getScriptServer() + "getavlist.pl?u=" + w.getGalaxy().getChatname();
|
|
- if (w.getGalaxy().getSerialNum() != null) {
|
|
- avatarList = avatarList + "&s=" + w.getGalaxy().getSerialNum();
|
|
+ WorldServer var0 = Pilot.getActive().getServer();
|
|
+ if (var0 != null && var0.getGalaxy() != null) {
|
|
+ String var1 = Console.getActive().getScriptServer() + "getavlist.pl?u=" + var0.getGalaxy().getChatname();
|
|
+ if (var0.getGalaxy().getSerialNum() != null) {
|
|
+ var1 = var1 + "&s=" + var0.getGalaxy().getSerialNum();
|
|
}
|
|
|
|
- URL avatarListURL = URL.make(avatarList);
|
|
- CacheFile cf = Cache.getFile(avatarListURL, true);
|
|
- cf.waitUntilLoaded();
|
|
- if (!cf.error()) {
|
|
+ URL var2 = URL.make(var1);
|
|
+ CacheFile var3 = Cache.getFile(var2, true);
|
|
+ var3.waitUntilLoaded();
|
|
+ if (!var3.error()) {
|
|
permittedNames.removeAllElements();
|
|
humanHash.clear();
|
|
worldHash.clear();
|
|
|
|
try {
|
|
- RandomAccessFile f = new RandomAccessFile(cf.getLocalName(), "r");
|
|
+ RandomAccessFile var4 = new RandomAccessFile(var3.getLocalName(), "r");
|
|
|
|
label64:
|
|
while(true) {
|
|
- StringTokenizer st;
|
|
+ StringTokenizer var6;
|
|
do {
|
|
- String line;
|
|
+ String var5;
|
|
do {
|
|
- if (f.getFilePointer() >= f.length()) {
|
|
- f.close();
|
|
+ if (var4.getFilePointer() >= var4.length()) {
|
|
+ var4.close();
|
|
break label64;
|
|
}
|
|
|
|
- line = f.readLine();
|
|
- } while(line.startsWith("//"));
|
|
+ var5 = var4.readLine();
|
|
+ } while(var5.startsWith("//"));
|
|
|
|
- st = new StringTokenizer(line);
|
|
- } while(st.countTokens() <= 2);
|
|
+ var6 = new StringTokenizer(var5);
|
|
+ } while(var6.countTokens() <= 2);
|
|
|
|
- String name = st.nextToken();
|
|
- permittedNames.addElement(name);
|
|
- String gender = st.nextToken();
|
|
- if (gender.equals("m") || gender.equals("f")) {
|
|
- humanHash.put(name, gender);
|
|
+ String var7 = var6.nextToken();
|
|
+ permittedNames.addElement(var7);
|
|
+ String var8 = var6.nextToken();
|
|
+ if (var8.equals("m") || var8.equals("f")) {
|
|
+ humanHash.put(var7, var8);
|
|
}
|
|
|
|
- Vector worldList = new Vector();
|
|
+ Vector var9 = new Vector();
|
|
|
|
- while(st.hasMoreTokens()) {
|
|
- worldList.addElement(st.nextToken());
|
|
+ while(var6.hasMoreTokens()) {
|
|
+ var9.addElement(var6.nextToken());
|
|
}
|
|
|
|
- worldHash.put(name, worldList);
|
|
+ worldHash.put(var7, var9);
|
|
}
|
|
} catch (Exception var10) {
|
|
System.out.println("Error parsing avatar list: " + var10.toString());
|
|
@@ -777,14 +769,14 @@
|
|
}
|
|
|
|
gotServerAvatarList = true;
|
|
- Console c = Console.getActive();
|
|
- if (c instanceof DefaultConsole) {
|
|
- DefaultConsole dc = (DefaultConsole)c;
|
|
- dc.getAvatarMenu().rebuildVIPMenu();
|
|
+ Console var11 = Console.getActive();
|
|
+ if (var11 instanceof DefaultConsole) {
|
|
+ DefaultConsole var12 = (DefaultConsole)var11;
|
|
+ var12.getAvatarMenu().rebuildVIPMenu();
|
|
}
|
|
|
|
- if (c.getPilot() != null) {
|
|
- c.getPilot().resetAvatarNow();
|
|
+ if (var11.getPilot() != null) {
|
|
+ var11.getPilot().resetAvatarNow();
|
|
}
|
|
|
|
AvMenu.rebuildHeadList();
|
|
@@ -796,61 +788,66 @@
|
|
}
|
|
}
|
|
|
|
- public static URL getPermitted(URL in, World world) {
|
|
- if (in.endsWith(".mov")) {
|
|
- return in;
|
|
+ public static URL getPermitted(URL var0, World var1) {
|
|
+ if (var0.endsWith(".mov")) {
|
|
+ return var0;
|
|
} else if (NetUpdate.isInternalVersion()) {
|
|
- return in;
|
|
- } else if (!gotServerAvatarList && !serverAvatarListError) {
|
|
- return in;
|
|
- } else if (serverAvatarListError) {
|
|
- return validateAvatar(in.getAbsolute()) ? in : getDefAv();
|
|
+ return var0;
|
|
} else {
|
|
- Enumeration e = getComponentAvatars(in);
|
|
-
|
|
- while(e != null && e.hasMoreElements()) {
|
|
- String baseAv = (String)e.nextElement();
|
|
- String s = getBodyType(URL.make(baseAv));
|
|
- if (s == null) {
|
|
- return getDefAv();
|
|
- }
|
|
-
|
|
- Vector allowedWorlds = (Vector)worldHash.get(s);
|
|
- if (allowedWorlds == null) {
|
|
- return getDefAv();
|
|
- }
|
|
-
|
|
- boolean worldOK = false;
|
|
- Enumeration we = allowedWorlds.elements();
|
|
+ boolean var2 = IniFile.override().getIniString("ProductName", "").equalsIgnoreCase("RedLightWorld");
|
|
+ if (var2) {
|
|
+ return var0;
|
|
+ } else if (!gotServerAvatarList && !serverAvatarListError) {
|
|
+ return var0;
|
|
+ } else if (serverAvatarListError) {
|
|
+ return validateAvatar(var0.getAbsolute()) ? var0 : getDefAv();
|
|
+ } else {
|
|
+ Enumeration var3 = getComponentAvatars(var0);
|
|
|
|
- while(we.hasMoreElements()) {
|
|
- String thisWorld = (String)we.nextElement();
|
|
- if (thisWorld == null) {
|
|
+ while(var3 != null && var3.hasMoreElements()) {
|
|
+ String var4 = (String)var3.nextElement();
|
|
+ String var5 = getBodyType(URL.make(var4));
|
|
+ if (var5 == null) {
|
|
return getDefAv();
|
|
}
|
|
|
|
- if (thisWorld.equals("all")) {
|
|
- worldOK = true;
|
|
- break;
|
|
+ Vector var6 = (Vector)worldHash.get(var5);
|
|
+ if (var6 == null) {
|
|
+ return getDefAv();
|
|
}
|
|
|
|
- thisWorld = thisWorld.replace('_', ' ').toLowerCase().trim();
|
|
- if (world != null) {
|
|
- if (thisWorld.equals(world.toString().toLowerCase().trim())) {
|
|
- worldOK = true;
|
|
+ boolean var7 = false;
|
|
+ Enumeration var8 = var6.elements();
|
|
+
|
|
+ while(var8.hasMoreElements()) {
|
|
+ String var9 = (String)var8.nextElement();
|
|
+ if (var9 == null) {
|
|
+ return getDefAv();
|
|
+ }
|
|
+
|
|
+ if (var9.equals("all")) {
|
|
+ var7 = true;
|
|
break;
|
|
}
|
|
- } else {
|
|
- worldOK = true;
|
|
+
|
|
+ var9 = var9.replace('_', ' ').toLowerCase().trim();
|
|
+ if (var1 != null) {
|
|
+ if (var9.equals(var1.toString().toLowerCase().trim())) {
|
|
+ var7 = true;
|
|
+ break;
|
|
+ }
|
|
+ } else {
|
|
+ var7 = true;
|
|
+ }
|
|
}
|
|
- }
|
|
|
|
- if (!worldOK) {
|
|
- return getDefAv();
|
|
+ if (!var7) {
|
|
+ return getDefAv();
|
|
+ }
|
|
}
|
|
- }
|
|
|
|
- return in;
|
|
+ return var0;
|
|
+ }
|
|
}
|
|
}
|
|
|
|
@@ -858,44 +855,44 @@
|
|
return faceNames;
|
|
}
|
|
|
|
- public static URL getAvURL(String bodyType) {
|
|
- Object newName = permittedHash.get(bodyType);
|
|
- return newName instanceof String ? URL.make("avatar:" + (String)newName) : null;
|
|
+ public static URL getAvURL(String var0) {
|
|
+ Object var1 = permittedHash.get(var0);
|
|
+ return var1 instanceof String ? URL.make("avatar:" + (String)var1) : null;
|
|
}
|
|
|
|
- public static boolean validateAvatar(String av) {
|
|
- System.out.println("Validating " + av);
|
|
- String baseAv = getBodyType(URL.make(av));
|
|
- if (baseAv == null) {
|
|
+ public static boolean validateAvatar(String var0) {
|
|
+ System.out.println("Validating " + var0);
|
|
+ String var1 = getBodyType(URL.make(var0));
|
|
+ if (var1 == null) {
|
|
return false;
|
|
} else {
|
|
- return permittedHash.get(baseAv) != null;
|
|
+ return permittedHash.get(var1) != null;
|
|
}
|
|
}
|
|
|
|
- public static String convertLODToParent(String bodyType) {
|
|
- String result = bodyType;
|
|
- if (bodyType.startsWith("lod/")) {
|
|
- result = bodyType.substring(4, bodyType.length() - 1);
|
|
+ public static String convertLODToParent(String var0) {
|
|
+ String var1 = var0;
|
|
+ if (var0.startsWith("lod/")) {
|
|
+ var1 = var0.substring(4, var0.length() - 1);
|
|
}
|
|
|
|
- return result;
|
|
+ return var1;
|
|
}
|
|
|
|
- public static String getBodyType(URL url) {
|
|
- if (url == null) {
|
|
+ public static String getBodyType(URL var0) {
|
|
+ if (var0 == null) {
|
|
return null;
|
|
} else {
|
|
- String str = url.getAbsolute();
|
|
- if (str.startsWith("avatar:") && (str.endsWith(".rwg") || str.endsWith(".RWG")) && str.charAt(7) != '.') {
|
|
- int pos = str.indexOf(".", 7);
|
|
- String bodyType = str.substring(7, pos).toLowerCase();
|
|
- bodyType = convertLODToParent(bodyType);
|
|
- if (str.charAt(pos + 1) != '0') {
|
|
- bodyType = getBodyType(bodyType);
|
|
+ String var1 = var0.getAbsolute();
|
|
+ if (var1.startsWith("avatar:") && (var1.endsWith(".rwg") || var1.endsWith(".RWG")) && var1.charAt(7) != '.') {
|
|
+ int var2 = var1.indexOf(".", 7);
|
|
+ String var3 = var1.substring(7, var2).toLowerCase();
|
|
+ var3 = convertLODToParent(var3);
|
|
+ if (var1.charAt(var2 + 1) != '0') {
|
|
+ var3 = getBodyType(var3);
|
|
}
|
|
|
|
- return bodyType;
|
|
+ return var3;
|
|
} else {
|
|
return null;
|
|
}
|
|
@@ -906,56 +903,56 @@
|
|
return URL.make(IniFile.override().getIniString("DefaultArticAv", "avatar:willy.rwg"));
|
|
}
|
|
|
|
- public static URL getHuman(URL url) {
|
|
- if (url.endsWith(".mov")) {
|
|
- return HoloDrone.getHuman(url);
|
|
+ public static URL getHuman(URL var0) {
|
|
+ if (var0.endsWith(".mov")) {
|
|
+ return HoloDrone.getHuman(var0);
|
|
} else {
|
|
- String s = getBodyType(url);
|
|
- if (s == null) {
|
|
+ String var1 = getBodyType(var0);
|
|
+ if (var1 == null) {
|
|
return getDefAv();
|
|
} else {
|
|
- String gender = (String)humanHash.get(s);
|
|
- if (gender == null) {
|
|
+ String var2 = (String)humanHash.get(var1);
|
|
+ if (var2 == null) {
|
|
return getDefAv();
|
|
} else {
|
|
- URL def = URL.make("avatar:" + s + ".rwg");
|
|
- String str = url.getAbsolute();
|
|
- int pos = str.indexOf(".0EC_");
|
|
- if (pos >= 0 && str.length() >= pos + 7 && "_AC".indexOf(str.charAt(pos + 5)) >= 0) {
|
|
- if (gender.equals("m") && str.indexOf("yank") >= 0 && (!str.regionMatches(pos + 6, "TyankshirtC_", 0, 12) || !str.regionMatches(pos + 19, "C-2bTyankstripe", 0, 15))) {
|
|
- return def;
|
|
+ URL var3 = URL.make("avatar:" + var1 + ".rwg");
|
|
+ String var4 = var0.getAbsolute();
|
|
+ int var5 = var4.indexOf(".0EC_");
|
|
+ if (var5 >= 0 && var4.length() >= var5 + 7 && "_AC".indexOf(var4.charAt(var5 + 5)) >= 0) {
|
|
+ if (var2.equals("m") && var4.indexOf("yank") >= 0 && (!var4.regionMatches(var5 + 6, "TyankshirtC_", 0, 12) || !var4.regionMatches(var5 + 19, "C-2bTyankstripe", 0, 15))) {
|
|
+ return var3;
|
|
} else {
|
|
- pos = str.lastIndexOf("HDgT2");
|
|
- if (pos >= 0 && str.length() >= pos + 7) {
|
|
- String faceGender = (String)humanHash.get(readName(str, pos + 5));
|
|
- if (faceGender != null && faceGender.equals(gender)) {
|
|
- pos = str.lastIndexOf("NS");
|
|
- if (pos >= 0 && str.length() >= pos + 3 && "0abcdABCD".indexOf(str.charAt(pos + 2)) >= 0) {
|
|
- pos += 5;
|
|
- if (str.length() < pos + 2) {
|
|
- return def;
|
|
+ var5 = var4.lastIndexOf("HDgT2");
|
|
+ if (var5 >= 0 && var4.length() >= var5 + 7) {
|
|
+ String var6 = (String)humanHash.get(readName(var4, var5 + 5));
|
|
+ if (var6 != null && var6.equals(var2)) {
|
|
+ var5 = var4.lastIndexOf("NS");
|
|
+ if (var5 >= 0 && var4.length() >= var5 + 3 && "0abcdABCD".indexOf(var4.charAt(var5 + 2)) >= 0) {
|
|
+ var5 += 5;
|
|
+ if (var4.length() < var5 + 2) {
|
|
+ return var3;
|
|
} else {
|
|
- if (str.charAt(pos) == 'G') {
|
|
- String headGender = (String)humanHash.get(readName(str, pos + 1));
|
|
- if (headGender == null || !headGender.equals(gender)) {
|
|
- return def;
|
|
+ if (var4.charAt(var5) == 'G') {
|
|
+ String var7 = (String)humanHash.get(readName(var4, var5 + 1));
|
|
+ if (var7 == null || !var7.equals(var2)) {
|
|
+ return var3;
|
|
}
|
|
}
|
|
|
|
- return url;
|
|
+ return var0;
|
|
}
|
|
} else {
|
|
- return def;
|
|
+ return var3;
|
|
}
|
|
} else {
|
|
- return def;
|
|
+ return var3;
|
|
}
|
|
} else {
|
|
- return def;
|
|
+ return var3;
|
|
}
|
|
}
|
|
} else {
|
|
- return def;
|
|
+ return var3;
|
|
}
|
|
}
|
|
}
|
|
@@ -966,118 +963,118 @@
|
|
return getHuman(this.getURL());
|
|
}
|
|
|
|
- public static String getBodyType(String basename) {
|
|
- String str = (String)permittedHash.get(basename);
|
|
- if (str != null) {
|
|
- basename = str.substring(0, str.indexOf("."));
|
|
+ public static String getBodyType(String var0) {
|
|
+ String var1 = (String)permittedHash.get(var0);
|
|
+ if (var1 != null) {
|
|
+ var0 = var1.substring(0, var1.indexOf("."));
|
|
}
|
|
|
|
- return basename;
|
|
+ return var0;
|
|
}
|
|
|
|
- public static int getMatPosition(String str, char type) {
|
|
- int index = "abcdef".indexOf(type);
|
|
- int p;
|
|
- if (index >= 0) {
|
|
- p = str.indexOf(".0E");
|
|
- if (p >= 0) {
|
|
- p += 3;
|
|
+ public static int getMatPosition(String var0, char var1) {
|
|
+ int var2 = "abcdef".indexOf(var1);
|
|
+ int var3;
|
|
+ if (var2 >= 0) {
|
|
+ var3 = var0.indexOf(".0E");
|
|
+ if (var3 >= 0) {
|
|
+ var3 += 3;
|
|
|
|
- for(int i = 0; i < index; ++i) {
|
|
- p = skipMat(str, p);
|
|
+ for(int var4 = 0; var4 < var2; ++var4) {
|
|
+ var3 = skipMat(var0, var3);
|
|
}
|
|
}
|
|
|
|
- return p;
|
|
+ return var3;
|
|
} else {
|
|
- p = str.indexOf(".0E");
|
|
- if (p >= 0) {
|
|
- for(p += 2; p >= 0; p = skipLimb(str, p)) {
|
|
- if (str.charAt(p++) == type) {
|
|
- return p;
|
|
+ var3 = var0.indexOf(".0E");
|
|
+ if (var3 >= 0) {
|
|
+ for(var3 += 2; var3 >= 0; var3 = skipLimb(var0, var3)) {
|
|
+ if (var0.charAt(var3++) == var1) {
|
|
+ return var3;
|
|
}
|
|
}
|
|
}
|
|
|
|
- return p;
|
|
+ return var3;
|
|
}
|
|
}
|
|
|
|
public static String getCurrentAvCustomizable() {
|
|
- URL av = Pilot.getActive().getSourceURL();
|
|
- String str = av.getAbsolute();
|
|
- if (str.startsWith("avatar:") && (str.endsWith(".rwg") || str.endsWith(".RWG")) && str.charAt(7) != '.') {
|
|
- int pos = str.indexOf(".", 7);
|
|
- if (!str.regionMatches(pos, ".0E", 0, 3)) {
|
|
- av = getAvURL(str.substring(7, pos).toLowerCase());
|
|
- if (av == null) {
|
|
- if (!str.substring(pos).equalsIgnoreCase(".rwg")) {
|
|
+ URL var0 = Pilot.getActive().getSourceURL();
|
|
+ String var1 = var0.getAbsolute();
|
|
+ if (var1.startsWith("avatar:") && (var1.endsWith(".rwg") || var1.endsWith(".RWG")) && var1.charAt(7) != '.') {
|
|
+ int var2 = var1.indexOf(".", 7);
|
|
+ if (!var1.regionMatches(var2, ".0E", 0, 3)) {
|
|
+ var0 = getAvURL(var1.substring(7, var2).toLowerCase());
|
|
+ if (var0 == null) {
|
|
+ if (!var1.substring(var2).equalsIgnoreCase(".rwg")) {
|
|
Console.println(Console.message("cant-cust-av"));
|
|
return null;
|
|
}
|
|
|
|
- str = "avatar:" + str.substring(7, pos) + ".0EC__C__C__C__C__C__" + "PeBbLcMcOaRcUcVaWeXeYIeJeK" + "NS000QaHDgT2tonyT3T2T1Q0f.rwg";
|
|
+ var1 = "avatar:" + var1.substring(7, var2) + ".0EC__C__C__C__C__C__" + "PeBbLcMcOaRcUcVaWeXeYIeJeK" + "NS000QaHDgT2tonyT3T2T1Q0f.rwg";
|
|
} else {
|
|
- str = av.getAbsolute();
|
|
+ var1 = var0.getAbsolute();
|
|
}
|
|
}
|
|
|
|
- return str;
|
|
+ return var1;
|
|
} else {
|
|
Console.println(Console.message("non-cust-av"));
|
|
return null;
|
|
}
|
|
}
|
|
|
|
- public static int skipMat(String s, int i) {
|
|
- char c = s.charAt(i);
|
|
- int matEnd = i;
|
|
- if (c == 'C') {
|
|
- c = s.charAt(i + 1);
|
|
- if (c == '_') {
|
|
- matEnd = i + 3;
|
|
+ public static int skipMat(String var0, int var1) {
|
|
+ char var2 = var0.charAt(var1);
|
|
+ int var3 = var1;
|
|
+ if (var2 == 'C') {
|
|
+ var2 = var0.charAt(var1 + 1);
|
|
+ if (var2 == '_') {
|
|
+ var3 = var1 + 3;
|
|
} else {
|
|
- matEnd = i + 4;
|
|
+ var3 = var1 + 4;
|
|
}
|
|
- } else if (c == 'T') {
|
|
- for(matEnd = i + 1; (c = s.charAt(matEnd)) >= '0' && c <= '9'; ++matEnd) {
|
|
+ } else if (var2 == 'T') {
|
|
+ for(var3 = var1 + 1; (var2 = var0.charAt(var3)) >= '0' && var2 <= '9'; ++var3) {
|
|
}
|
|
|
|
- while((c = s.charAt(matEnd)) >= 'a' && c <= 'z') {
|
|
- ++matEnd;
|
|
+ while((var2 = var0.charAt(var3)) >= 'a' && var2 <= 'z') {
|
|
+ ++var3;
|
|
}
|
|
- } else if (c >= 'a' && c <= 'z') {
|
|
- matEnd = i + 1;
|
|
+ } else if (var2 >= 'a' && var2 <= 'z') {
|
|
+ var3 = var1 + 1;
|
|
}
|
|
|
|
- return matEnd;
|
|
+ return var3;
|
|
}
|
|
|
|
- public static String getFace(String bodyType) {
|
|
- Object face = faceTextures.get(bodyType);
|
|
- return face != null ? (String)face : "1" + bodyType;
|
|
+ public static String getFace(String var0) {
|
|
+ Object var1 = faceTextures.get(var0);
|
|
+ return var1 != null ? (String)var1 : "1" + var0;
|
|
}
|
|
|
|
- private void createSubparts(URL url) throws MalformedURLException {
|
|
- String str = url.getAbsolute();
|
|
- int len = str.length();
|
|
- String bodyType = null;
|
|
+ private void createSubparts(URL var1) throws MalformedURLException {
|
|
+ String var2 = var1.getAbsolute();
|
|
+ int var3 = var2.length();
|
|
+ String var4 = null;
|
|
this.runPrepFigure = this.setPrepFigure;
|
|
- if (str.startsWith("avatar:") && (str.endsWith(".rwg") || str.endsWith(".RWG")) && str.charAt(7) != '.') {
|
|
- this.scanPos = str.indexOf(".", 7);
|
|
- bodyType = str.substring(7, this.scanPos).toLowerCase();
|
|
- if (str.charAt(this.scanPos + 1) != '0') {
|
|
- this.scanPos = len - 4;
|
|
- Object newName = permittedHash.get(bodyType);
|
|
- if (newName != null) {
|
|
- str = (String)newName;
|
|
+ if (var2.startsWith("avatar:") && (var2.endsWith(".rwg") || var2.endsWith(".RWG")) && var2.charAt(7) != '.') {
|
|
+ this.scanPos = var2.indexOf(".", 7);
|
|
+ var4 = var2.substring(7, this.scanPos).toLowerCase();
|
|
+ if (var2.charAt(this.scanPos + 1) != '0') {
|
|
+ this.scanPos = var3 - 4;
|
|
+ Object var5 = permittedHash.get(var4);
|
|
+ if (var5 != null) {
|
|
+ var2 = (String)var5;
|
|
this.scanPos = 0;
|
|
- bodyType = this.scanName(str);
|
|
- if (str.charAt(this.scanPos) != '.') {
|
|
+ var4 = this.scanName(var2);
|
|
+ if (var2.charAt(this.scanPos) != '.') {
|
|
throw new MalformedURLException();
|
|
}
|
|
|
|
- if (str.charAt(this.scanPos + 1) != '0') {
|
|
+ if (var2.charAt(this.scanPos + 1) != '0') {
|
|
throw new MalformedURLException();
|
|
}
|
|
|
|
@@ -1088,33 +1085,33 @@
|
|
}
|
|
} else {
|
|
this.scanPos = 0;
|
|
- str = ".rwg";
|
|
- bodyType = "aura";
|
|
+ var2 = ".rwg";
|
|
+ var4 = "aura";
|
|
}
|
|
|
|
- Vector mats = new Vector();
|
|
- int[] offsets = new int[26];
|
|
- str = this.findStarts(str, str.length() - 4, offsets, bodyType, mats);
|
|
+ Vector var24 = new Vector();
|
|
+ int[] var6 = new int[26];
|
|
+ var2 = this.findStarts(var2, var2.length() - 4, var6, var4, var24);
|
|
if (this.subparts != null) {
|
|
throw new MalformedURLException();
|
|
} else {
|
|
- Shape groi = this.getLimb(str, bodyType, offsets[15], 1, this, mats, true);
|
|
- Shape back = this.getLimb(str, (String)null, offsets[1], 2, groi, mats, false);
|
|
- Shape neck = this.getLimb(str, (String)null, offsets[13], 3, back, mats, false);
|
|
- this.getLimb(str, (String)null, offsets[7], 4, neck, mats, false);
|
|
- Shape lupa = this.getLimb(str, (String)null, offsets[11], 11, back, mats, false);
|
|
- Shape lfor = this.getLimb(str, (String)null, offsets[12], 12, lupa, mats, false);
|
|
- this.getLimb(str, (String)null, offsets[14], 13, lfor, mats, false);
|
|
- Shape rupa = this.getLimb(str, (String)null, offsets[17], 6, back, mats, false);
|
|
- Shape rfor = this.getLimb(str, (String)null, offsets[20], 7, rupa, mats, false);
|
|
- this.getLimb(str, (String)null, offsets[21], 8, rfor, mats, false);
|
|
- Shape lthi = this.getLimb(str, (String)null, offsets[8], 19, groi, mats, false);
|
|
- Shape lcal = this.getLimb(str, (String)null, offsets[9], 20, lthi, mats, false);
|
|
- this.getLimb(str, (String)null, offsets[10], 21, lcal, mats, false);
|
|
- Shape rthi = this.getLimb(str, (String)null, offsets[22], 15, groi, mats, false);
|
|
- Shape rcal = this.getLimb(str, (String)null, offsets[23], 16, rthi, mats, false);
|
|
- this.getLimb(str, (String)null, offsets[24], 17, rcal, mats, false);
|
|
- this.getLimb(str, (String)null, offsets[25], 24, groi, mats, false);
|
|
+ Shape var7 = this.getLimb(var2, var4, var6[15], 1, this, var24, true);
|
|
+ Shape var8 = this.getLimb(var2, (String)null, var6[1], 2, var7, var24, false);
|
|
+ Shape var9 = this.getLimb(var2, (String)null, var6[13], 3, var8, var24, false);
|
|
+ this.getLimb(var2, (String)null, var6[7], 4, var9, var24, false);
|
|
+ Shape var11 = this.getLimb(var2, (String)null, var6[11], 11, var8, var24, false);
|
|
+ Shape var12 = this.getLimb(var2, (String)null, var6[12], 12, var11, var24, false);
|
|
+ this.getLimb(var2, (String)null, var6[14], 13, var12, var24, false);
|
|
+ Shape var14 = this.getLimb(var2, (String)null, var6[17], 6, var8, var24, false);
|
|
+ Shape var15 = this.getLimb(var2, (String)null, var6[20], 7, var14, var24, false);
|
|
+ this.getLimb(var2, (String)null, var6[21], 8, var15, var24, false);
|
|
+ Shape var17 = this.getLimb(var2, (String)null, var6[8], 19, var7, var24, false);
|
|
+ Shape var18 = this.getLimb(var2, (String)null, var6[9], 20, var17, var24, false);
|
|
+ this.getLimb(var2, (String)null, var6[10], 21, var18, var24, false);
|
|
+ Shape var20 = this.getLimb(var2, (String)null, var6[22], 15, var7, var24, false);
|
|
+ Shape var21 = this.getLimb(var2, (String)null, var6[23], 16, var20, var24, false);
|
|
+ this.getLimb(var2, (String)null, var6[24], 17, var21, var24, false);
|
|
+ this.getLimb(var2, (String)null, var6[25], 24, var7, var24, false);
|
|
}
|
|
}
|
|
|
|
@@ -1127,16 +1124,16 @@
|
|
|
|
}
|
|
|
|
- public void prerender(Camera cam) {
|
|
+ public void prerender(Camera var1) {
|
|
if (this.getVisible()) {
|
|
- Point3Temp p = this.inCamSpace(cam);
|
|
- boolean v = p != null && p.z > 1.0F && p.x < p.z && -p.x < p.z;
|
|
- if (v) {
|
|
- if (this.closestView > p.z) {
|
|
- this.closestView = p.z;
|
|
+ Point3Temp var2 = this.inCamSpace(var1);
|
|
+ boolean var3 = var2 != null && var2.z > 1.0F && var2.x < var2.z && -var2.x < var2.z;
|
|
+ if (var3) {
|
|
+ if (this.closestView > var2.z) {
|
|
+ this.closestView = var2.z;
|
|
}
|
|
|
|
- if (p.z > 700.0F && ++this.farViewCount > 10) {
|
|
+ if (var2.z > 700.0F && ++this.farViewCount > 10) {
|
|
if (this.closestView > 400.0F) {
|
|
this.closestView = 400.0F;
|
|
}
|
|
@@ -1148,65 +1145,65 @@
|
|
}
|
|
}
|
|
|
|
- public float animate(String action) {
|
|
+ public float animate(String var1) {
|
|
if (this.animator == null) {
|
|
return 0.0F;
|
|
} else {
|
|
- if (action.length() == 1) {
|
|
- char lower = action.toLowerCase().charAt(0);
|
|
- char upper = action.toUpperCase().charAt(0);
|
|
- Vector al = this.getAnimationList();
|
|
- int len = al.size();
|
|
-
|
|
- for(int i = 0; i < len; ++i) {
|
|
- String[] actionAliases = ServerTableManager.instance().getTable("actionAliases");
|
|
- String displayName = (String)al.elementAt(i);
|
|
- if (actionAliases != null) {
|
|
- for(int j = 0; j < actionAliases.length; j += 2) {
|
|
- if (displayName.toLowerCase().equals(actionAliases[j].toLowerCase())) {
|
|
- displayName = actionAliases[j + 1];
|
|
+ if (var1.length() == 1) {
|
|
+ char var2 = var1.toLowerCase().charAt(0);
|
|
+ char var3 = var1.toUpperCase().charAt(0);
|
|
+ Vector var4 = this.getAnimationList();
|
|
+ int var5 = var4.size();
|
|
+
|
|
+ for(int var6 = 0; var6 < var5; ++var6) {
|
|
+ String[] var7 = ServerTableManager.instance().getTable("actionAliases");
|
|
+ String var8 = (String)var4.elementAt(var6);
|
|
+ if (var7 != null) {
|
|
+ for(int var9 = 0; var9 < var7.length; var9 += 2) {
|
|
+ if (var8.toLowerCase().equals(var7[var9].toLowerCase())) {
|
|
+ var8 = var7[var9 + 1];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
- char c = displayName.charAt(0);
|
|
- if (c == lower || c == upper) {
|
|
- action = (String)al.elementAt(i);
|
|
+ char var10 = var8.charAt(0);
|
|
+ if (var10 == var2 || var10 == var3) {
|
|
+ var1 = (String)var4.elementAt(var6);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
- return this.performAnimationSequence(action);
|
|
+ return this.performAnimationSequence(var1);
|
|
}
|
|
}
|
|
|
|
public void timerDone() {
|
|
if (this.animations.hasMoreElements()) {
|
|
- String nextAnim = (String)this.animations.nextElement();
|
|
- float time = this.animator.getAnimationTime(this.figureType, nextAnim);
|
|
- this.animator.animate(this.figureType, nextAnim, Std.getRealTime());
|
|
- Timer tm = new Timer(time, this);
|
|
- tm.start();
|
|
+ String var1 = (String)this.animations.nextElement();
|
|
+ float var2 = this.animator.getAnimationTime(this.figureType, var1);
|
|
+ this.animator.animate(this.figureType, var1, Std.getRealTime());
|
|
+ Timer var3 = new Timer(var2, this);
|
|
+ var3.start();
|
|
}
|
|
|
|
}
|
|
|
|
- private float performAnimationSequence(String action) {
|
|
- float totalTime = 0.0F;
|
|
- Vector vanimations = new Vector();
|
|
- StringTokenizer tok = new StringTokenizer(action, "&\t\n\r");
|
|
+ private float performAnimationSequence(String var1) {
|
|
+ float var2 = 0.0F;
|
|
+ Vector var3 = new Vector();
|
|
+ StringTokenizer var4 = new StringTokenizer(var1, "&\t\n\r");
|
|
|
|
- while(tok.hasMoreTokens()) {
|
|
- String subAction = tok.nextToken();
|
|
- totalTime += this.animator.getAnimationTime(this.figureType, subAction);
|
|
- vanimations.addElement(subAction);
|
|
+ while(var4.hasMoreTokens()) {
|
|
+ String var5 = var4.nextToken();
|
|
+ var2 += this.animator.getAnimationTime(this.figureType, var5);
|
|
+ var3.addElement(var5);
|
|
}
|
|
|
|
- this.animations = vanimations.elements();
|
|
+ this.animations = var3.elements();
|
|
this.timerDone();
|
|
- return totalTime;
|
|
+ return var2;
|
|
}
|
|
|
|
public Vector getAnimationList() {
|
|
@@ -1218,18 +1215,19 @@
|
|
}
|
|
}
|
|
|
|
- public void enableLOD(boolean flag) {
|
|
- this.doLOD = flag;
|
|
+ public void enableLOD(boolean var1) {
|
|
+ this.doLOD = var1;
|
|
}
|
|
|
|
- public boolean handle(MouseDownEvent e) {
|
|
+ public boolean handle(MouseDownEvent var1) {
|
|
return false;
|
|
}
|
|
|
|
- public boolean handle(FrameEvent fe) {
|
|
- float dist = this.closestView;
|
|
+ public boolean handle(FrameEvent var1) {
|
|
+ float var2 = this.closestView;
|
|
this.closestView = 10000.0F;
|
|
- if (this.animator != null && !(dist > 900.0F) && this.hasClump()) {
|
|
+ float distance = IniFile.gamma().getIniInt("AnimationQualityDistance", 900);
|
|
+ if (this.animator != null && var2 <= distance && this.hasClump()) {
|
|
if (this.recomputeHeight) {
|
|
if (this.runPrepFigure) {
|
|
DroneAnimator.prepFigure(this, this.COG);
|
|
@@ -1238,30 +1236,30 @@
|
|
this.recomputeHeight = false;
|
|
}
|
|
|
|
- if (this.doLOD && this.setLOD(dist)) {
|
|
+ if (this.doLOD && this.setLOD(var2)) {
|
|
return true;
|
|
} else {
|
|
- int time = Std.getRealTime();
|
|
- Transform t = this.getObjectToWorldMatrix();
|
|
- this.animator.moveto(this.figureType, (short)((int)t.getX()), (short)((int)t.getY()), (short)((int)t.getZ()), (short)((int)(-t.getYaw())), time - 1);
|
|
- this.animator.update((WObject)null, this, time, t.getScaleX(), dist > 700.0F);
|
|
- t.recycle();
|
|
+ int var3 = Std.getRealTime();
|
|
+ Transform var4 = this.getObjectToWorldMatrix();
|
|
+ this.animator.moveto(this.figureType, (short)((int)var4.getX()), (short)((int)var4.getY()), (short)((int)var4.getZ()), (short)((int)(-var4.getYaw())), var3 - 1);
|
|
+ this.animator.update((WObject)null, this, var3, var4.getScaleX(), var2 > 700.0F);
|
|
+ var4.recycle();
|
|
if (this.expressionStart > 0) {
|
|
- time -= this.expressionStart;
|
|
+ var3 -= this.expressionStart;
|
|
|
|
while(true) {
|
|
- TimedMatChange t = (TimedMatChange)this.expressionChanges.elementAt(this.nextChange);
|
|
- if (time < t.when) {
|
|
+ PosableShape.TimedMatChange var5 = (PosableShape.TimedMatChange)this.expressionChanges.elementAt(this.nextChange);
|
|
+ if (var3 < var5.when) {
|
|
break;
|
|
}
|
|
|
|
- if (t.mat != origMat) {
|
|
- t.limb.setMaterial(t.mat);
|
|
+ if (var5.mat != origMat) {
|
|
+ var5.limb.setMaterial(var5.mat);
|
|
}
|
|
|
|
if (++this.nextChange >= this.expressionChanges.size()) {
|
|
this.nextChange = 0;
|
|
- this.expressionStart += time;
|
|
+ this.expressionStart += var3;
|
|
break;
|
|
}
|
|
}
|
|
@@ -1274,50 +1272,50 @@
|
|
}
|
|
}
|
|
|
|
- public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException {
|
|
- Object ret = null;
|
|
- switch (index - offset) {
|
|
- case 0:
|
|
- if (mode == 0) {
|
|
- ret = BooleanPropertyEditor.make(new Property(this, index, "Center of Gravity"), "No", "Yes");
|
|
- } else if (mode == 1) {
|
|
- ret = new Boolean(this.COG);
|
|
- } else if (mode == 2) {
|
|
- this.COG = (Boolean)value;
|
|
- URL u = this.getURL();
|
|
- this.setURL(defaultURL);
|
|
- this.setURL(u);
|
|
- }
|
|
- break;
|
|
- default:
|
|
- ret = super.properties(index, offset + 1, mode, value);
|
|
- }
|
|
-
|
|
- return ret;
|
|
- }
|
|
-
|
|
- public void saveState(Saver s) throws IOException {
|
|
- s.saveVersion(1, classCookie);
|
|
- s.saveBoolean(this.COG);
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Center of Gravity"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(this.COG);
|
|
+ } else if (var3 == 2) {
|
|
+ this.COG = ((Boolean)var4).booleanValue();
|
|
+ URL var6 = this.getURL();
|
|
+ this.setURL(defaultURL);
|
|
+ this.setURL(var6);
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(1, classCookie);
|
|
+ var1.saveBoolean(this.COG);
|
|
if (this.subparts != null) {
|
|
this.subparts.detach();
|
|
- super.saveState(s);
|
|
+ super.saveState(var1);
|
|
this.add(this.subparts);
|
|
} else {
|
|
- super.saveState(s);
|
|
+ super.saveState(var1);
|
|
}
|
|
|
|
}
|
|
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- switch (r.restoreVersion(classCookie)) {
|
|
- case 1:
|
|
- this.COG = r.restoreBoolean();
|
|
- case 0:
|
|
- super.restoreState(r);
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 1:
|
|
+ this.COG = var1.restoreBoolean();
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
}
|
|
}
|
|
|
|
@@ -1325,6 +1323,40 @@
|
|
return this.getName();
|
|
}
|
|
|
|
+ static {
|
|
+ int var0;
|
|
+ if (!NetUpdate.isInternalVersion()) {
|
|
+ for(var0 = 0; var0 < secretList.length; ++var0) {
|
|
+ secretNames.put(secretList[var0], secretList[var0]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ for(var0 = 0; var0 < permittedList.length; var0 += 2) {
|
|
+ if (secretNames.get(permittedList[var0]) == null) {
|
|
+ permittedNames.addElement(permittedList[var0]);
|
|
+ if (permittedList[var0 + 1].indexOf("DgT") >= 0) {
|
|
+ faceNames.addElement(permittedList[var0]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (permittedList[var0 + 1] != null) {
|
|
+ permittedHash.put(permittedList[var0], permittedList[var0 + 1]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ for(var0 = 1; var0 < humanList.length; var0 += 2) {
|
|
+ humanHash.put(humanList[var0 - 1], humanList[var0]);
|
|
+ }
|
|
+
|
|
+ for(var0 = 0; var0 < faceList.length; var0 += 2) {
|
|
+ faceTextures.put(faceList[var0], faceList[var0 + 1]);
|
|
+ }
|
|
+
|
|
+ gotServerAvatarList = false;
|
|
+ serverAvatarListError = false;
|
|
+ classCookie = new Object();
|
|
+ }
|
|
+
|
|
class TimedMatChange {
|
|
Shape limb;
|
|
Material mat;
|
|
diff -ruN a/1920/NET/worlds/scape/SelectAvatarAction.java b/1920/NET/worlds/scape/SelectAvatarAction.java
|
|
--- a/1920/NET/worlds/scape/SelectAvatarAction.java 2024-01-08 01:46:36.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/SelectAvatarAction.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,3 +1,8 @@
|
|
+//
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
+// (powered by Fernflower decompiler)
|
|
+//
|
|
+
|
|
package NET.worlds.scape;
|
|
|
|
import NET.worlds.console.Console;
|
|
@@ -8,138 +13,141 @@
|
|
import java.io.IOException;
|
|
|
|
public class SelectAvatarAction extends DialogAction {
|
|
- URL url = null;
|
|
- String description;
|
|
- static String[] avatarAliases = ServerTableManager.instance().getTable("avatarAliases");
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- private URL getURLVal() {
|
|
- URL val = this.url;
|
|
- if (val == null) {
|
|
- SuperRoot o = this.getOwner();
|
|
- if (o instanceof Drone) {
|
|
- val = ((Drone)o).getSourceURL();
|
|
- } else if (o instanceof PosableShape) {
|
|
- val = ((Shape)o).getURL();
|
|
- } else if (o instanceof Hologram) {
|
|
- val = ((Hologram)o).getMovieName();
|
|
- }
|
|
- }
|
|
-
|
|
- return val;
|
|
- }
|
|
-
|
|
- public void doIt() {
|
|
- Console console = Console.getActive();
|
|
- URL val = this.getURLVal();
|
|
- if (console != null && val != null) {
|
|
- console.setAvatar(val);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public PolledDialog getDialog() {
|
|
- URL val = this.getURLVal();
|
|
- if (!Console.getActive().getVIP() && val.getInternal().toLowerCase().endsWith(".rwg")) {
|
|
- return new OkCancelDialog(Console.getFrame(), this, Console.message("Cant-change-AV"), Console.message("OK"), (String)null, Console.message("Only-VIPs-change"), false);
|
|
- } else {
|
|
- String desc = this.description;
|
|
- if (desc == null || desc.length() == 0) {
|
|
- desc = getPrettyAvatarName(val.getBase());
|
|
- }
|
|
-
|
|
- return new ChangeAvatarDialog(Console.getFrame(), this, desc);
|
|
- }
|
|
- }
|
|
-
|
|
- public static String getPrettyAvatarName(String name) {
|
|
- int extIndex = name.indexOf(46);
|
|
- if (extIndex >= 0) {
|
|
- name = name.substring(0, extIndex).toLowerCase();
|
|
- } else {
|
|
- name = name.toLowerCase();
|
|
- }
|
|
-
|
|
- for(int i = 0; i < avatarAliases.length; i += 2) {
|
|
- if (avatarAliases[i].equals(name)) {
|
|
- return avatarAliases[i + 1];
|
|
- }
|
|
- }
|
|
-
|
|
- String properName = name.substring(0, 1).toUpperCase();
|
|
- if (name.length() > 1) {
|
|
- properName = properName + name.substring(1);
|
|
- }
|
|
-
|
|
- return properName;
|
|
- }
|
|
-
|
|
- public Persister trigger(Event e, Persister seqID) {
|
|
- URL val = this.getURLVal();
|
|
- return val == null ? null : super.trigger(e, seqID);
|
|
- }
|
|
-
|
|
- public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException {
|
|
- Object ret = null;
|
|
- switch (index - offset) {
|
|
- case 0:
|
|
- if (mode == 0) {
|
|
- ret = URLPropertyEditor.make((new Property(this, index, "Avatar URL")).allowSetNull(), "pilot;drone;rwx;rwg;mov");
|
|
- } else if (mode == 1) {
|
|
- ret = this.url;
|
|
- } else if (mode == 2) {
|
|
- this.url = (URL)value;
|
|
+ URL url = null;
|
|
+ String description;
|
|
+ static String[] avatarAliases = ServerTableManager.instance().getTable("avatarAliases");
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public SelectAvatarAction() {
|
|
+ }
|
|
+
|
|
+ private URL getURLVal() {
|
|
+ URL var1 = this.url;
|
|
+ if (var1 == null) {
|
|
+ SuperRoot var2 = this.getOwner();
|
|
+ if (var2 instanceof Drone) {
|
|
+ var1 = ((Drone)var2).getSourceURL();
|
|
+ } else if (var2 instanceof PosableShape) {
|
|
+ var1 = ((Shape)var2).getURL();
|
|
+ } else if (var2 instanceof Hologram) {
|
|
+ var1 = ((Hologram)var2).getMovieName();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ public void doIt() {
|
|
+ Console var1 = Console.getActive();
|
|
+ URL var2 = this.getURLVal();
|
|
+ if (var1 != null && var2 != null) {
|
|
+ var1.setAvatar(var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public PolledDialog getDialog() {
|
|
+ URL var1 = this.getURLVal();
|
|
+ if (!Console.getActive().getVIPAvatars() && var1.getInternal().toLowerCase().endsWith(".rwg")) {
|
|
+ return new OkCancelDialog(Console.getFrame(), this, Console.message("Cant-change-AV"), Console.message("OK"), (String)null, Console.message("Only-VIPs-change"), false);
|
|
+ } else {
|
|
+ String var2 = this.description;
|
|
+ if (var2 == null || var2.length() == 0) {
|
|
+ var2 = getPrettyAvatarName(var1.getBase());
|
|
}
|
|
- break;
|
|
- default:
|
|
- ret = super.properties(index, offset + 1, mode, value);
|
|
- }
|
|
-
|
|
- return ret;
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[url " + (this.url == null ? "null" : this.url.getRelativeTo((SuperRoot)this) + "]");
|
|
- }
|
|
-
|
|
- public void saveState(Saver s) throws IOException {
|
|
- s.saveVersion(4, classCookie);
|
|
- super.saveState(s);
|
|
- URL.save(s, this.url);
|
|
- s.saveString(this.description);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- int ver = r.restoreVersion(classCookie);
|
|
- switch (ver) {
|
|
- case 0:
|
|
- r.setOldFlag();
|
|
- this.dialogActionSkipRestore(r);
|
|
- this.url = URL.restore(r, ".world");
|
|
- break;
|
|
- case 1:
|
|
- r.setOldFlag();
|
|
- this.dialogActionSkipRestore(r);
|
|
- this.url = URL.restore(r, ".world");
|
|
- this.showDialog = r.restoreBoolean();
|
|
- break;
|
|
- case 2:
|
|
- this.dialogActionSkipRestore(r);
|
|
- this.url = URL.restore(r, ".world");
|
|
- this.showDialog = r.restoreBoolean();
|
|
- this.cancelOnly = r.restoreBoolean();
|
|
- break;
|
|
- case 3:
|
|
- case 4:
|
|
- super.restoreState(r);
|
|
- this.url = URL.restore(r, ".world");
|
|
- if (ver >= 4) {
|
|
- this.description = r.restoreString();
|
|
+
|
|
+ return new ChangeAvatarDialog(Console.getFrame(), this, var2);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static String getPrettyAvatarName(String var0) {
|
|
+ int var1 = var0.indexOf(46);
|
|
+ if (var1 >= 1) {
|
|
+ var0 = var0.substring(0, var1).toLowerCase();
|
|
+ } else {
|
|
+ var0 = var0.toLowerCase();
|
|
+ }
|
|
+
|
|
+ for(int var2 = 0; var2 < avatarAliases.length; var2 += 2) {
|
|
+ if (avatarAliases[var2].equals(var0)) {
|
|
+ return avatarAliases[var2 + 1];
|
|
}
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
+ }
|
|
+
|
|
+ String var3 = var0.substring(0, 1).toUpperCase();
|
|
+ if (var0.length() > 1) {
|
|
+ var3 = var3 + var0.substring(1);
|
|
+ }
|
|
+
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ URL var3 = this.getURLVal();
|
|
+ return var3 == null ? null : super.trigger(var1, var2);
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make((new Property(this, var1, "Avatar URL")).allowSetNull(), "pilot;drone;rwx;rwg;mov");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.url;
|
|
+ } else if (var3 == 2) {
|
|
+ this.url = (URL)var4;
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[url " + (this.url == null ? "null" : this.url.getRelativeTo(this) + "]");
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(4, classCookie);
|
|
+ super.saveState(var1);
|
|
+ URL.save(var1, this.url);
|
|
+ var1.saveString(this.description);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ var1.setOldFlag();
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ break;
|
|
+ case 1:
|
|
+ var1.setOldFlag();
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ this.showDialog = var1.restoreBoolean();
|
|
+ break;
|
|
+ case 2:
|
|
+ this.dialogActionSkipRestore(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ this.showDialog = var1.restoreBoolean();
|
|
+ this.cancelOnly = var1.restoreBoolean();
|
|
+ break;
|
|
+ case 3:
|
|
+ case 4:
|
|
+ super.restoreState(var1);
|
|
+ this.url = URL.restore(var1, ".world");
|
|
+ if (var2 >= 4) {
|
|
+ this.description = var1.restoreString();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
|
|
- }
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/scape/SuperRoot.java b/1920/NET/worlds/scape/SuperRoot.java
|
|
--- a/1920/NET/worlds/scape/SuperRoot.java 2024-01-08 01:46:40.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/SuperRoot.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -22,36 +22,36 @@
|
|
static Hashtable classCounter = new Hashtable();
|
|
|
|
public final String getShortClassName() {
|
|
- String s = this.getClass().getName();
|
|
- int index;
|
|
- if ((index = s.lastIndexOf(46)) != -1) {
|
|
- s = s.substring(index + 1);
|
|
+ String var1 = this.getClass().getName();
|
|
+ int var2;
|
|
+ if ((var2 = var1.lastIndexOf(46)) != -1) {
|
|
+ var1 = var1.substring(var2 + 1);
|
|
}
|
|
|
|
- return s;
|
|
+ return var1;
|
|
}
|
|
|
|
public String getName() {
|
|
if (this.name == null) {
|
|
- int digits = 0;
|
|
- String classname = this.getShortClassName();
|
|
- Enumeration en = this.getRoot().getDeepOwned();
|
|
-
|
|
- while(en.hasMoreElements()) {
|
|
- SuperRoot x = (SuperRoot)en.nextElement();
|
|
- if (x.name != null && x.name.startsWith(classname)) {
|
|
+ int var1 = 0;
|
|
+ String var2 = this.getShortClassName();
|
|
+ Enumeration var3 = this.getRoot().getDeepOwned();
|
|
+
|
|
+ while(var3.hasMoreElements()) {
|
|
+ SuperRoot var4 = (SuperRoot)var3.nextElement();
|
|
+ if (var4.name != null && var4.name.startsWith(var2)) {
|
|
try {
|
|
- int tmp = Integer.valueOf(x.name.substring(classname.length()));
|
|
- if (tmp > digits) {
|
|
- digits = tmp;
|
|
+ int var5 = Integer.valueOf(var4.name.substring(var2.length())).intValue();
|
|
+ if (var5 > var1) {
|
|
+ var1 = var5;
|
|
}
|
|
} catch (NumberFormatException var6) {
|
|
}
|
|
}
|
|
}
|
|
|
|
- ++digits;
|
|
- this.name = classname + digits;
|
|
+ ++var1;
|
|
+ this.name = var2 + var1;
|
|
}
|
|
|
|
return this.name;
|
|
@@ -61,87 +61,84 @@
|
|
return this.name;
|
|
}
|
|
|
|
- public void setName(String v) {
|
|
- if (v == null && this.owner != null) {
|
|
- Object[] arguments = new Object[]{new String(this.owner.getName())};
|
|
- Console.println(MessageFormat.format(Console.message("Warning-null-name"), arguments));
|
|
+ public void setName(String var1) {
|
|
+ if (var1 == null && this.owner != null) {
|
|
+ Object[] var2 = new Object[]{new String(this.owner.getName())};
|
|
+ Console.println(MessageFormat.format(Console.message("Warning-null-name"), var2));
|
|
}
|
|
|
|
- this.name = v;
|
|
+ this.name = var1;
|
|
}
|
|
|
|
- public static SuperRoot nameSearch(Enumeration enumeration, String name) {
|
|
- SuperRoot n;
|
|
- do {
|
|
- if (!enumeration.hasMoreElements()) {
|
|
- return null;
|
|
- }
|
|
+ public static SuperRoot nameSearch(Enumeration var0, String var1) {
|
|
+ while(true) {
|
|
+ if (var0.hasMoreElements()) {
|
|
+ SuperRoot var2 = (SuperRoot)var0.nextElement();
|
|
+ if (!var1.equals(var2.name)) {
|
|
+ continue;
|
|
+ }
|
|
|
|
- n = (SuperRoot)enumeration.nextElement();
|
|
- } while(!name.equals(n.name));
|
|
+ return var2;
|
|
+ }
|
|
|
|
- return n;
|
|
+ return null;
|
|
+ }
|
|
}
|
|
|
|
public URL getHelpURL() {
|
|
- String helpString = helpURL + this.getClass().getName() + Console.message(".html");
|
|
- URL helpPage = URL.make(helpString);
|
|
- if (Console.wasHttpNoSuchFile(helpString)) {
|
|
- helpPage = URL.make(helpURL + this.getClass().getName() + ".html");
|
|
+ String var1 = helpURL + this.getClass().getName() + Console.message(".html");
|
|
+ URL var2 = URL.make(var1);
|
|
+ if (Console.wasHttpNoSuchFile(var1)) {
|
|
+ var2 = URL.make(helpURL + this.getClass().getName() + ".html");
|
|
}
|
|
|
|
- return helpPage;
|
|
+ return var2;
|
|
}
|
|
|
|
- public URL getHelpURL(Property p) {
|
|
- String namesub = p.getName().replace(' ', '_');
|
|
- String helpString = helpURL + this.getClass().getName() + "#" + namesub + Console.message(".html");
|
|
- URL helpPage = URL.make(helpString);
|
|
- if (Console.wasHttpNoSuchFile(helpString)) {
|
|
- helpPage = URL.make(helpURL + this.getClass().getName() + "#" + namesub + ".html");
|
|
+ public URL getHelpURL(Property var1) {
|
|
+ String var2 = var1.getName().replace(' ', '_');
|
|
+ String var3 = helpURL + this.getClass().getName() + "#" + var2 + Console.message(".html");
|
|
+ URL var4 = URL.make(var3);
|
|
+ if (Console.wasHttpNoSuchFile(var3)) {
|
|
+ var4 = URL.make(helpURL + this.getClass().getName() + "#" + var2 + ".html");
|
|
}
|
|
|
|
- return helpPage;
|
|
+ return var4;
|
|
}
|
|
|
|
public String toString() {
|
|
return this.isActive() ? this.getName() : this.getName() + "(inactive)";
|
|
}
|
|
|
|
- public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException {
|
|
- Object ret = null;
|
|
- switch (index - offset) {
|
|
- case 0:
|
|
- if (mode == 0) {
|
|
- ret = StringPropertyEditor.make(new Property(this, index, "Name"));
|
|
- } else if (mode == 1) {
|
|
- ret = this.getName();
|
|
- } else if (mode == 4) {
|
|
- this.setName((String)null);
|
|
- } else if (mode == 2) {
|
|
- String s = (String)value;
|
|
- if (!s.equals(this.name) && this.owner != null && nameSearch(this.getRoot().getDeepOwned(), s) != null) {
|
|
- Object[] arguments = new Object[]{new String(s), new String(this.getRoot().getName())};
|
|
- Console.println(MessageFormat.format(Console.message("Name-in-use"), arguments));
|
|
- } else {
|
|
- this.setName((String)value);
|
|
- }
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (mode == 0) {
|
|
- ret = URLPropertyEditor.make((new Property(this, index, "Source URL")).allowSetNull(), "*wob", false);
|
|
- } else if (mode == 1) {
|
|
- ret = this.sourceURL;
|
|
- } else if (mode == 2) {
|
|
- this.setSourceURL((URL)value);
|
|
- }
|
|
- break;
|
|
- default:
|
|
- throw new NoSuchPropertyException();
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make(new Property(this, var1, "Name"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.getName();
|
|
+ } else if (var3 == 4) {
|
|
+ this.setName((String)null);
|
|
+ } else if (var3 == 2) {
|
|
+ String var6 = (String)var4;
|
|
+ this.setName((String)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make((new Property(this, var1, "Source URL")).allowSetNull(), "*wob", false);
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.sourceURL;
|
|
+ } else if (var3 == 2) {
|
|
+ this.setSourceURL((URL)var4);
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ throw new NoSuchPropertyException();
|
|
}
|
|
|
|
- return ret;
|
|
+ return var5;
|
|
}
|
|
|
|
public Object propertyParent() {
|
|
@@ -156,13 +153,13 @@
|
|
this.detach();
|
|
}
|
|
|
|
- protected void add(SuperRoot x) {
|
|
- if (x.owner != null && x.owner != this) {
|
|
- System.out.println("double-setting owner of " + x + " from " + x.owner + " to " + this);
|
|
- throw new Error("double-setting owner of " + x);
|
|
+ protected void add(SuperRoot var1) {
|
|
+ if (var1.owner != null && var1.owner != this) {
|
|
+ System.out.println("double-setting owner of " + var1 + " from " + var1.owner + " to " + this);
|
|
+ throw new Error("double-setting owner of " + var1);
|
|
} else {
|
|
- x.noteAddingTo(this);
|
|
- x.owner = this;
|
|
+ var1.noteAddingTo(this);
|
|
+ var1.owner = this;
|
|
}
|
|
}
|
|
|
|
@@ -174,10 +171,10 @@
|
|
|
|
}
|
|
|
|
- protected void noteAddingTo(SuperRoot s) {
|
|
+ protected void noteAddingTo(SuperRoot var1) {
|
|
}
|
|
|
|
- protected void noteUnadding(SuperRoot s) {
|
|
+ protected void noteUnadding(SuperRoot var1) {
|
|
}
|
|
|
|
public Enumeration getOwned() {
|
|
@@ -188,22 +185,22 @@
|
|
return new DeepEnumeration(this);
|
|
}
|
|
|
|
- public void getChildren(DeepEnumeration d) {
|
|
+ public void getChildren(DeepEnumeration var1) {
|
|
}
|
|
|
|
public World getWorld() {
|
|
- SuperRoot owner = this.getOwner();
|
|
- return owner == null ? null : owner.getWorld();
|
|
+ SuperRoot var1 = this.getOwner();
|
|
+ return var1 == null ? null : var1.getWorld();
|
|
}
|
|
|
|
public Room getRoom() {
|
|
- SuperRoot owner = this.getOwner();
|
|
- return owner == null ? null : owner.getRoom();
|
|
+ SuperRoot var1 = this.getOwner();
|
|
+ return var1 == null ? null : var1.getRoom();
|
|
}
|
|
|
|
public SuperRoot getRoot() {
|
|
- SuperRoot owner = this.getOwner();
|
|
- return owner == null ? this : owner.getRoot();
|
|
+ SuperRoot var1 = this.getOwner();
|
|
+ return var1 == null ? this : var1.getRoot();
|
|
}
|
|
|
|
public boolean isActive() {
|
|
@@ -214,8 +211,8 @@
|
|
return this.sourceURL;
|
|
}
|
|
|
|
- public void setSourceURL(URL s) {
|
|
- this.sourceURL = s;
|
|
+ public void setSourceURL(URL var1) {
|
|
+ this.sourceURL = var1;
|
|
}
|
|
|
|
public URL getContainingSourceURL() {
|
|
@@ -233,13 +230,13 @@
|
|
|
|
}
|
|
|
|
- public static SuperRoot readFile(String urlLocal, URL url) {
|
|
+ public static SuperRoot readFile(String var0, URL var1) {
|
|
try {
|
|
- Restorer r = new Restorer(urlLocal, url);
|
|
- SuperRoot o = (SuperRoot)r.restore();
|
|
- r.done();
|
|
- o.setSourceURL(url);
|
|
- return o;
|
|
+ Restorer var3 = new Restorer(var0, var1);
|
|
+ SuperRoot var4 = (SuperRoot)var3.restore();
|
|
+ var3.done();
|
|
+ var4.setSourceURL(var1);
|
|
+ return var4;
|
|
} catch (FileNotFoundException var5) {
|
|
} catch (ClassCastException var6) {
|
|
} catch (IOException var7) {
|
|
@@ -250,40 +247,40 @@
|
|
return null;
|
|
}
|
|
|
|
- public static SuperRoot readFile(URL url) {
|
|
- return readFile(url.unalias(), url);
|
|
+ public static SuperRoot readFile(URL var0) {
|
|
+ return readFile(var0.unalias(), var0);
|
|
}
|
|
|
|
public void loadInit() {
|
|
}
|
|
|
|
- public void saveFile(URL url) throws IOException {
|
|
+ public void saveFile(URL var1) throws IOException {
|
|
if (this instanceof NonPersister) {
|
|
throw new IOException("Can't save NonPersister");
|
|
} else {
|
|
- Saver s = new Saver(url);
|
|
- s.save(this);
|
|
- s.done();
|
|
- this.setSourceURL(url);
|
|
+ Saver var2 = new Saver(var1);
|
|
+ var2.save(this);
|
|
+ var2.done();
|
|
+ this.setSourceURL(var1);
|
|
}
|
|
}
|
|
|
|
public Object clone() {
|
|
- byte[] b = this.getByteCopy();
|
|
- return getCopyFromBytes(b);
|
|
+ byte[] var1 = this.getByteCopy();
|
|
+ return getCopyFromBytes(var1);
|
|
}
|
|
|
|
public byte[] getByteCopy() {
|
|
if (this instanceof NonPersister) {
|
|
return null;
|
|
} else {
|
|
- ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
|
+ ByteArrayOutputStream var1 = new ByteArrayOutputStream();
|
|
|
|
try {
|
|
- Saver saver = new Saver(new DataOutputStream(buffer));
|
|
- saver.save(this);
|
|
- saver.done();
|
|
- return buffer.toByteArray();
|
|
+ Saver var2 = new Saver(new DataOutputStream(var1));
|
|
+ var2.save(this);
|
|
+ var2.done();
|
|
+ return var1.toByteArray();
|
|
} catch (Exception var3) {
|
|
var3.printStackTrace(System.out);
|
|
throw new Error("Can't save");
|
|
@@ -291,15 +288,15 @@
|
|
}
|
|
}
|
|
|
|
- public static SuperRoot getCopyFromBytes(byte[] b) {
|
|
- if (b == null) {
|
|
+ public static SuperRoot getCopyFromBytes(byte[] var0) {
|
|
+ if (var0 == null) {
|
|
return null;
|
|
} else {
|
|
try {
|
|
- Restorer r = new Restorer(new DataInputStream(new ByteArrayInputStream(b)));
|
|
- SuperRoot obj = (SuperRoot)r.restore();
|
|
- r.done();
|
|
- return obj;
|
|
+ Restorer var1 = new Restorer(new DataInputStream(new ByteArrayInputStream(var0)));
|
|
+ SuperRoot var2 = (SuperRoot)var1.restore();
|
|
+ var1.done();
|
|
+ return var2;
|
|
} catch (Exception var3) {
|
|
var3.printStackTrace(System.out);
|
|
throw new Error("Can't restore");
|
|
@@ -307,80 +304,80 @@
|
|
}
|
|
}
|
|
|
|
- public void saveState(Saver s) throws IOException {
|
|
- s.saveVersion(2, classCookie);
|
|
- s.saveString(this.name);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- this.restoreStateSuperRoot(r);
|
|
- }
|
|
-
|
|
- protected final void restoreStateSuperRoot(Restorer r) throws IOException, TooNewException {
|
|
- String n;
|
|
- switch (r.restoreVersion(classCookie)) {
|
|
- case 0:
|
|
- r.setOldFlag();
|
|
- case 2:
|
|
- if ((n = r.restoreString()) != null) {
|
|
- this.setName(n);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- r.setOldFlag();
|
|
- if ((n = r.restoreString()) != null) {
|
|
- this.setName(n);
|
|
- }
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(2, classCookie);
|
|
+ var1.saveString(this.name);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ this.restoreStateSuperRoot(var1);
|
|
+ }
|
|
+
|
|
+ protected final void restoreStateSuperRoot(Restorer var1) throws IOException, TooNewException {
|
|
+ String var2;
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 0:
|
|
+ var1.setOldFlag();
|
|
+ case 2:
|
|
+ if ((var2 = var1.restoreString()) != null) {
|
|
+ this.setName(var2);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ var1.setOldFlag();
|
|
+ if ((var2 = var1.restoreString()) != null) {
|
|
+ this.setName(var2);
|
|
+ }
|
|
|
|
- r.restoreMaybeNull();
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
+ var1.restoreMaybeNull();
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
}
|
|
|
|
}
|
|
|
|
- public void postRestore(int version) {
|
|
+ public void postRestore(int var1) {
|
|
}
|
|
|
|
- public static void finalizeCounter(Object o) {
|
|
- Class c = o.getClass();
|
|
- Integer icnt = (Integer)finalizedClasses.get(c);
|
|
- int cnt = 0;
|
|
- if (icnt != null) {
|
|
- cnt = icnt;
|
|
+ public static void finalizeCounter(Object var0) {
|
|
+ Class var1 = var0.getClass();
|
|
+ Integer var2 = (Integer)finalizedClasses.get(var1);
|
|
+ int var3 = 0;
|
|
+ if (var2 != null) {
|
|
+ var3 = var2.intValue();
|
|
}
|
|
|
|
- ++cnt;
|
|
- if (cnt == 1000) {
|
|
- System.out.println("Finalized 1000 times: " + c);
|
|
- cnt = 0;
|
|
+ ++var3;
|
|
+ if (var3 == 1000) {
|
|
+ System.out.println("Finalized 1000 times: " + var1);
|
|
+ var3 = 0;
|
|
}
|
|
|
|
- finalizedClasses.put(o.getClass(), new Integer(cnt));
|
|
+ finalizedClasses.put(var0.getClass(), new Integer(var3));
|
|
}
|
|
|
|
protected void finalize() {
|
|
}
|
|
|
|
- public static void countClass(Object o, int inc) {
|
|
- Class c = o.getClass();
|
|
- Integer icnt = (Integer)classCounter.get(c);
|
|
- int cnt = 0;
|
|
- if (icnt != null) {
|
|
- cnt = icnt;
|
|
+ public static void countClass(Object var0, int var1) {
|
|
+ Class var2 = var0.getClass();
|
|
+ Integer var3 = (Integer)classCounter.get(var2);
|
|
+ int var4 = 0;
|
|
+ if (var3 != null) {
|
|
+ var4 = var3.intValue();
|
|
}
|
|
|
|
- cnt += inc;
|
|
- classCounter.put(c, new Integer(cnt));
|
|
+ var4 += var1;
|
|
+ classCounter.put(var2, new Integer(var4));
|
|
}
|
|
|
|
public static void printClassCounts() {
|
|
- Enumeration e = classCounter.keys();
|
|
+ Enumeration var0 = classCounter.keys();
|
|
|
|
- while(e.hasMoreElements()) {
|
|
- Class c = (Class)e.nextElement();
|
|
- System.out.println("Class " + c.getName() + " has " + classCounter.get(c));
|
|
+ while(var0.hasMoreElements()) {
|
|
+ Class var1 = (Class)var0.nextElement();
|
|
+ System.out.println("Class " + var1.getName() + " has " + classCounter.get(var1));
|
|
}
|
|
|
|
}
|
|
diff -ruN a/1920/NET/worlds/scape/TalkAction.java b/1920/NET/worlds/scape/TalkAction.java
|
|
--- a/1920/NET/worlds/scape/TalkAction.java 2024-01-08 01:46:38.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/TalkAction.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,61 +1,68 @@
|
|
package NET.worlds.scape;
|
|
|
|
+import NET.worlds.console.Console;
|
|
+import NET.worlds.core.IniFile;
|
|
+
|
|
import java.io.IOException;
|
|
|
|
public class TalkAction extends Action {
|
|
- String txt = null;
|
|
- private static Object classCookie = new Object();
|
|
+ String txt = null;
|
|
+ private static Object classCookie = new Object();
|
|
|
|
- public TalkAction() {
|
|
- }
|
|
+ public TalkAction() {
|
|
+ }
|
|
|
|
- public TalkAction(String text) {
|
|
- this.txt = text;
|
|
- }
|
|
-
|
|
- public Persister trigger(Event arg, Persister seqID) {
|
|
- Pilot.getActive();
|
|
- Pilot.sendText(this.txt);
|
|
- return null;
|
|
- }
|
|
-
|
|
- public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException {
|
|
- Object ret = null;
|
|
- switch (index - offset) {
|
|
- case 0:
|
|
- if (mode == 0) {
|
|
- ret = StringPropertyEditor.make(new Property(this, index, "Message"));
|
|
- } else if (mode == 1) {
|
|
- ret = this.txt;
|
|
- } else if (mode == 2) {
|
|
- this.txt = (String)value;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- ret = super.properties(index, offset + 1, mode, value);
|
|
- }
|
|
-
|
|
- return ret;
|
|
- }
|
|
-
|
|
- public void saveState(Saver s) throws IOException {
|
|
- s.saveVersion(0, classCookie);
|
|
- super.saveState(s);
|
|
- s.saveString(this.txt);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- switch (r.restoreVersion(classCookie)) {
|
|
- case 0:
|
|
- super.restoreState(r);
|
|
- this.txt = r.restoreString();
|
|
- return;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[" + this.txt + "]";
|
|
- }
|
|
+ public TalkAction(String var1) {
|
|
+ this.txt = var1;
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (IniFile.modModules().getIniInt("DisableTalkAction", 1) == 1) {
|
|
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) Pilot.getActive().console.printLine(Console.getActive().getLongID() + ": " + this.txt);
|
|
+ else Pilot.getActive().console.printLine("<b> " + Console.getActive().getLongID() + ": </b> <color=darkgray> " + this.txt + " </color>");
|
|
+ } else {
|
|
+ Pilot.sendText(this.txt);
|
|
+ }
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.txt;
|
|
+ } else if (var3 == 2) {
|
|
+ this.txt = (String)var4;
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 1, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(0, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.saveString(this.txt);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ switch(var1.restoreVersion(classCookie)) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ this.txt = var1.restoreString();
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[" + this.txt + "]";
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worlds/scape/TarredDrone.java b/1920/NET/worlds/scape/TarredDrone.java
|
|
--- a/1920/NET/worlds/scape/TarredDrone.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/TarredDrone.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,44 @@
|
|
+package NET.worlds.scape;
|
|
+
|
|
+import NET.worlds.console.HiddenDrone;
|
|
+import NET.worlds.network.ObjID;
|
|
+import NET.worlds.network.URL;
|
|
+import NET.worlds.network.WorldServer;
|
|
+import java.io.IOException;
|
|
+
|
|
+public class TarredDrone extends Drone implements HiddenDrone {
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public TarredDrone(ObjID var1, WorldServer var2, URL var3) {
|
|
+ super(var1, var2);
|
|
+ this.setSourceURL(var3);
|
|
+ }
|
|
+
|
|
+ public TarredDrone() {
|
|
+ }
|
|
+
|
|
+ public Drone setAvatarNow(URL var1) {
|
|
+ if (this.shouldBeTarred()) {
|
|
+ this.setSourceURL(URL.make("avatar:holden.mov"));
|
|
+ return this;
|
|
+ } else {
|
|
+ return super.setAvatarNow(var1);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(1, classCookie);
|
|
+ super.saveState(var1);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 1:
|
|
+ super.restoreState(var1);
|
|
+ return;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff -ruN a/1920/NET/worlds/scape/TeleportAction.java b/1920/NET/worlds/scape/TeleportAction.java
|
|
--- a/1920/NET/worlds/scape/TeleportAction.java 2024-01-08 01:46:36.000000000 -0600
|
|
+++ b/1920/NET/worlds/scape/TeleportAction.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -1,547 +1,543 @@
|
|
package NET.worlds.scape;
|
|
|
|
-import NET.worlds.console.Console;
|
|
-import NET.worlds.console.DialogReceiver;
|
|
-import NET.worlds.console.Main;
|
|
-import NET.worlds.console.MainCallback;
|
|
-import NET.worlds.console.WorldsMarkPart;
|
|
+import NET.worlds.console.*;
|
|
+import NET.worlds.core.Debug;
|
|
import NET.worlds.core.IniFile;
|
|
import NET.worlds.network.NetUpdate;
|
|
import NET.worlds.network.URL;
|
|
-import java.awt.Frame;
|
|
+
|
|
import java.io.IOException;
|
|
import java.net.MalformedURLException;
|
|
import java.text.MessageFormat;
|
|
|
|
public class TeleportAction extends Action implements LoadedURLSelf, MainCallback, DialogReceiver {
|
|
- private Point3 targetCoords = new Point3();
|
|
- private float targetRot = 0.0F;
|
|
- private Point3 targetAxis = new Point3(0.0F, 0.0F, -1.0F);
|
|
- private String targetRoomName = null;
|
|
- private String targetDimension = null;
|
|
- private URL targetWorldURL = null;
|
|
- private boolean useDefCoordinates = false;
|
|
- private boolean done = false;
|
|
- private boolean showDialog = true;
|
|
- private boolean forceWorldLoad = false;
|
|
- private boolean forceNoWorldLoad = false;
|
|
- private String targetURL;
|
|
- private static TeleportAction activeTeleport = null;
|
|
- private TeleportDialog dialog = null;
|
|
- private TeleportStatus doneCallback;
|
|
- String tempParseStr;
|
|
- private static Object classCookie = new Object();
|
|
-
|
|
- public TeleportAction() {
|
|
- }
|
|
-
|
|
- public Persister trigger(Event e, Persister seqID) {
|
|
- if (activeTeleport != this) {
|
|
- this.targetURL = this.asURL();
|
|
- this.startTeleport();
|
|
- }
|
|
-
|
|
- return !this.done && activeTeleport != this ? this : null;
|
|
- }
|
|
-
|
|
- public void stopLoading() {
|
|
- this.done = true;
|
|
- if (activeTeleport == this) {
|
|
- this.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isTeleporting() {
|
|
- return activeTeleport != null;
|
|
- }
|
|
-
|
|
- public static void teleport(String url, TeleportStatus callback) {
|
|
- TeleportAction t = new TeleportAction(url, callback);
|
|
- if (Main.isMainThread()) {
|
|
- t.startTeleport();
|
|
- } else {
|
|
- Main.register(t);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void teleport(String url, TeleportStatus callback, boolean forceWorldLoad) {
|
|
- TeleportAction t = new TeleportAction(url, callback);
|
|
- t.forceWorldLoad = forceWorldLoad;
|
|
- t.forceNoWorldLoad = !forceWorldLoad;
|
|
- if (Main.isMainThread()) {
|
|
- t.startTeleport();
|
|
- } else {
|
|
- Main.register(t);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static void teleport(String url, TeleportStatus callback, boolean forceWorldLoad, boolean pShowDialog) {
|
|
- TeleportAction t = new TeleportAction(url, callback);
|
|
- t.showDialog = pShowDialog;
|
|
- t.forceWorldLoad = forceWorldLoad;
|
|
- t.forceNoWorldLoad = !forceWorldLoad;
|
|
- if (Main.isMainThread()) {
|
|
- t.startTeleport();
|
|
- } else {
|
|
- Main.register(t);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public void mainCallback() {
|
|
- Main.unregister(this);
|
|
- this.startTeleport();
|
|
- }
|
|
-
|
|
- public static String toURLString(String url) {
|
|
- if (url == null || url.equals("world:")) {
|
|
- url = WorldsMarkPart.getFirstSystemMarkURL();
|
|
- }
|
|
-
|
|
- if (url == null) {
|
|
- url = "home:NewWorld.world";
|
|
- }
|
|
-
|
|
- if (url.startsWith("world:")) {
|
|
- if (url.equals("world:restart")) {
|
|
- url = IniFile.gamma().getIniString("RestartAt", WorldsMarkPart.getFirstSystemMarkURL());
|
|
- } else if (url.equals("world:store")) {
|
|
- url = World.getHomeStore().getAbsolute();
|
|
- } else {
|
|
- url = url.substring(6);
|
|
- }
|
|
-
|
|
- int i = url.indexOf(".world?");
|
|
- if (i >= 0) {
|
|
- url = url.substring(0, i) + ".world#" + url.substring(i + 7);
|
|
- }
|
|
- }
|
|
-
|
|
- if (url.indexOf(58) < 0) {
|
|
- if (url.indexOf(47) < 0 && url.indexOf(92) < 0 && !url.endsWith(".world")) {
|
|
- url = "home:" + url + "/" + url + ".world";
|
|
- } else {
|
|
- url = "file:" + url;
|
|
- }
|
|
- }
|
|
-
|
|
- return url;
|
|
- }
|
|
-
|
|
- private TeleportAction(String url, TeleportStatus callback) {
|
|
- this.doneCallback = callback;
|
|
- this.targetURL = toURLString(url);
|
|
- url = this.setFromURL(this.targetURL);
|
|
-
|
|
- try {
|
|
- if (this.targetURL.startsWith("http://")) {
|
|
- this.targetWorldURL = new URL(url);
|
|
- } else {
|
|
- this.targetWorldURL = new URL(URL.getCurDir(), URL.maybeAddExt(url, ".world"));
|
|
- }
|
|
- } catch (MalformedURLException var4) {
|
|
- this.targetWorldURL = URL.make("error:\"" + url + '"');
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private float getNextFloat(float def) {
|
|
- String s = this.tempParseStr;
|
|
- int end = this.tempParseStr.indexOf(44);
|
|
- if (end == -1) {
|
|
- end = this.tempParseStr.length();
|
|
- this.tempParseStr = "";
|
|
- } else {
|
|
- this.tempParseStr = this.tempParseStr.substring(end + 1);
|
|
- }
|
|
-
|
|
- try {
|
|
- return Float.valueOf(s.substring(0, end));
|
|
- } catch (NumberFormatException var5) {
|
|
- return def;
|
|
- }
|
|
- }
|
|
-
|
|
- private String setFromURL(String url) {
|
|
- this.useDefCoordinates = true;
|
|
- int roomNameStart = url.lastIndexOf(35);
|
|
- int leftAngle;
|
|
- if (roomNameStart >= 0) {
|
|
- String rest = url.substring(roomNameStart + 1);
|
|
- url = url.substring(0, roomNameStart);
|
|
- leftAngle = rest.lastIndexOf(64);
|
|
- if (leftAngle < 0) {
|
|
- this.targetRoomName = rest;
|
|
- } else {
|
|
- this.useDefCoordinates = false;
|
|
- this.targetRoomName = rest.substring(0, leftAngle);
|
|
- this.tempParseStr = rest.substring(leftAngle + 1);
|
|
- this.targetCoords.x = this.getNextFloat(this.targetCoords.x);
|
|
- this.targetCoords.y = this.getNextFloat(this.targetCoords.y);
|
|
- this.targetCoords.z = this.getNextFloat(this.targetCoords.z);
|
|
- this.targetRot = this.getNextFloat(this.targetRot);
|
|
- this.targetAxis.x = this.getNextFloat(this.targetAxis.x);
|
|
- this.targetAxis.y = this.getNextFloat(this.targetAxis.y);
|
|
- this.targetAxis.z = this.getNextFloat(this.targetAxis.z);
|
|
- this.tempParseStr = null;
|
|
- }
|
|
- }
|
|
-
|
|
- if (this.targetRoomName != null) {
|
|
- int rightAngle = this.targetRoomName.lastIndexOf(62);
|
|
- leftAngle = this.targetRoomName.lastIndexOf(60);
|
|
- if (rightAngle + 1 == this.targetRoomName.length() && leftAngle >= 0) {
|
|
- this.targetDimension = this.targetRoomName.substring(leftAngle + 1, rightAngle);
|
|
- this.targetRoomName = this.targetRoomName.substring(0, leftAngle);
|
|
- }
|
|
- }
|
|
-
|
|
- return url;
|
|
- }
|
|
-
|
|
- private void makeTeleportDialog(URL url) {
|
|
- if (this.showDialog) {
|
|
- Frame gf = Console.getFrame();
|
|
- if (gf != null && gf.isShowing()) {
|
|
- this.dialog = new TeleportDialog(gf, this);
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private void startTeleport() {
|
|
- if (activeTeleport != null) {
|
|
- if (activeTeleport.doneCallback != null) {
|
|
- activeTeleport.doneCallback.teleportStatus("overridden by new teleport", activeTeleport.targetURL);
|
|
- }
|
|
-
|
|
- activeTeleport.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- activeTeleport = this;
|
|
- Console.setFreezeFrameEvents(true);
|
|
- this.done = false;
|
|
- Console.teleportNotification("", this.targetURL);
|
|
- if (this.targetWorldURL != null) {
|
|
- this.makeTeleportDialog(this.targetWorldURL);
|
|
- World.load(this.targetWorldURL, this, this.forceWorldLoad);
|
|
- } else {
|
|
- Pilot pilot = Pilot.getActive();
|
|
- World w;
|
|
- if (pilot != null && (w = pilot.getWorld()) != null) {
|
|
- this.makeTeleportDialog(w.getSourceURL());
|
|
- this.loadedURLSelf(w, this.targetWorldURL, (String)null);
|
|
- } else {
|
|
- this.stopTeleport("Pilot not in a room for intraworld teleport");
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- private Room stopTeleport(String err) {
|
|
- assert this == activeTeleport;
|
|
-
|
|
- this.done = true;
|
|
- activeTeleport = null;
|
|
- Console.setFreezeFrameEvents(false);
|
|
- if (this.doneCallback != null) {
|
|
- this.doneCallback.teleportStatus(err, this.targetURL);
|
|
- }
|
|
-
|
|
- if (err != null && !this.forceNoWorldLoad) {
|
|
- Console.teleportNotification(err, this.targetURL);
|
|
- Console.println(err);
|
|
- }
|
|
-
|
|
- if (this.dialog != null) {
|
|
- this.dialog.closeIt(true);
|
|
- this.dialog = null;
|
|
- }
|
|
-
|
|
- return null;
|
|
- }
|
|
-
|
|
- public synchronized void dialogDone(Object who, boolean confirmed) {
|
|
- if (activeTeleport != null) {
|
|
- activeTeleport.stopTeleport((String)null);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static String getReadableNameOfWorld(URL url) {
|
|
- String worldDir = url.getAbsolute();
|
|
- String readable = worldDir;
|
|
- String packageName = null;
|
|
- if (worldDir.startsWith("home:") && worldDir.length() > 6) {
|
|
- readable = worldDir.substring(worldDir.charAt(5) == '/' ? 6 : 5);
|
|
- int slash = readable.indexOf(47);
|
|
- if (slash > 0) {
|
|
- packageName = readable.substring(0, slash);
|
|
- if (readable.regionMatches(true, slash + 1, readable, 0, slash)) {
|
|
- readable = packageName;
|
|
- String s = WorldsMarkPart.getExternalName(packageName);
|
|
- if (s != null) {
|
|
- readable = s;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- int tail = readable.indexOf(".world");
|
|
- if (tail > 0) {
|
|
- readable = readable.substring(0, tail);
|
|
- }
|
|
-
|
|
- readable = "the " + readable + " world";
|
|
- }
|
|
-
|
|
- return readable;
|
|
- }
|
|
-
|
|
- public static String getPackageNameOfWorld(URL url) {
|
|
- String worldDir = url.getAbsolute();
|
|
- String packageName = null;
|
|
- if (worldDir.startsWith("home:") && worldDir.length() > 6) {
|
|
- String readable = worldDir.substring(worldDir.charAt(5) == '/' ? 6 : 5);
|
|
- int slash = readable.indexOf(47);
|
|
- if (slash > 0) {
|
|
- packageName = readable.substring(0, slash);
|
|
- }
|
|
- }
|
|
-
|
|
- return packageName;
|
|
- }
|
|
-
|
|
- public void loadedURLSelf(URLSelf o, URL url, String err) {
|
|
- if (activeTeleport != this) {
|
|
- if (o != null) {
|
|
- o.decRef();
|
|
- }
|
|
-
|
|
- } else {
|
|
- String readable;
|
|
- if (err == null && o instanceof World) {
|
|
- readable = this.targetRoomName;
|
|
- if (readable == null) {
|
|
- readable = ((World)o).getDefaultRoomName();
|
|
- }
|
|
-
|
|
- Room room = ((World)o).getRoom(readable);
|
|
- if (room == null) {
|
|
- this.stopTeleport("Error finding room " + this.targetRoomName);
|
|
- } else if (room.getVIPOnly() && !((World)o).getConsole().getVIP()) {
|
|
- this.stopTeleport("Only VIPs may go there.");
|
|
- if (this.forceNoWorldLoad) {
|
|
- Console.println(Console.message("Only-VIPs-there"));
|
|
- }
|
|
+ private Point3 targetCoords = new Point3();
|
|
+ private float targetRot = 0.0F;
|
|
+ private Point3 targetAxis = new Point3(0.0F, 0.0F, -1.0F);
|
|
+ private String targetRoomName = null;
|
|
+ private String targetDimension = null;
|
|
+ private URL targetWorldURL = null;
|
|
+ private boolean useDefCoordinates = false;
|
|
+ private boolean done = false;
|
|
+ private boolean showDialog = true;
|
|
+ private boolean forceWorldLoad = false;
|
|
+ private boolean forceNoWorldLoad = false;
|
|
+ private String targetURL;
|
|
+ private static TeleportAction activeTeleport = null;
|
|
+ private TeleportDialog dialog = null;
|
|
+ private TeleportStatus doneCallback;
|
|
+ String tempParseStr;
|
|
+ private static Object classCookie = new Object();
|
|
+
|
|
+ public TeleportAction() {
|
|
+ }
|
|
+
|
|
+ public Persister trigger(Event var1, Persister var2) {
|
|
+ if (activeTeleport != this) {
|
|
+ this.targetURL = this.asURL();
|
|
+ this.startTeleport();
|
|
+ }
|
|
+
|
|
+ return !this.done && activeTeleport != this ? this : null;
|
|
+ }
|
|
+
|
|
+ public void stopLoading() {
|
|
+ this.done = true;
|
|
+ if (activeTeleport == this) {
|
|
+ this.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static boolean isTeleporting() {
|
|
+ return activeTeleport != null;
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1) {
|
|
+ TeleportAction var2 = new TeleportAction(var0, var1);
|
|
+ if (Main.isMainThread()) {
|
|
+ var2.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var2);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1, boolean var2) {
|
|
+ TeleportAction var3 = new TeleportAction(var0, var1);
|
|
+ var3.forceWorldLoad = var2;
|
|
+ var3.forceNoWorldLoad = !var2;
|
|
+ if (Main.isMainThread()) {
|
|
+ var3.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var3);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static void teleport(String var0, TeleportStatus var1, boolean var2, boolean var3) {
|
|
+ TeleportAction var4 = new TeleportAction(var0, var1);
|
|
+ var4.showDialog = var3;
|
|
+ var4.forceWorldLoad = var2;
|
|
+ var4.forceNoWorldLoad = !var2;
|
|
+ if (Main.isMainThread()) {
|
|
+ var4.startTeleport();
|
|
+ } else {
|
|
+ Main.register(var4);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public void mainCallback() {
|
|
+ Main.unregister(this);
|
|
+ this.startTeleport();
|
|
+ }
|
|
+
|
|
+ public static String toURLString(String var0) {
|
|
+ if (var0 == null || var0.equals("world:")) {
|
|
+ var0 = WorldsMarkPart.getFirstSystemMarkURL();
|
|
+ }
|
|
+
|
|
+ if (var0 == null) {
|
|
+ var0 = "home:NewWorld.world";
|
|
+ }
|
|
+
|
|
+ if (var0.startsWith("world:")) {
|
|
+ if (var0.equals("world:restart")) {
|
|
+ var0 = IniFile.gamma().getIniString("RestartAt", WorldsMarkPart.getFirstSystemMarkURL());
|
|
+ } else if (var0.equals("world:store")) {
|
|
+ var0 = World.getHomeStore().getAbsolute();
|
|
+ } else {
|
|
+ var0 = var0.substring(6);
|
|
+ }
|
|
+
|
|
+ int var1 = var0.indexOf(".world?");
|
|
+ if (var1 >= 0) {
|
|
+ var0 = var0.substring(0, var1) + ".world#" + var0.substring(var1 + 7);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (var0.indexOf(58) < 0) {
|
|
+ if (var0.indexOf(47) < 0 && var0.indexOf(92) < 0 && !var0.endsWith(".world")) {
|
|
+ var0 = "home:" + var0 + "/" + var0 + ".world";
|
|
+ } else {
|
|
+ var0 = "file:" + var0;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var0;
|
|
+ }
|
|
+
|
|
+ private TeleportAction(String var1, TeleportStatus var2) {
|
|
+ this.doneCallback = var2;
|
|
+ this.targetURL = toURLString(var1);
|
|
+ var1 = this.setFromURL(this.targetURL);
|
|
|
|
+ try {
|
|
+ if (this.targetURL.startsWith("http://")) {
|
|
+ this.targetWorldURL = new URL(var1);
|
|
} else {
|
|
- Console.teleportNotification((String)null, this.targetURL);
|
|
- Pilot pilot = Pilot.changeActiveRoom(room);
|
|
- if (this.targetDimension != null) {
|
|
- pilot.changeChannel(this.targetDimension);
|
|
- }
|
|
-
|
|
- pilot.makeIdentity();
|
|
- if (this.useDefCoordinates) {
|
|
- pilot.moveTo(room.getDefaultPosition()).spin(room.getDefaultOrientationAxis(), room.getDefaultOrientation());
|
|
- } else {
|
|
- pilot.moveTo(this.targetCoords).spin(this.targetAxis, this.targetRot);
|
|
- }
|
|
-
|
|
- this.stopTeleport((String)null);
|
|
- }
|
|
- } else {
|
|
- if (err == null) {
|
|
- err = "file " + url + " doesn't contain a World";
|
|
- o.decRef();
|
|
- }
|
|
-
|
|
- readable = getReadableNameOfWorld(url);
|
|
- String packageName = getPackageNameOfWorld(url);
|
|
- Object[] arguments = new Object[]{new String(readable)};
|
|
- this.stopTeleport(MessageFormat.format(Console.message("cant-teleport"), arguments));
|
|
- if (packageName != null && !this.forceNoWorldLoad) {
|
|
- NetUpdate.loadWorld(packageName, this.forceWorldLoad);
|
|
- }
|
|
-
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- public Object properties(int index, int offset, int mode, Object value) throws NoSuchPropertyException {
|
|
- Object ret = null;
|
|
- switch (index - offset) {
|
|
- case 0:
|
|
- if (mode == 0) {
|
|
- ret = Point3PropertyEditor.make(new Property(this, index, "X, Y, Z"));
|
|
- } else if (mode == 1) {
|
|
- ret = new Point3(this.targetCoords);
|
|
- } else if (mode == 2) {
|
|
- this.targetCoords.copy((Point3)value);
|
|
- }
|
|
- break;
|
|
- case 1:
|
|
- if (mode == 0) {
|
|
- ret = FloatPropertyEditor.make(new Property(this, index, "Dir"));
|
|
- } else if (mode == 1) {
|
|
- ret = new Float(this.targetRot);
|
|
- } else if (mode == 2) {
|
|
- this.targetRot = (Float)value;
|
|
- }
|
|
- break;
|
|
- case 2:
|
|
- if (mode == 0) {
|
|
- ret = StringPropertyEditor.make((new Property(this, index, "Room Name")).allowSetNull());
|
|
- } else if (mode == 1) {
|
|
- if (this.targetRoomName == null) {
|
|
- ret = "";
|
|
- } else {
|
|
- ret = new String(this.targetRoomName);
|
|
- }
|
|
- } else if (mode == 2) {
|
|
- this.targetRoomName = (String)value;
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 3:
|
|
- if (mode == 0) {
|
|
- ret = URLPropertyEditor.make((new Property(this, index, "World URL")).allowSetNull(), "world");
|
|
- } else if (mode == 1) {
|
|
- ret = this.targetWorldURL;
|
|
- } else if (mode == 2) {
|
|
- this.targetWorldURL = (URL)value;
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 4:
|
|
- if (mode == 0) {
|
|
- ret = BooleanPropertyEditor.make(new Property(this, index, "Use default coordinates"), "No", "Yes");
|
|
- } else if (mode == 1) {
|
|
- ret = new Boolean(this.useDefCoordinates);
|
|
- } else if (mode == 2) {
|
|
- this.useDefCoordinates = (Boolean)value;
|
|
- }
|
|
- break;
|
|
- case 5:
|
|
- if (mode == 0) {
|
|
- ret = StringPropertyEditor.make((new Property(this, index, "Dimension Name")).allowSetNull());
|
|
- } else if (mode == 1) {
|
|
- if (this.targetDimension == null) {
|
|
- ret = "";
|
|
- } else {
|
|
- ret = new String(this.targetDimension);
|
|
- }
|
|
- } else if (mode == 2) {
|
|
- this.targetDimension = (String)value;
|
|
- if (this.targetDimension.equals("")) {
|
|
- this.targetDimension = null;
|
|
- }
|
|
-
|
|
- this.stopLoading();
|
|
- }
|
|
- break;
|
|
- case 6:
|
|
- if (mode == 0) {
|
|
- ret = BooleanPropertyEditor.make(new Property(this, index, "Show dialog"), "No", "Yes");
|
|
- } else if (mode == 1) {
|
|
- ret = new Boolean(this.showDialog);
|
|
- } else if (mode == 2) {
|
|
- this.showDialog = (Boolean)value;
|
|
- }
|
|
- break;
|
|
- default:
|
|
- ret = super.properties(index, offset + 7, mode, value);
|
|
- }
|
|
-
|
|
- return ret;
|
|
- }
|
|
-
|
|
- public void saveState(Saver s) throws IOException {
|
|
- s.saveVersion(3, classCookie);
|
|
- super.saveState(s);
|
|
- s.save(this.targetCoords);
|
|
- s.saveFloat(this.targetRot);
|
|
- s.save(this.targetAxis);
|
|
- s.saveString(this.targetRoomName);
|
|
- URL.save(s, this.targetWorldURL);
|
|
- s.saveBoolean(this.useDefCoordinates);
|
|
- s.saveString(this.targetDimension);
|
|
- }
|
|
-
|
|
- public void restoreState(Restorer r) throws IOException, TooNewException {
|
|
- int vers = r.restoreVersion(classCookie);
|
|
- switch (vers) {
|
|
- case 0:
|
|
- super.restoreState(r);
|
|
- this.targetCoords = (Point3)r.restore();
|
|
- this.targetRot = (float)r.restoreInt();
|
|
- this.targetRoomName = r.restoreString();
|
|
- this.targetWorldURL = URL.restore(r, ".world");
|
|
- this.useDefCoordinates = r.restoreBoolean();
|
|
- this.targetDimension = null;
|
|
- break;
|
|
- case 1:
|
|
- case 2:
|
|
- super.restoreState(r);
|
|
- this.targetCoords = (Point3)r.restore();
|
|
- this.targetRot = r.restoreFloat();
|
|
- this.targetAxis = (Point3)r.restore();
|
|
- this.targetRoomName = r.restoreString();
|
|
- this.targetWorldURL = URL.restore(r, ".world");
|
|
- this.useDefCoordinates = r.restoreBoolean();
|
|
- this.targetDimension = null;
|
|
- break;
|
|
- case 3:
|
|
- super.restoreState(r);
|
|
- this.targetCoords = (Point3)r.restore();
|
|
- this.targetRot = r.restoreFloat();
|
|
- this.targetAxis = (Point3)r.restore();
|
|
- this.targetRoomName = r.restoreString();
|
|
- this.targetWorldURL = URL.restore(r, ".world");
|
|
- this.useDefCoordinates = r.restoreBoolean();
|
|
- this.targetDimension = r.restoreString();
|
|
- break;
|
|
- default:
|
|
- throw new TooNewException();
|
|
- }
|
|
-
|
|
- if (vers < 2 && this.targetAxis.x == 0.0F && this.targetAxis.y == 0.0F && this.targetAxis.z == 1.0F) {
|
|
- this.targetAxis.z = -1.0F;
|
|
- this.targetRot = 360.0F - this.targetRot;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public String toString() {
|
|
- return super.toString() + "[" + this.asURL() + "]";
|
|
- }
|
|
-
|
|
- public String asURL() {
|
|
- String url;
|
|
- if (this.targetWorldURL != null) {
|
|
- url = this.targetWorldURL.getRelativeTo((SuperRoot)this) + "#";
|
|
- } else {
|
|
- url = "#";
|
|
- }
|
|
-
|
|
- if (this.targetRoomName != null) {
|
|
- url = url + this.targetRoomName;
|
|
- }
|
|
-
|
|
- if (this.targetDimension != null) {
|
|
- url = url + "<" + this.targetDimension + ">";
|
|
- }
|
|
-
|
|
- if (!this.useDefCoordinates) {
|
|
- url = url + "@" + this.targetCoords + "," + this.targetRot;
|
|
- if (this.targetAxis.x != 0.0F || this.targetAxis.y != 0.0F || this.targetAxis.z != 1.0F) {
|
|
- url = url + "," + this.targetAxis;
|
|
- }
|
|
- }
|
|
+ this.targetWorldURL = new URL(URL.getCurDir(), URL.maybeAddExt(var1, ".world"));
|
|
+ }
|
|
+ } catch (MalformedURLException var4) {
|
|
+ this.targetWorldURL = URL.make("error:\"" + var1 + '"');
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private float getNextFloat(float var1) {
|
|
+ String var2 = this.tempParseStr;
|
|
+ int var3 = this.tempParseStr.indexOf(44);
|
|
+ if (var3 == -1) {
|
|
+ var3 = this.tempParseStr.length();
|
|
+ this.tempParseStr = "";
|
|
+ } else {
|
|
+ this.tempParseStr = this.tempParseStr.substring(var3 + 1);
|
|
+ }
|
|
+
|
|
+ try {
|
|
+ return Float.valueOf(var2.substring(0, var3)).floatValue();
|
|
+ } catch (NumberFormatException var5) {
|
|
+ return var1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private String setFromURL(String var1) {
|
|
+ this.useDefCoordinates = true;
|
|
+ int var2 = var1.lastIndexOf(35);
|
|
+ int var4;
|
|
+ if (var2 >= 0) {
|
|
+ String var3 = var1.substring(var2 + 1);
|
|
+ var1 = var1.substring(0, var2);
|
|
+ var4 = var3.lastIndexOf(64);
|
|
+ if (var4 < 0) {
|
|
+ this.targetRoomName = var3;
|
|
+ } else {
|
|
+ this.useDefCoordinates = false;
|
|
+ this.targetRoomName = var3.substring(0, var4);
|
|
+ this.tempParseStr = var3.substring(var4 + 1);
|
|
+ this.targetCoords.x = this.getNextFloat(this.targetCoords.x);
|
|
+ this.targetCoords.y = this.getNextFloat(this.targetCoords.y);
|
|
+ this.targetCoords.z = this.getNextFloat(this.targetCoords.z);
|
|
+ this.targetRot = this.getNextFloat(this.targetRot);
|
|
+ this.targetAxis.x = this.getNextFloat(this.targetAxis.x);
|
|
+ this.targetAxis.y = this.getNextFloat(this.targetAxis.y);
|
|
+ this.targetAxis.z = this.getNextFloat(this.targetAxis.z);
|
|
+ this.tempParseStr = null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if (this.targetRoomName != null) {
|
|
+ int var5 = this.targetRoomName.lastIndexOf(62);
|
|
+ var4 = this.targetRoomName.lastIndexOf(60);
|
|
+ if (var5 + 1 == this.targetRoomName.length() && var4 >= 0) {
|
|
+ this.targetDimension = this.targetRoomName.substring(var4 + 1, var5);
|
|
+ this.targetRoomName = this.targetRoomName.substring(0, var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var1;
|
|
+ }
|
|
+
|
|
+ private void makeTeleportDialog(URL var1) {
|
|
+ if (this.showDialog) {
|
|
+ GammaFrame var2 = Console.getFrame();
|
|
+ if (var2 != null && var2.isShowing()) {
|
|
+ this.dialog = new TeleportDialog(var2, this);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private void startTeleport() {
|
|
+ if (activeTeleport != null) {
|
|
+ if (activeTeleport.doneCallback != null) {
|
|
+ activeTeleport.doneCallback.teleportStatus("overridden by new teleport", activeTeleport.targetURL);
|
|
+ }
|
|
+
|
|
+ activeTeleport.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ activeTeleport = this;
|
|
+ Console.setFreezeFrameEvents(true);
|
|
+ this.done = false;
|
|
+ Console.teleportNotification("", this.targetURL);
|
|
+ if (this.targetWorldURL != null) {
|
|
+ this.makeTeleportDialog(this.targetWorldURL);
|
|
+ World.load(this.targetWorldURL, this, this.forceWorldLoad);
|
|
+ } else {
|
|
+ Pilot var1 = Pilot.getActive();
|
|
+ World var2;
|
|
+ if (var1 != null && (var2 = var1.getWorld()) != null) {
|
|
+ this.makeTeleportDialog(var2.getSourceURL());
|
|
+ this.loadedURLSelf(var2, this.targetWorldURL, (String)null);
|
|
+ } else {
|
|
+ this.stopTeleport("Pilot not in a room for intraworld teleport");
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ private Room stopTeleport(String var1) {
|
|
+ assert(this == activeTeleport);
|
|
+ this.done = true;
|
|
+ activeTeleport = null;
|
|
+ Console.setFreezeFrameEvents(false);
|
|
+ if (this.doneCallback != null) {
|
|
+ this.doneCallback.teleportStatus(var1, this.targetURL);
|
|
+ }
|
|
+
|
|
+ if (var1 != null && !this.forceNoWorldLoad) {
|
|
+ Console.teleportNotification(var1, this.targetURL);
|
|
+ Console.println(var1);
|
|
+ }
|
|
+
|
|
+ if (this.dialog != null) {
|
|
+ this.dialog.closeIt(true);
|
|
+ this.dialog = null;
|
|
+ }
|
|
+
|
|
+ return null;
|
|
+ }
|
|
+
|
|
+ public synchronized void dialogDone(Object var1, boolean var2) {
|
|
+ if (activeTeleport != null) {
|
|
+ activeTeleport.stopTeleport((String)null);
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public static String getReadableNameOfWorld(URL var0) {
|
|
+ String var1 = var0.getAbsolute();
|
|
+ String var2 = var1;
|
|
+ String var3 = null;
|
|
+ if (var1.startsWith("home:") && var1.length() > 6) {
|
|
+ var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
+ int var4 = var2.indexOf(47);
|
|
+ if (var4 > 0) {
|
|
+ var3 = var2.substring(0, var4);
|
|
+ if (var2.regionMatches(true, var4 + 1, var2, 0, var4)) {
|
|
+ var2 = var3;
|
|
+ String var5 = WorldsMarkPart.getExternalName(var3);
|
|
+ if (var5 != null) {
|
|
+ var2 = var5;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ int var6 = var2.indexOf(".world");
|
|
+ if (var6 > 0) {
|
|
+ var2 = var2.substring(0, var6);
|
|
+ }
|
|
+
|
|
+ var2 = "the " + var2 + " world";
|
|
+ }
|
|
+
|
|
+ return var2;
|
|
+ }
|
|
+
|
|
+ public static String getPackageNameOfWorld(URL var0) {
|
|
+ String var1 = var0.getAbsolute();
|
|
+ String var3 = null;
|
|
+ if (var1.startsWith("home:") && var1.length() > 6) {
|
|
+ String var2 = var1.substring(var1.charAt(5) == '/' ? 6 : 5);
|
|
+ int var4 = var2.indexOf(47);
|
|
+ if (var4 > 0) {
|
|
+ var3 = var2.substring(0, var4);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return var3;
|
|
+ }
|
|
+
|
|
+ public void loadedURLSelf(URLSelf var1, URL var2, String var3) {
|
|
+ if (activeTeleport != this) {
|
|
+ if (var1 != null) {
|
|
+ var1.decRef();
|
|
+ }
|
|
+
|
|
+ } else {
|
|
+ String var4;
|
|
+ if (var3 == null && var1 instanceof World) {
|
|
+ var4 = this.targetRoomName;
|
|
+ if (var4 == null) {
|
|
+ var4 = ((World)var1).getDefaultRoomName();
|
|
+ }
|
|
+
|
|
+ Room var7 = ((World)var1).getRoom(var4);
|
|
+ if (var7 == null) {
|
|
+ this.stopTeleport("Error finding room " + this.targetRoomName);
|
|
+ } else if (var7.getVIPOnly() && !((World)var1).getConsole().getVIP()) {
|
|
+ this.stopTeleport("Only VIPs may go there.");
|
|
+ if (this.forceNoWorldLoad) {
|
|
+ Console.println(Console.message("Only-VIPs-there"));
|
|
+ }
|
|
+
|
|
+ } else {
|
|
+ Console.teleportNotification((String)null, this.targetURL);
|
|
+ Pilot var8 = Pilot.changeActiveRoom(var7);
|
|
+ if (this.targetDimension != null) {
|
|
+ var8.changeChannel(this.targetDimension);
|
|
+ }
|
|
+
|
|
+ var8.makeIdentity();
|
|
+ if (this.useDefCoordinates) {
|
|
+ var8.moveTo(var7.getDefaultPosition()).spin(var7.getDefaultOrientationAxis(), var7.getDefaultOrientation());
|
|
+ } else {
|
|
+ var8.moveTo(this.targetCoords).spin(this.targetAxis, this.targetRot);
|
|
+ }
|
|
+
|
|
+ this.stopTeleport((String)null);
|
|
+ }
|
|
+ } else {
|
|
+ if (var3 == null) {
|
|
+ var3 = "file " + var2 + " doesn't contain a World";
|
|
+ var1.decRef();
|
|
+ }
|
|
+
|
|
+ var4 = getReadableNameOfWorld(var2);
|
|
+ String var5 = getPackageNameOfWorld(var2);
|
|
+ Object[] var6 = new Object[]{new String(var4)};
|
|
+ this.stopTeleport(MessageFormat.format(Console.message("cant-teleport"), var6));
|
|
+ if (var5 != null && !this.forceNoWorldLoad) {
|
|
+ NetUpdate.loadWorld(var5, this.forceWorldLoad);
|
|
+ }
|
|
+
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
|
|
+ Object var5 = null;
|
|
+ switch(var1 - var2) {
|
|
+ case 0:
|
|
+ if (var3 == 0) {
|
|
+ var5 = Point3PropertyEditor.make(new Property(this, var1, "X, Y, Z"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Point3(this.targetCoords);
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetCoords.copy((Point3)var4);
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (var3 == 0) {
|
|
+ var5 = FloatPropertyEditor.make(new Property(this, var1, "Dir"));
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Float(this.targetRot);
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetRot = ((Float)var4).floatValue();
|
|
+ }
|
|
+ break;
|
|
+ case 2:
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make((new Property(this, var1, "Room Name")).allowSetNull());
|
|
+ } else if (var3 == 1) {
|
|
+ if (this.targetRoomName == null) {
|
|
+ var5 = "";
|
|
+ } else {
|
|
+ var5 = new String(this.targetRoomName);
|
|
+ }
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetRoomName = (String)var4;
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 3:
|
|
+ if (var3 == 0) {
|
|
+ var5 = URLPropertyEditor.make((new Property(this, var1, "World URL")).allowSetNull(), "world");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = this.targetWorldURL;
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetWorldURL = (URL)var4;
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 4:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Use default coordinates"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(this.useDefCoordinates);
|
|
+ } else if (var3 == 2) {
|
|
+ this.useDefCoordinates = ((Boolean)var4).booleanValue();
|
|
+ }
|
|
+ break;
|
|
+ case 5:
|
|
+ if (var3 == 0) {
|
|
+ var5 = StringPropertyEditor.make((new Property(this, var1, "Dimension Name")).allowSetNull());
|
|
+ } else if (var3 == 1) {
|
|
+ if (this.targetDimension == null) {
|
|
+ var5 = "";
|
|
+ } else {
|
|
+ var5 = new String(this.targetDimension);
|
|
+ }
|
|
+ } else if (var3 == 2) {
|
|
+ this.targetDimension = (String)var4;
|
|
+ if (this.targetDimension.equals("")) {
|
|
+ this.targetDimension = null;
|
|
+ }
|
|
+
|
|
+ this.stopLoading();
|
|
+ }
|
|
+ break;
|
|
+ case 6:
|
|
+ if (var3 == 0) {
|
|
+ var5 = BooleanPropertyEditor.make(new Property(this, var1, "Show dialog"), "No", "Yes");
|
|
+ } else if (var3 == 1) {
|
|
+ var5 = new Boolean(this.showDialog);
|
|
+ } else if (var3 == 2) {
|
|
+ this.showDialog = ((Boolean)var4).booleanValue();
|
|
+ }
|
|
+ break;
|
|
+ default:
|
|
+ var5 = super.properties(var1, var2 + 7, var3, var4);
|
|
+ }
|
|
+
|
|
+ return var5;
|
|
+ }
|
|
+
|
|
+ public void saveState(Saver var1) throws IOException {
|
|
+ var1.saveVersion(3, classCookie);
|
|
+ super.saveState(var1);
|
|
+ var1.save(this.targetCoords);
|
|
+ var1.saveFloat(this.targetRot);
|
|
+ var1.save(this.targetAxis);
|
|
+ var1.saveString(this.targetRoomName);
|
|
+ URL.save(var1, this.targetWorldURL);
|
|
+ var1.saveBoolean(this.useDefCoordinates);
|
|
+ var1.saveString(this.targetDimension);
|
|
+ }
|
|
+
|
|
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
|
|
+ int var2 = var1.restoreVersion(classCookie);
|
|
+ switch(var2) {
|
|
+ case 0:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = (float)var1.restoreInt();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = null;
|
|
+ break;
|
|
+ case 1:
|
|
+ case 2:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = var1.restoreFloat();
|
|
+ this.targetAxis = (Point3)var1.restore();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = null;
|
|
+ break;
|
|
+ case 3:
|
|
+ super.restoreState(var1);
|
|
+ this.targetCoords = (Point3)var1.restore();
|
|
+ this.targetRot = var1.restoreFloat();
|
|
+ this.targetAxis = (Point3)var1.restore();
|
|
+ this.targetRoomName = var1.restoreString();
|
|
+ this.targetWorldURL = URL.restore(var1, ".world");
|
|
+ this.useDefCoordinates = var1.restoreBoolean();
|
|
+ this.targetDimension = var1.restoreString();
|
|
+ break;
|
|
+ default:
|
|
+ throw new TooNewException();
|
|
+ }
|
|
+
|
|
+ if (var2 < 2 && this.targetAxis.x == 0.0F && this.targetAxis.y == 0.0F && this.targetAxis.z == 1.0F) {
|
|
+ this.targetAxis.z = -1.0F;
|
|
+ this.targetRot = 360.0F - this.targetRot;
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+ public String toString() {
|
|
+ return super.toString() + "[" + this.asURL() + "]";
|
|
+ }
|
|
+
|
|
+ public String asURL() {
|
|
+ String var1;
|
|
+ if (this.targetWorldURL != null) {
|
|
+ var1 = this.targetWorldURL.getRelativeTo(this) + "#";
|
|
+ } else {
|
|
+ var1 = "#";
|
|
+ }
|
|
+
|
|
+ if (this.targetRoomName != null) {
|
|
+ var1 = var1 + this.targetRoomName;
|
|
+ }
|
|
+
|
|
+ if (this.targetDimension != null) {
|
|
+ var1 = var1 + "<" + this.targetDimension + ">";
|
|
+ }
|
|
+
|
|
+ if (!this.useDefCoordinates) {
|
|
+ var1 = var1 + "@" + this.targetCoords + "," + this.targetRot;
|
|
+ if (this.targetAxis.x != 0.0F || this.targetAxis.y != 0.0F || this.targetAxis.z != 1.0F) {
|
|
+ var1 = var1 + "," + this.targetAxis;
|
|
+ }
|
|
+ }
|
|
|
|
- return url;
|
|
- }
|
|
+ return var1;
|
|
+ }
|
|
}
|
|
diff -ruN a/1920/NET/worldsplus/ChatSaver.java b/1920/NET/worldsplus/ChatSaver.java
|
|
--- a/1920/NET/worldsplus/ChatSaver.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1920/NET/worldsplus/ChatSaver.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,68 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import NET.worlds.console.Console;
|
|
+import NET.worlds.core.IniFile;
|
|
+import NET.worlds.network.URL;
|
|
+import NET.worlds.scape.Pilot;
|
|
+
|
|
+import java.io.File;
|
|
+import java.io.FileWriter;
|
|
+import java.io.IOException;
|
|
+import java.text.SimpleDateFormat;
|
|
+import java.util.Date;
|
|
+import java.util.Hashtable;
|
|
+
|
|
+public class ChatSaver {
|
|
+
|
|
+ public static ChatSaver chatSaver;
|
|
+ private final static String folder = IniFile.modModules().getIniString("ChatFolder", "home:chats/");
|
|
+ private boolean enabled = IniFile.modModules().getIniInt("LogChats", 1) == 1;
|
|
+
|
|
+ public ChatSaver() {
|
|
+ if (chatSaver == null) {
|
|
+ System.out.println("Initialized ChatSaver module...");
|
|
+ if (enabled) {
|
|
+ File fold = new File(URL.make(folder).unalias());
|
|
+ if (!fold.exists()) {
|
|
+ fold.mkdir();
|
|
+ }
|
|
+ }
|
|
+ chatSaver = this;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private FileWriter grabWriter(String name) throws IOException {
|
|
+ String cname = stripInvalid(name);
|
|
+ File log = new File(URL.make(folder + cname + ".log").unalias());
|
|
+ if (!log.exists()) log.createNewFile();
|
|
+ FileWriter fw = new FileWriter(log, true);
|
|
+ return fw;
|
|
+ }
|
|
+
|
|
+ public void saveChat(String user, String message) throws IOException {
|
|
+ if (enabled) {
|
|
+ FileWriter writer = grabWriter(Pilot.getActiveRoom().toString());
|
|
+ writer.write("[" + getCurrentDate() + "] " + user + ": " + message);
|
|
+ writer.write(System.getProperty("line.separator"));
|
|
+ writer.close();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public void saveWhisper(String from, String to, String message) throws IOException {
|
|
+ if (enabled) {
|
|
+ FileWriter writer = grabWriter((from.equals(Console.getActive().getLongID()) ? to : from));
|
|
+ writer.write("[" + getCurrentDate() + "] " + from + ": " + message);
|
|
+ writer.write(System.getProperty("line.separator"));
|
|
+ writer.close();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public String getCurrentDate() {
|
|
+ return new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new Date());
|
|
+ }
|
|
+
|
|
+ private static String stripInvalid(String s) {
|
|
+ return s.replaceAll("/(<[a-zA-Z0-9-_]+>)/i", "");
|
|
+ }
|
|
+
|
|
+}
|
|
diff -ruN a/1920/NET/worldsplus/WPlus.java b/1920/NET/worldsplus/WPlus.java
|
|
--- a/1920/NET/worldsplus/WPlus.java 1969-12-31 18:00:00.000000000 -0600
|
|
+++ b/1920/NET/worldsplus/WPlus.java 2023-08-21 23:27:17.000000000 -0500
|
|
@@ -0,0 +1,19 @@
|
|
+package NET.worldsplus;
|
|
+
|
|
+import java.text.SimpleDateFormat;
|
|
+import java.util.Date;
|
|
+
|
|
+public class WPlus {
|
|
+
|
|
+ static final String dateTime = new SimpleDateFormat("dd.MM.yyyy_HH.mm.ss").format(new Date());
|
|
+ private static final boolean dev = false;
|
|
+
|
|
+ // Hardcoded for reasons, I SWEAR
|
|
+ public static String getVersion(){
|
|
+ if (dev) {
|
|
+ return dateTime + "-dev";
|
|
+ } else {
|
|
+ return "1.7.1";
|
|
+ }
|
|
+ }
|
|
+}
|