From 338d645fcfa1f07a82c4940aa09a6fb265ff608f Mon Sep 17 00:00:00 2001
From: red-001 <red-001@outlook.ie>
Date: Thu, 15 Feb 2018 20:18:54 +0000
Subject: Add `on_auth_fail` callback (#7039)

Called when a client fails to supply the correct password for the account it's attempting to login as.
---
 src/script/cpp_api/s_player.cpp | 11 +++++++++++
 src/script/cpp_api/s_player.h   |  1 +
 2 files changed, 12 insertions(+)

(limited to 'src/script')

diff --git a/src/script/cpp_api/s_player.cpp b/src/script/cpp_api/s_player.cpp
index f3c316650..578298e24 100644
--- a/src/script/cpp_api/s_player.cpp
+++ b/src/script/cpp_api/s_player.cpp
@@ -206,3 +206,14 @@ void ScriptApiPlayer::on_playerReceiveFields(ServerActiveObject *player,
 	runCallbacks(3, RUN_CALLBACKS_MODE_OR_SC);
 }
 
+void ScriptApiPlayer::on_auth_failure(const std::string &name, const std::string &ip)
+{
+	SCRIPTAPI_PRECHECKHEADER
+
+	// Get core.registered_on_auth_failure
+	lua_getglobal(L, "core");
+	lua_getfield(L, -1, "registered_on_auth_fail");
+	lua_pushstring(L, name.c_str());
+	lua_pushstring(L, ip.c_str());
+	runCallbacks(2, RUN_CALLBACKS_MODE_FIRST);
+}
diff --git a/src/script/cpp_api/s_player.h b/src/script/cpp_api/s_player.h
index 6b752eb69..562805695 100644
--- a/src/script/cpp_api/s_player.h
+++ b/src/script/cpp_api/s_player.h
@@ -45,4 +45,5 @@ public:
 	s16 on_player_hpchange(ServerActiveObject *player, s16 hp_change);
 	void on_playerReceiveFields(ServerActiveObject *player,
 			const std::string &formname, const StringMap &fields);
+	void on_auth_failure(const std::string &name, const std::string &ip);
 };
-- 
cgit v1.2.3