summaryrefslogtreecommitdiffstats
path: root/EssentialsUpdate/src/org/jibble/pircbot/User.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsUpdate/src/org/jibble/pircbot/User.java')
-rwxr-xr-xEssentialsUpdate/src/org/jibble/pircbot/User.java161
1 files changed, 161 insertions, 0 deletions
diff --git a/EssentialsUpdate/src/org/jibble/pircbot/User.java b/EssentialsUpdate/src/org/jibble/pircbot/User.java
new file mode 100755
index 000000000..cb2bfa051
--- /dev/null
+++ b/EssentialsUpdate/src/org/jibble/pircbot/User.java
@@ -0,0 +1,161 @@
+/*
+Copyright Paul James Mutton, 2001-2009, http://www.jibble.org/
+
+This file is part of PircBot.
+
+This software is dual-licensed, allowing you to choose between the GNU
+General Public License (GPL) and the www.jibble.org Commercial License.
+Since the GPL may be too restrictive for use in a proprietary application,
+a commercial license is also provided. Full license information can be
+found at http://www.jibble.org/licenses/
+
+*/
+
+package org.jibble.pircbot;
+
+/**
+ * This class is used to represent a user on an IRC server.
+ * Instances of this class are returned by the getUsers method
+ * in the PircBot class.
+ * <p>
+ * Note that this class no longer implements the Comparable interface
+ * for Java 1.1 compatibility reasons.
+ *
+ * @since 1.0.0
+ * @author Paul James Mutton,
+ * <a href="http://www.jibble.org/">http://www.jibble.org/</a>
+ * @version 1.5.0 (Build time: Mon Dec 14 20:07:17 2009)
+ */
+public class User {
+
+
+ /**
+ * Constructs a User object with a known prefix and nick.
+ *
+ * @param prefix The status of the user, for example, "@".
+ * @param nick The nick of the user.
+ */
+ User(String prefix, String nick) {
+ _prefix = prefix;
+ _nick = nick;
+ _lowerNick = nick.toLowerCase();
+ }
+
+
+ /**
+ * Returns the prefix of the user. If the User object has been obtained
+ * from a list of users in a channel, then this will reflect the user's
+ * status in that channel.
+ *
+ * @return The prefix of the user. If there is no prefix, then an empty
+ * String is returned.
+ */
+ public String getPrefix() {
+ return _prefix;
+ }
+
+
+ /**
+ * Returns whether or not the user represented by this object is an
+ * operator. If the User object has been obtained from a list of users
+ * in a channel, then this will reflect the user's operator status in
+ * that channel.
+ *
+ * @return true if the user is an operator in the channel.
+ */
+ public boolean isOp() {
+ return _prefix.indexOf('@') >= 0;
+ }
+
+
+ /**
+ * Returns whether or not the user represented by this object has
+ * voice. If the User object has been obtained from a list of users
+ * in a channel, then this will reflect the user's voice status in
+ * that channel.
+ *
+ * @return true if the user has voice in the channel.
+ */
+ public boolean hasVoice() {
+ return _prefix.indexOf('+') >= 0;
+ }
+
+
+ /**
+ * Returns the nick of the user.
+ *
+ * @return The user's nick.
+ */
+ public String getNick() {
+ return _nick;
+ }
+
+
+ /**
+ * Returns the nick of the user complete with their prefix if they
+ * have one, e.g. "@Dave".
+ *
+ * @return The user's prefix and nick.
+ */
+ public String toString() {
+ return this.getPrefix() + this.getNick();
+ }
+
+
+ /**
+ * Returns true if the nick represented by this User object is the same
+ * as the argument. A case insensitive comparison is made.
+ *
+ * @return true if the nicks are identical (case insensitive).
+ */
+ public boolean equals(String nick) {
+ return nick.toLowerCase().equals(_lowerNick);
+ }
+
+
+ /**
+ * Returns true if the nick represented by this User object is the same
+ * as the nick of the User object given as an argument.
+ * A case insensitive comparison is made.
+ *
+ * @return true if o is a User object with a matching lowercase nick.
+ */
+ public boolean equals(Object o) {
+ if (o instanceof User) {
+ User other = (User) o;
+ return other._lowerNick.equals(_lowerNick);
+ }
+ return false;
+ }
+
+
+ /**
+ * Returns the hash code of this User object.
+ *
+ * @return the hash code of the User object.
+ */
+ public int hashCode() {
+ return _lowerNick.hashCode();
+ }
+
+
+ /**
+ * Returns the result of calling the compareTo method on lowercased
+ * nicks. This is useful for sorting lists of User objects.
+ *
+ * @return the result of calling compareTo on lowercased nicks.
+ */
+ public int compareTo(Object o) {
+ if (o instanceof User) {
+ User other = (User) o;
+ return other._lowerNick.compareTo(_lowerNick);
+ }
+ return -1;
+ }
+
+
+ private String _prefix;
+ private String _nick;
+ private String _lowerNick;
+
+}