Build 01
- separated all routines into new mod for public release
This commit is contained in:
commit
0967ecd75b
25
README.txt
Normal file
25
README.txt
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
License of source code
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016-2017, Leslie E. Krause
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||||
|
software and associated documentation files (the "Software"), to deal in the Software
|
||||||
|
without restriction, including without limitation the rights to use, copy, modify, merge,
|
||||||
|
publish, distribute, sublicense, and/or sell copies of the Software, and to permit
|
||||||
|
persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or
|
||||||
|
substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
|
||||||
|
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||||
|
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
For more details:
|
||||||
|
https://opensource.org/licenses/MIT
|
1
depends.txt
Normal file
1
depends.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
default
|
90
init.lua
Normal file
90
init.lua
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
--------------------------------------------------------
|
||||||
|
-- Minetest :: Basic Ownership Mod v2.0 (ownership)
|
||||||
|
--
|
||||||
|
-- See README.txt for licensing and other information.
|
||||||
|
-- Copyright (c) 2016-2017, Leslie Ellen Krause
|
||||||
|
--
|
||||||
|
-- ./games/just_test_tribute/mods/ownership/init.lua
|
||||||
|
--------------------------------------------------------
|
||||||
|
|
||||||
|
default.OWNER_ANYBODY = "_anybody"
|
||||||
|
default.OWNER_SOMEBODY = "_somebody"
|
||||||
|
default.OWNER_NOBODY = "" -- do not change this value!
|
||||||
|
|
||||||
|
default.STATUS_CONTAINER_GET = "%s moves stuff from %s at %s"
|
||||||
|
default.STATUS_CONTAINER_DEL = "%s removes stuff from %s at %s"
|
||||||
|
default.STATUS_CONTAINER_PUT = "%s moves stuff to %s at %s"
|
||||||
|
default.STATUS_CONTAINER_SET = "%s moves stuff in %s at %s"
|
||||||
|
default.STATUS_SIGNATURE_SET = "%s wrote \"%s\" to %s at %s"
|
||||||
|
|
||||||
|
minetest.register_on_prejoinplayer( function ( name, ip )
|
||||||
|
local data, auth, cname
|
||||||
|
local uname = string.lower( name )
|
||||||
|
local exp_days = 180
|
||||||
|
|
||||||
|
if minetest.setting_get( "halt_message" ) then
|
||||||
|
return minetest.setting_get( "halt_message" )
|
||||||
|
end
|
||||||
|
|
||||||
|
if uname == default.OWNER_ANYBODY or uname == default.OWNER_SOMEBODY or
|
||||||
|
uname == default.OWNER_NOBODY or string.byte( uname ) == 95 then
|
||||||
|
return "This player name is reserved and cannot be used."
|
||||||
|
end
|
||||||
|
end )
|
||||||
|
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
-- verify player's ownership of node at given position
|
||||||
|
-- allow for customized methods by abstracting node meta
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
|
default.set_owner = function ( pos, owner )
|
||||||
|
minetest.get_meta( pos ):set_string( "owner", owner )
|
||||||
|
end
|
||||||
|
|
||||||
|
default.is_owner = function ( pos, player )
|
||||||
|
local owner = minetest.get_meta( pos ):get_string( "owner" )
|
||||||
|
|
||||||
|
--minetest.chat_send_player( name, "This area belongs to " .. owner .. "." )
|
||||||
|
return minetest.check_player_privs( player:get_player_name( ), { protection_bypass = true } ) or
|
||||||
|
owner == default.OWNER_ANYBODY or
|
||||||
|
owner == player:get_player_name( ) or
|
||||||
|
owner == default.OWNER_NOBODY and not minetest.is_protected( pos, player )
|
||||||
|
end
|
||||||
|
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
-- determine if inventory of container is empty
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
|
default.is_empty = function ( pos, list )
|
||||||
|
return minetest.get_meta( pos ):get_inventory( ):is_empty( list or "main" )
|
||||||
|
end
|
||||||
|
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
-- manage overall inventory of container
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
|
default.get_contents = function ( chest_inv, player_inv, list )
|
||||||
|
local slot, item
|
||||||
|
for slot = 1, chest_inv:get_size( list or "main" ) do
|
||||||
|
item = chest_inv:get_stack( list or "main", slot )
|
||||||
|
if player_inv:room_for_item( "main", item ) then
|
||||||
|
chest_inv:set_stack( list or "main", slot, nil )
|
||||||
|
player_inv:add_item( "main", item )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
default.put_contents = function ( chest_inv, player_inv, list )
|
||||||
|
local slot, item
|
||||||
|
for slot = 1, player_inv:get_size( "main" ) do
|
||||||
|
item = player_inv:get_stack( "main", slot )
|
||||||
|
if chest_inv:room_for_item( list or "main", item ) then
|
||||||
|
player_inv:set_stack( "main", slot, nil )
|
||||||
|
chest_inv:add_item( list or "main", item )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
default.del_contents = function ( chest_inv, list )
|
||||||
|
chest_inv:set_list( list or "main", { } )
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user