int LUAClient::Item(lua_State *pState) { // 1 => clients table // 2 => parameter if (!lua_isstring(pState, 2)) return 0; Invoker* pInvoker = Script::GetCollector<Invoker>(pState,1); if (!pInvoker) return 0; Client* pClient(NULL); UInt32 size = lua_objlen(pState, 2); const char* id = lua_tostring(pState, 2); if (size == ID_SIZE) pClient = pInvoker->clients(id); else if (size == (ID_SIZE * 2)) pClient = pInvoker->clients(Util::UnformatHex((UInt8*)id, size)); if (!pClient) { string name(id, size); pClient = pInvoker->clients(name); // try by name! } SCRIPT_BEGIN(pState) if (pClient) SCRIPT_ADD_OBJECT(Client, LUAClient,*pClient) SCRIPT_END return pClient ? 1 : 0; }