///---------------------------------------------------------------------------- /// /// Copyright (c) 2008 AOL LLC /// /// All rights reserved. /// /// Redistribution and use in source and binary forms, with or without modification, are permitted /// provided that the following conditions are met: /// /// Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. /// /// Redistributions in binary form must reproduce the above copyright notice, this list of conditions and /// the following disclaimer in the documentation and/or other materials provided with the distribution. /// /// Neither the name of the AOL LLC nor the names of its contributors may be used to endorse or /// promote products derived from this software without specific prior written permission. /// /// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS /// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT /// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR /// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR /// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, /// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, /// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR /// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF /// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING /// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS /// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /// ///---------------------------------------------------------------------------- import com.aol.acc.*; import java.text.*; import java.util.*; public class AccJSample implements AccEvents { /** * Globals */ boolean running = true; AccSession session; public static void main(String[] args) { if(args.length != 3) { System.out.print("usage: java AccJSample username password key"); return; } try { new AccJSample(args[0], args[1], args[2]); } catch (AccException e) { System.out.println(e.errorCode); e.printStackTrace(); } } public AccJSample(String username, String password, String key) throws AccException { // Create main session object session = new AccSession(); // Add event listener session.setEventListener(this); // set key AccClientInfo info = session.getClientInfo(); info.setDescription(key); // set screen name session.setIdentity(username); // setup file sharing session.setPrefsHook(new Prefs()); session.signOn(password); msgPump(); } private void msgPump() { //msg pump while( running ) { try { AccSession.pump(50); } catch (Exception e) { e.printStackTrace(); } try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } } } public void OnStateChange(AccSession arg0, AccSessionState arg1, AccResult arg2) { log("OnStateChange: "+arg1+", "+arg2); } public void OnSessionChange(AccSession arg0, AccSessionProp arg1) { log("OnSessionChange: "+arg1); } public void OnIdleStateChange(AccSession arg0, int arg1) { log("OnIdleStateChange: "+arg1); } public void OnInstanceChange(AccSession arg0, AccInstance arg1, AccInstance arg2, AccInstanceProp arg3) { log("OnInstanceChange: "+arg3); } public void OnLookupUsersResult(AccSession arg0, String[] arg1, int arg2, AccResult arg3, AccUser[] arg4) { log("OnLookupUsersResult: "+arg3); } public void OnSearchDirectoryResult(AccSession arg0, int arg1, AccResult arg2, AccDirEntry arg3) { log("OnSearchDirectoryResult: "+arg2); } public void OnSendInviteMailResult(AccSession arg0, int arg1, AccResult arg2) { log("OnSendInviteMailResult: "+arg2); } public void OnRequestServiceResult(AccSession arg0, int arg1, AccResult arg2, String arg3, int arg4, AccVariant arg5) { log("OnRequestServiceResult: "+arg2); } public void OnConfirmAccountResult(AccSession arg0, int arg1, AccResult arg2) { log("OnConfirmAccountResult: "+arg2); } public void OnReportUserResult(AccSession arg0, AccUser arg1, int arg2, AccResult arg3, int arg4, int arg5) { log("OnReportUserResult: "+arg3); } public void OnAlertReceived(AccSession arg0, AccAlert arg1) { log("OnAlertReceived: "+arg1); } public void OnPreferenceResult(AccSession arg0, String arg1, int arg2, String arg3, AccResult arg4) { log("OnPreferenceResult: "+arg2); } public void OnPreferenceChange(AccSession arg0, String arg1, AccResult arg2) { log("OnPreferenceChange: "+arg2); } public void OnPreferenceInvalid(AccSession arg0, String arg1, AccResult arg2) { log("OnPreferenceInvalid: "+arg2); } public void OnPluginChange(AccSession arg0, AccPluginInfo arg1, AccPluginInfoProp arg2) { log("OnPluginChange: "+arg2); } public void OnBartItemRequestPropertyResult(AccSession arg0, AccBartItem arg1, AccBartItemProp arg2, int arg3, AccResult arg4, AccVariant arg5) { log("OnBartItemRequestPropertyResult: "+arg4); } public void OnUserRequestPropertyResult(AccSession arg0, AccUser arg1, AccUserProp arg2, int arg3, AccResult arg4, AccVariant arg5) { log("OnUserRequestPropertyResult: "+arg4); } public void OnGroupAdded(AccSession arg0, AccGroup arg1, int arg2, AccResult arg3) { log("OnGroupAdded: "+arg3); } public void OnGroupRemoved(AccSession arg0, AccGroup arg1, AccResult arg2) { log("OnGroupRemoved: "+arg2); } public void OnGroupMoved(AccSession arg0, AccGroup arg1, int arg2, int arg3, AccResult arg4) { log("OnGroupMoved: "+arg4); } public void OnBuddyAdded(AccSession arg0, AccGroup arg1, AccUser arg2, int arg3, AccResult arg4) { log("OnBuddyAdded: "+arg4); } public void OnBuddyRemoved(AccSession arg0, AccGroup arg1, AccUser arg2, AccResult arg3) { log("OnBuddyRemoved: "+arg3); } public void OnBuddyMoved(AccSession arg0, AccUser arg1, AccGroup arg2, int arg3, AccGroup arg4, int arg5, AccResult arg6) { log("OnBuddyMoved: "+arg6); } public void OnBuddyListChange(AccSession arg0, AccBuddyList arg1, AccBuddyListProp arg2) { log("OnBuddyListChange: "+arg2); } public void OnGroupChange(AccSession arg0, AccGroup arg1, AccGroupProp arg2) { log("OnGroupChange: "+arg2); } public void OnUserChange(AccSession arg0, AccUser arg1, AccUser arg2, AccUserProp arg3, AccResult arg4) { log("OnUserChange: "+arg4); } public void OnChangesBegin(AccSession arg0) { log("OnChangesBegin: "+arg0); } public void OnChangesEnd(AccSession arg0) { log("OnChangesEnd: "+arg0); } public void OnNewSecondarySession(AccSession arg0, AccSecondarySession arg1, int arg2) { log("OnNewSecondarySession: "+arg2); } public void OnSecondarySessionStateChange(AccSession arg0, AccSecondarySession arg1, AccSecondarySessionState arg2, AccResult arg3) { log("OnSecondarySessionStateChange: "+arg3); } public void OnSecondarySessionChange(AccSession arg0, AccSecondarySession arg1, int arg2) { log("OnSecondarySessionChange: "+arg2); } public void OnParticipantJoined(AccSession arg0, AccSecondarySession arg1, AccParticipant arg2) { log("OnParticipantJoined: "+arg2); } public void OnParticipantChange(AccSession arg0, AccSecondarySession arg1, AccParticipant arg2, AccParticipant arg3, AccParticipantProp arg4) { log("OnParticipantChange: "+arg4); } public void OnParticipantLeft(AccSession arg0, AccSecondarySession arg1, AccParticipant arg2, AccResult arg3, String arg4, String arg5) { log("OnParticipantLeft: "+arg2); } public void OnInviteResult(AccSession arg0, AccSecondarySession arg1, String arg2, int arg3, AccResult arg4) { log("OnInviteResult: "+arg4); } public void OnEjectResult(AccSession arg0, AccSecondarySession arg1, String arg2, int arg3, AccResult arg4) { log("OnEjectResult: "+arg4); } public void BeforeImSend(AccSession arg0, AccImSession arg1, AccParticipant arg2, AccIm arg3) { try { log("BeforeImSend: "+arg3.getText()); } catch (AccException e) { e.printStackTrace(); } } public void OnImSent(AccSession arg0, AccImSession arg1, AccParticipant arg2, AccIm arg3) { try { log("OnImSent: "+arg3.getText()); } catch (AccException e) { e.printStackTrace(); } } public void OnImSendResult(AccSession arg0, AccImSession arg1, AccParticipant arg2, AccIm arg3, AccResult arg4) { log("OnImSendResult: "+arg4); } public void BeforeImReceived(AccSession arg0, AccImSession arg1, AccParticipant arg2, AccIm arg3) { try { log("BeforeImReceived: "+arg3.getText()); } catch (AccException e) { e.printStackTrace(); } } public void OnImReceived(AccSession arg0, AccImSession arg1, AccParticipant arg2, AccIm arg3) { try { log("OnImReceived: "+arg3.getText()); } catch (AccException e) { e.printStackTrace(); } } public void OnInputStateChange(AccSession arg0, AccImSession arg1, String arg2, AccImInputState arg3) { log("OnInputStateChange: "+arg3); } public void OnEmbedDownloadComplete(AccSession arg0, AccImSession arg1, AccIm arg2) { log("OnEmbedDownloadComplete: "+arg2); } public void OnEmbedUploadComplete(AccSession arg0, AccImSession arg1, AccIm arg2) { log("OnEmbedUploadComplete: "+arg2); } public void OnRateLimitStateChange(AccSession arg0, AccImSession arg1, AccRateState arg2) { log("OnRateLimitStateChange: "+arg2); } public void OnNewFileXfer(AccSession arg0, AccFileXferSession arg1, AccFileXfer arg2) { log("OnNewFileXfer: "+arg2); } public void OnFileXferProgress(AccSession arg0, AccFileXferSession arg1, AccFileXfer arg2) { log("OnFileXferProgress: "+arg2); } public void OnFileXferCollision(AccSession arg0, AccFileXferSession arg1, AccFileXfer arg2) { log("OnFileXferCollision: "+arg2); } public void OnFileXferComplete(AccSession arg0, AccFileXferSession arg1, AccFileXfer arg2, AccResult arg3) { log("OnFileXferComplete: "+arg2); } public void OnFileXferSessionComplete(AccSession arg0, AccFileXferSession arg1, AccResult arg2) { log("OnFileXferSessionComplete: "+arg2); } public void OnFileSharingRequestListingResult(AccSession arg0, AccFileSharingSession arg1, AccFileSharingItem arg2, int arg3, AccResult arg4) { log("OnFileSharingRequestListingResult: "+arg2); } public void OnFileSharingRequestXferResult(AccSession arg0, AccFileSharingSession arg1, AccFileXferSession arg2, int arg3, AccFileXfer arg4) { log("OnFileSharingRequestXferResult: "+arg2); } public void OnAvStreamStateChange(AccSession arg0, AccAvSession arg1, String arg2, AccAvStreamType arg3, AccSecondarySessionState arg4, AccResult arg5) { log("OnAvStreamStateChange: "+arg2); } public void OnAudioLevelChange(AccSession arg0, AccAvSession arg1, String arg2, int arg3) { log("OnAudioLevelChange: "+arg2); } public void OnSoundEffectReceived(AccSession arg0, AccAvSession arg1, String arg2, String arg3) { log("OnSoundEffectReceived: "+arg2); } public void OnCustomDataReceived(AccSession arg0, AccCustomSession arg1, AccParticipant arg2, AccIm arg3) { log("OnCustomDataReceived"); } public void OnCustomSendResult(AccSession arg0, AccCustomSession arg1, AccParticipant arg2, AccIm arg3, AccResult arg4) { log("OnCustomSendResult"); } public void OnEmbedUploadProgress(AccSession arg0, AccImSession arg1, AccIm arg2, String arg3, AccStream arg4) { log("OnEmbedUploadProgress"); } public void OnEmbedDownloadProgress(AccSession arg0, AccImSession arg1, AccIm arg2, String arg3, AccStream arg4) { log("OnEmbedDownloadProgress"); } public void OnDeleteStoredImsResult(AccSession arg0, int arg1, AccResult arg2) { log("OnDeleteStoredImsResult"); } public void OnDeliverStoredImsResult(AccSession arg0, int arg1, AccResult arg2) { log("OnDeliverStoredImsResult"); } public void OnRequestSummariesResult(AccSession arg0, int arg1,AccResult arg2, AccVariant arg3) { log("OnRequestSummariesResult"); } public void OnAvManagerChange(AccSession arg0, AccAvManager arg1, AccAvManagerProp arg2, AccResult arg3) { log("OnAvManagerChange"); } private void log(String s) { String d = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(new Date()); System.out.println("["+d+"]: "+s); } public void OnLocalImReceived(AccSession arg0, AccImSession arg1, AccIm arg2) { log("OnLocalImReceived"); } public void OnPluginUninstall(AccSession s, AccPluginInfo p) { log("OnPluginUninstall"); } public void OnPushBuddyFeedResult(AccSession s, int t, AccResult r, String arg1) { log("OnPushBuddyFeedResult"); } }