Add formspec escape, apply proper format strings

This commit is contained in:
Wuzzy2 2019-02-11 00:18:10 +01:00 committed by Jean-Patrick Guerrero
parent aac3e3f693
commit c4272d8d24
1 changed files with 22 additions and 21 deletions

View File

@ -13,6 +13,7 @@ local searches = {}
local progressive_mode = mt.settings:get_bool("craftguide_progressive_mode") local progressive_mode = mt.settings:get_bool("craftguide_progressive_mode")
local sfinv_only = mt.settings:get_bool("craftguide_sfinv_only") and rawget(_G, "sfinv") local sfinv_only = mt.settings:get_bool("craftguide_sfinv_only") and rawget(_G, "sfinv")
local fs_esc = mt.formspec_escape
local reg_items = mt.registered_items local reg_items = mt.registered_items
local get_result = mt.get_craft_result local get_result = mt.get_craft_result
local show_formspec = mt.show_formspec local show_formspec = mt.show_formspec
@ -293,22 +294,22 @@ local function get_tooltip(item, groups, cooktime, burntime)
end end
groupstr = concat(groupstr, ", ") groupstr = concat(groupstr, ", ")
tooltip = S("Any item belonging to the group(s):") .. " " .. groupstr tooltip = S("Any item belonging to the group(s): @1", groupstr)
else else
tooltip = reg_items[item].description tooltip = reg_items[item].description
end end
if cooktime then if cooktime then
tooltip = tooltip .. "\n" .. S("Cooking time:") .. " " .. tooltip = tooltip .. "\n" .. S("Cooking time: @1",
mt.colorize("yellow", cooktime) mt.colorize("yellow", cooktime))
end end
if burntime then if burntime then
tooltip = tooltip .. "\n" .. S("Burning time:") .. " " .. tooltip = tooltip .. "\n" .. S("Burning time: @1",
mt.colorize("yellow", burntime) mt.colorize("yellow", burntime))
end end
return "tooltip[" .. item .. ";" .. tooltip .. "]" return "tooltip[" .. item .. ";" .. fs_esc(tooltip) .. "]"
end end
local function get_recipe_fs(data, iY) local function get_recipe_fs(data, iY)
@ -332,7 +333,7 @@ local function get_recipe_fs(data, iY)
fs[#fs + 1] = fmt(fmt_label, fs[#fs + 1] = fmt(fmt_label,
(data.iX / 2) - 2, (data.iX / 2) - 2,
iY + 2.2, iY + 2.2,
S("Recipe is too big to be displayed (@1x@2)", width, rows)) fs_esc(S("Recipe is too big to be displayed (@1x@2)", width, rows)))
return concat(fs) return concat(fs)
end end
@ -368,7 +369,7 @@ local function get_recipe_fs(data, iY)
btn_size, btn_size,
item, item,
item:match("%S*"), item:match("%S*"),
label) fs_esc(label))
local burntime = fuel_cache[item] local burntime = fuel_cache[item]
@ -402,7 +403,7 @@ local function get_recipe_fs(data, iY)
iY + (sfinv_only and 2.2 or 1.7), iY + (sfinv_only and 2.2 or 1.7),
0.5, 0.5,
0.5, 0.5,
tooltip) fs_esc(tooltip))
end end
local arrow_X = rightest + (s_btn_size or 1.1) local arrow_X = rightest + (s_btn_size or 1.1)
@ -432,7 +433,7 @@ local function get_recipe_fs(data, iY)
1.1, 1.1,
1.1, 1.1,
recipe.output, recipe.output,
output_name) fs_esc(output_name))
if burntime then if burntime then
fs[#fs + 1] = get_tooltip(output_name, nil, nil, burntime) fs[#fs + 1] = get_tooltip(output_name, nil, nil, burntime)
@ -459,9 +460,9 @@ local function get_recipe_fs(data, iY)
2.2, 2.2,
1, 1,
"alternate", "alternate",
data.show_usages and S("Usage") or S("Recipe"), data.show_usages and fs_esc(S("Usage")) or fs_esc(S("Recipe")),
data.rnum, data.rnum,
S("of"), fs_esc(S("of")),
#data.recipes) #data.recipes)
return concat(fs) return concat(fs)
@ -483,8 +484,8 @@ local function make_formspec(name)
background[1,1;1,1;craftguide_bg.png;true] background[1,1;1,1;craftguide_bg.png;true]
]] ]]
fs[#fs + 1] = "tooltip[size_inc;" .. S("Increase window size") .. "]" fs[#fs + 1] = "tooltip[size_inc;" .. fs_esc(S("Increase window size")) .. "]"
fs[#fs + 1] = "tooltip[size_dec;" .. S("Decrease window size") .. "]" fs[#fs + 1] = "tooltip[size_dec;" .. fs_esc(S("Decrease window size")) .. "]"
fs[#fs + 1] = "image_button[" .. (data.iX * 0.47) .. fs[#fs + 1] = "image_button[" .. (data.iX * 0.47) ..
",0.12;0.8,0.8;craftguide_zoomin_icon.png;size_inc;]" ",0.12;0.8,0.8;craftguide_zoomin_icon.png;size_inc;]"
@ -498,10 +499,10 @@ local function make_formspec(name)
field_close_on_enter[filter;false] field_close_on_enter[filter;false]
]] ]]
fs[#fs + 1] = "tooltip[search;" .. S("Search") .. "]" fs[#fs + 1] = "tooltip[search;" .. fs_esc(S("Search")) .. "]"
fs[#fs + 1] = "tooltip[clear;" .. S("Reset") .. "]" fs[#fs + 1] = "tooltip[clear;" .. fs_esc(S("Reset")) .. "]"
fs[#fs + 1] = "tooltip[prev;" .. S("Previous page") .. "]" fs[#fs + 1] = "tooltip[prev;" .. fs_esc(S("Previous page")) .. "]"
fs[#fs + 1] = "tooltip[next;" .. S("Next page") .. "]" fs[#fs + 1] = "tooltip[next;" .. fs_esc(S("Next page")) .. "]"
fs[#fs + 1] = "image_button[" .. (data.iX - (sfinv_only and 2.6 or 3.1)) .. fs[#fs + 1] = "image_button[" .. (data.iX - (sfinv_only and 2.6 or 3.1)) ..
",0.12;0.8,0.8;craftguide_prev_icon.png;prev;]" ",0.12;0.8,0.8;craftguide_prev_icon.png;prev;]"
@ -515,13 +516,13 @@ local function make_formspec(name)
(sfinv_only and 0.7 or 1.2) - (data.iX >= 11 and 0.08 or 0)) .. (sfinv_only and 0.7 or 1.2) - (data.iX >= 11 and 0.08 or 0)) ..
",0.12;0.8,0.8;craftguide_next_icon.png;next;]" ",0.12;0.8,0.8;craftguide_next_icon.png;next;]"
fs[#fs + 1] = "field[0.3,0.32;2.5,1;filter;;" .. mt.formspec_escape(data.filter) .. "]" fs[#fs + 1] = "field[0.3,0.32;2.5,1;filter;;" .. fs_esc(data.filter) .. "]"
if #data.items == 0 then if #data.items == 0 then
fs[#fs + 1] = fmt(fmt_label, fs[#fs + 1] = fmt(fmt_label,
(data.iX / 2) - 1, (data.iX / 2) - 1,
2, 2,
S("No item to show")) fs_esc(S("No item to show")))
end end
local first_item = (data.pagenum - 1) * ipp local first_item = (data.pagenum - 1) * ipp
@ -739,7 +740,7 @@ end)
if sfinv_only then if sfinv_only then
sfinv.register_page("craftguide:craftguide", { sfinv.register_page("craftguide:craftguide", {
title = "Craft Guide", title = S("Craft Guide"),
get = function(self, player, context) get = function(self, player, context)
local name = player:get_player_name() local name = player:get_player_name()