* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * InspIRCd: (C) 2002-2010 InspIRCd Development Team
* See: http://wiki.inspircd.org/Credits
*
* This program is free but copyrighted software; see
class NetworkPrefix : public ModeHandler
{
public:
- NetworkPrefix(Module* parent) : ModeHandler(parent, 'Y', PARAM_ALWAYS, MODETYPE_CHANNEL)
+ NetworkPrefix(Module* parent) : ModeHandler(parent, "official-join", 'Y', PARAM_ALWAYS, MODETYPE_CHANNEL)
{
list = true;
prefix = NPrefix;
m_paramtype = TR_NICK;
}
- ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string ¶meter)
- {
- User* x = ServerInstance->FindNick(parameter);
- if (x)
- {
- Membership* m = channel->GetUser(x);
- if (!m)
- {
- return std::make_pair(false, parameter);
- }
- else
- {
- if (m->hasMode('Y'))
- {
- return std::make_pair(true, x->nick);
- }
- else
- {
- return std::make_pair(false, parameter);
- }
- }
- }
- return std::make_pair(false, parameter);
- }
-
void RemoveMode(Channel* channel, irc::modestacker* stack)
{
const UserMembList* cl = channel->GetUsers();
ModuleOjoin()
: np(NULL), mycommand(this)
+ {
+ }
+
+ void init()
{
/* Load config stuff */
OnRehash(NULL);
/* Initialise module variables */
np = new NetworkPrefix(this);
- if (!ServerInstance->Modes->AddMode(np))
- {
- delete np;
- throw ModuleException("Could not add new mode!");
- }
-
- ServerInstance->AddCommand(&mycommand);
+ ServerInstance->Modules->AddService(*np);
+ ServerInstance->Modules->AddService(mycommand);
- Implementation eventlist[] = { I_OnUserPreJoin, I_OnUserKick, I_OnUserPart, I_OnUserPreKick, I_OnRehash };
- ServerInstance->Modules->Attach(eventlist, this, 5);
+ Implementation eventlist[] = { I_OnUserPreJoin, I_OnUserPreKick, I_OnRehash };
+ ServerInstance->Modules->Attach(eventlist, this, 3);
}
ModResult OnUserPreJoin(User *user, Channel *chan, const char *cname, std::string &privs, const std::string &keygiven)
Version GetVersion()
{
- return Version("Network Buisness Join", VF_COMMON | VF_VENDOR);
+ return Version("Network Buisness Join", VF_VENDOR);
}
};