diff options
author | Hello=) <hello@themanaworld.org> | 2024-03-29 04:23:18 +0300 |
---|---|---|
committer | Hello=) <hello@themanaworld.org> | 2024-03-29 04:23:18 +0300 |
commit | 08cd08587be5c8d2ce42ae417098c524f683c6ad (patch) | |
tree | 727aa239372a77e9ca3d72fe761940bb49e8d2d8 /automation.h | |
parent | db0b1da0060f5eb4b2af040c22ea9373d36970af (diff) | |
download | guildbot-08cd08587be5c8d2ce42ae417098c524f683c6ad.tar.gz guildbot-08cd08587be5c8d2ce42ae417098c524f683c6ad.tar.bz2 guildbot-08cd08587be5c8d2ce42ae417098c524f683c6ad.tar.xz guildbot-08cd08587be5c8d2ce42ae417098c524f683c6ad.zip |
Move actual top level from src/ to top: just one single dir is pointless.
Reported-By: NetSysFire
Diffstat (limited to 'automation.h')
-rw-r--r-- | automation.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/automation.h b/automation.h new file mode 100644 index 0000000..0f563fe --- /dev/null +++ b/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); +}; + + |