diff options
Diffstat (limited to 'src/automation.h')
-rw-r--r-- | src/automation.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/automation.h b/src/automation.h new file mode 100644 index 0000000..0f563fe --- /dev/null +++ b/src/automation.h @@ -0,0 +1,77 @@ +/* + * + * Automation.h: The Ruined Place Chat Bot. + * + */ + +#include <iostream> +#include <string> +#include <set> + + + +extern bool automation; + +struct member +{ + std::string name; + std::string guildName; /* Now suports more than one group */ + int status; // 0 = offline, 1 = online + int accesslevel; // -1 = blocked, 0 = normal member, 10 = guildmaster, 20 = admin. + /* Note: blocked users do not have there online status updated, so don't recieve any messages.*/ + int info; /* 0 = hide info messages, 1 = show info messages*/ + + bool operator<(const member &a) const + { return name < a.name; } +}; + +struct memberinvite +{ + std::string name; + std::string guildName; + + bool operator<(const memberinvite &a) const + { return name < a.name; } +}; + +struct whispermsg +{ + std::string name; + std::string message; +}; + +class Automation +{ + public: + + Automation(); + ~Automation(); + static Automation *getAutomationHandler(); + + void commandHandler(std::string message, std::string nick); + void logic(); + + void addMember(std::string name, std::string guildName, int access); + void removeMember(std::string name); + bool inGuild(std::string name); + void addMessage(std::string msg, std::string guildName, std::string sender, int p); + void updateOnline(std::set<std::string> &onlinePlayers); + int countOnline(std::string guildName); + int accessLevel(std::string name); + void saveMembers(); + void loadMembers(); + void whisper(std::string name, std::string msg, int priority); + void showOptions(); + std::string colorText(std::string text); + + + private: + std::string getMOTD(std::string guild); + void testMsg(); + void debugMsg(std::string msg); + member findByName(std::string name); + void clearMembers(); + bool hasPermission(std::string user, std::string player, int changeLevel); +}; + + |