- size_t ptrlen = snprintf(ptr, MAXBUF, "%s%s ", Ptr->GetAllPrefixChars(i->first), i->second.c_str());
- /* OnUserList can change this - reset it back to normal */
- i->second = i->first->nick;
- curlen += ptrlen;
- ptr += ptrlen;
- numusers++;
- if (curlen > (480-NICKMAX))
- {
- /* list overflowed into multiple numerics */
- user->WriteServ(std::string(list));
- /* reset our lengths */
- dlen = curlen = snprintf(list,MAXBUF,"353 %s = %s :", user->nick, Ptr->name);
- ptr = list + dlen;
- ptrlen = 0;
- numusers = 0;
- }
- }
- /* if whats left in the list isnt empty, send it */
- if (numusers)
- {
- user->WriteServ(std::string(list));
- }
- user->WriteServ("366 %s %s :End of /NAMES list.", user->nick, Ptr->name);
- return 1;
- }
- return 0;
- }
+ virtual void OnEvent(Event *ev)
+ {
+ GenericCapHandler(ev, "NAMESX", "multi-prefix");
+ }