mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-15 01:59:09 +00:00
feat(Core/Scripts): Optimize AccountScript need#18672 (#18697)
Add files via upload
This commit is contained in:
@@ -21,90 +21,58 @@
|
||||
|
||||
void ScriptMgr::OnAccountLogin(uint32 accountId)
|
||||
{
|
||||
ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
script->OnAccountLogin(accountId);
|
||||
});
|
||||
CALL_ENABLED_HOOKS(AccountScript, ACCOUNTHOOK_ON_ACCOUNT_LOGIN, script->OnAccountLogin(accountId));
|
||||
}
|
||||
|
||||
void ScriptMgr::OnBeforeAccountDelete(uint32 accountId)
|
||||
{
|
||||
ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
script->OnBeforeAccountDelete(accountId);
|
||||
});
|
||||
CALL_ENABLED_HOOKS(AccountScript, ACCOUNTHOOK_ON_BEFORE_ACCOUNT_DELETE, script->OnBeforeAccountDelete(accountId));
|
||||
}
|
||||
|
||||
//void ScriptMgr::OnAccountLogout(uint32 accountId)
|
||||
//{
|
||||
// ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
// {
|
||||
// script->OnAccountLogout(accountId);
|
||||
// });
|
||||
//}
|
||||
|
||||
void ScriptMgr::OnLastIpUpdate(uint32 accountId, std::string ip)
|
||||
{
|
||||
ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
script->OnLastIpUpdate(accountId, ip);
|
||||
});
|
||||
CALL_ENABLED_HOOKS(AccountScript, ACCOUNTHOOK_ON_LAST_IP_UPDATE, script->OnLastIpUpdate(accountId, ip));
|
||||
}
|
||||
|
||||
void ScriptMgr::OnFailedAccountLogin(uint32 accountId)
|
||||
{
|
||||
ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
script->OnFailedAccountLogin(accountId);
|
||||
});
|
||||
CALL_ENABLED_HOOKS(AccountScript, ACCOUNTHOOK_ON_FAILED_ACCOUNT_LOGIN, script->OnFailedAccountLogin(accountId));
|
||||
}
|
||||
|
||||
void ScriptMgr::OnEmailChange(uint32 accountId)
|
||||
{
|
||||
ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
script->OnEmailChange(accountId);
|
||||
});
|
||||
CALL_ENABLED_HOOKS(AccountScript, ACCOUNTHOOK_ON_EMAIL_CHANGE, script->OnEmailChange(accountId));
|
||||
}
|
||||
|
||||
void ScriptMgr::OnFailedEmailChange(uint32 accountId)
|
||||
{
|
||||
ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
script->OnFailedEmailChange(accountId);
|
||||
});
|
||||
CALL_ENABLED_HOOKS(AccountScript, ACCOUNTHOOK_ON_FAILED_EMAIL_CHANGE, script->OnFailedEmailChange(accountId));
|
||||
}
|
||||
|
||||
void ScriptMgr::OnPasswordChange(uint32 accountId)
|
||||
{
|
||||
ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
script->OnPasswordChange(accountId);
|
||||
});
|
||||
CALL_ENABLED_HOOKS(AccountScript, ACCOUNTHOOK_ON_PASSWORD_CHANGE, script->OnPasswordChange(accountId));
|
||||
}
|
||||
|
||||
void ScriptMgr::OnFailedPasswordChange(uint32 accountId)
|
||||
{
|
||||
ExecuteScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
script->OnFailedPasswordChange(accountId);
|
||||
});
|
||||
CALL_ENABLED_HOOKS(AccountScript, ACCOUNTHOOK_ON_FAILED_PASSWORD_CHANGE, script->OnFailedPasswordChange(accountId));
|
||||
}
|
||||
|
||||
bool ScriptMgr::CanAccountCreateCharacter(uint32 accountId, uint8 charRace, uint8 charClass)
|
||||
{
|
||||
auto ret = IsValidBoolScript<AccountScript>([&](AccountScript* script)
|
||||
{
|
||||
return !script->CanAccountCreateCharacter(accountId, charRace, charClass);
|
||||
});
|
||||
|
||||
return ReturnValidBool(ret);
|
||||
CALL_ENABLED_BOOLEAN_HOOKS(AccountScript, ACCOUNTHOOK_CAN_ACCOUNT_CREATE_CHARACTER, !script->CanAccountCreateCharacter(accountId, charRace, charClass));
|
||||
}
|
||||
|
||||
AccountScript::AccountScript(char const* name) :
|
||||
ScriptObject(name)
|
||||
AccountScript::AccountScript(char const* name, std::vector<uint16> enabledHooks) :
|
||||
ScriptObject(name, ACCOUNTHOOK_END)
|
||||
{
|
||||
ScriptRegistry<AccountScript>::AddScript(this);
|
||||
// If empty - enable all available hooks.
|
||||
if (enabledHooks.empty())
|
||||
for (uint16 i = 0; i < ACCOUNTHOOK_END; i++)
|
||||
enabledHooks.emplace_back(i);
|
||||
|
||||
ScriptRegistry<AccountScript>::AddScript(this, std::move(enabledHooks));
|
||||
}
|
||||
|
||||
template class AC_GAME_API ScriptRegistry<AccountScript>;
|
||||
|
||||
Reference in New Issue
Block a user