From e943dc185bdcc11643f4836778d9714aa780d92b Mon Sep 17 00:00:00 2001 From: Anselme Date: Tue, 15 Mar 2016 00:17:35 +0100 Subject: [PATCH] added authentication --- app/rpgmodule.cpp | 17 +++++++++++++++++ ircbot/basemodule.cpp | 2 ++ ircbot/botapp.cpp | 5 ++++- ircbot/ircbot.cpp | 3 ++- ircbot/ircbot.h | 3 ++- ircbot/module.cpp | 10 ++++++++++ ircbot/module.h | 3 +++ 7 files changed, 40 insertions(+), 3 deletions(-) diff --git a/app/rpgmodule.cpp b/app/rpgmodule.cpp index 820f6e4..19780c9 100644 --- a/app/rpgmodule.cpp +++ b/app/rpgmodule.cpp @@ -176,11 +176,28 @@ bool RPGModule::messageHandler(Message msg) return true; } } + else if(msg.args.startsWith("travel ")) + { + QStringList paramList = msg.args.split(' '); + if(charOnline.count(src) > 0 && paramList.size() == 2) + { + answer = say(playerTravel(charOnline[src], paramList[1])); + return true; + } + } + else if(msg.args.startsWith("look ")) + { + // look around + + // look at [object] + } else if(msg.args.compare("!rpg help") == 0) { answer = privateSay("Create new character (works only in private message) : !rpg register [name of character] [password]", msg.nick); answer += privateSay("Join game with character (works only in private message) : !rpg join [name of character] [password]", msg.nick); answer += privateSay("leave the game : !rpg leave", msg.nick); + answer += privateSay("show your stats : !rpg stats", msg.nick); + answer += privateSay("show all in-game players : !rpg list", msg.nick); return true; } } diff --git a/ircbot/basemodule.cpp b/ircbot/basemodule.cpp index 8e16f9f..83146b5 100644 --- a/ircbot/basemodule.cpp +++ b/ircbot/basemodule.cpp @@ -32,6 +32,8 @@ bool BaseModule::messageHandler(Message msg) if(msg.command.compare("376") == 0) { status = ON_CHAN; + if(!getPass().isNull()) + answer += privateSay(QString("identify %1 %2").arg(getNick()).arg(getPass()), "nickserv"); answer += join(getChan()); ret = true; } diff --git a/ircbot/botapp.cpp b/ircbot/botapp.cpp index 9fb668d..a8f0709 100644 --- a/ircbot/botapp.cpp +++ b/ircbot/botapp.cpp @@ -10,6 +10,7 @@ BotApp::BotApp(int argc, char** argv) : nogui(false) int port = 6667; QString nick = QString("SparrowBotDebug"); QString chan = QString("epicsparrow"); + QString pass; // parsing arguments for(int i=1; isetChan(chan); module->setNick(nick); + module->setPass(pass); module->setModuleList(&modules); } diff --git a/ircbot/ircbot.h b/ircbot/ircbot.h index 02a9817..4e46383 100644 --- a/ircbot/ircbot.h +++ b/ircbot/ircbot.h @@ -14,11 +14,12 @@ class IRCBot : public QObject QString nick; QString chan; + QString pass; std::vector modules; BaseModule *base; public: - IRCBot(QString nick_, QString chan_); + IRCBot(QString nick_, QString chan_, QString pass_ = QString()); public: void addModule(Module* module); diff --git a/ircbot/module.cpp b/ircbot/module.cpp index 9931aa3..e4e69fe 100644 --- a/ircbot/module.cpp +++ b/ircbot/module.cpp @@ -22,6 +22,11 @@ QString Module::getNick() return nick; } +QString Module::getPass() +{ + return pass; +} + QString Module::getChan() { return chan; @@ -54,6 +59,11 @@ void Module::setNick(QString nick_) nick = nick_; } +void Module::setPass(QString pass_) +{ + pass = pass_; +} + void Module::setChan(QString chan_) { chan = chan_; diff --git a/ircbot/module.h b/ircbot/module.h index 551249d..c8fdb9b 100644 --- a/ircbot/module.h +++ b/ircbot/module.h @@ -12,6 +12,7 @@ class Module private: bool enabled; QString nick; + QString pass; QString chan; std::vector* modules; @@ -19,6 +20,7 @@ protected: QString answer; QString getNick(); + QString getPass(); QString getChan(); int getNbModules(); Module* getModule(int index); @@ -42,6 +44,7 @@ public: bool isEnabled(); void setEnabled(bool newStatus); void setNick(QString nick_); + void setPass(QString pass_); void setChan(QString chan_); void setModuleList(std::vector* modList); //TODO: add serialization methods