1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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);
};
|