Fix tab access on priv revoking
This commit is contained in:
parent
1dd742e887
commit
44a6256589
11
src/api.lua
11
src/api.lua
|
@ -167,6 +167,13 @@ function i3.set_fs(player)
|
|||
sort_inventory(player, data)
|
||||
end
|
||||
|
||||
for i, tab in ipairs(i3.tabs) do
|
||||
if data.tab == i and tab.access and not tab.access(player, data) then
|
||||
data.tab = 1
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
local fs = make_fs(player, data)
|
||||
player:set_inventory_formspec(fs)
|
||||
end
|
||||
|
@ -221,8 +228,8 @@ function i3.set_tab(player, tabname)
|
|||
return
|
||||
end
|
||||
|
||||
for i, def in ipairs(i3.tabs) do
|
||||
if def.name == tabname then
|
||||
for i, tab in ipairs(i3.tabs) do
|
||||
if tab.name == tabname then
|
||||
data.tab = i
|
||||
return
|
||||
end
|
||||
|
|
11
src/gui.lua
11
src/gui.lua
|
@ -1516,6 +1516,7 @@ local function make_fs(player, data)
|
|||
fs("bg9", 0, 0, data.inv_width, full_height, PNG.bg_full, 10)
|
||||
|
||||
local tab = i3.tabs[data.tab]
|
||||
|
||||
if tab then
|
||||
tab.formspec(player, data, fs)
|
||||
end
|
||||
|
@ -1526,7 +1527,15 @@ local function make_fs(player, data)
|
|||
get_items_fs(fs, data, player, full_height)
|
||||
end
|
||||
|
||||
if #i3.tabs > 1 then
|
||||
local visible_tabs = 1
|
||||
|
||||
for _, def in ipairs(i3.tabs) do
|
||||
if visible_tabs < 2 and def.access and def.access(player, data) then
|
||||
visible_tabs++
|
||||
end
|
||||
end
|
||||
|
||||
if visible_tabs > 1 then
|
||||
get_tabs_fs(fs, player, data, full_height)
|
||||
end
|
||||
|
||||
|
|
|
@ -16,30 +16,18 @@ i3.new_tab("test2", {
|
|||
end,
|
||||
})
|
||||
|
||||
i3.new_tab("test3", {
|
||||
description = "Test 3",
|
||||
i3.new_tab("test_creative", {
|
||||
description = "Test creative",
|
||||
|
||||
access = function(player, data)
|
||||
local name = player:get_player_name()
|
||||
if name == "singleplayer" then
|
||||
return true
|
||||
end
|
||||
return core.is_creative_enabled(name)
|
||||
end,
|
||||
|
||||
formspec = function(player, data, fs)
|
||||
fs("label[3,1;Test 3]")
|
||||
fs("label[3,1;Creative enabled]")
|
||||
end,
|
||||
|
||||
fields = function(player, data, fields)
|
||||
i3.set_fs(player, "label[3,2;Test extra_fs]")
|
||||
end,
|
||||
fields = i3.set_fs,
|
||||
})
|
||||
|
||||
i3.override_tab("test2", {
|
||||
description = "Test override",
|
||||
image = "i3_mesepick.png",
|
||||
|
||||
formspec = function(player, data, fs)
|
||||
fs("label[3,1;Override!]")
|
||||
end,
|
||||
})
|
||||
|
|
Ŝarĝante…
Reference in New Issue