summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorkaeza <kaeza@users.sf.net>2013-12-12 04:51:35 -0200
committerShadowNinja <shadowninja@minetest.net>2013-12-12 13:42:14 -0500
commit33de69a173a3646d8f5b9bf91b3e48d76cd40ae6 (patch)
treec5eeb56ed20b435e9fabf52f80bdee893e580df1 /src/server.cpp
parent76036abdb0d9cb2c971e5a69331c77872d38c56f (diff)
downloadminetest-33de69a173a3646d8f5b9bf91b3e48d76cd40ae6.tar.gz
minetest-33de69a173a3646d8f5b9bf91b3e48d76cd40ae6.tar.bz2
minetest-33de69a173a3646d8f5b9bf91b3e48d76cd40ae6.zip
Add 'on_prejoinplayer' callback
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 13b59e7f5..2c38c66d3 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1970,6 +1970,19 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
return;
}
+ {
+ std::string reason;
+ if(m_script->on_prejoinplayer(playername, addr_s, reason))
+ {
+ actionstream<<"Server: Player with the name \""<<playername<<"\" "
+ <<"tried to connect from "<<addr_s<<" "
+ <<"but it was disallowed for the following reason: "
+ <<reason<<std::endl;
+ DenyAccess(peer_id, narrow_to_wide(reason.c_str()));
+ return;
+ }
+ }
+
infostream<<"Server: New connection: \""<<playername<<"\" from "
<<addr_s<<" (peer_id="<<peer_id<<")"<<std::endl;