]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/users.h
Remove const char* versions of InspIRCd::FindNick()/FindNickOnly()/FindUUID()/FindChan()
[user/henk/code/inspircd.git] / include / users.h
index 2cebc749d6ca2049bdc37f982a2ddb0577c09b04..def7a146d9dd5907493cfa2510428fab2e207fd3 100644 (file)
@@ -22,8 +22,7 @@
  */
 
 
-#ifndef USERS_H
-#define USERS_H
+#pragma once
 
 #include "socket.h"
 #include "inspsocket.h"
@@ -329,7 +328,7 @@ class CoreExport User : public Extensible
        std::string awaymsg;
 
        /** Time the user last went away.
-        * This is ONLY RELIABLE if user IS_AWAY()!
+        * This is ONLY RELIABLE if user IsAway()!
         */
        time_t awaytime;
 
@@ -411,6 +410,18 @@ class CoreExport User : public Extensible
         */
        std::string ProcessNoticeMasks(const char *sm);
 
+       /** Returns whether this user is currently away or not. If true,
+        * further information can be found in User::awaymsg and User::awaytime
+        * @return True if the user is away, false otherwise
+        */
+       bool IsAway() const { return (!awaymsg.empty()); }
+
+       /** Returns whether this user is an oper or not. If true,
+        * oper information can be obtained from User::oper
+        * @return True if the user is an oper, false otherwise
+        */
+       bool IsOper() const { return oper; }
+
        /** Returns true if a notice mask is set
         * @param sm A notice mask character to check
         * @return True if the notice mask is set
@@ -821,23 +832,18 @@ class CoreExport LocalUser : public User, public InviteBase
        InviteList& GetInviteList();
 
        /** Returns true if a user is invited to a channel.
-        * @param channel A channel name to look up
+        * @param channel A channel to look up
         * @return True if the user is invited to the given channel
         */
-       bool IsInvited(const irc::string &channel);
-
-       /** Adds a channel to a users invite list (invites them to a channel)
-        * @param channel A channel name to add
-        * @param timeout When the invite should expire (0 == never)
-        */
-       void InviteTo(const irc::string &channel, time_t timeout);
+       bool IsInvited(Channel* chan) { return (Invitation::Find(chan, this) != NULL); }
 
        /** Removes a channel from a users invite list.
         * This member function is called on successfully joining an invite only channel
         * to which the user has previously been invited, to clear the invitation.
         * @param channel The channel to remove the invite to
+        * @return True if the user was invited to the channel and the invite was erased, false if the user wasn't invited
         */
-       void RemoveInvite(const irc::string &channel);
+       bool RemoveInvite(Channel* chan);
 
        void RemoveExpiredInvites();
 
@@ -908,10 +914,6 @@ inline FakeUser* IS_SERVER(User* u)
 {
        return u->usertype == USERTYPE_SERVER ? static_cast<FakeUser*>(u) : NULL;
 }
-/** Is an oper */
-#define IS_OPER(x) (x->oper)
-/** Is away */
-#define IS_AWAY(x) (!x->awaymsg.empty())
 
 /** Derived from Resolver, and performs user forward/reverse lookups.
  */
@@ -945,5 +947,3 @@ class CoreExport UserResolver : public Resolver
         */
        void OnError(ResolverError e, const std::string &errormessage);
 };
-
-#endif