write something there
This commit is contained in:
commit
b4b6c08f4f
8546 changed files with 309825 additions and 0 deletions
85
mods/everness/privileges.lua
Normal file
85
mods/everness/privileges.lua
Normal file
|
@ -0,0 +1,85 @@
|
|||
--[[
|
||||
Everness. Never ending discovery in Everness mapgen.
|
||||
Copyright (C) 2024 SaKeL
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
--]]
|
||||
|
||||
local function update_sfinv(name)
|
||||
minetest.after(0, function()
|
||||
local player = minetest.get_player_by_name(name)
|
||||
|
||||
if player then
|
||||
if sfinv.get_page(player) == 'everness:encyclopedia' then
|
||||
sfinv.set_page(player, sfinv.get_homepage_name(player))
|
||||
else
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
local function update_ui(name)
|
||||
minetest.after(0, function()
|
||||
local player = minetest.get_player_by_name(name)
|
||||
|
||||
if player then
|
||||
if unified_inventory.current_page[name] == 'everness:encyclopedia' then
|
||||
unified_inventory.current_page[name] = 'craft'
|
||||
end
|
||||
|
||||
unified_inventory.set_inventory_formspec(player, unified_inventory.current_page[name])
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
minetest.register_privilege('everness_encyclopedia', {
|
||||
-- Privilege description
|
||||
description = 'Collection of registered items and functions with some information about them. Used for testing not for gameplay. Works only with SFINV!',
|
||||
|
||||
-- Whether to grant the privilege to singleplayer.
|
||||
give_to_singleplayer = false,
|
||||
|
||||
-- Whether to grant the privilege to the server admin.
|
||||
-- Uses value of 'give_to_singleplayer' by default.
|
||||
give_to_admin = false,
|
||||
|
||||
-- Called when given to player 'name' by 'granter_name'.
|
||||
-- 'granter_name' will be nil if the priv was granted by a mod.
|
||||
on_grant = function(name, granter_name)
|
||||
if minetest.get_modpath('sfinv') and sfinv.enabled then
|
||||
update_sfinv(name)
|
||||
elseif minetest.get_modpath('unified_inventory') then
|
||||
update_ui(name)
|
||||
else
|
||||
minetest.chat_send_player(name, 'Compatible inventory not found. Everness encyclopedia will not be shown.')
|
||||
end
|
||||
end,
|
||||
|
||||
-- Called when taken from player 'name' by 'revoker_name'.
|
||||
-- 'revoker_name' will be nil if the priv was revoked by a mod.
|
||||
|
||||
-- Note that the above two callbacks will be called twice if a player is
|
||||
-- responsible, once with the player name, and then with a nil player
|
||||
-- name.
|
||||
-- Return true in the above callbacks to stop register_on_priv_grant or
|
||||
-- revoke being called.
|
||||
on_revoke = function(name, revoker_name)
|
||||
if minetest.get_modpath('sfinv') and sfinv.enabled then
|
||||
update_sfinv(name)
|
||||
elseif minetest.get_modpath('unified_inventory') then
|
||||
update_ui(name)
|
||||
else
|
||||
minetest.chat_send_player(name, 'Compatible inventory not found. Everness encyclopedia will not be shown.')
|
||||
end
|
||||
end,
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue