force_manual_route = true;
}
- CmdResult Handle(const std::vector<std::string>& parameters, User* user)
+ CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
{
Channel* chan = activechan = ServerInstance->FindChan(parameters[0]);
if (!chan)
// The idea is that by the time our QUITs reach the next hop, it has already removed all their
// clients from the channel, meaning victims on other servers won't see the victims on this
// server quitting.
- std::vector<std::string> eparams;
+ CommandBase::Params eparams;
eparams.push_back(chan->name);
eparams.push_back(method);
eparams.push_back(":");
std::string mask;
// Now remove all local non-opers from the channel
- const UserMembList* users = chan->GetUsers();
- for (UserMembCIter i = users->begin(); i != users->end(); )
+ Channel::MemberMap& users = chan->userlist;
+ for (Channel::MemberMap::iterator i = users.begin(); i != users.end(); )
{
User* curr = i->first;
+ const Channel::MemberMap::iterator currit = i;
++i;
if (!IS_LOCAL(curr) || curr->IsOper())
// If kicking users, remove them and skip the QuitUser()
if (kick)
{
- chan->KickUser(ServerInstance->FakeClient, curr, reason);
+ chan->KickUser(ServerInstance->FakeClient, currit, reason);
continue;
}
XLine* xline;
try
{
- mask = ((method[0] == 'Z') ? curr->GetIPString() : "*@" + curr->host);
+ mask = ((method[0] == 'Z') ? curr->GetIPString() : "*@" + curr->GetRealHost());
xline = xlf->Generate(ServerInstance->Time(), 60*60, user->nick, reason, mask);
}
- catch (ModuleException& ex)
+ catch (ModuleException&)
{
// Nothing, move on to the next user
continue;
{
}
- void init()
+ void init() CXX11_OVERRIDE
{
// Only attached while we are working; don't react to events otherwise
ServerInstance->Modules->DetachAll(this);
}
}
- const UserMembList* users = cmd.activechan->GetUsers();
- for (UserMembCIter i = users->begin(); i != users->end(); ++i)
+ const Channel::MemberMap& users = cmd.activechan->GetUsers();
+ for (Channel::MemberMap::const_iterator i = users.begin(); i != users.end(); ++i)
{
LocalUser* curr = IS_LOCAL(i->first);
if (!curr)
{
// Hide the KICK from all non-opers
User* leaving = memb->user;
- const UserMembList* users = memb->chan->GetUsers();
- for (UserMembCIter i = users->begin(); i != users->end(); ++i)
+ const Channel::MemberMap& users = memb->chan->GetUsers();
+ for (Channel::MemberMap::const_iterator i = users.begin(); i != users.end(); ++i)
{
User* curr = i->first;
if ((IS_LOCAL(curr)) && (!curr->IsOper()) && (curr != leaving))
Version GetVersion() CXX11_OVERRIDE
{
- return Version("Adds /CLEARCHAN that allows opers to masskick, masskill or mass-G/ZLine users on a channel", VF_VENDOR|VF_OPTCOMMON);
+ return Version("Adds /CLEARCHAN that allows opers to masskick, masskill or mass G/Z-line users on a channel.", VF_VENDOR|VF_OPTCOMMON);
}
};