blob: 0f563fe28f8a1677f00c7380064aa29476104e32 (
plain) (
tree)
|
|
/*
*
* 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);
};
|