summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-03-08 11:26:31 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-03-08 11:26:31 +0000
commitfeeeced47094ed52541d1bc74440f1b223e6dadc (patch)
treeff4c25a84b2faed5cf45cac5eea35002cd1e190a
parent53d548355b6657e01bd6a296dc87c4abec271fef (diff)
option to allow announce of invites to channel (similar to unreal)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6635 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--include/configreader.h4
-rw-r--r--include/modules.h2
-rw-r--r--src/cmd_invite.cpp5
-rw-r--r--src/configreader.cpp1
4 files changed, 9 insertions, 3 deletions
diff --git a/include/configreader.h b/include/configreader.h
index 0de57c4e4..9e0016bee 100644
--- a/include/configreader.h
+++ b/include/configreader.h
@@ -395,6 +395,10 @@ class ServerConfig : public Extensible
*/
bool HideBans;
+ /** Announce invites to the channel with a server notice
+ */
+ bool AnnounceInvites;
+
/** If this is enabled then operators will
* see invisible (+i) channels in /whois.
*/
diff --git a/include/modules.h b/include/modules.h
index 59d777b71..e90c66fe9 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -75,7 +75,7 @@ enum MessageType {
* ipv4 servers, so this value will be ten times as
* high on ipv6 servers.
*/
-#define NATIVE_API_VERSION 11015
+#define NATIVE_API_VERSION 11016
#ifdef IPV6
#define API_VERSION (NATIVE_API_VERSION * 10)
#else
diff --git a/src/cmd_invite.cpp b/src/cmd_invite.cpp
index 88b64f03d..2910aca3f 100644
--- a/src/cmd_invite.cpp
+++ b/src/cmd_invite.cpp
@@ -74,10 +74,11 @@ CmdResult cmd_invite::Handle (const char** parameters, int pcnt, userrec *user)
return CMD_FAILURE;
}
- irc::string xname(c->name);
- u->InviteTo(xname);
+ u->InviteTo(c->name);
u->WriteFrom(user,"INVITE %s :%s",u->nick,c->name);
user->WriteServ("341 %s %s %s",user->nick,u->nick,c->name);
+ if (ServerInstance->Config->AnnounceInvites)
+ c->WriteChannelWithServ(ServerInstance->Config->ServerName, "%s invited %s into the channel", user->nick, u->nick)
FOREACH_MOD(I_OnUserInvite,OnUserInvite(user,u,c));
}
else
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 9d920dc8c..1d4908f7a 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -590,6 +590,7 @@ void ServerConfig::Read(bool bail, userrec* user)
{"options", "syntaxhints", "0", new ValueContainerBool (&this->SyntaxHints), DT_BOOLEAN, NoValidation},
{"options", "cyclehosts", "0", new ValueContainerBool (&this->CycleHosts), DT_BOOLEAN, NoValidation},
{"options", "ircumsgprefix","0", new ValueContainerBool (&this->UndernetMsgPrefix), DT_BOOLEAN, NoValidation},
+ {"options", "announceinvites", "1", new ValueContainerBool (&this->AnnounceInvites), DT_BOOLEAN, NoValidation},
{"options", "hostintopic", "1", new ValueContainerBool (&this->FullHostInTopic), DT_BOOLEAN, NoValidation},
{"pid", "file", "", new ValueContainerChar (this->PID), DT_CHARPTR, NoValidation},
{"whowas", "groupsize", "10", new ValueContainerInt (&this->WhoWasGroupSize), DT_INTEGER, NoValidation},