home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.CardLayout;
- import java.awt.Checkbox;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.FlowLayout;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.List;
- import java.awt.Panel;
- import java.awt.TextArea;
- import java.awt.TextField;
- import java.awt.Toolkit;
- import java.io.BufferedInputStream;
- import java.io.DataInputStream;
- import java.io.FilterInputStream;
- import java.io.IOException;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.net.URLConnection;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Properties;
- import java.util.StringTokenizer;
-
- public class ParaChat extends Applet {
- private Applet applet;
- TextField pUserInputEdit;
- TextField pStatusBar;
- TextField pInfoText;
- boolean tryTunnel = true;
- TextArea pUserMultiLineInput;
- Button pSendBtn;
- boolean bMultiLine = true;
- boolean heartbeat = false;
- boolean beating = false;
- boolean showJoinLeave = true;
- boolean directSaveToServer = true;
- ChatRenderer pChatText;
- Hashtable renderers4From = new Hashtable();
- List pUsersBox;
- Button pConnectBtn;
- Button pAboutBtn;
- Button pFaqBtn;
- Button pSurfBtn;
- Button pBigWinBtn;
- Button pWhoisBtn;
- BigWindow bigWin;
- Checkbox pSingleUserBtn;
- Checkbox pIgnoreUser;
- Panel pLogosPanel;
- uPresProxy pLowerPanel;
- uPresProxy pUpperPanel;
- uPresProxy[] buttons;
- String VERSION = "2.06.02";
- boolean init_complete;
- String entryBeep;
- String partBeep;
- URL faqURL;
- Panel basePanel;
- Panel northPanel;
- Panel centerPanel;
- Panel eastPanel;
- Panel southPanel;
- Panel buttonPanel;
- Panel statusPanel;
- Panel checkBoxPanel;
- ConnectPanel connectPanel;
- Panel chatPanel;
- CardLayout centerCard;
- protected String realName;
- protected String nickName;
- protected String emailAddr;
- protected String serverName;
- protected String passwd;
- String serverPort;
- String channelName;
- String httpPort;
- protected ChatSession session;
- public static final int DISCONNECTED = 0;
- public static final int CONNECTING = 1;
- public static final int CONNECTED = 2;
- int status;
- private String recordURL = "/connected.cgi";
- private boolean mouse_is_down = false;
- private URL selectedURL;
- private URL logoutURL;
- private Hashtable loadedCommands = new Hashtable();
- private Hashtable ignoreList = new Hashtable();
- private boolean bAutoLogin = false;
- private boolean bUnicodeNick = false;
- private String connectAlg;
- Color bgColor;
- Color fgColor;
- protected boolean doPanels = true;
- protected MsgTable xtab;
- Properties props;
- boolean connected = false;
- long lastConnect;
-
- String getProperty(String var1) {
- if (this.props == null) {
- this.props = new Properties();
- String var2 = this.applet.getParameter("XPROPS");
- if (var2 != null) {
- try {
- URL var3 = new URL(this.applet.getCodeBase(), var2);
- URLConnection var4 = var3.openConnection();
- var4.setDoInput(true);
- DataInputStream var5 = new DataInputStream(var4.getInputStream());
- BufferedInputStream var6 = new BufferedInputStream(var5);
- this.props.load(var6);
- ((FilterInputStream)var6).close();
- ((FilterInputStream)var5).close();
- } catch (Exception var7) {
- }
- }
- }
-
- String var8 = ((Applet)this).getParameter(var1);
- return var8 == null ? (String)this.props.get(var1) : var8;
- }
-
- public void init() {
- this.applet = this;
- this.complete_init();
- }
-
- public void start() {
- if (this.pLowerPanel != null) {
- this.pLowerPanel.start();
- }
-
- if (this.pUpperPanel != null) {
- this.pUpperPanel.start();
- }
-
- }
-
- public void stop() {
- if (this.pLowerPanel != null) {
- this.pLowerPanel.stop();
- }
-
- if (this.pUpperPanel != null) {
- this.pUpperPanel.stop();
- }
-
- }
-
- public void complete_init() {
- this.xtab = new MsgTable(this);
- this.serverName = this.getProperty(this.xtab.translate("ServerName"));
- if (this.serverName == null) {
- this.serverName = ((Applet)this).getCodeBase().getHost();
- }
-
- this.serverPort = this.getProperty(this.xtab.translate("ServerPort"));
- this.httpPort = this.getProperty(this.xtab.translate("HTTPPort"));
- if (this.httpPort == null && this.serverPort != null) {
- this.httpPort = Integer.toString(Integer.parseInt(this.serverPort) + 100);
- }
-
- this.channelName = this.getProperty(this.xtab.translate("Channel"));
- this.bMultiLine = this.getProperty(this.xtab.translate("MULTILINEINPUT")) != null;
- this.heartbeat = this.getProperty(this.xtab.translate("HEARTBEAT")) != null;
- this.showJoinLeave = this.getProperty(this.xtab.translate("NOJOINMSG")) == null;
- this.directSaveToServer = this.getProperty(this.xtab.translate("NODSTS")) == null;
- boolean var1 = this.getProperty(this.xtab.translate("NOPRIVATE")) != null;
- boolean var2 = this.getProperty(this.xtab.translate("NOUSERINFO")) != null;
- boolean var3 = this.getProperty(this.xtab.translate("NOFLOAT")) != null;
- boolean var4 = this.getProperty(this.xtab.translate("NOSURF")) != null;
- boolean var5 = this.getProperty(this.xtab.translate("NOABOUT")) != null;
- boolean var6 = this.getProperty(this.xtab.translate("LOGINONLOAD")) != null;
- this.nickName = this.getProperty(this.xtab.translate("NICKNAME"));
- this.realName = this.getProperty(this.xtab.translate("REALNAME"));
- this.emailAddr = this.getProperty(this.xtab.translate("EMAILADDR"));
- this.passwd = this.getProperty(this.xtab.translate("PASSWORD"));
- String var7 = this.getProperty(this.xtab.translate("BGCOLOR"));
- String var8 = this.getProperty(this.xtab.translate("FGCOLOR"));
- this.connectAlg = this.getProperty(this.xtab.translate("CONNECTALG"));
- if (this.connectAlg == null) {
- this.connectAlg = "t";
- }
-
- String var9 = this.getProperty(this.xtab.translate("RENDERER"));
- if (var9 == null) {
- var9 = "ChatPanel";
- }
-
- this.bUnicodeNick = this.getProperty(this.xtab.translate("UNICODENICK")) != null;
- String var10 = this.getProperty(this.xtab.translate("FAQURL"));
- this.faqURL = null;
- if (var10 != null) {
- try {
- this.faqURL = new URL(this.getProperty(this.xtab.translate("FAQURL")));
- } catch (Exception var19) {
- }
- } else {
- try {
- this.faqURL = new URL(this.xtab.translate("http://parachat.webpage.com/faq.htm"));
- } catch (Exception var18) {
- }
- }
-
- if (this.nickName != null && !this.isShortAlphaNum(this.nickName)) {
- this.nickName = null;
- System.out.println("Illegal Nick Name for Autologin");
- }
-
- this.bAutoLogin = this.nickName != null;
- if (this.realName == null) {
- this.realName = "";
- }
-
- if (this.emailAddr == null) {
- this.emailAddr = "";
- }
-
- if (this.nickName == null) {
- this.nickName = "";
- }
-
- if (this.passwd == null) {
- this.passwd = "";
- }
-
- if (var7 == null) {
- var7 = "D2FFD2";
- }
-
- try {
- this.bgColor = new Color(Integer.parseInt(var7, 16));
- } catch (NumberFormatException var17) {
- this.bgColor = new Color(210, 255, 210);
- }
-
- try {
- this.fgColor = new Color(Integer.parseInt(var8, 16));
- } catch (NumberFormatException var16) {
- this.fgColor = Color.black;
- }
-
- ((Component)this).setBackground(this.bgColor);
- ((Component)this).setForeground(this.fgColor);
- ((Component)this).setFont(new Font("Dialog", 0, 12));
-
- try {
- this.pChatText = (ChatRenderer)Class.forName(var9).newInstance();
- } catch (Exception var15) {
- System.out.println("**FATAL ERROR :" + var15 + " while loading " + var9);
- }
-
- this.pChatText.setApplet(this);
- this.pUserInputEdit = new TextField("");
- this.pUserInputEdit.setFont(new Font("Dialog", 0, 11));
- this.pUserInputEdit.setForeground(Color.red);
- this.pUserInputEdit.setBackground(Color.white);
- this.pUserMultiLineInput = new TextArea(2, 50);
- this.pUserMultiLineInput.setFont(new Font("Dialog", 0, 11));
- this.pUserMultiLineInput.setForeground(Color.red);
- this.pUserMultiLineInput.setBackground(Color.white);
- this.pSendBtn = new Button(this.xtab.translate("Send"));
- this.pSendBtn.setFont(new Font("Dialog", 1, 11));
- this.pUsersBox = new List(0, false);
- this.pUsersBox.setFont(new Font("Dialog", 0, 10));
- this.pUsersBox.setForeground(Color.green);
- this.pUsersBox.setBackground(Color.black);
- this.pStatusBar = new TextField(this.xtab.translate("NOT CONNECTED"));
- this.pStatusBar.setForeground(Color.red);
- this.pStatusBar.setBackground(Color.black);
- this.pStatusBar.setEditable(false);
- this.pInfoText = new TextField("");
- this.pInfoText.setForeground(Color.red);
- this.pInfoText.setBackground(Color.black);
- this.pInfoText.setEditable(false);
- this.pConnectBtn = new Button(this.xtab.translate("Connect!"));
- this.pConnectBtn.setFont(new Font("Dialog", 1, 11));
- this.pAboutBtn = new Button(this.xtab.translate("About"));
- this.pAboutBtn.setFont(new Font("Dialog", 1, 11));
- if (var5) {
- this.pAboutBtn.hide();
- }
-
- this.pSurfBtn = new Button(this.xtab.translate("Surf!"));
- this.pSurfBtn.setFont(new Font("Dialog", 1, 11));
- if (var4) {
- this.pSurfBtn.hide();
- }
-
- this.pFaqBtn = new Button(this.xtab.translate("F.A.Q"));
- this.pFaqBtn.setFont(new Font("Dialog", 1, 11));
- if (this.faqURL == null) {
- this.pFaqBtn.hide();
- }
-
- this.pBigWinBtn = new Button(this.xtab.translate("Float"));
- this.pBigWinBtn.setFont(new Font("Dialog", 1, 11));
- if (var3) {
- this.pBigWinBtn.hide();
- }
-
- this.pLowerPanel = new uPresProxy(this, this.doPanels ? new Dimension(500, 60) : new Dimension(0, 0));
- this.pLogosPanel = new Panel();
- this.pLowerPanel.setForeground(this.fgColor);
- this.pLowerPanel.setBackground(this.bgColor);
- this.pLogosPanel.setForeground(this.fgColor);
- this.pLogosPanel.setBackground(this.bgColor);
- this.buttons = new uPresProxy[4];
- this.pUpperPanel = new uPresProxy(this, this.doPanels ? new Dimension(325, 60) : new Dimension(0, 0));
- this.pUpperPanel.setForeground(this.fgColor);
- this.pUpperPanel.setBackground(this.bgColor);
- this.pSingleUserBtn = new Checkbox(this.xtab.translate("Private Chat"));
- if (var1) {
- this.pSingleUserBtn.hide();
- }
-
- this.pSingleUserBtn.setFont(new Font("Dialog", 1, 11));
- this.pSingleUserBtn.setForeground(this.fgColor);
- this.pSingleUserBtn.setBackground(this.bgColor);
- this.pSingleUserBtn.disable();
- this.pIgnoreUser = new Checkbox(this.xtab.translate("Ignore User"));
- this.pIgnoreUser.setFont(new Font("Dialog", 1, 11));
- this.pIgnoreUser.setForeground(this.fgColor);
- this.pIgnoreUser.setBackground(this.bgColor);
- this.pIgnoreUser.disable();
- this.pWhoisBtn = new Button(this.xtab.translate("User Info"));
- this.pWhoisBtn.setFont(new Font("Dialog", 1, 11));
- this.pWhoisBtn.disable();
- if (var2) {
- this.pWhoisBtn.hide();
- }
-
- this.status(0);
- this.basePanel = new Panel();
- this.basePanel.setLayout(new BorderLayout(2, 2));
- ((Container)this).setLayout(new BorderLayout(4, 4));
- ((Container)this).add("Center", this.basePanel);
- this.northPanel = new Panel();
- this.northPanel.setLayout(new BorderLayout(2, 2));
- this.northPanel.add("West", this.pUpperPanel);
- this.buttonPanel = new Panel();
- this.buttonPanel.setLayout(new FlowLayout(1, 3, 3));
- this.buttonPanel.add(this.pConnectBtn);
- this.buttonPanel.add(this.pAboutBtn);
- this.buttonPanel.add(this.pSurfBtn);
- this.buttonPanel.add(this.pFaqBtn);
- this.buttonPanel.add(this.pBigWinBtn);
- this.northPanel.add("East", this.buttonPanel);
- this.eastPanel = new Panel();
- this.checkBoxPanel = new Panel();
- this.checkBoxPanel.setLayout(new BorderLayout());
- this.checkBoxPanel.add("North", this.pSingleUserBtn);
- this.checkBoxPanel.add("South", this.pIgnoreUser);
- this.eastPanel.setLayout(new BorderLayout(2, 2));
- this.eastPanel.add("North", this.pWhoisBtn);
- this.eastPanel.add("South", this.checkBoxPanel);
- this.eastPanel.add("Center", this.pUsersBox);
- this.southPanel = new Panel();
- this.southPanel.setLayout(new BorderLayout(2, 2));
- this.statusPanel = new Panel();
- this.statusPanel.setLayout(new BorderLayout());
- this.statusPanel.add("East", this.pInfoText);
- this.statusPanel.add("Center", this.pStatusBar);
- this.southPanel.add("South", this.statusPanel);
- this.southPanel.add("West", this.pLowerPanel);
- this.southPanel.add("Center", this.pLogosPanel);
- this.centerPanel = new Panel();
- this.centerCard = new CardLayout();
- this.centerPanel.setLayout(this.centerCard);
- Panel var11 = new Panel();
- ((Container)var11).setLayout(new BorderLayout());
- if (this.bMultiLine) {
- ((Container)var11).add("Center", this.pUserMultiLineInput);
- ((Container)var11).add("East", this.pSendBtn);
- } else {
- ((Container)var11).add("Center", this.pUserInputEdit);
- }
-
- this.chatPanel = new Panel();
- this.chatPanel.setLayout(new BorderLayout(2, 2));
- this.chatPanel.add("Center", (Component)this.pChatText);
- this.chatPanel.add("South", var11);
- this.connectPanel = new ConnectPanel(this);
- this.centerPanel.add("chat", this.chatPanel);
- this.centerPanel.add("connect", this.connectPanel);
- ((Component)this).setFont(new Font("Dialog", 0, 12));
- this.basePanel.add("North", this.northPanel);
- this.basePanel.add("East", this.eastPanel);
- this.basePanel.add("South", this.southPanel);
- this.basePanel.add("Center", this.centerPanel);
- if (this.serverPort == null || this.channelName == null) {
- this.serverPort = this.channelName = "BAD_PARAMETERS";
- }
-
- this.channelName = this.channelName.trim();
- if (this.channelName.charAt(0) != '#') {
- this.channelName = "#" + this.channelName;
- }
-
- this.pUserInputEdit.setText(this.xtab.translate("Type HERE"));
- ((Applet)this).resize(((Container)this).getLayout().preferredLayoutSize(this));
- this.selectedURL((URL)null);
- this.showConnectionControls();
- this.init_complete = true;
- ((Container)this).layout();
- String var12 = "scripts/" + this.channelName.substring(1) + "/start_lp.ups";
- this.pLowerPanel.readPresentation(this.scriptExists(var12) ? var12 : "scripts/default_lp.ups");
- uPresProxy var13 = this.pLowerPanel;
- (new Thread(var13)).start();
- if (this.doPanels) {
- this.buttons[0] = new uPresProxy(this, new Dimension(88, 31));
- this.buttons[0].readPresentation("scripts/button1.btn");
- var13 = this.buttons[0];
- (new Thread(var13)).start();
- this.pLogosPanel.add(this.buttons[0]);
- this.pLogosPanel.layout();
- ((Container)this).layout();
- }
-
- String var21 = "scripts/" + this.channelName.substring(1) + "/start_up.ups";
- this.pUpperPanel.readPresentation(this.scriptExists(var21) ? var21 : "scripts/default_up.ups");
- uPresProxy var14 = this.pUpperPanel;
- (new Thread(var14)).start();
- if (var6 && this.bAutoLogin) {
- this.doConnect();
- }
-
- }
-
- public Dimension minimumSize() {
- return new Dimension(600, 350);
- }
-
- public String channelSimpleName() {
- return this.channelName == null ? null : this.channelName.substring(1);
- }
-
- public boolean handleEvent(Event var1) {
- if (var1.target == this.pUsersBox && var1.id == 701) {
- this.pIgnoreUser.setState(this.toBeIgnored(this.selectedUser()));
- return false;
- } else if (var1.target == this.pChatText && var1.id == 502) {
- this.testForURL(this.pChatText.getSelectedText());
- return super.handleEvent(var1);
- } else if (var1.target != this.pUserInputEdit || var1.id != 401 || var1.key != 13 && var1.key != 10) {
- return super.handleEvent(var1);
- } else {
- String var2 = this.pUserInputEdit.getText();
- this.pUserInputEdit.setText("");
- this.executeLine(var2);
- var1.key = 32;
- return super.handleEvent(var1);
- }
- }
-
- protected void executeLine(String var1) {
- var1 = var1.trim();
-
- try {
- if ((var1.charAt(0) == ':' || var1.charAt(0) == '*') && isAlphaNum(var1.charAt(1))) {
- this.handleDirective(var1.substring(1));
- return;
- }
-
- if (this.session != null) {
- if (this.pSingleUserBtn.getState() && this.selectedUser() != null) {
- String var2 = this.selectedUser();
- this.toUser(this.xtab.translate("TO ") + var2 + "> " + var1);
- this.session.userSaid(var2, var1);
- return;
- }
-
- this.toUser(this.nickName + "> " + var1);
- this.session.userSaid(var1);
- return;
- }
- } catch (Exception var3) {
- }
-
- }
-
- public void floatBigWin() {
- this.bigWin = new BigWindow(this, "ParaChat Floating Window");
- this.bigWin.setBackground(this.bgColor);
- this.bigWin.setForeground(this.fgColor);
- Object var1 = null;
-
- try {
- Dimension var2 = Toolkit.getDefaultToolkit().getScreenSize();
- var4 = new Dimension(var2.width * 3 / 4, var2.height * 3 / 4);
- } catch (Exception var3) {
- var4 = new Dimension(600, 450);
- }
-
- this.bigWin.resize(var4);
- this.bigWin.show();
- this.pBigWinBtn.setLabel(this.xtab.translate("Unfloat"));
- }
-
- public final String floatMode() {
- return this.bigWin == null ? "off" : "on";
- }
-
- public void unfloatBigWin() {
- if (this.bigWin != null && this.bigWin.unfloat()) {
- this.bigWin = null;
- this.pBigWinBtn.setLabel(this.xtab.translate("Float"));
- }
-
- }
-
- public void setLogoutURL(URL var1) {
- this.logoutURL = var1;
- }
-
- public void cruiseTo(URL var1) {
- this.cruiseTo(var1, "ParaChatSurf");
- }
-
- public void cruiseTo(URL var1, String var2) {
- if (var1 != null) {
- ((Applet)this).showStatus(this.xtab.translate("Cruising to document: ") + var1);
-
- try {
- ((Applet)this).getAppletContext().showDocument(var1, var2);
- } catch (Exception var3) {
- System.out.println("failed to fire up site " + var1);
- }
- }
- }
-
- public boolean action(Event var1, Object var2) {
- if (var1.target != this.pSendBtn) {
- if (var1.target == this.pConnectBtn) {
- if (this.status() == 2) {
- this.session.doQuit((StringTokenizer)null);
- this.msgDisconnect(this.xtab.translate("you logged off"));
- this.cruiseTo(this.logoutURL, "_blank");
- return true;
- } else {
- if (this.bAutoLogin) {
- this.doConnect();
- } else {
- this.showConnectionControls();
- }
-
- return true;
- }
- } else {
- if (var1.target == this.pAboutBtn) {
- this.toUser("\nParaChat Version " + this.VERSION + "\n(c) Paralogic Software Corporation 1996, 1997, 1998\n" + "http://www.paralogic.com\n" + "2140 Peralta Blvd Suite 109, Fremont CA 94536, U.S.A.\n");
- } else if (var1.target == this.pFaqBtn) {
- this.cruiseTo(this.faqURL);
- } else if (var1.target == this.pSurfBtn) {
- try {
- this.testForURL(this.pChatText.getSelectedText());
- } catch (Exception var4) {
- }
-
- this.cruiseTo(this.selectedURL);
- } else if (var1.target == this.pBigWinBtn) {
- if (this.bigWin == null) {
- this.floatBigWin();
- } else {
- this.unfloatBigWin();
- }
- } else if (var1.target == this.pIgnoreUser) {
- if (this.pIgnoreUser.getState()) {
- this.ignore(this.selectedUser());
- } else {
- this.unIgnore(this.selectedUser());
- }
- } else if (var1.target == this.pWhoisBtn) {
- String var5 = this.selectedUser();
- if (var5 != null) {
- this.session.whois(var5);
- }
- }
-
- return false;
- }
- } else if (this.session == null) {
- return false;
- } else {
- StringTokenizer var3 = new StringTokenizer(this.pUserMultiLineInput.getText(), "\n\r");
- this.pUserMultiLineInput.setText("");
-
- while(var3.hasMoreTokens()) {
- this.executeLine(var3.nextToken());
- }
-
- return true;
- }
- }
-
- private boolean scriptExists(String var1) {
- String var2 = urlGet(this.applet.getCodeBase(), var1);
- return var2 != null && !var2.startsWith("<HTML");
- }
-
- public static boolean isAlphaNum(char var0) {
- return var0 >= 'a' && var0 <= 'z' || var0 >= 'A' && var0 <= 'Z' || var0 >= '0' && var0 <= '9';
- }
-
- public boolean isShortAlphaNum(String var1) {
- int var2 = var1.length();
- if (var2 > 18) {
- return false;
- } else {
- if (!this.bUnicodeNick) {
- for(int var3 = 0; var3 < var2; ++var3) {
- if (!isAlphaNum(var1.charAt(var3))) {
- return false;
- }
- }
- }
-
- return var1.trim().length() > 0;
- }
- }
-
- public void ignore(String var1) {
- if (var1 != null) {
- this.ignoreList.put(var1, new Object());
- }
-
- }
-
- public void unIgnore(String var1) {
- if (var1 != null) {
- this.ignoreList.remove(var1);
- }
-
- }
-
- public Enumeration getIgnoreList() {
- return this.ignoreList.keys();
- }
-
- protected boolean toBeIgnored(String var1) {
- return this.ignoreList.containsKey(var1);
- }
-
- public void selectedURL(URL var1) {
- this.selectedURL = var1;
- if (var1 != null) {
- this.pSurfBtn.enable();
- } else {
- this.pSurfBtn.disable();
- }
-
- ((Applet)this).showStatus(this.xtab.translate("Surf URL: ") + var1);
- }
-
- protected void handleDirective(String var1) {
- if (var1 != null) {
- StringTokenizer var2 = new StringTokenizer(var1, ";\n");
-
- while(var2.hasMoreTokens()) {
- this.handleSingleDirective(var2.nextToken());
- }
- }
-
- }
-
- protected void handleSingleDirective(String var1) {
- StringTokenizer var2 = new StringTokenizer(var1);
- String var3 = var2.nextToken().trim();
- this.handleSingleDirective(var3, var2, false);
- }
-
- protected void handleSingleDirective(String var1, StringTokenizer var2, boolean var3) {
- if (this.loadedCommands.get(var1) == null && !var3) {
- this.toUser(this.xtab.translate("Please wait while we load code to execute the command: ") + var1);
- }
-
- Executable var4;
- try {
- var4 = (Executable)Class.forName(var1).newInstance();
- } catch (Exception var7) {
- if (!var3) {
- this.toUser(this.xtab.translate("Could not dynamically load code for command: ") + var1 + "\nProbable Cause: " + var7);
- }
-
- return;
- }
-
- this.loadedCommands.put(var1, new Object());
-
- try {
- var4.execute(var2, this);
- } catch (Exception var6) {
- if (!var3) {
- this.toUser("Command '" + var1 + "' generated exception " + var6);
- }
-
- }
- }
-
- public ChatRenderer getChatText(String var1) {
- return var1 == null ? this.pChatText : (ChatRenderer)this.renderers4From.get(var1);
- }
-
- public void setChatText(ChatRenderer var1) {
- this.chatPanel.remove((Component)this.pChatText);
- this.chatPanel.add("Center", (Component)var1);
- this.pChatText = var1;
- this.chatPanel.invalidate();
- this.chatPanel.validate();
- ((Component)this).repaint();
- }
-
- public TextField getUserInputText() {
- return this.pUserInputEdit;
- }
-
- public void paint(Graphics var1) {
- super.paint(var1);
- }
-
- public void status(int var1) {
- this.status = var1;
- switch (this.status) {
- case 0:
- this.pStatusBar.setText(this.xtab.translate("NOT CONNECTED"));
- return;
- case 1:
- this.pStatusBar.setText(this.xtab.translate("CONNECTING: ") + this.serverName);
- return;
- case 2:
- this.pStatusBar.setText(this.xtab.translate("CONNECTED: ") + this.channelName + "@" + this.serverName);
- return;
- default:
- this.pStatusBar.setText(this.xtab.translate("STATUS UNKNOWN"));
- }
- }
-
- public void setChannel(String var1) {
- this.channelName = var1;
- this.status(2);
- }
-
- public int status() {
- return this.status;
- }
-
- private void enableUserControls() {
- this.pSingleUserBtn.enable();
- this.pIgnoreUser.enable();
- this.pWhoisBtn.enable();
- this.hideConnectionControls();
- }
-
- protected void hideConnectionControls() {
- this.centerCard.show(this.centerPanel, "chat");
- this.pConnectBtn.enable();
- }
-
- protected void showConnectionControls() {
- if (!this.bAutoLogin) {
- this.unfloatBigWin();
- this.centerCard.show(this.centerPanel, "connect");
- this.pConnectBtn.disable();
- this.connectPanel.display();
- }
-
- }
-
- public static String urlGet(URL var0, String var1) {
- try {
- URL var2 = new URL(var0, var1);
- URLConnection var3 = var2.openConnection();
- var3.setDoInput(true);
- var3.setDoOutput(true);
- var3.setDefaultUseCaches(false);
- var3.setUseCaches(false);
- DataInputStream var4 = new DataInputStream(var3.getInputStream());
- String var5 = var4.readLine();
- ((FilterInputStream)var4).close();
- return var5;
- } catch (MalformedURLException var6) {
- System.out.println("Warning: \"" + var1 + "\" is not a URL");
- return null;
- } catch (IOException var7) {
- return null;
- }
- }
-
- private void disableUserControls() {
- this.pSingleUserBtn.disable();
- this.pIgnoreUser.disable();
- this.pWhoisBtn.disable();
- }
-
- public void msgConnect() {
- urlGet(((Applet)this).getCodeBase(), this.recordURL + "?nick=" + this.nickName + "&channel=" + this.channelName.substring(1));
- this.status(2);
- this.pConnectBtn.enable();
- this.pSingleUserBtn.enable();
- this.pIgnoreUser.enable();
- this.pWhoisBtn.enable();
- this.hideConnectionControls();
- this.session.setCreatorURL(((Applet)this).getDocumentBase().toString());
- this.session.joinChannel(this.channelName);
- this.pConnectBtn.setLabel(this.xtab.translate("Log off!"));
- }
-
- public void msgDisconnect(String var1) {
- this.session = null;
- this.clearUserNames();
- this.status(0);
- this.pConnectBtn.setLabel(this.xtab.translate("Connect!"));
- this.pConnectBtn.enable();
- this.pSingleUserBtn.disable();
- this.pIgnoreUser.disable();
- this.pWhoisBtn.disable();
- this.toUser(this.xtab.translate("Disconnected:"));
- this.toUser(var1);
- }
-
- public boolean doConnect() {
- this.doConnect(this.connectPanel.getNick(), this.connectPanel.getReal(), this.connectPanel.getEmail(), this.connectPanel.getPasswd());
- return this.connected;
- }
-
- public void doConnect(String var1, String var2, String var3, String var4) {
- long var5 = System.currentTimeMillis();
- if (this.lastConnect == 0L) {
- this.handleDirective(this.getProperty("ONCONNECT"));
- }
-
- if (var5 - this.lastConnect < 5000L) {
- System.out.println("Double click on connect button? Ignored.");
- } else {
- this.lastConnect = var5;
- this.status(1);
- this.pSingleUserBtn.disable();
- this.pIgnoreUser.disable();
- this.pWhoisBtn.disable();
- if (this.session != null) {
- this.session.disconnect();
- this.session = null;
- }
-
- this.nickName = var1;
- this.emailAddr = var3;
- this.passwd = var4;
- this.realName = var2 + "[" + var3 + "] from " + ((Applet)this).getDocumentBase();
- this.connected = false;
- this.session = new ChatSession();
- this.session.init(this, var1, this.passwd, this.realName, this.connectAlg, this.getProperty("UNICODE") != null);
-
- try {
- int var7 = Integer.parseInt(this.serverPort);
- int var8 = Integer.parseInt(this.httpPort);
- this.connected = this.session.connect(var1, this.passwd, this.realName, this.serverName, var7, var8, this.connectAlg, this.getProperty("UNICODE") != null);
- } catch (Exception var9) {
- ((Throwable)var9).printStackTrace();
- this.toUser("Connection to " + this.serverName + ":" + this.serverPort + " failed. " + var9);
- }
-
- if (!this.connected) {
- this.session.disconnect();
- this.msgDisconnect("Could not connect to server " + this.serverName + ":" + this.serverPort);
- this.toUser("Sorry, network connection failed. Please try again later.");
- this.session = null;
- } else {
- if (this.heartbeat && !this.beating) {
- this.handleSingleDirective("heartbeat", (StringTokenizer)null, true);
- }
-
- }
- }
- }
-
- public void addRenderer4From(String var1, ChatRenderer var2) {
- this.renderers4From.put(var1, var2);
- }
-
- public void removeRenderer4From(String var1, Object var2) {
- if (this.renderers4From.get(var1) == var2) {
- this.renderers4From.remove(var1);
- }
-
- }
-
- public synchronized void toUser(String var1) {
- this.toUser(this.pChatText, var1);
- }
-
- public synchronized void toUser(ChatRenderer var1, String var2) {
- var1.appendTextWithWrap(var2, true);
- }
-
- public synchronized void toUser(String var1, String var2, String var3) {
- ChatRenderer var4 = null;
- if (var2.equals(this.nickName)) {
- var4 = (ChatRenderer)this.renderers4From.get(var1);
- }
-
- if (var4 == null) {
- var4 = this.pChatText;
- }
-
- var4.appendTextWithWrap(var1, var2, var3, true);
- }
-
- public void testForURL(String var1) {
- String var2 = var1.toLowerCase();
- String var3 = "";
- int var4 = var2.indexOf("http://");
- if (var4 < 0) {
- var4 = var2.indexOf("www.");
- var3 = "http://";
- }
-
- if (var4 > 0 && var1.charAt(var4 - 1) == '[') {
- int var5 = var1.indexOf(93, var4);
- if (var5 > 0) {
- this.testForURL(var1.substring(var5 + 1));
- return;
- }
- }
-
- if (var4 >= 0) {
- int var9 = var1.indexOf(32, var4);
- int var6 = var1.indexOf(10, var4);
- if (var6 > 0 && var6 < var9) {
- var9 = var6;
- }
-
- var6 = var1.indexOf(44, var4);
- if (var6 > 0 && var6 < var9) {
- var9 = var6;
- }
-
- if (var9 < 0) {
- var3 = var3 + var1.substring(var4);
- } else {
- var3 = var3 + var1.substring(var4, var9);
- }
-
- try {
- this.selectedURL(new URL(var3.trim()));
- } catch (Exception var7) {
- }
- }
- }
-
- public String selectedUser() {
- String var1 = this.pUsersBox.getSelectedItem();
- if (var1 == null) {
- return null;
- } else {
- return "@*+:".indexOf(var1.charAt(0)) < 0 ? var1 : var1.substring(1);
- }
- }
-
- public void clearUserNames() {
- this.pUsersBox.clear();
-
- while(this.pUsersBox.countItems() > 0) {
- this.pUsersBox.delItem(0);
- }
-
- }
-
- public void setUserNames(String var1) {
- StringTokenizer var2 = new StringTokenizer(var1);
- this.clearUserNames();
-
- while(var2.hasMoreTokens()) {
- this.addUser(var2.nextToken());
- }
-
- }
-
- public void addUser(String var1) {
- for(int var2 = 0; var2 < this.pUsersBox.countItems(); ++var2) {
- String var3 = this.pUsersBox.getItem(var2);
- int var4 = var3.compareTo(var1);
- if (var4 >= 0) {
- if (var4 == 0) {
- return;
- }
-
- if (var4 > 0) {
- this.pUsersBox.addItem(var1, var2);
- }
-
- return;
- }
- }
-
- this.pUsersBox.addItem(var1);
- }
-
- public void partUser(String var1) {
- for(int var2 = 0; var2 < this.pUsersBox.countItems(); ++var2) {
- String var3 = this.pUsersBox.getItem(var2);
- int var4 = var3.compareTo(var1);
- if (var4 >= 0) {
- if (var4 == 0) {
- this.pUsersBox.delItem(var2);
- }
-
- return;
- }
- }
-
- }
-
- public String getAuthInfo() {
- return this.nickName + ":" + this.passwd;
- }
- }
-