1
0
mirror of https://github.com/minetest/minetest_game.git synced 2024-11-13 05:20:18 +01:00

Books: Limit the size of books

Really large books just waste hard drive space and the engine is not designed to
handle that much data in item metadata, this can cause strange things to happen.
This commit is contained in:
red-001 2017-06-14 18:57:05 +01:00 committed by sfan5
parent 706844e8bf
commit 26606b0520

View File

@ -75,6 +75,7 @@ local function book_on_use(itemstack, user)
return itemstack
end
local max_text_size = 10000
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname ~= "default:book" then return end
local inv = player:get_inventory()
@ -103,8 +104,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
data.title = fields.title
data.owner = player:get_player_name()
data.description = "\""..fields.title.."\" by "..data.owner
data.text = fields.text
data.text_len = #data.text
data.text = fields.text:sub(1, max_text_size)
data.page = 1
data.page_max = math.ceil((#data.text:gsub("[^\n]", "") + 1) / lpp)