/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions>
+ * 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
* @param user The user issuing the command
* @return A value from CmdResult to indicate command success or failure.
*/
- CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
+ CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
};
/** Handle /LUSERS
*/
-CmdResult CommandLusers::Handle (const std::vector<std::string>&, User *user)
+CmdResult CommandLusers::Handle(User* user, const Params& parameters)
{
unsigned int n_users = ServerInstance->Users->RegisteredUserCount();
ProtocolInterface::ServerList serverlist;
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);
}
};