diff options
-rw-r--r-- | conf/modules.conf.example | 5 | ||||
-rw-r--r-- | src/modules/m_alias.cpp | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/conf/modules.conf.example b/conf/modules.conf.example index 4263d7780..32b213401 100644 --- a/conf/modules.conf.example +++ b/conf/modules.conf.example @@ -73,11 +73,14 @@ # # Fantasy settings: # -#<fantasy prefix="!"> +#<fantasy prefix="!" allowbots="no"> # # prefix: # Set the prefix for in-channel aliases (fantasy commands) to the # specified character. If not set, the default is "!". +# allowbots: +# If this is set to no, +B clients will not be able to use fantasy +# commands. If not set, the default is no. # #-#-#-#-#-#-#-#-#-#-#- ALIAS DEFINITIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-# # # diff --git a/src/modules/m_alias.cpp b/src/modules/m_alias.cpp index 160e3cea3..4ba05729b 100644 --- a/src/modules/m_alias.cpp +++ b/src/modules/m_alias.cpp @@ -60,9 +60,14 @@ class ModuleAlias : public Module */ std::multimap<std::string, Alias> Aliases; + /* whether or not +B users are allowed to use fantasy commands */ + bool AllowBots; + virtual void ReadAliases() { ConfigReader MyConf(ServerInstance); + + AllowBots = MyConf.ReadFlag("fantasy", "allowbots", "no", 0); std::string fpre = MyConf.ReadValue("fantasy","prefix",0); fprefix = fpre.empty() ? '!' : fpre[0]; @@ -187,6 +192,13 @@ class ModuleAlias : public Module return 0; } + /* Stop here if the user is +B and allowbot is set to no. */ + if (!AllowBots && user->IsModeSet('B')) + { + ServerInstance->Logs->Log("FANTASY", DEBUG, "fantasy: user is +B and allowbot is set to no"); + return 0; + } + Channel *c = (Channel *)dest; std::string fcommand; |