+ Alias a;
+ std::string txt;
+ txt = MyConf.ReadValue("alias", "text", i);
+ a.AliasedCommand = txt.c_str();
+ a.ReplaceFormat = MyConf.ReadValue("alias", "replace", i, true);
+ a.RequiredNick = MyConf.ReadValue("alias", "requires", i);
+ a.ULineOnly = MyConf.ReadFlag("alias", "uline", i);
+ a.ChannelCommand = MyConf.ReadFlag("alias", "channelcommand", "no", i);
+ a.UserCommand = MyConf.ReadFlag("alias", "usercommand", "yes", i);
+ a.OperOnly = MyConf.ReadFlag("alias", "operonly", i);
+ a.format = MyConf.ReadValue("alias", "format", i);
+ a.CaseSensitive = MyConf.ReadFlag("alias", "matchcase", i);
+ Aliases.insert(std::make_pair(txt, a));
+ }
+ }
+
+ public:
+
+ ModuleAlias(InspIRCd* Me)
+ : Module(Me)
+ {
+ ReadAliases();
+ Me->Modules->Attach(I_OnPreCommand, this);
+ Me->Modules->Attach(I_OnRehash, this);
+ Me->Modules->Attach(I_OnUserPreMessage, this);
+
+ }
+
+ virtual ~ModuleAlias()
+ {
+ }
+
+ virtual Version GetVersion()
+ {
+ return Version("$Id$", VF_VENDOR,API_VERSION);
+ }
+
+ std::string GetVar(std::string varname, const std::string &original_line)
+ {
+ irc::spacesepstream ss(original_line);
+ varname.erase(varname.begin());
+ int index = *(varname.begin()) - 48;
+ varname.erase(varname.begin());
+ bool everything_after = (varname == "-");
+ std::string word;
+
+ for (int j = 0; j < index; j++)
+ ss.GetToken(word);
+
+ if (everything_after)
+ {
+ std::string more;
+ while (ss.GetToken(more))