+ void OnPopulateTags(ClientProtocol::Message& msg) CXX11_OVERRIDE
+ {
+ User* const user = msg.GetSourceUser();
+ if (user && user->IsModeSet(botmode))
+ msg.AddTag("inspircd.org/bot", this, "");
+ }
+
+ bool ShouldSendTag(LocalUser* user, const ClientProtocol::MessageTagData& tagdata) CXX11_OVERRIDE
+ {
+ return ctctagcap.get(user);
+ }
+};
+
+class ModuleBotMode : public Module, public Whois::EventListener
+{
+ private:
+ SimpleUserModeHandler bm;
+ BotTag tag;
+
+ public:
+ ModuleBotMode()
+ : Whois::EventListener(this)
+ , bm(this, "bot", 'B')
+ , tag(this, bm)