player atributes: use player:get_meta() instead.

This commit is contained in:
Auke Kok 2021-07-07 21:16:21 -07:00
parent abec3f27a7
commit 4fdbdc020b
6 changed files with 25 additions and 14 deletions

View File

@ -227,7 +227,8 @@ function boxes.player_success(player)
end
-- omit check if tutorial is actually required here
if sid == conf.tutorial.series then
player:set_attribute("tutorial_completed", 1)
local pmeta = player:get_meta()
pmeta:set_string("tutorial_completed", "1")
announce.all(name .. " completed the tutorial!")
announce.admins(name .. " completed the tutorial!")
-- reward: create priv
@ -461,9 +462,10 @@ function boxes.next_series(player, sid, is_entering)
end
return false
else
local pmeta = player:get_meta()
if sid == conf.tutorial.series and
conf.tutorial.required and
player:get_attribute("tutorial_completed") ~= "1" then
pmeta:get_string("tutorial_completed") ~= "1" then
boxes.open_box(player, {conf.tutorial.entry_lobby, bxs[index], conf.tutorial.exit_lobby})
else
boxes.open_box(player, {0, bxs[index], 1})

View File

@ -630,7 +630,8 @@ do_creator_if = function(player, context)
f = f .. "button[8.4,0;3.4,1;series;"..FE(S("Manage Series")).."]"
end
local limit = tonumber(player:get_attribute("box_create_limit") or "3")
local pmeta = player:get_meta()
local limit = tonumber(pmeta:get_string("box_create_limit") or "3")
if (minetest.check_player_privs(name, "create") and counts.editing + counts.submitted <= limit) or
minetest.check_player_privs(name, "review") then

View File

@ -30,7 +30,8 @@ local S = minetest.get_translator("menu")
local FE = minetest.formspec_escape
local function toggle_music(player)
local m = player:get_attribute("music")
local pmeta = player:get_meta()
local m = pmeta:get_string("music")
if not m or m == "1" then
music.stop(player)
m = "0"
@ -39,7 +40,7 @@ local function toggle_music(player)
m = "1"
minetest.chat_send_player(player:get_player_name(), S("Music is now enabled. Music playback will start later."))
end
player:set_attribute("music", m)
pmeta:set_string("music", m)
end
sfinv.register_page("menu:lobby", {
@ -317,7 +318,8 @@ sfinv.register_page("menu:play", {
box.box_id, bmeta.meta.box_name, bmeta.meta.builder)) .. "]"
local leave_btn = "button[0.5,2.1;4,0.6;leave;"..FE(S("Leave this box")).."]"
if conf.tutorial.required then
if player:get_attribute("tutorial_completed") ~= "1" then
local pmeta = player:get_meta()
if pmeta:get_string("tutorial_completed") ~= "1" then
leave_btn = ""
end
end

View File

@ -90,7 +90,8 @@ music.start = function(player, info, tag)
-- ignore if music disabled.
music.stop(player)
if player:get_attribute("music") == "0" then
local pmeta = player:get_meta()
if pmeta:get_string("music") == "0" then
return
end

View File

@ -73,7 +73,8 @@ function perks.grant(name_or_player)
end
if accepted >= 3 then
local limit = tonumber(player:get_attribute("box_create_limit") or "3")
local pmeta = player:get_meta()
local limit = tonumber(pmeta:get_string("box_create_limit") or "3")
if limit <= 3 then
minetest.log("perks: granted more boxes to " .. name)
announce.all(name .. " has been granted the more boxes perk!")
@ -91,7 +92,7 @@ function perks.grant(name_or_player)
"--sofar"
}
})
player:set_attribute("box_create_limit", "5")
pmeta:set_string("box_create_limit", "5")
end
end

View File

@ -301,7 +301,8 @@ end)
-- event handlers
minetest.register_on_joinplayer(function(player)
-- set appearance
local skin = player:get_attribute("skin")
local pmeta = player:get_meta()
local skin = pmeta:get_string("skin")
if not skin then
local default_skins = {
"skin_jack.png",
@ -373,7 +374,7 @@ minetest.register_on_joinplayer(function(player)
end)
-- return all players to the lobby, or throw them into the tutorial
if conf.tutorial.required and player:get_attribute("tutorial_completed") ~= "1" then
if conf.tutorial.required and pmeta:get_string("tutorial_completed") ~= "1" then
if boxes.next_series(player, conf.tutorial.series) then
-- should be in a box now
return
@ -413,7 +414,8 @@ sfinv.register_page("player:skin", {
if minetest.check_player_privs(player, "review") then
skin = skin .. "^skin_overlay_admin.png"
end
player:set_attribute("skin", skin)
local pmeta = player:get_meta()
pmeta:set_string("skin", skin)
player:set_properties({textures = {skin}})
end
end,
@ -488,14 +490,16 @@ minetest.register_chatcommand("attr", {
if not p then
return false, S("No such player.")
end
p:set_attribute(params[3], params[4])
local pmeta = p:get_meta()
pmeta:set_string(params[3], params[4])
return true, S("Attribute set.")
elseif params[1] == "get" then
local p = minetest.get_player_by_name(params[2])
if not p then
return false, S("No such player.")
end
return true, params[3] .. "=" .. dump(p:get_attribute(params[3]))
local pmeta = player:get_meta()
return true, params[3] .. "=" .. dump(pmeta:get_string(params[3]))
else
return false, S("Usage: /attr <get|set> <name> <attribute> <value>")
end