Add optional bones messages for player and log 2082/head
authorJacob Gustafson <7557867+poikilos@users.noreply.github.com>
Sat, 2 Jun 2018 07:54:45 +0000 (09:54 +0200)
committerSmallJoker <mk939@ymail.com>
Sat, 2 Jun 2018 07:54:45 +0000 (09:54 +0200)
minetest.conf.example
mods/bones/init.lua
settingtypes.txt

index 672709d3ef2871913850af4b8295d6a5c6b9a496..08365e11eaaf24c10bed03a0f831a57a17cd2786 100644 (file)
@@ -23,6 +23,9 @@
 # 0 to disable. By default it is "share_bones_time" divide by four.
 #share_bones_time_early = 300
 
+# Inform player of condition and location of new bones.
+#bones_position_message = false
+
 # Whether fire should be enabled. If disabled, 'basic_flame' nodes will
 # disappear.
 # 'permanent_flame' nodes will remain with either setting.
index 429451822e5f2a5b627a56a942ca2bd76e65a56f..480a55c4847ff577434873a6c6ea20913d11e758 100644 (file)
@@ -186,20 +186,32 @@ minetest.register_on_dieplayer(function(player)
                bones_mode = "bones"
        end
 
+       local bones_position_message = minetest.settings:get_bool("bones_position_message") == true
+       local player_name = player:get_player_name()
+       local pos = vector.round(player:get_pos())
+       local pos_string = minetest.pos_to_string(pos)
+
        -- return if keep inventory set or in creative mode
        if bones_mode == "keep" or (creative and creative.is_enabled_for
                        and creative.is_enabled_for(player:get_player_name())) then
+               minetest.log("action", player_name .. " dies at " .. pos_string ..
+                       ". No bones placed")
+               if bones_position_message then
+                       minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. ".")
+               end
                return
        end
 
        local player_inv = player:get_inventory()
        if is_all_empty(player_inv) then
+               minetest.log("action", player_name .. " dies at " .. pos_string ..
+                       ". No bones placed")
+               if bones_position_message then
+                       minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. ".")
+               end
                return
        end
 
-       local pos = vector.round(player:getpos())
-       local player_name = player:get_player_name()
-
        -- check if it's possible to place bones, if not find space near player
        if bones_mode == "bones" and not may_replace(pos, player) then
                local air = minetest.find_node_near(pos, 1, {"air"})
@@ -218,12 +230,25 @@ minetest.register_on_dieplayer(function(player)
                        player_inv:set_list(list_name, {})
                end
                drop(pos, ItemStack("bones:bones"))
+               minetest.log("action", player_name .. " dies at " .. pos_string ..
+                       ". Inventory dropped")
+               if bones_position_message then
+                       minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string ..
+                               ", and dropped their inventory.")
+               end
                return
        end
 
        local param2 = minetest.dir_to_facedir(player:get_look_dir())
        minetest.set_node(pos, {name = "bones:bones", param2 = param2})
 
+       minetest.log("action", player_name .. " dies at " .. pos_string ..
+               ". Bones placed")
+       if bones_position_message then
+               minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string ..
+                       ", and bones were placed.")
+       end
+
        local meta = minetest.get_meta(pos)
        local inv = meta:get_inventory()
        inv:set_size("main", 8 * 4)
index 343d041d4804396f84d63394061ba33861ef0668..4f930a8b92fe7e40217df70aac32c1ace1572ca4 100644 (file)
@@ -44,6 +44,9 @@ tnt_radius (TNT radius) int 3 0
 #    Setting this to 0 will disable sharing of bones completely.
 share_bones_time (Bone share time) int 1200 0
 
+#    Inform player of condition and location of new bones.
+bones_position_message (Inform player about bones) bool false
+
 #    Replaces old stairs with new ones. Only required for older worlds.
 enable_stairs_replace_abm (Replace old stairs) bool false