From 56b33bb50f06aa451cef303b6ab715842894a96e Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Tue, 19 Aug 2025 08:21:47 +0100 Subject: [PATCH] add lbm for better protector update --- init.lua | 26 ++++++++++++++++++-------- tool.lua | 4 ++-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/init.lua b/init.lua index e21e818..c07fdb8 100644 --- a/init.lua +++ b/init.lua @@ -112,6 +112,24 @@ local function add_faction(meta, name) set_faction_list(meta, list) end +-- convert old faction tick-box to "*" for all owner factions + +core.register_lbm({ + label = "Protector update", + name = "protector:protector_update", + nodenames = {"protector:protect", "protector:protect2", "protector:protect_hidden"}, + run_at_every_load = false, + action = function(pos, node, dtime_s) + + local meta = core.get_meta(pos) + + if meta:get_int("faction_members") == 1 then + meta:set_string("factions", "*") + meta:set_int("faction_members", 0) + end + end +}) + -- check for member name local function is_member(meta, name) @@ -123,14 +141,6 @@ local function is_member(meta, name) if factions_available then - -- migrate - if meta:get_int("faction_members") == 1 then - - add_faction(meta, "*") - - meta:set_int("faction_members", 0) - end - if factions.version == nil then -- backward compatibility diff --git a/tool.lua b/tool.lua index 3ce7350..1b8f85d 100644 --- a/tool.lua +++ b/tool.lua @@ -31,7 +31,6 @@ core.register_craftitem("protector:tool", { -- get members on protector local meta = core.get_meta(pos) local members = meta:get_string("members") or "" - local faction_members = meta:get_int("faction_members") local factions = meta:get_string("factions") or "" -- get direction player is facing @@ -139,12 +138,13 @@ core.register_craftitem("protector:tool", { -- copy members across if holding sneak when using tool if user:get_player_control().sneak then meta:set_string("members", members) - meta:set_int("faction_members", faction_members) meta:set_string("factions", factions) else meta:set_string("members", "") end + core.add_entity(pos, "protector:display") + core.chat_send_player(name, S("Protector placed at @1", core.pos_to_string(pos))) end