X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/e0622d7519df14d95328f88d3e79fe10a8e953a9..b5bf3505123e6667643af92563f2d14d6ab3b7c1:/modules/m_invite.c diff --git a/modules/m_invite.c b/modules/m_invite.c index 044c72f5..af65e1b5 100644 --- a/modules/m_invite.c +++ b/modules/m_invite.c @@ -37,11 +37,11 @@ #include "modules.h" #include "packet.h" #include "tgchange.h" +#include "s_newconf.h" -static const char invite_desc[] = "Provides facilities for invite and related notifications"; +static const char invite_desc[] = "Provides /invite"; static void m_invite(struct MsgBuf *, struct Client *, struct Client *, int, const char **); -static unsigned int CAP_INVITE_NOTIFY = 0; struct Message invite_msgtab = { "INVITE", 0, 0, 0, 0, @@ -58,12 +58,7 @@ mapi_hlist_av1 invite_hlist[] = { { NULL, NULL } }; -mapi_cap_list_av2 invite_cap_list[] = { - { MAPI_CAP_CLIENT, "invite-notify", NULL, &CAP_INVITE_NOTIFY }, - { 0, NULL, NULL, NULL } -}; - -DECLARE_MODULE_AV2(invite, NULL, NULL, invite_clist, invite_hlist, NULL, invite_cap_list, NULL, invite_desc); +DECLARE_MODULE_AV2(invite, NULL, NULL, invite_clist, invite_hlist, NULL, NULL, NULL, invite_desc); static bool add_invite(struct Channel *, struct Client *); @@ -167,6 +162,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source else sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), me.name, source_p->name, parv[2]); + return; } } @@ -181,7 +177,7 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source 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)) { @@ -206,34 +202,6 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source if(MyConnect(target_p)) { - if(!IsOper(source_p) && (IsSetCallerId(target_p) || - (IsSetRegOnlyMsg(target_p) && !source_p->user->suser[0])) && - !accept_message(source_p, target_p)) - { - if (IsSetRegOnlyMsg(target_p) && !source_p->user->suser[0]) - { - sendto_one_numeric(source_p, ERR_NONONREG, - form_str(ERR_NONONREG), - target_p->name); - return; - } - else - { - /* instead of sending RPL_UMODEGMSG, - * just let the invite through - */ - if((target_p->localClient->last_caller_id_time + - ConfigFileEntry.caller_id_wait) >= rb_current_time()) - { - sendto_one_numeric(source_p, ERR_TARGUMODEG, - form_str(ERR_TARGUMODEG), - target_p->name); - return; - } - target_p->localClient->last_caller_id_time = rb_current_time(); - } - } - hdata.chptr = chptr; hdata.msptr = msptr; hdata.client = source_p; @@ -250,27 +218,16 @@ m_invite(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source } add_reply_target(target_p, source_p); - sendto_one(target_p, ":%s!%s@%s INVITE %s :%s", - source_p->name, source_p->username, source_p->host, - target_p->name, chptr->chname); + sendto_anywhere(target_p, source_p, "INVITE", ":%s", chptr->chname); if(store_invite) - { - if (!add_invite(chptr, target_p)) - return; - - sendto_channel_local_with_capability(source_p, CHFL_CHANOP, 0, CAP_INVITE_NOTIFY, chptr, - ":%s NOTICE %s :%s is inviting %s to %s.", - me.name, chptr->chname, source_p->name, target_p->name, chptr->chname); - sendto_channel_local_with_capability(source_p, CHFL_CHANOP, CAP_INVITE_NOTIFY, 0, chptr, - ":%s!%s@%s INVITE %s %s", source_p->name, source_p->username, - source_p->host, target_p->name, chptr->chname); - } + add_invite(chptr, target_p); + } + else if (target_p->from != client_p) + { + sendto_one_prefix(target_p, source_p, "INVITE", "%s %lu", + chptr->chname, (unsigned long) chptr->channelts); } - - sendto_server(source_p, chptr, CAP_TS6, 0, ":%s INVITE %s %s %lu", - use_id(source_p), use_id(target_p), - chptr->chname, (unsigned long) chptr->channelts); } /* add_invite()