Fixed a crash

Crash when the cape field is not set.
It is not set when joining an old world with the capes PR applied.
Also trimmed trailing.
This commit is contained in:
the-real-herowl 2024-01-21 04:03:50 +01:00 committed by the-real-herowl
parent d3c591915f
commit d1ac98a019
1 changed files with 6 additions and 4 deletions

View File

@ -163,6 +163,8 @@ function mcl_skins.update_player_skin(player)
local skin = mcl_skins.player_skins[player] local skin = mcl_skins.player_skins[player]
local skinval = mcl_skins.compile_skin(skin) local skinval = mcl_skins.compile_skin(skin)
if not skin.cape then skin.cape = "blank.png" end
if player:get_inventory():get_stack("armor", 3):get_name() == "mcl_armor:elytra" then if player:get_inventory():get_stack("armor", 3):get_name() == "mcl_armor:elytra" then
skinval = skinval:gsub("%^" .. skin.cape, "") skinval = skinval:gsub("%^" .. skin.cape, "")
-- don't render the "normal" cape on players while wearing the elytra. -- don't render the "normal" cape on players while wearing the elytra.
@ -283,7 +285,7 @@ function mcl_skins.show_formspec(player, active_tab, page_num)
local cape_tab = active_tab == "cape" local cape_tab = active_tab == "cape"
if active_tab == "skin" then if active_tab == "skin" then
local page_start = (page_num - 1) * 8 - 1 local page_start = (page_num - 1) * 8 - 1
local page_end = math.min(page_start + 8 - 1, #mcl_skins.simple_skins) local page_end = math.min(page_start + 8 - 1, #mcl_skins.simple_skins)
@ -351,7 +353,7 @@ function mcl_skins.show_formspec(player, active_tab, page_num)
end end
local slot_offset = 0 local slot_offset = 0
if page_num == 1 then if page_num == 1 then
formspec = formspec .. formspec = formspec ..
"label[6,3;" .. S("(None)") .. "]".. "label[6,3;" .. S("(None)") .. "]"..
@ -486,7 +488,7 @@ function mcl_skins.show_formspec(player, active_tab, page_num)
end end
if page_num > 1 then if page_num > 1 then
if cape_tab then if cape_tab then
formspec = formspec .. formspec = formspec ..
"image_button[4.5,0.7;1,1;mcl_skins_arrow.png^[transformFX;previous_page;]" "image_button[4.5,0.7;1,1;mcl_skins_arrow.png^[transformFX;previous_page;]"
else else
@ -723,4 +725,4 @@ if not minetest.settings:get_bool("mcl_keepInventory", false) then
minetest.register_on_respawnplayer(function(player) minetest.register_on_respawnplayer(function(player)
mcl_skins.update_player_skin(player) -- ensures players have their cape again after dying with an elytra mcl_skins.update_player_skin(player) -- ensures players have their cape again after dying with an elytra
end) end)
end end