📄 bscore.java
字号:
System.out.println("already connecting/ed");
return false;
}
this.username = username;
this.password = password;
this.resource = resource;
this.priority = priority;
this.doRegister = newAccount;
this.doAuthenticate = true;
this.server = server;
return connectImpl(server, port, useSSL);
}
/** Logs in using existing open connection and given details. */
public boolean login(String username, String password, String resource,
int port, int priority, boolean newAccount) {
System.out.println("BSCore login(" + username + ", " + resource + ",...)");
this.username = username;
this.password = password;
this.resource = resource;
this.priority = priority;
this.doRegister = newAccount;
this.doAuthenticate = true;
// when trying to authenticate or register on open connection
if (ConnectionEvent.STATE_CONNECTED != getConnectionState())
return false;
// if new account
if (newAccount) {
//register.register();
register.addRegListener(this);
PacketID id = new PacketID();
servedIDs.add(id);
register.sendInfos(username, password, id);
}
else
auth.sendPassword(username, password, resource);
return true;
}
/**
* Connection listener function.
* Sets and resets used beans when connection state is changed.
*/
public void connectionChanged(ConnectionEvent ce) {
System.out.println("BSCore connectionChanged(" + ce.getState() + ", " + ce.getReason() + ")");
ConnectionEvent.EState connState = ce.getState();
setConnectionState(connState);
}
/**
* Disconnects
*/
public void disconnect() {
System.out.println("BSCore disconnect()");
stopKeepAlive();
if (connection != null)
connection.disconnect();
}
// *** authentication actions ***
/**
* BSAuthListener function.
* Calls disconnect.
*/
public void authError(BSAuthEvent ae) {
System.out.println("BSCore authError(" + ae + ")");
fireLoginError("Not authenticated");
//connection.disconnect();
}
/**
* BSAuthListener function.
* Calls further actions in log-in process.
*/
public void authorized(BSAuthEvent ae) {
System.out.println("BSCore authorized(" + ae + ")");
fireLoginAuthorized();
//agents.getAgents();
JID myJID = new JID(username, server, resource);
//presence.sendPresence(new BSPresenceInfo(myJID, true, null, null), null);
presence.setMyJID(myJID);
presence.setMyPresence(true, null, null, priority);
roster.refreshRoster();
}
/** BSAuthListener function. Empty implementation. */
public void authorizing(BSAuthEvent ae) {
//nothing
}
// *** handling registration events ***
/**
* BSRegListener function. Disconnects.
*/
//public void regError(BSRegEvent re) {
public void regError(InfoQuery iq, String id) {
if (!servedIDs.contains(id)) return;
System.out.println("BSCore regError(...)");
servedIDs.remove(id);
register.removeRegListener(this);
fireLoginError(iq);
//connection.disconnect();
}
/**
* BSRegListener function. Empty for now.
*/
//public void regInfosNeeded(BSRegEvent re) {
public void regInfosNeeded(InfoQuery iq, String id) {
if (!servedIDs.contains(id)) return;
System.out.println("BSCore regInfosNeeded(...)");
/*BSRegDialog dlg = new BSRegDialog(this, true, re, register);
dlg.show();*/
servedIDs.remove(id);
}
/**
* BSRegListener function. Continues in logging in.
*/
//public void registered(BSRegEvent re) {
public void registered(InfoQuery iq, String id) {
if (!servedIDs.contains(id)) return;
System.out.println("BSCore registered(...)");
servedIDs.remove(id);
register.removeRegListener(this);
fireLoginRegistered();
if (doAuthenticate)
auth.sendPassword(username, password, resource);
}
/**
* Adds <code>RosterListener</code>
*/
public void addRosterListener(RosterListener listener) {
if (roster != null)
roster.addRosterListener(listener);
}
/**
* Adds <code>BSPresenceListener</code>
*/
public void addPresenceListener(BSPresenceListener listener) {
if (presence != null)
presence.addPresenceListener(listener);
}
// *** log listeners ***
/**
* Adds <code>BSLogListener</code> to listeners for logging.
*
* @see #removeLogListener
* @see #fireLogStatus
*/
public void addLogListener(BSLogListener listener) {
//assert listener != null : listener;
if (listener == null) return;
if (!logListeners.contains(listener)) {
logListeners.addElement(listener);
}
if (logger != null) logger.addLogListener(listener);
}
/**
* Removes <code>BSLogListener</code> from listeners for logging.
*
* @see #addLogListener
* @see #fireLogStatus
*/
public void removeLogListener(BSLogListener listener) {
//assert listener != null : listener;
if (listener == null) return;
logListeners.removeElement(listener);
if (logger != null) logger.removeLogListener(listener);
}
/**
* Notifies <code>BSLogListener</code>s about status change.
*
* @see #addLogListener
* @see #removeLogListener
*/
private static void fireLogStatus(String source, String message) {
for (Enumeration e = logListeners.elements(); e.hasMoreElements(); ) {
BSLogListener listener = (BSLogListener) e.nextElement();
listener.logStatus(source, message);
}
}
/**
* Notifies <code>BSLogListener</code>s about status change.
*
* @see #addLogListener
* @see #removeLogListener
*/
private static void fireLogMessage(String from, String subject, String body) {
for (Enumeration e = logListeners.elements(); e.hasMoreElements(); ) {
BSLogListener listener = (BSLogListener) e.nextElement();
listener.logMessage(from, subject, body);
}
}
// *** login listeners *** //
/**
* Adds <code>BSLoginListener</code> to listeners for logging in.
*
* @see #removeLoginListener
* @see #fireLogin...
*/
public void addLoginListener(BSLoginListener listener) {
//assert listener != null : listener;
if (listener == null) return;
if (!loginListeners.contains(listener)) {
loginListeners.addElement(listener);
}
}
/**
* Removes <code>BSLoginListener</code> from listeners for logging in.
*
* @see #addLoginListener
* @see #fireLogin...
*/
public void removeLoginListener(BSLoginListener listener) {
//assert listener != null : listener;
if (listener == null) return;
loginListeners.removeElement(listener);
}
/**
* Notifies <code>BSLoginListener</code>s about registered event.
*
* @see #addLoginListener
* @see #removeLoginListener
*/
private static void fireLoginRegistered() {
for (Enumeration e = loginListeners.elements(); e.hasMoreElements(); ) {
BSLoginListener listener = (BSLoginListener) e.nextElement();
listener.loginRegistered();
}
}
/**
* Notifies <code>BSLoginListener</code>s about authenticated event.
*
* @see #addLoginListener
* @see #removeLoginListener
*/
private static void fireLoginAuthorized() {
for (Enumeration e = loginListeners.elements(); e.hasMoreElements(); ) {
BSLoginListener listener = (BSLoginListener) e.nextElement();
listener.loginAuthorized();
}
}
/**
* Notifies <code>BSLoginListener</code>s about login error event.
*
* @see #addLoginListener
* @see #removeLoginListener
*/
private static void fireLoginError(InfoQuery iq) {
for (Enumeration e = loginListeners.elements(); e.hasMoreElements(); ) {
BSLoginListener listener = (BSLoginListener) e.nextElement();
listener.loginError(iq);
}
}
/**
* Notifies <code>BSLoginListener</code>s about login error event.
*
* @see #addLoginListener
* @see #removeLoginListener
*/
private static void fireLoginError(String error) {
for (Enumeration e = loginListeners.elements(); e.hasMoreElements(); ) {
BSLoginListener listener = (BSLoginListener) e.nextElement();
listener.loginError(error);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -