1 29 38 39 package org.planetamessenger.protocols.aim; 40 41 import java.util.*; 42 import java.io.*; 43 import com.levelonelabs.aim.AIMClient; 44 import com.levelonelabs.aim.AIMBuddy; 45 import com.levelonelabs.aim.AIMListener; 46 import org.planetamessenger.plugin.*; 47 48 49 50 public class JAIMPlugin extends JPlugin implements JMessengerEventListener, AIMListener { 51 52 AIMClient session = null; 53 int nInitialStatus = JPlugin.STATUS_OFFLINE; 54 boolean bConnected = false; 55 56 57 58 61 public JAIMPlugin() { 62 63 } 64 65 69 public void onCreate() { 70 71 super.onCreate(); 72 73 JPluginCapabilities capabilities = getPluginCapabilities(); 74 75 capabilities.putBool( JPluginCapabilities.CAPABILITY_PRIVACY_CONTROL_ENABLED, true ); 77 capabilities.putBool( JPluginCapabilities.CAPABILITY_BLOCK_CONTACT, true ); 78 setPluginCapabilities( capabilities ); 79 80 addMessengerEventListener( this ); 81 82 session = null; 83 addStatus( JPlugin.STATUS_ONLINE, new Integer ( JPlugin.STATUS_ONLINE ) ); 84 addStatus( JPlugin.STATUS_OFFLINE, new Integer ( JPlugin.STATUS_OFFLINE ) ); 85 addStatus( JPlugin.STATUS_AWAY, new Integer ( JPlugin.STATUS_AWAY ) ); 86 } 87 88 92 public void onLogin( int nPluginStatus ) { 93 94 nInitialStatus = nPluginStatus; 95 session = new AIMClient( getUserId(), getPassword(), "No Info", true ); 96 session.addAIMListener( this ); 97 session.signOn(); 98 } 99 100 103 public void onLogout() { 104 105 if( session != null ) { 106 session.signOff(); 107 session = null; 108 bConnected = false; 109 nInitialStatus = JPlugin.STATUS_OFFLINE; 110 } 111 } 112 113 117 public void onAddUserToContactList( java.lang.String strUserId ) { 118 119 if( session != null ) { 120 AIMBuddy contact = new AIMBuddy( strUserId ); 121 session.addBuddy( contact ); 122 } 123 } 124 125 130 public void onRemoveUserFromContactList( java.lang.String strUserId ) { 131 132 if( session != null ) { 133 AIMBuddy contact = session.getBuddy( strUserId ); 134 135 if( contact != null ) 136 session.removeBuddy( contact ); 137 } 138 } 139 140 149 public void onSendMessage( java.lang.String strToUser, java.lang.String msg, int nMsgType ) { 150 151 if( session != null ) { 152 AIMBuddy contact = session.getBuddy( strToUser ); 153 154 if( contact != null ) 155 session.sendMessage( contact, msg ); 156 } 157 } 158 159 167 public void onRequestAuthorization( java.lang.String strUserId, java.lang.String strNickName ) { 168 169 } 170 171 176 public void onBuddyDetails( java.lang.String strUserId ) { 177 178 } 179 180 184 public void onAuthorizeBuddy( java.lang.String strUserId ) { 185 186 } 187 188 192 public void onUnauthorizeBuddy( java.lang.String strUserId ) { 193 194 } 195 196 200 public void onPluginStatusChanged( int nStatus ) { 201 202 if( session != null ) 203 switch( nStatus ) { 204 205 case JPlugin.STATUS_AWAY : session.setUnavailable( "Away" ); break; 206 207 case JPlugin.STATUS_ONLINE : session.setAvailable(); break; 208 } 209 } 210 211 220 public void onRegisterExistingUser( java.lang.String strNickName, java.lang.String strNewUserId, java.lang.String strPasswd ) { 221 222 JUserInfo userInfo = new JUserInfo( strNewUserId, strNickName, strPasswd, JPlugin.STATUS_ONLINE ); 223 224 setUserInfo( userInfo ); 225 fireOnLogin(); 226 } 227 228 237 public void onRegisterNewUser( java.lang.String strNickName, java.lang.StringBuffer strNewUserId, java.lang.String strPasswd ) { 238 239 fireOnRegisterUserFailed(); } 241 242 246 public void onUnregisterUser() { 247 248 if( isConnected() ) { 249 fireOnLogout(); 250 fireOnUnregisterUserSuccessfull(); 251 } 252 } 253 254 259 public void onChangePassword( java.lang.String strNewPasswd ) { 260 261 fireOnPasswordChangedSuccessfull( strNewPasswd ); 262 } 263 264 274 public void onChangePrivacy( java.lang.String strUserId, int nPrivacyType ) { 275 276 AIMBuddy contact = new AIMBuddy( strUserId ); 277 278 switch( nPrivacyType ) { 279 280 case PRIVACY_BLOCK_USER : session.denyBuddy( contact ); break; 281 282 case PRIVACY_UNBLOCK_USER : session.permitBuddy( contact ); break; 283 } 284 } 285 286 291 public void onPrivacyChanged() { 292 293 } 294 295 298 public void onPluginPropertiesUpdated() { 299 300 } 301 302 306 public boolean isConnected() { 307 308 return ( session != null ? bConnected : false ); 309 } 310 311 316 public void handleConnected() { 317 318 bConnected = true; 319 fireOnLoginAccepted(); 320 fireOnRegisterUserSucessfull(); fireOnPluginStatusChanged( nInitialStatus ); 322 } 323 324 328 public void handleDisconnected() { 329 330 fireOnLogout(); 331 fireOnLoginFailed(); 332 fireOnRegisterUserFailed(); } 334 335 341 public void handleMessage( AIMBuddy contact, String msg ) { 342 343 fireOnReceiveMessage( contact.getName(), null, msg ); 344 } 345 346 352 public void handleWarning( AIMBuddy contact, int amount ) { 353 354 System.err.println( "JAIMPlugin.handleWarning() - " + contact.getName() + " amount " + amount ); 355 } 356 357 363 public void handleBuddySignOn( AIMBuddy contact, String info ) { 364 365 System.err.println( "JAIMPlugin.handleBuddySignOn() - " + contact.getName() + " Info " + info ); 366 367 if( !getKernelManager().getContactListManager().isContact( this, contact.getName() ) ) 368 getKernelManager().getContactListManager().addToContactList( this, contact.getName(), contact.getName() ); 369 370 fireOnBuddyStatusChanged( contact.getName(), JPlugin.STATUS_ONLINE ); 371 } 372 373 379 public void handleBuddySignOff( AIMBuddy contact, String info ) { 380 381 System.err.println( "JAIMPlugin.handleBuddySignOff() - " + contact.getName() + " Info " + info ); 382 383 if( !getKernelManager().getContactListManager().isContact( this, contact.getName() ) ) 384 getKernelManager().getContactListManager().addToContactList( this, contact.getName(), contact.getName() ); 385 386 fireOnBuddyStatusChanged( contact.getName(), JPlugin.STATUS_OFFLINE ); 387 } 388 389 395 public void handleError( String error, String message ) { 396 397 System.err.println( "JAIMPlugin.handleError() - error [" + error + "] message [" + message + "]" ); 398 } 399 400 406 public void handleBuddyUnavailable( AIMBuddy contact, String message ) { 407 408 System.err.println( "JAIMPlugin.handleBuddyUnavailable() - " + contact.getName() + " Message " + message ); 409 410 Iterator itItems = session.getBuddyNames(); 411 412 while( itItems.hasNext() ) { 414 String strUserId = itItems.next().toString(); 415 416 if( !getKernelManager().getContactListManager().isContact( this, strUserId ) ) 417 getKernelManager().getContactListManager().addToContactList( this, strUserId, strUserId ); 418 } 419 } 420 421 427 public void handleBuddyAvailable( AIMBuddy contact, String message ) { 428 429 System.err.println( "JAIMPlugin.handleBuddyAvailable() - " + contact.getName() + " Message " + message ); 430 431 Iterator itItems = session.getBuddyNames(); 432 433 while( itItems.hasNext() ) { 435 String strUserId = itItems.next().toString(); 436 437 if( !getKernelManager().getContactListManager().isContact( this, strUserId ) ) 438 getKernelManager().getContactListManager().addToContactList( this, strUserId, strUserId ); 439 } 440 } 441 } 442 | Popular Tags |