To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.
QAuth/Module
This is the modified and improved version of the qauth module. Save this in a cpp file. Either in your znc dir's module subdir and run make or do znc-buildmod <filename> to get the module. In the second case you should save the module in ~/.znc/modules (qauth.so).
/* * Copyright (C) 2007, Uwe Grohnwaldt <lando@lando.cc> (http://lando.cc) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published * by the Free Software Foundation. */ #include "main.h" #include "User.h" #include "Nick.h" #include "Modules.h" #include "Chan.h" #include "Utils.h" #include <pwd.h> #include <map> #include <vector> class CQAuth : public CModule { public: MODCONSTRUCTOR(CQAuth) { } virtual ~CQAuth() { } virtual bool OnLoad(const CString& sArgs, CString& sMessage) { if (sArgs.empty()) m_sAuth = GetNV("Auth"); else m_sAuth = sArgs; return true; } virtual void OnModCommand( const CString& sCommand ) { CString sCmdName = sCommand.Token(0).AsLower(); if(sCmdName == "set") { CString sPass = sCommand.Token(1, true) + " "; m_sAuth = sPass; PutModule("Auth set"); } else if(sCmdName == "auth") { if (m_sAuth.empty()) PutModule("No auth set"); else { PutIRC("PRIVMSG Q@CServe.quakenet.org :auth " + m_sAuth); PutModule("Authing!"); } } else if(sCmdName == "show") { if (m_sAuth.empty()) PutModule("No auth set"); else PutModule("Current user and password: " + m_sAuth); } else if(sCmdName == "save") { SetNV("Auth", m_sAuth); PutModule("Saved!"); } else { PutModule("Commands: set <user password>, show, save"); } } virtual void OnIRCConnected() { PutIRC("PRIVMSG Q@Cserve.quakenet.org :whoami"); } void HandleMessage(CNick& Nick, const CString& sMessage) { if (!m_sAuth.empty() && Nick.GetNick().CaseCmp("Q") == 0 && Nick.GetHost().CaseCmp("CServe.quakenet.org") == 0 && sMessage.find("AUTH") != CString::npos && sMessage.find("authenticate") != CString::npos) { PutIRC("PRIVMSG Q@CServe.quakenet.org :auth " + m_sAuth); } } virtual EModRet OnPrivMsg(CNick& Nick, CString& sMessage) { HandleMessage(Nick, sMessage); return CONTINUE; } virtual EModRet OnPrivNotice(CNick& Nick, CString& sMessage) { HandleMessage(Nick, sMessage); return CONTINUE; } private: CString m_sAuth; }; MODULEDEFS(CQAuth, "Auths you with Quakenet.")