X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fmessage.h;h=068f3124659182b02e08609df9f90bedb78db94b;hb=0960d5e9e37075e44223c627c93a2e1b41ce8f35;hp=1624a1de42df747410247dc162bd08e690bfec87;hpb=961109ae4fde97144fdedeef25607a5b8b3ec2c2;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/message.h b/include/message.h index 1624a1de4..068f31246 100644 --- a/include/message.h +++ b/include/message.h @@ -1,7 +1,8 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2017 Peter Powell + * Copyright (C) 2018 Attila Molnar + * Copyright (C) 2017-2018, 2020 Sadie Powell * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -38,6 +39,9 @@ class CoreExport MessageDetails /* Whether to send the original message back to clients with echo-message support. */ bool echo_original; + /** Whether to update the source user's idle time. */ + bool update_idle; + /** The users who are exempted from receiving this message. */ CUList exemptions; @@ -54,7 +58,7 @@ class CoreExport MessageDetails std::string text; /** The type of message. */ - const MessageType type; + MessageType type; /** Determines whether the specified message is a CTCP. If the specified message * is a CTCP then the CTCP name and CTCP body are extracted and stored in the @@ -77,6 +81,7 @@ class CoreExport MessageDetails MessageDetails(MessageType mt, const std::string& msg, const ClientProtocol::TagMap& tags) : echo(true) , echo_original(false) + , update_idle(true) , original_text(msg) , tags_in(tags) , text(msg) @@ -153,4 +158,23 @@ class CoreExport MessageTarget { return static_cast(dest); } + + /** Retrieves the name of the target of this message. */ + const std::string& GetName() const + { + switch (type) + { + case TYPE_CHANNEL: + return Get()->name; + case TYPE_USER: + return Get()->nick; + case TYPE_SERVER: + return *Get(); + } + + // We should never reach this point during a normal execution but + // handle it just in case. + static const std::string target = "*"; + return target; + } };