From f905d48724534812202d21fe7540b06d3f02ba75 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Sat, 1 Aug 2015 23:55:44 +0200 Subject: [PATCH] Prevent crashes - Avoid crashing when some variables are oddly nil --- mods/pclasses/api.lua | 8 ++++---- mods/pclasses/inventory.lua | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mods/pclasses/api.lua b/mods/pclasses/api.lua index 41e3aa8c..d9023374 100755 --- a/mods/pclasses/api.lua +++ b/mods/pclasses/api.lua @@ -95,7 +95,7 @@ end minetest.register_privilege("class_shifter", "Able to shift between classes") -minetest.register_chatcommand("shift_class", { +minetest.register_chatcommand("switch_class", { args = "", privs = {class_shifter = true}, func = function(name, param) @@ -125,13 +125,13 @@ local function tick() if pclasses.data.reserved_items[stack:get_name()] then if not pclasses.api.util.can_have_item(name, stack:get_name()) then inv:set_stack("main", i, "") - local grave_inv = minetest.get_inventory({type = "detached", name = name .. "_graveyard"}) - if grave_inv:room_for_item("graveyard", stack) then + local grave_inv = pclasses.api.create_graveyard_inventory(ref) + if grave_inv and grave_inv:room_for_item("graveyard", stack) then grave_inv:add_item("graveyard", stack) inv:add_item("graveyard", stack) -- ^ Because add_item doesn't trigger on_put, nonsense else - minetest.add_item(pos, stack) + minetest.add_item(ref:getpos(), stack) end end end diff --git a/mods/pclasses/inventory.lua b/mods/pclasses/inventory.lua index 3f6f5883..764a40e2 100755 --- a/mods/pclasses/inventory.lua +++ b/mods/pclasses/inventory.lua @@ -53,6 +53,8 @@ function pclasses.api.vacuum_graveyard(player) local grave_inv = minetest.get_inventory({type = "detached", name = pname .. "_graveyard"}) local player_inv = minetest.get_inventory({type = "player", name = pname}) + if not grave_inv then return end + for i = 1,7*8 do local stack = grave_inv:get_stack("graveyard", i) if pclasses.api.util.can_have_item(pname, stack:get_name()) then