forked from metin2/client
46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
|
#pragma once
|
||
|
|
||
|
class CPythonMessenger : public CSingleton<CPythonMessenger>
|
||
|
{
|
||
|
public:
|
||
|
typedef std::set<std::string> TFriendNameMap;
|
||
|
typedef std::map<std::string, BYTE> TGuildMemberStateMap;
|
||
|
|
||
|
enum EMessengerGroupIndex
|
||
|
{
|
||
|
MESSENGER_GRUOP_INDEX_FRIEND,
|
||
|
MESSENGER_GRUOP_INDEX_GUILD,
|
||
|
};
|
||
|
|
||
|
public:
|
||
|
CPythonMessenger();
|
||
|
virtual ~CPythonMessenger();
|
||
|
|
||
|
void Destroy();
|
||
|
|
||
|
// Friend
|
||
|
void RemoveFriend(const char * c_szKey);
|
||
|
void OnFriendLogin(const char * c_szKey);
|
||
|
void OnFriendLogout(const char * c_szKey);
|
||
|
void SetMobile(const char * c_szKey, BYTE byState);
|
||
|
BOOL IsFriendByKey(const char * c_szKey);
|
||
|
BOOL IsFriendByName(const char * c_szName);
|
||
|
|
||
|
// Guild
|
||
|
void AppendGuildMember(const char * c_szName);
|
||
|
void RemoveGuildMember(const char * c_szName);
|
||
|
void RemoveAllGuildMember();
|
||
|
void LoginGuildMember(const char * c_szName);
|
||
|
void LogoutGuildMember(const char * c_szName);
|
||
|
void RefreshGuildMember();
|
||
|
|
||
|
void SetMessengerHandler(PyObject* poHandler);
|
||
|
|
||
|
protected:
|
||
|
TFriendNameMap m_FriendNameMap;
|
||
|
TGuildMemberStateMap m_GuildMemberStateMap;
|
||
|
|
||
|
private:
|
||
|
PyObject * m_poMessengerHandler;
|
||
|
};
|