📄 connectorthread.java~
字号:
connectCount = 0; if( result == JOptionPane.YES_OPTION ) { run(); return; } cancelled = true; return; } if (password == null) { PasswordDialog dialog = new PasswordDialog(resources .getString("jabberPassword")); password = dialog.getText(); } if (gnupgSecretKey != null && !JBotherLoader.isGPGEnabled()) { int result = JOptionPane .showConfirmDialog( null, "Warning: There is a GnuPG secrety key ID in your profile,\nbut it appears as though GnuPG is not installed on this system.\nWould you still like to connect to the server?", "GnuPG", JOptionPane.YES_NO_OPTION); if (result != JOptionPane.YES_OPTION) { BuddyList.getInstance().getStatusMenu() .stopBlinkTimer(); BuddyList.getInstance().init(null); return; } } else if ((gnupgSecretKey != null && JBotherLoader.isGPGEnabled()) && (BuddyList.getInstance().getGnuPGPassword() == null)) { GnuPG gnupg = new GnuPG(); while (true) { PasswordDialog dialog = new PasswordDialog(resources .getString("gnupgKeyPassword")); gnupgTempPass = dialog.getText(); if ((gnupgTempPass != null) && (gnupg.sign("1", gnupgSecretKey, gnupgTempPass))) { BuddyList.getInstance().setGnuPGPassword(gnupgTempPass); break; } else { BuddyList.getInstance().getStatusMenu() .stopBlinkTimer(); Standard .warningMessage(null, "GnuPG Error", "Wrong GnuPG passphrase! Please, try connecting again."); BuddyList.getInstance().init(null); BuddyList.getInstance().setGnuPGPassword(null); return; } } } if (cancelled) { BuddyList.getInstance().getStatusMenu() .stopBlinkTimer(); cancelled = false; connectCount = 0; return; } try { if (com.valhalla.settings.Arguments.getInstance().getProperty( "smackdebug") != null) { XMPPConnection.DEBUG_ENABLED = true; } int port = this.port; if (port == 0 && ssl) { port = 5223; } else if (port == 0 && !ssl) { port = 5222; } // set up the connection if (!ssl) { connection = connection = new XMPPConnection(server, port); } else { connection = new SSLXMPPConnection(server, port); } BuddyList.getInstance().clearTree(); BuddyList.getInstance().init(connection); } catch (Exception ex) { errorMessage = ex.getMessage(); } if (cancelled) { BuddyList.getInstance().getStatusMenu() .stopBlinkTimer(); cancelled = false; return; } // get the resource from the login box String tmp = resource; if (tmp == null || tmp.equals("")) { tmp = "JBother"; } final String resource = tmp; if (errorMessage == null && connection != null) { PacketFilter anyFilter = new PacketFilter() { public boolean accept(Packet packet) { return true; } }; connection.addPacketListener(new AnyIncomingPacketListener(), anyFilter); connection.addPacketWriterListener( new AnyOutcomingPacketListener(), anyFilter); // sets up the various packet listeners PacketFilter filter = new PacketTypeFilter(Presence.class); connection.addPacketListener(new PresencePacketListener(), filter); filter = new PacketTypeFilter(Message.class); connection.addPacketListener(messageListener, filter); connection.addConnectionListener(conListener); filter = new PacketTypeFilter(Version.class); connection.addPacketListener(new VersionListener(), filter); filter = new PacketTypeFilter(LastActivity.class); connection.addPacketListener(new LastActivityListener(), filter); filter = new PacketTypeFilter(Time.class); connection.addPacketListener(new TimeListener(), filter); // this filter will listen to three types of messages: // <si>, <streamhost> and <streamhost-used> filter = new OrFilter(new PacketTypeFilter(Streamhost.class), new PacketTypeFilter(StreamhostUsed.class)); OrFilter filter2 = new OrFilter(new PacketTypeFilter( StreamInitiation.class), filter); connection.addPacketListener( new StreamInitiationListener(), filter2 ); connection.getRoster().setSubscriptionMode( Roster.SUBSCRIPTION_MANUAL); // attempts to connect try { connection.login(username, password, resource); //connection.getRoster().addRosterListener( rosterListener ); eventManager = new MessageEventManager(connection); eventManager .addMessageEventNotificationListener(new EventNotificationListener()); eventManager .addMessageEventRequestListener(new EventRequestListener()); MultiUserChat.addInvitationListener(connection, new InvitationPacketListener()); } catch (XMPPException e) { errorMessage = e.getMessage(); if (e.getXMPPError() != null) { errorMessage = resources.getString("xmppError" + e.getXMPPError().getCode()); } } } // if there was an error, display it, and then redisplay a LoginDialog if (errorMessage != null || connection == null) { resetCredentials(); SwingUtilities.invokeLater( new Runnable() { public void run() { BuddyList.getInstance().getStatusMenu() .setModeChecked(null); } } ); if (connection != null) { connection.removeConnectionListener(conListener); } if (persistent) { try { Thread.sleep(connectCount*5000); } catch (InterruptedException ex) { com.valhalla.Logger.logException(ex); } com.valhalla.Logger.debug("Connection error was: " + errorMessage); errorMessage = null; if (cancelled) { cancelled = false; BuddyList.getInstance().getStatusMenu() .stopBlinkTimer(); connectCount = 0; return; } messageListener.resetQueue(); com.valhalla.Logger.debug( "Retrying, attempt #" + connectCount ); connectCount++; run(); return; } password = Settings.getInstance().getProperty("password"); BuddyList.getInstance().getStatusMenu() .stopBlinkTimer(); if (errorMessage == null) { errorMessage = resources.getString("connectionError"); } if (errorMessage.equals("Unauthorized")) { errorMessage = new String(resources .getString("invalidPassword")); } Standard.warningMessage(null, resources .getString("couldNotConnect"), errorMessage); BuddyList.getInstance().init(null); return; } SwingUtilities.invokeLater( new Runnable() { public void run() { BuddyList.getInstance().getStatusMenu().stopBlinkTimer(); BuddyList.getInstance().getBuddiesMenu().logOn(); // otherwise, set up and display the buddy list com.valhalla.Logger.debug("Connected"); BuddyList.getInstance().startTimer(); BuddyList.getInstance().getStatusMenu().setModeChecked( connectMode); BuddyList.getInstance().initBuddies(); // display the buddies BuddyList.getInstance().setStatus(connectMode, statusString, false); messageListener.startTimer(); if (away) { BuddyList.getInstance().getAwayHandler().actionPerformed( new ActionEvent(BuddyList.getInstance(), 1, "away")); } } } ); return; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -