/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2017-2019 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012-2014, 2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
* Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2007 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
+ * Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
+ * Copyright (C) 2006, 2010 Craig Edwards <brain@inspircd.org>
*
* 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
if (dest->registered != REG_ALL)
return;
+ if (dest->server->IsULine())
+ return;
+
if (adding)
invisible++;
else
for (user_hash::const_iterator i = users.begin(); i != users.end(); ++i)
{
User* u = i->second;
- if (u->IsModeSet(invisiblemode))
+ if (!u->server->IsULine() && u->IsModeSet(invisiblemode))
c++;
}
return c;
void OnPostConnect(User* user) CXX11_OVERRIDE
{
counters.UpdateMaxUsers();
- if (user->IsModeSet(invisiblemode))
+ if (!user->server->IsULine() && user->IsModeSet(invisiblemode))
counters.invisible++;
}
void OnUserQuit(User* user, const std::string& message, const std::string& oper_message) CXX11_OVERRIDE
{
- if (user->IsModeSet(invisiblemode))
+ if (!user->server->IsULine() && user->IsModeSet(invisiblemode))
counters.invisible--;
}
Version GetVersion() CXX11_OVERRIDE
{
- return Version("LUSERS", VF_VENDOR | VF_CORE);
+ return Version("Provides the LUSERS command", VF_VENDOR | VF_CORE);
}
};