mirror of
https://github.com/minetest-mods/MoreMesecons.git
synced 2025-01-09 17:30:24 +01:00
Add a settingtypes.txt file
This commit is contained in:
parent
b341335d3b
commit
795146a83e
@ -1,7 +1,9 @@
|
|||||||
local accepted_commands = {"tell"} -- Authorized commands. Any to accept all.
|
|
||||||
local NEAREST_MAX_DISTANCE = 8
|
|
||||||
|
|
||||||
local function initialize_data(meta)
|
local function initialize_data(meta)
|
||||||
|
local NEAREST_MAX_DISTANCE = tonumber(minetest.setting_get("moremesecons_commandblock.nearest_max_distance")) or 8
|
||||||
|
if NEAREST_MAX_DISTANCE <= 0 then
|
||||||
|
NEAREST_MAX_DISTANCE = 1
|
||||||
|
end
|
||||||
|
|
||||||
local commands = meta:get_string("commands")
|
local commands = meta:get_string("commands")
|
||||||
meta:set_string("formspec",
|
meta:set_string("formspec",
|
||||||
"invsize[9,5;]" ..
|
"invsize[9,5;]" ..
|
||||||
@ -68,6 +70,23 @@ local function resolve_commands(commands, pos)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function commandblock_action_on(pos, node)
|
local function commandblock_action_on(pos, node)
|
||||||
|
local NEAREST_MAX_DISTANCE = tonumber(minetest.setting_get("moremesecons_commandblock.nearest_max_distance")) or 8
|
||||||
|
if NEAREST_MAX_DISTANCE <= 0 then
|
||||||
|
NEAREST_MAX_DISTANCE = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
local accepted_commands = {}
|
||||||
|
do
|
||||||
|
local commands_str = minetest.setting_get("moremesecons_commandblock.authorized_commands")
|
||||||
|
if commands_str then
|
||||||
|
for command in string.gmatch(commands_str, "([^ ]+)") do
|
||||||
|
accepted_commands[command] = true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
accepted_commands = {tell = true}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if node.name ~= "moremesecons_commandblock:commandblock_off" then
|
if node.name ~= "moremesecons_commandblock:commandblock_off" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -93,14 +112,7 @@ local function commandblock_action_on(pos, node)
|
|||||||
param = command:sub(pos + 1)
|
param = command:sub(pos + 1)
|
||||||
end
|
end
|
||||||
local cmddef = minetest.chatcommands[cmd]
|
local cmddef = minetest.chatcommands[cmd]
|
||||||
local is_an_authorized_command = false
|
if not accepted_commands[cmd] and next(accepted_commands) then
|
||||||
for i = 1, #accepted_commands do
|
|
||||||
if cmd == accepted_commands[i] then
|
|
||||||
is_an_authorized_command = true
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if not is_an_authorized_command and #accepted_commands ~= 0 then
|
|
||||||
minetest.chat_send_player(owner, "You can not execute the command "..cmd.." with a craftable command block ! This event will be reported.")
|
minetest.chat_send_player(owner, "You can not execute the command "..cmd.." with a craftable command block ! This event will be reported.")
|
||||||
minetest.log("action", "Player "..owner.." tryed to execute an unauthorized command with a craftable command block.")
|
minetest.log("action", "Player "..owner.." tryed to execute an unauthorized command with a craftable command block.")
|
||||||
return
|
return
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
local JAMMER_MAX_DISTANCE = 10
|
|
||||||
|
|
||||||
-- see wireless jammer
|
-- see wireless jammer
|
||||||
local get = vector.get_data_from_pos
|
local get = vector.get_data_from_pos
|
||||||
local set = vector.set_data_to_pos
|
local set = vector.set_data_to_pos
|
||||||
@ -18,6 +16,11 @@ local function remove_jammer(pos)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function is_jammed(pos)
|
local function is_jammed(pos)
|
||||||
|
local JAMMER_MAX_DISTANCE = tonumber(minetest.setting_get(moresecons_jammer.max_distance)) or 10
|
||||||
|
if JAMMER_MAX_DISTANCE <= 0 then
|
||||||
|
JAMMER_MAX_DISTANCE = 1
|
||||||
|
end
|
||||||
|
|
||||||
local pz,py,px = vector.unpack(pos)
|
local pz,py,px = vector.unpack(pos)
|
||||||
for z,yxs in pairs(jammers) do
|
for z,yxs in pairs(jammers) do
|
||||||
if math.abs(pz-z) <= JAMMER_MAX_DISTANCE then
|
if math.abs(pz-z) <= JAMMER_MAX_DISTANCE then
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
local kill_nearest_player = function(pos)
|
local kill_nearest_player = function(pos)
|
||||||
local MAX_DISTANCE = 8 -- Use this number to set maximal distance to kill
|
local MAX_DISTANCE = tonumber(minetest.setting_get("moremesecons_playerkiller.max_distance")) or 8 -- Use this number to set maximal distance to kill
|
||||||
|
if MAX_DISTANCE <= 0 then
|
||||||
|
MAX_DISTANCE = 8
|
||||||
|
end
|
||||||
|
|
||||||
-- Search the nearest player
|
-- Search the nearest player
|
||||||
local nearest
|
local nearest
|
||||||
@ -22,7 +25,7 @@ local kill_nearest_player = function(pos)
|
|||||||
-- maybe some mod placed it
|
-- maybe some mod placed it
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if owner == nearest:get_player_name() then
|
if owner == nearest:get_player_name() then
|
||||||
-- don't kill the owner !
|
-- don't kill the owner !
|
||||||
return
|
return
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
local MAX_DISTANCE = 8
|
local use_speech_dispatcher = minetest.setting_getbool("moremesecons_sayer.use_speech_dispatcher")
|
||||||
local use_speech_dispatcher = true
|
if use_speech_dispatcher == nil then
|
||||||
|
use_speech_dispatcher = true
|
||||||
|
end
|
||||||
|
|
||||||
local popen, execute = io.popen, os.execute
|
local popen, execute = io.popen, os.execute
|
||||||
if use_speech_dispatcher then
|
if use_speech_dispatcher then
|
||||||
@ -34,8 +36,14 @@ and popen("if hash spd-say 2>/dev/null; then printf yes; fi"):read("*all") == "y
|
|||||||
if language ~= "en" then
|
if language ~= "en" then
|
||||||
tab[3] = "-l "..language
|
tab[3] = "-l "..language
|
||||||
end
|
end
|
||||||
MAX_DISTANCE = MAX_DISTANCE^2
|
|
||||||
function sayer_activate(pos)
|
function sayer_activate(pos)
|
||||||
|
local MAX_DISTANCE = minetest.setting_get("moremesecons_sayer.max_distance") or 8
|
||||||
|
if MAX_DISTANCE <= 0 then
|
||||||
|
MAX_DISTANCE = 1
|
||||||
|
end
|
||||||
|
MAX_DISTANCE = MAX_DISTANCE^2
|
||||||
|
|
||||||
local text = minetest.get_meta(pos):get_string("text")
|
local text = minetest.get_meta(pos):get_string("text")
|
||||||
if text == "" then
|
if text == "" then
|
||||||
-- nothing to say
|
-- nothing to say
|
||||||
@ -69,6 +77,11 @@ and popen("if hash spd-say 2>/dev/null; then printf yes; fi"):read("*all") == "y
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
function sayer_activate(pos)
|
function sayer_activate(pos)
|
||||||
|
local MAX_DISTANCE = minetest.setting_get("moremesecons_sayer.max_distance") or 8
|
||||||
|
if MAX_DISTANCE <= 0 then
|
||||||
|
MAX_DISTANCE = 1
|
||||||
|
end
|
||||||
|
|
||||||
local tab = {
|
local tab = {
|
||||||
"Sayer at pos",
|
"Sayer at pos",
|
||||||
nil,
|
nil,
|
||||||
|
@ -10,8 +10,14 @@ local register = function(pos)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local teleport_nearest = function(pos)
|
local teleport_nearest = function(pos)
|
||||||
local MAX_TELEPORTATION_DISTANCE = 50
|
local MAX_TELEPORTATION_DISTANCE = tonumber(minetest.setting_get("moremesecons_teleporter.max_t2t_distance")) or 50
|
||||||
local MAX_PLAYER_DISTANCE = 25
|
if MAX_TELEPORTATION_DISTANCE <= 0 then
|
||||||
|
MAX_TELEPORTATION_DISTANCE = 1
|
||||||
|
end
|
||||||
|
local MAX_PLAYER_DISTANCE = tonumber(minetest.setting_get("moremesecons_teleporter.max_p2t_distance")) or 25
|
||||||
|
if MAX_PLAYER_DISTANCE <= 0 then
|
||||||
|
MAX_PLAYER_DISTANCE = 1
|
||||||
|
end
|
||||||
|
|
||||||
-- Search the nearest player
|
-- Search the nearest player
|
||||||
local nearest = nil
|
local nearest = nil
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
local JAMMER_MAX_DISTANCE = 15
|
|
||||||
|
|
||||||
local wireless = {}
|
local wireless = {}
|
||||||
local wireless_rids = {}
|
local wireless_rids = {}
|
||||||
|
|
||||||
@ -116,6 +114,11 @@ end
|
|||||||
|
|
||||||
-- looks big, but should work fast
|
-- looks big, but should work fast
|
||||||
function is_jammed(pos)
|
function is_jammed(pos)
|
||||||
|
local JAMMER_MAX_DISTANCE = tonumber(minetest.setting_get("moremesecons_wireless.jammer_max_distance")) or 15
|
||||||
|
if JAMMER_MAX_DISTANCE <= 0 then
|
||||||
|
JAMMER_MAX_DISTANCE = 1
|
||||||
|
end
|
||||||
|
|
||||||
local pz,py,px = vector.unpack(pos)
|
local pz,py,px = vector.unpack(pos)
|
||||||
for z,yxs in pairs(jammers) do
|
for z,yxs in pairs(jammers) do
|
||||||
if math.abs(pz-z) <= JAMMER_MAX_DISTANCE then
|
if math.abs(pz-z) <= JAMMER_MAX_DISTANCE then
|
||||||
|
51
settingtypes.txt
Normal file
51
settingtypes.txt
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
[Craftable Commandblock]
|
||||||
|
|
||||||
|
# Space-separated list of authorized commands
|
||||||
|
# Empty to authorize all
|
||||||
|
moremesecons_commandblock.authorized_commands (Authorized commands) string tell
|
||||||
|
|
||||||
|
# Maximum distance of the @nearest player
|
||||||
|
# Any value less than or equal to 0 will be set to 1
|
||||||
|
moremesecons_commandblock.nearest_max_distance (Nearest player maximum distance) float 8
|
||||||
|
|
||||||
|
[Signal Jammer]
|
||||||
|
|
||||||
|
# Jammer action range
|
||||||
|
# Any value less than or equal to 0 will be set to 1
|
||||||
|
moremesecons_jammer.max_distance (Jammer action range) float 10
|
||||||
|
|
||||||
|
[Player Killer]
|
||||||
|
|
||||||
|
# Player Killer action range
|
||||||
|
# Any value less than or equal to 0 will be set to 1
|
||||||
|
moremesecons_playerkiller.max_distance (Player Killer action range) float 8
|
||||||
|
|
||||||
|
[Sayer]
|
||||||
|
|
||||||
|
# Whether to use the Speech Dispatcher
|
||||||
|
# It will work only if:
|
||||||
|
# * moremesecons_sayer is present in your trusted_mods setting
|
||||||
|
# * you are playing in singleplayer
|
||||||
|
# * the speech-dispatcher is installed on your system
|
||||||
|
# * you are using a POSIX-compliant system and a sh-compatible shell (such as bash, dash, zsh...)
|
||||||
|
moremesecons_sayer.use_speech_dispatcher (Use the Speech Dispatcher) bool true
|
||||||
|
|
||||||
|
# Sayer range
|
||||||
|
# Any value less than or equal to 0 will be set to 1
|
||||||
|
moremesecons_sayer.max_distance (Range) float 8
|
||||||
|
|
||||||
|
[Teleporter]
|
||||||
|
|
||||||
|
# Maximum Teleporter To Teleporter distance
|
||||||
|
# Any value less than or equal to 0 will be set to 1
|
||||||
|
moremesecons_teleporter.max_t2t_distance (Maximum Teleporter To Teleporter distance) float 50
|
||||||
|
|
||||||
|
# Maximum Player To Teleporter distance
|
||||||
|
# Any value less than or equal to 0 will be set to 1
|
||||||
|
moremesecons_teleporter.max_p2t_distance (Maximum Player To Teleporter distance) float 25
|
||||||
|
|
||||||
|
[Wireless]
|
||||||
|
|
||||||
|
# Wireless Jammer action range
|
||||||
|
# Any value less than or equal to 0 will be set to 1
|
||||||
|
moremesecons_wireless.jammer_max_distance (Wireless Jammer action range) float 15
|
Loading…
Reference in New Issue
Block a user