#include "inspircd.h"
#include "modules/ctctags.h"
+#include "modules/names.h"
class DelayJoinMode : public ModeHandler
{
class ModuleDelayJoin
: public Module
, public CTCTags::EventListener
+ , public Names::EventListener
{
public:
LocalIntExt unjoined;
ModuleDelayJoin()
: CTCTags::EventListener(this)
+ , Names::EventListener(this)
, unjoined("delayjoin", ExtensionItem::EXT_MEMBERSHIP, this)
, joinhook(this, unjoined)
, djm(this, unjoined)
}
Version GetVersion() CXX11_OVERRIDE;
- ModResult OnNamesListItem(User* issuer, Membership*, std::string& prefixes, std::string& nick) CXX11_OVERRIDE;
+ ModResult OnNamesListItem(LocalUser* issuer, Membership*, std::string& prefixes, std::string& nick) CXX11_OVERRIDE;
void OnUserJoin(Membership*, bool, bool, CUList&) CXX11_OVERRIDE;
void CleanUser(User* user);
void OnUserPart(Membership*, std::string &partmessage, CUList&) CXX11_OVERRIDE;
Version ModuleDelayJoin::GetVersion()
{
- return Version("Allows for delay-join channels (+D) where users don't appear to join until they speak", VF_VENDOR);
+ return Version("Provides channel mode +D, delay-join, users don't appear as joined to others until they speak", VF_VENDOR);
}
-ModResult ModuleDelayJoin::OnNamesListItem(User* issuer, Membership* memb, std::string& prefixes, std::string& nick)
+ModResult ModuleDelayJoin::OnNamesListItem(LocalUser* issuer, Membership* memb, std::string& prefixes, std::string& nick)
{
/* don't prevent the user from seeing themself */
if (issuer == memb->user)
chan->Write(joinevent, 0, except_list);
}
-/* make the user visible if he receives any mode change */
+/* make the user visible if they receive any mode change */
ModResult ModuleDelayJoin::OnRawMode(User* user, Channel* channel, ModeHandler* mh, const std::string& param, bool adding)
{
if (!channel || param.empty())