summaryrefslogtreecommitdiff
path: root/plugins/MirLua/src/m_chat.cpp
blob: dbecbc774e82039632713604465985ecfc5cc651 (plain)
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
#include "stdafx.h"

static luaL_Reg chatApi[] =
{
	{ NULL, NULL }
};

template <>
int MT<GCEVENT>::Index(lua_State *L, GCEVENT *gce)
{
	const char *key = lua_tostring(L, 2);

	if (mir_strcmp(key, "Destination") == 0)
		MT<GCDEST>::Set(L, gce->pDest);
	else
		lua_pushnil(L);

	return 1;
}

LUAMOD_API int luaopen_m_chat(lua_State *L)
{
	luaL_newlib(L, chatApi);

	MT<GCDEST>(L, "GCDEST")
		.Field(&GCDEST::pszModule, "Module", LUA_TSTRINGA)
		.Field(&GCDEST::ptszID, "Id", LUA_TSTRINGW)
		.Field(&GCDEST::iType, "Type", LUA_TINTEGER);

	MT<GCEVENT>(L, "GCEVENT")
		.Field(&GCEVENT::time, "Timestamp", LUA_TINTEGER)
		.Field(&GCEVENT::time, "IsMe", LUA_TINTEGER)
		.Field(&GCEVENT::time, "Flags", LUA_TINTEGER)
		.Field(&GCEVENT::ptszNick, "Nick", LUA_TSTRINGW)
		.Field(&GCEVENT::ptszUID, "Uid", LUA_TSTRINGW)
		.Field(&GCEVENT::ptszStatus, "Status", LUA_TSTRINGW)
		.Field(&GCEVENT::ptszText, "Text", LUA_TSTRINGW);

	return 1;
}