add settings

master
wsor 2021-01-17 23:58:13 -05:00
parent 68d79693e2
commit 7cdca40051
3 changed files with 53 additions and 8 deletions

View File

@ -17,8 +17,26 @@ local liquid_list = {
"bucket:bucket_lava",
"bucket:bucket_water",
"bucket:bucket_river_water",
--bucket_wooden
"bucket_wooden:bucket_water",
"bucket_wooden:bucket_river_water",
}
--settings
local lr_height = tonumber(minetest.settings:get("lr_height")) or 30
local lr_renew = minetest.settings:get_bool("lr_renew", false)
--function for handling priv settings
local function priv_selection(default_priv, setting)
local priv = minetest.settings:get(setting)
if not minetest.registered_privileges[priv] then
return default_priv
else
return priv
end
end
--reads list, overrides nodes, adding priv check
for liquidcount = 1, #liquid_list do
--checks if its a valid node/item
@ -29,22 +47,25 @@ for liquidcount = 1, #liquid_list do
--override
minetest.override_item(liquid_list[liquidcount], {
on_place = function(itemstack, placer, pointed_thing)
if not minetest.check_player_privs(placer:get_player_name(), {spill = true}) then
minetest.chat_send_player(placer:get_player_name(), "Spill priv required to use this node")
local pname = placer:get_player_name()
local default_priv = priv_selection("spill", "lr_default")
local advanced_priv = priv_selection("server", "lr_advanced")
if not minetest.check_player_privs(pname, priv_selection(default_priv, "lr_default")) then
minetest.chat_send_player(pname, default_priv .. " priv required to use this node")
return
else
if (minetest.get_pointed_thing_position(pointed_thing).y > 30) then
if not (minetest.check_player_privs(placer:get_player_name(), {server = true})) then
minetest.chat_send_player(placer:get_player_name(), "admins can only place at this height")
if (minetest.get_pointed_thing_position(pointed_thing).y > lr_height) then
if not (minetest.check_player_privs(pname, priv_selection("server", "lr_advanced"))) then
minetest.chat_send_player(pname, advanced_priv .. " priv requid at this height")
return
end
end
--return minetest.item_place(itemstack, placer, pointed_thing)
return old_place(itemstack, placer, pointed_thing)
end
end,
--prevents liquids from spreading
liquid_renewable = false,
liquid_renewable = lr_renew,
})
end
end

View File

@ -14,7 +14,27 @@ born out of me not being able to find a good public spill mod. mod is ment for c
## Setup
download mod, make sure its named liquid_restriction
download mod, make sure its named liquid_restriction
**recommend settings for survival**
```
lr_default = "interact"
lr_advanced = "spill"
lr_height = 0
lr_renew = "true"
```
\-this config requires players to have the spill priv to use above 0
**recommend settings for creative**
leave at defaults
## minetest.conf settings
* lr_default (by default spill): default liquid_restriction priv
* lr_advanced (by default server): advanced liquid_restriction priv
* lr_height (by default 30): height for advanced priv use
* lr_renew (by default false): if liquids are renewable or not
## FAQ

4
settingtypes.txt Normal file
View File

@ -0,0 +1,4 @@
lr_default (default liquid_restriction priv) string spill
lr_advanced (advanced liquid_restriction priv) string server
lr_height (height for advanced priv use) int 30
lr_renew (if liquids are renewable or not) bool false