diff --git a/clientbuffer.cpp b/clientbuffer.cpp index c37de82..81b3999 100644 --- a/clientbuffer.cpp +++ b/clientbuffer.cpp @@ -43,6 +43,8 @@ class CClientBufferMod : public CModule void OnDelClientCommand(const CString& line); void OnListClientsCommand(const CString& line); + virtual void OnClientLogin(); + virtual EModRet OnUserRaw(CString& line) override; virtual EModRet OnSendToClient(CString& line, CClient& client) override; @@ -119,6 +121,15 @@ void CClientBufferMod::OnListClientsCommand(const CString& line) PutModule(table); } +void CClientBufferMod::OnClientLogin() +{ + const CString& current = GetClient()->GetIdentifier(); + + if (!HasClient(current) && GetArgs().Token(0).Equals("autoadd", CString::CaseInsensitive)) { + AddClient(current); + } +} + CModule::EModRet CClientBufferMod::OnUserRaw(CString& line) { CClient* client = GetClient(); @@ -292,4 +303,9 @@ void CClientBufferMod::UpdateTimestamp(const CClient* client, const CString& tar } } +template<> void TModInfo(CModInfo& info) { + info.SetWikiPage("Clientbuffer"); + info.SetHasArgs(true); +} + NETWORKMODULEDEFS(CClientBufferMod, "Client specific buffer playback")