From b5918760fb52d7cbaf459012d64251b012923c1e Mon Sep 17 00:00:00 2001
From: Kahrl <kahrl@gmx.net>
Date: Sun, 16 Jun 2013 17:01:21 +0200
Subject: [PATCH] Tweak IDropAction restriction handling in server.cpp

---
 src/server.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/server.cpp b/src/server.cpp
index 4268bb809..7963aeaae 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -2401,6 +2401,18 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 
 			setInventoryModified(da->from_inv);
 
+			/*
+				Disable dropping items out of craftpreview
+			*/
+			if(da->from_list == "craftpreview")
+			{
+				infostream<<"Ignoring IDropAction from "
+						<<(da->from_inv.dump())<<":"<<da->from_list
+						<<" because src is "<<da->from_list<<std::endl;
+				delete a;
+				return;
+			}
+
 			// Disallow dropping items if not allowed to interact
 			if(!checkPriv(player->getName(), "interact"))
 			{
-- 
GitLab