From d73fb78686e827360d90d91483e17c9ebd04e462 Mon Sep 17 00:00:00 2001 From: Frankie B Date: Fri, 10 May 2024 01:12:35 +0100 Subject: Implement remaining client commands, organize into packages --- .../jaim/responses/BuddyUpdateTocResponse.java | 213 +++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 src/com/wilko/jaim/responses/BuddyUpdateTocResponse.java (limited to 'src/com/wilko/jaim/responses/BuddyUpdateTocResponse.java') diff --git a/src/com/wilko/jaim/responses/BuddyUpdateTocResponse.java b/src/com/wilko/jaim/responses/BuddyUpdateTocResponse.java new file mode 100644 index 0000000..1d79198 --- /dev/null +++ b/src/com/wilko/jaim/responses/BuddyUpdateTocResponse.java @@ -0,0 +1,213 @@ +/* + * (C) 2002 Paul Wilkinson wilko@users.sourceforge.net + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/* + * BuddyUpdateTocResponse.java + * + * Created on 5 May 2002, 21:19 + */ + +package com.wilko.jaim.responses; + +import com.wilko.jaim.JaimEventListener; + +import java.util.Date; +import java.util.StringTokenizer; + +/** + * A BuddyUpdateTocResponse is delivered to a {@link JaimEventListener } when a buddy update is received from the TOC server + * + * @author paulw + * @version $Revision: 1.7 $ + */ +public class BuddyUpdateTocResponse extends TocResponse implements TocResponseHandler { + + public static String RESPONSE_TYPE = "UPDATE_BUDDY"; + private String buddyName; + private boolean online; + private int evil; + private int idleTime; + private boolean onAOL; + private boolean unconfirmed; + private boolean admin; + private boolean confirmed; + private Date signonTime; + private boolean away; + + /** + * Creates new BuddyUpdateTocResponse + */ + public BuddyUpdateTocResponse() { + buddyName = ""; + online = false; + evil = 0; + idleTime = 0; + onAOL = false; + unconfirmed = false; + admin = false; + confirmed = false; + away = false; + } + + /** + * The parseString method is used to populate the fields of this class from a Buddy Update string from the TOC server + * + * @param str The String containing the buddy update + */ + public TocResponse parseString(java.lang.String str) { + BuddyUpdateTocResponse tr = new BuddyUpdateTocResponse(); + tr.doParse(str); + return (tr); + } + + private void doParse(String str) { + cmd = str; + StringTokenizer st = new StringTokenizer(str, ":"); + + st.nextToken(); + buddyName = st.nextToken(); + String onlineStr = st.nextToken(); + online = onlineStr.equals("T"); + + evil = Integer.parseInt(st.nextToken()); + long signon = Long.parseLong(st.nextToken()); + signonTime = new Date(signon * 1000); + idleTime = Integer.parseInt(st.nextToken()); + String userclass = st.nextToken(); + if (userclass.charAt(0) == 'A') + onAOL = true; + if (userclass.charAt(1) == 'A') { + admin = true; + } else { + if (userclass.charAt(1) == 'U') { + unconfirmed = true; + } else { + if (userclass.charAt(1) == 'O') { + confirmed = true; + } + } + } + if (userclass.length() > 2) { + if (userclass.charAt(2) == 'U') { + away = true; + } + } + } + + /** + * Get the away status of the buddy specified by this update + * + * @return true if the buddy is "away" + */ + public boolean isAway() { + return (away); + } + + /** + * Get the response type of this response. This method is used by the response dispatcher within JaimConnection + * + * @return The response type + */ + public String getResponseType() { + return RESPONSE_TYPE; + } + + /** + * Obtain the buddy name from this update + * + * @return The buddy name + */ + public String getBuddy() { + return (buddyName); + } + + /** + * Obtain the online status of this buddy update + * + * @return true if the buddy is on line + */ + public boolean isOnline() { + return (online); + } + + /** + * Obtain the idle time of this buddy + * + * @return The idle time in seconds + */ + public int getIdleTime() { + return (idleTime); + } + + /** + * Obtain the "Evil" (Warning) level of this buddy + * + * @return The warning level as a percentage + */ + public int getEvil() { + return (evil); + } + + /** + * Is this buddy an "Administrator" + * + * @return true if an administrator + */ + public boolean isAdmin() { + return (admin); + } + + /** + * IS this buddy a "confirmed" user + * + * @return True if this buddy is confirmed + */ + public boolean isConfirmed() { + return (confirmed); + } + + /** + * Is this user an "Unconfirmed user" + * + * @return True if this user is unconfirmed + */ + public boolean isUnconfirmed() { + return (unconfirmed); + } + + /** + * Get the signon time of this buddy + * + * @return The date/time of signon + */ + public Date getSignonTime() { + return (signonTime); + } + + /** + * Returns true if this response handler can handle the specified response. + * + * @param Response - the response string from TOC. This is the part of the response before the first ':' + * @return true if the response can be handled + */ + public boolean canHandle(String Response) { + return (Response.equalsIgnoreCase(RESPONSE_TYPE)); + } + +} -- cgit v1.2.3-54-g00ecf