summaryrefslogtreecommitdiff
path: root/src/automation.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/automation.h')
-rw-r--r--src/automation.h77
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);
+};
+
+