Books: Limit the size of books
authorred-001 <red-001@outlook.ie>
Wed, 14 Jun 2017 17:57:05 +0000 (18:57 +0100)
committersfan5 <sfan5@live.de>
Sun, 19 Nov 2017 21:52:00 +0000 (22:52 +0100)
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.

mods/default/craftitems.lua

index 1500a3461a0b2cf6e52478465635c63d5a0b4194..eda52f51119266d69330901afaf4f6ff24a9cb48 100644 (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)