X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcoremods%2Fcore_lusers.cpp;h=925a50643cb36fb0885f84cbc4d5fa1188c3e5d1;hb=635cb9d65f6d7f6758ae8ed874da00c8d94b6e39;hp=a995e59e7fa6cffabf3c84e2a4f9aa83764a6e6f;hpb=565544fac966b14e046bb3042ab485f79bcf7c9e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_lusers.cpp b/src/coremods/core_lusers.cpp index a995e59e7..925a50643 100644 --- a/src/coremods/core_lusers.cpp +++ b/src/coremods/core_lusers.cpp @@ -1,8 +1,14 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2020 Matt Schatz + * Copyright (C) 2017-2019 Sadie Powell + * Copyright (C) 2012-2014, 2016 Attila Molnar + * Copyright (C) 2012 Robby * Copyright (C) 2009-2010 Daniel De Graaf - * Copyright (C) 2007 Robin Burchell + * Copyright (C) 2008 Robin Burchell + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2006, 2010 Craig Edwards * * 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 @@ -61,12 +67,12 @@ class CommandLusers : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /LUSERS */ -CmdResult CommandLusers::Handle (const std::vector&, User *user) +CmdResult CommandLusers::Handle(User* user, const Params& parameters) { unsigned int n_users = ServerInstance->Users->RegisteredUserCount(); ProtocolInterface::ServerList serverlist; @@ -115,6 +121,9 @@ public: if (dest->registered != REG_ALL) return; + if (dest->server->IsULine()) + return; + if (adding) invisible++; else @@ -136,7 +145,7 @@ class ModuleLusers : public Module 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; @@ -154,19 +163,19 @@ class ModuleLusers : public Module 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); } };