#include "modules.h"
#include "packet.h"
#include "tgchange.h"
+#include "s_newconf.h"
static const char invite_desc[] = "Provides /invite";
return;
}
- hdata.chptr = chptr;
- hdata.msptr = msptr;
- hdata.client = source_p;
- hdata.target = target_p;
- hdata.approved = !(is_chanop(msptr) || (chptr->mode.mode & MODE_FREEINVITE));
-
- call_hook(can_invite_hook, &hdata);
- if (hdata.approved)
+ if (MyClient(source_p))
{
- if (MyClient(target_p))
+ hdata.chptr = chptr;
+ hdata.msptr = msptr;
+ hdata.client = source_p;
+ hdata.target = target_p;
+ hdata.approved = !(is_chanop(msptr) || (chptr->mode.mode & MODE_FREEINVITE));
+
+ call_hook(can_invite_hook, &hdata);
+ if (hdata.approved)
{
if (hdata.error)
sendto_one_numeric(source_p, hdata.approved, "%s", hdata.error);
- else if (hdata.approved == ERR_CHANOPRIVSNEEDED)
+ else
sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED),
- me.name, source_p->name, parv[2]);
+ me.name, source_p->name, parv[2]);
- add_reply_target(target_p, source_p);
+ return;
}
-
- return;
}
/* store invites when they could affect the ability to join
if(MyConnect(source_p))
{
- if (ConfigFileEntry.target_change && !IsOper(source_p) &&
+ if (ConfigFileEntry.target_change && !IsOperGeneral(source_p) &&
!find_allowing_channel(source_p, target_p) &&
!add_target(source_p, target_p))
{
if(MyConnect(target_p))
{
- if(!IsOper(source_p) && IsSetCallerId(target_p) && !accept_message(source_p, target_p))
- {
- sendto_one_numeric(source_p, ERR_TARGUMODEG,
- form_str(ERR_TARGUMODEG),
- target_p->name);
-
- if((target_p->localClient->last_caller_id_time +
- ConfigFileEntry.caller_id_wait) < rb_current_time())
- {
- sendto_one_numeric(source_p, RPL_TARGNOTIFY,
- form_str(RPL_TARGNOTIFY),
- target_p->name);
-
- add_reply_target(target_p, source_p);
- sendto_one(target_p, form_str(RPL_UMODEGMSG),
- me.name, target_p->name, source_p->name,
- source_p->username, source_p->host);
-
- target_p->localClient->last_caller_id_time = rb_current_time();
- }
-
- return;
- }
-
hdata.chptr = chptr;
hdata.msptr = msptr;
hdata.client = source_p;