xdecor - crash avoiting: Added further sanity check and update formspecs
* backporting https://notabug.org/minenux/minetest-mod-xdecor/commit/3e0ca1304d454297739d6f8> * backporting https://github.com/0siribix/xdecor/commit/c7e756afc7d246817209c415c6e9a9dda533> * backporting https://github.com/0siribix/xdecor/commit/3823fce1e05a9472e7cf798c8346ba95ead1>
This commit is contained in:
parent
6c8dfbcaca
commit
9f62ed07c7
@ -108,20 +108,23 @@ function enchanting.fields(pos, _, fields, sender)
|
|||||||
local tool = inv:get_stack("tool", 1)
|
local tool = inv:get_stack("tool", 1)
|
||||||
local mese = inv:get_stack("mese", 1)
|
local mese = inv:get_stack("mese", 1)
|
||||||
local orig_wear = tool:get_wear()
|
local orig_wear = tool:get_wear()
|
||||||
local mod, name = tool:get_name():match("(.*):(.*)")
|
if tool and tool:get_name() and allowed_tools[tool:get_name()] then
|
||||||
local enchanted_tool = (mod or "") .. ":enchanted_" .. (name or "") .. "_" .. next(fields)
|
local mod, name = tool:get_name():match("(.*):(.*)")
|
||||||
|
local enchanted_tool = (mod or "") .. ":enchanted_" .. (name or "") .. "_" .. next(fields)
|
||||||
|
|
||||||
if mese:get_count() >= mese_cost and reg_tools[enchanted_tool] then
|
if mese:get_count() >= mese_cost and reg_tools[enchanted_tool] then
|
||||||
minetest.sound_play("xdecor_enchanting", {
|
minetest.sound_play("xdecor_enchanting", {
|
||||||
to_player = sender:get_player_name(),
|
to_player = sender:get_player_name(),
|
||||||
gain = 0.8
|
gain = 0.8
|
||||||
})
|
})
|
||||||
|
|
||||||
tool:replace(enchanted_tool)
|
tool:replace(enchanted_tool)
|
||||||
tool:add_wear(orig_wear)
|
tool:add_wear(orig_wear)
|
||||||
mese:take_item(mese_cost)
|
mese:take_item(mese_cost)
|
||||||
inv:set_stack("mese", 1, mese)
|
inv:set_stack("mese", 1, mese)
|
||||||
inv:set_stack("tool", 1, tool)
|
inv:set_stack("tool", 1, tool)
|
||||||
|
end
|
||||||
|
enchanting.formspec(pos)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user