]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_chanhistory.cpp
Only show UHNAMES and NAMESX in 005 if the cap module is loaded.
[user/henk/code/inspircd.git] / src / modules / m_chanhistory.cpp
index 1057e63b63338fcdb8aa48aabe98e279f17e3fb9..7db851ee37316d61a6cc315b9de2394f9583495c 100644 (file)
@@ -39,11 +39,14 @@ struct HistoryItem
 struct HistoryList
 {
        std::deque<HistoryItem> lines;
-       unsigned int maxlen, maxtime;
-       std::string param;
+       unsigned int maxlen;
+       unsigned int maxtime;
 
-       HistoryList(unsigned int len, unsigned int time, const std::string& oparam)
-               : maxlen(len), maxtime(time), param(oparam) { }
+       HistoryList(unsigned int len, unsigned int time)
+               : maxlen(len)
+               , maxtime(time)
+       {
+       }
 };
 
 class HistoryMode : public ParamMode<HistoryMode, SimpleExtItem<HistoryList> >
@@ -53,6 +56,7 @@ class HistoryMode : public ParamMode<HistoryMode, SimpleExtItem<HistoryList> >
        HistoryMode(Module* Creator)
                : ParamMode<HistoryMode, SimpleExtItem<HistoryList> >(Creator, "history", 'H')
        {
+               syntax = "<max-messages>:<max-duration>";
        }
 
        ModeAction OnSet(User* source, Channel* channel, std::string& parameter) CXX11_OVERRIDE
@@ -90,18 +94,19 @@ class HistoryMode : public ParamMode<HistoryMode, SimpleExtItem<HistoryList> >
 
                        history->maxlen = len;
                        history->maxtime = time;
-                       history->param = parameter;
                }
                else
                {
-                       ext.set(channel, new HistoryList(len, time, parameter));
+                       ext.set(channel, new HistoryList(len, time));
                }
                return MODEACTION_ALLOW;
        }
 
        void SerializeParam(Channel* chan, const HistoryList* history, std::string& out)
        {
-               out.append(history->param);
+               out.append(ConvToStr(history->maxlen));
+               out.append(":");
+               out.append(InspIRCd::DurationString(history->maxtime));
        }
 };
 
@@ -207,7 +212,7 @@ class ModuleChanHistory
 
        Version GetVersion() CXX11_OVERRIDE
        {
-               return Version("Provides channel history replayed on join", VF_VENDOR);
+               return Version("Provides channel mode +H, allows for the channel message history to be replayed on join", VF_VENDOR);
        }
 };