From 876a9ca5d22b337b8f5d12d1325fbd1280a0bacb Mon Sep 17 00:00:00 2001 From: beyondlimits Date: Tue, 3 Jul 2018 20:50:16 +0200 Subject: [PATCH] Beds: Fix input checking for "Force night skip" --- mods/beds/functions.lua | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mods/beds/functions.lua b/mods/beds/functions.lua index 32721cd4..18d96e77 100644 --- a/mods/beds/functions.lua +++ b/mods/beds/functions.lua @@ -219,16 +219,25 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname ~= "beds_form" then return end + + -- Because "Force night skip" button is a button_exit, it will set fields.quit + -- and lay_down call will change value of player_in_bed, so it must be taken + -- earlier. + local last_player_in_bed = player_in_bed + if fields.quit or fields.leave then lay_down(player, nil, nil, false) update_formspecs(false) end if fields.force then - update_formspecs(is_night_skip_enabled()) - if is_night_skip_enabled() then + local is_majority = (#minetest.get_connected_players() / 2) < last_player_in_bed + if is_majority and is_night_skip_enabled() then + update_formspecs(true) beds.skip_night() beds.kick_players() + else + update_formspecs(false) end end end)