Anonymous committed 4b0d712

Subject /invite to target change.

Similar to /msg, inviting a user that is not in a channel
you have op or voice in requires a free target; opers always
have a free target.

Being invited adds the source as a reply target.

  • Participants
  • Parent commits 6cf5e90

Comments (0)

Files changed (1)

File modules/m_invite.c

 #include "parse.h"
 #include "modules.h"
 #include "packet.h"
+#include "tgchange.h"
 static int m_invite(struct Client *, struct Client *, int, const char **);
+		if (ConfigFileEntry.target_change && !IsOper(source_p) &&
+				!find_allowing_channel(source_p, target_p) &&
+				!add_target(source_p, target_p))
+		{
+			sendto_one(source_p, form_str(ERR_TARGCHANGE),
+, source_p->name, target_p->name);
+			return;
+		}
 		sendto_one(source_p, form_str(RPL_INVITING),, source_p->name,
 			   target_p->name, parv[2]);
+		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);