diff --git a/mods/factions/factions.lua b/mods/factions/factions.lua index bdbe183..96ac75e 100644 --- a/mods/factions/factions.lua +++ b/mods/factions/factions.lua @@ -323,13 +323,19 @@ end --! @brief disband faction, updates global players and parcels table function factions.Faction.disband(self, reason) - local playerslist = minetest.get_connected_players() + local playerslist = minetest.get_connected_players() + for k, _ in pairs(factions.players) do -- remove players affiliation - factions.players[k] = nil + if(factions.players[k] == self.name) then + factions.players[k] = nil + end end for k, v in pairs(self.land) do -- remove parcel claims - factions.parcels[k] = nil + if(factions.parcels[k] == self.name) then + factions.parcels[k] = nil + end end + self:on_disband(reason) factions.factions[self.name] = nil for i in pairs(playerslist) do @@ -339,7 +345,8 @@ function factions.Faction.disband(self, reason) removeHud(realplayer,"1") removeHud(realplayer,"2") end - end + end + factions.save() end