int CLuaFunctionDefs::GetAccountsBySerial ( lua_State* luaVM ) { // table getAccountsBySerial ( string serial ) SString strSerial; CScriptArgReader argStream ( luaVM ); argStream.ReadString ( strSerial ); if ( !argStream.HasErrors () ) { lua_newtable ( luaVM ); std::vector<CAccount*> accounts; CStaticFunctionDefinitions::GetAccountsBySerial ( strSerial, accounts ); for ( unsigned int i = 0; i < accounts.size (); ++i ) { lua_pushnumber ( luaVM, i + 1 ); lua_pushaccount ( luaVM, accounts[i] ); lua_settable ( luaVM, -3 ); } return 1; } else m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () ); lua_pushboolean ( luaVM, false ); return 1; }
int CLuaFunctionDefs::GetAccount ( lua_State* luaVM ) { // account getAccount ( string username, [ string password ] ) SString strName; SString strPassword; bool bUsePassword = false; CScriptArgReader argStream ( luaVM ); argStream.ReadString ( strName ); if ( !argStream.NextIsNil () && !argStream.NextIsNone () ) { argStream.ReadString ( strPassword ); bUsePassword = true; } if ( !argStream.HasErrors () ) { CAccount* pAccount = CStaticFunctionDefinitions::GetAccount ( strName, bUsePassword ? strPassword.c_str () : NULL ); if ( pAccount ) { lua_pushaccount ( luaVM, pAccount ); return 1; } } else m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () ); lua_pushboolean ( luaVM, false ); return 1; }
int CLuaAccountDefs::AddAccount(lua_State* luaVM) { // account addAccount ( string name, string pass[, bool allowCaseVariations = false ] ) SString strName; SString strPassword; bool bAllowCaseVariations; CScriptArgReader argStream(luaVM); argStream.ReadString(strName); argStream.ReadString(strPassword); argStream.ReadBool(bAllowCaseVariations, false); SString strError; if (!argStream.HasErrors()) { CAccount* pAccount; if ((pAccount = CStaticFunctionDefinitions::AddAccount(strName, strPassword, bAllowCaseVariations, strError))) { lua_pushaccount(luaVM, pAccount); return 1; } } if (argStream.HasErrors()) m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage()); lua_pushboolean(luaVM, false); lua_pushstring(luaVM, strError); return 2; }
int CLuaAccountDefs::GetAccountByID(lua_State* luaVM) { // account getAccountByID ( int ID ) int ID; CScriptArgReader argStream(luaVM); argStream.ReadNumber(ID); if (!argStream.HasErrors()) { CAccount* account; if (CStaticFunctionDefinitions::GetAccountByID(ID, account) && account) { lua_pushaccount(luaVM, account); return 1; } } else m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage()); lua_pushboolean(luaVM, false); return 1; }
void lua_pushuserdata ( lua_State* luaVM, void* pData ) { if ( CElement* pEntity = UserDataCast < CElement > ( ( CElement* ) NULL, pData, NULL ) ) return lua_pushelement ( luaVM, pEntity ); if ( CPlayer* pEntity = UserDataCast < CPlayer > ( ( CPlayer* ) NULL, pData, NULL ) ) return lua_pushelement ( luaVM, pEntity ); else if ( CResource* pResource = UserDataCast < CResource > ( ( CResource* ) NULL, pData, NULL ) ) return lua_pushresource ( luaVM, pResource ); else if ( CXMLNode* pNode = UserDataCast < CXMLNode > ( ( CXMLNode* ) NULL, pData, NULL ) ) return lua_pushxmlnode ( luaVM, pNode ); else if ( CLuaTimer* pTimer = UserDataCast < CLuaTimer > ( ( CLuaTimer* ) NULL, pData, luaVM ) ) return lua_pushtimer ( luaVM, pTimer ); else if ( CLuaVector2D* pVector = UserDataCast < CLuaVector2D > ( (CLuaVector2D*) NULL, pData, luaVM ) ) return lua_pushvector ( luaVM, *pVector ); else if ( CLuaVector3D* pVector = UserDataCast < CLuaVector3D > ( (CLuaVector3D*) NULL, pData, luaVM ) ) return lua_pushvector ( luaVM, *pVector ); else if ( CLuaVector4D* pVector = UserDataCast < CLuaVector4D > ( (CLuaVector4D*) NULL, pData, luaVM ) ) return lua_pushvector ( luaVM, *pVector ); else if ( CLuaMatrix* pMatrix = UserDataCast < CLuaMatrix > ( (CLuaMatrix*) NULL, pData, luaVM ) ) return lua_pushmatrix ( luaVM, *pMatrix ); else if ( CAccount* pAccount = UserDataCast < CAccount > ( (CAccount*) NULL, pData, luaVM ) ) return lua_pushaccount ( luaVM, pAccount ); else if ( CAccessControlList* pACL = UserDataCast < CAccessControlList > ( (CAccessControlList*) NULL, pData, luaVM ) ) return lua_pushacl ( luaVM, pACL ); else if ( CAccessControlListGroup* pACLGroup = UserDataCast < CAccessControlListGroup > ( (CAccessControlListGroup*) NULL, pData, luaVM ) ) return lua_pushaclgroup ( luaVM, pACLGroup ); else if ( CBan* pBan = UserDataCast < CBan > ( (CBan*) NULL, pData, luaVM ) ) return lua_pushban ( luaVM, pBan ); else if ( CTextDisplay* pTextDisplay = UserDataCast < CTextDisplay > ( (CTextDisplay*) NULL, pData, luaVM ) ) return lua_pushtextdisplay ( luaVM, pTextDisplay ); else if ( CTextItem* pTextItem = UserDataCast < CTextItem > ( (CTextItem*) NULL, pData, luaVM ) ) return lua_pushtextitem ( luaVM, pTextItem ); else if ( CDbJobData* pQuery = UserDataCast < CDbJobData > ( (CDbJobData*) NULL, pData, luaVM ) ) return lua_pushquery ( luaVM, pQuery ); lua_pushobject ( luaVM, NULL, pData ); }
int CLuaFunctionDefs::AddAccount ( lua_State* luaVM ) { // account addAccount ( string name, string pass[, bool allowCaseVariations = false ] ) SString strName; SString strPassword; bool bAllowCaseVariations; CScriptArgReader argStream ( luaVM ); argStream.ReadString ( strName ); argStream.ReadString ( strPassword ); argStream.ReadBool ( bAllowCaseVariations, false ); if ( !argStream.HasErrors () ) { if ( !bAllowCaseVariations ) { // Message for new behaviour SString strCaseVariation = m_pAccountManager->GetActiveCaseVariation( strName ); if ( !strCaseVariation.empty() ) argStream.SetCustomError ( SString( "Already an account using a case variation of that name ('%s')", *strCaseVariation ) ); } if ( !argStream.HasErrors () ) { CAccount* pAccount; if ( ( pAccount = CStaticFunctionDefinitions::AddAccount ( strName, strPassword ) ) ) { lua_pushaccount ( luaVM, pAccount ); return 1; } } } if ( argStream.HasErrors () ) m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () ); lua_pushboolean ( luaVM, false ); return 1; }