From 6cad881b6ff0cb5c67cabdca77ec06ba9f65ccfe Mon Sep 17 00:00:00 2001 From: alexerate <35458285+alexerate@users.noreply.github.com> Date: Mon, 5 Feb 2018 18:17:53 +0100 Subject: [PATCH 1/7] update player location update player location when protected --- interact.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/interact.lua b/interact.lua index 2e54800..a0579d1 100644 --- a/interact.lua +++ b/interact.lua @@ -1,7 +1,10 @@ local old_is_protected = minetest.is_protected function minetest.is_protected(pos, name) + local player = minetest.get_player_by_name(name) + local playerpos = player:getpos() if not areas:canInteract(pos, name) then + player:setpos(playerpos) return true end return old_is_protected(pos, name) From b0de983ffbfd93eabfae15e394f4246b0b515181 Mon Sep 17 00:00:00 2001 From: alexerate <35458285+alexerate@users.noreply.github.com> Date: Mon, 5 Feb 2018 23:49:18 +0100 Subject: [PATCH 2/7] function anti_lag added --- interact.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/interact.lua b/interact.lua index a0579d1..fc982a4 100644 --- a/interact.lua +++ b/interact.lua @@ -1,22 +1,26 @@ local old_is_protected = minetest.is_protected function minetest.is_protected(pos, name) - local player = minetest.get_player_by_name(name) - local playerpos = player:getpos() if not areas:canInteract(pos, name) then - player:setpos(playerpos) return true end return old_is_protected(pos, name) end minetest.register_on_protection_violation(function(pos, name) + local player = minetest.get_player_by_name(name) + local playerpos = player:getpos() if not areas:canInteract(pos, name) then local owners = areas:getNodeOwners(pos) minetest.chat_send_player(name, ("%s is protected by %s."):format( minetest.pos_to_string(pos), table.concat(owners, ", "))) + --minetest.after(1,anti_lag,{player=player,playerpos=playerpos}) + player:setpos(playerpos) end end) +function anti_lag(player) + player.player:setpos(player.playerpos) +end \ No newline at end of file From 0b96f75d6588ea234dffb8c4fff9de3c207f0a94 Mon Sep 17 00:00:00 2001 From: alexerate <35458285+alexerate@users.noreply.github.com> Date: Mon, 5 Feb 2018 23:52:01 +0100 Subject: [PATCH 3/7] Add delay for anti_lag --- interact.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interact.lua b/interact.lua index fc982a4..7871198 100644 --- a/interact.lua +++ b/interact.lua @@ -16,8 +16,8 @@ minetest.register_on_protection_violation(function(pos, name) ("%s is protected by %s."):format( minetest.pos_to_string(pos), table.concat(owners, ", "))) - --minetest.after(1,anti_lag,{player=player,playerpos=playerpos}) - player:setpos(playerpos) + minetest.after(1,anti_lag,{player=player,playerpos=playerpos}) + --player:setpos(playerpos) end end) From 599d9350bb4c682d7e0e9aa9d6b66e0e0d932069 Mon Sep 17 00:00:00 2001 From: alexerate <35458285+alexerate@users.noreply.github.com> Date: Tue, 6 Feb 2018 14:02:07 +0100 Subject: [PATCH 4/7] remove obsolet code --- interact.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/interact.lua b/interact.lua index 7871198..9a457d2 100644 --- a/interact.lua +++ b/interact.lua @@ -17,10 +17,9 @@ minetest.register_on_protection_violation(function(pos, name) minetest.pos_to_string(pos), table.concat(owners, ", "))) minetest.after(1,anti_lag,{player=player,playerpos=playerpos}) - --player:setpos(playerpos) end end) function anti_lag(player) player.player:setpos(player.playerpos) -end \ No newline at end of file +end From 52011bdfa433ceefc2b2e6beca110aa57603d5c1 Mon Sep 17 00:00:00 2001 From: alexerate <35458285+alexerate@users.noreply.github.com> Date: Tue, 6 Feb 2018 15:15:32 +0100 Subject: [PATCH 5/7] localisation --- interact.lua | 8 ++++---- intllib.lua | 45 +++++++++++++++++++++++++++++++++++++++++++++ locale/fr.po | 23 +++++++++++++++++++++++ 3 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 intllib.lua create mode 100644 locale/fr.po diff --git a/interact.lua b/interact.lua index 9a457d2..78a1f6f 100644 --- a/interact.lua +++ b/interact.lua @@ -1,3 +1,5 @@ +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP.."/intllib.lua") local old_is_protected = minetest.is_protected function minetest.is_protected(pos, name) @@ -12,10 +14,8 @@ minetest.register_on_protection_violation(function(pos, name) local playerpos = player:getpos() if not areas:canInteract(pos, name) then local owners = areas:getNodeOwners(pos) - minetest.chat_send_player(name, - ("%s is protected by %s."):format( - minetest.pos_to_string(pos), - table.concat(owners, ", "))) + --minetest.chat_send_player(name, ("%s is protected by %s."):format(minetest.pos_to_string(pos), table.concat(owners, ", "))) + minetest.chat_send_player(name,S("@1 is protected by @2",minetest.pos_to_string(pos),table.concat(owners, ", "))) minetest.after(1,anti_lag,{player=player,playerpos=playerpos}) end end) diff --git a/intllib.lua b/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/locale/fr.po b/locale/fr.po new file mode 100644 index 0000000..b0dde4b --- /dev/null +++ b/locale/fr.po @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-29 11:28+0200\n" +"PO-Revision-Date: 2018-01-29 09:18+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: init.lua +msgid "@1 is protected by @2" +msgstr "@1 est protégé par @2" From a9b954399e4a772bb99e7ff6955ca0d8fec09660 Mon Sep 17 00:00:00 2001 From: alexerate <35458285+alexerate@users.noreply.github.com> Date: Tue, 6 Feb 2018 20:23:17 +0100 Subject: [PATCH 6/7] utf-8 --- locale/fr.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/fr.po b/locale/fr.po index b0dde4b..72aa30a 100644 --- a/locale/fr.po +++ b/locale/fr.po @@ -20,4 +20,4 @@ msgstr "" #: init.lua msgid "@1 is protected by @2" -msgstr "@1 est protégé par @2" +msgstr "@1 est protĂ©gĂ© par @2" From 93df2f360522519a5be066f66ead0687b0512c3e Mon Sep 17 00:00:00 2001 From: alexerate <35458285+alexerate@users.noreply.github.com> Date: Wed, 7 Feb 2018 18:07:40 +0100 Subject: [PATCH 7/7] make self_protection true by default --- settings.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/settings.lua b/settings.lua index ffb5355..6a11e67 100644 --- a/settings.lua +++ b/settings.lua @@ -30,7 +30,7 @@ setting("string", "filename", world_path.."/areas.dat") -- Allow players with a privilege create their own areas -- within the maximum size and number. -setting("boolean", "self_protection", false) +setting("boolean", "self_protection", true) setting("string", "self_protection_privilege", "interact") setting("position", "self_protection_max_size", {x=64, y=128, z=64}) setting("number", "self_protection_max_areas", 4) @@ -40,4 +40,3 @@ setting("number", "self_protection_max_areas_high", 32) -- legacy_table (owner_defs) compatibility. Untested and has known issues. setting("boolean", "legacy_table", false) -