From e960050620b6fea70897453274b04846bf661d3a Mon Sep 17 00:00:00 2001 From: darkrose Date: Tue, 12 Apr 2016 18:13:31 +1000 Subject: [PATCH] spawnguard --- src/server.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/server.cpp b/src/server.cpp index bb370b3..fc58781 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2450,6 +2450,18 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) v3f pp = player->getPosition(); if (pp.getDistanceFrom(p_underf) > 8.0*BS) return; + if ( + (getPlayerPrivs(player) & PRIV_SERVER) == 0 + && g_settings->exists("static_spawnpoint") + && g_settings->exists("spawnguard_radius") + ) { + v3f sp = g_settings->getV3F("static_spawnpoint"); + f32 sg = g_settings->getFloat("spawnguard_radius"); + sp *= BS; + sg *= BS; + if (pp.getDistanceFrom(sp) <= sg) + return; + } } InventoryItem *wielditem = (InventoryItem*)player->getWieldItem();