File tree Expand file tree Collapse file tree 2 files changed +23
-5
lines changed Expand file tree Collapse file tree 2 files changed +23
-5
lines changed Original file line number Diff line number Diff line change @@ -25,8 +25,15 @@ local function destruct_bed(pos, n)
2525 end
2626end
2727
28+ beds .is_bed_node = {}
29+
30+ local function register_bed_node (name , def )
31+ beds .is_bed_node [name ] = true
32+ core .register_node (name , def )
33+ end
34+
2835function beds .register_bed (name , def )
29- minetest . register_node (name .. " _bottom" , {
36+ register_bed_node (name .. " _bottom" , {
3037 description = def .description ,
3138 inventory_image = def .inventory_image ,
3239 wield_image = def .wield_image ,
@@ -150,7 +157,7 @@ function beds.register_bed(name, def)
150157 end ,
151158 })
152159
153- minetest . register_node (name .. " _top" , {
160+ register_bed_node (name .. " _top" , {
154161 drawtype = " nodebox" ,
155162 tiles = def .tiles .top ,
156163 use_texture_alpha = " clip" ,
Original file line number Diff line number Diff line change @@ -170,13 +170,24 @@ end
170170
171171-- Public functions
172172
173+ function beds .kick_player (player )
174+ lay_down (player , nil , nil , false )
175+ end
176+
173177function beds .kick_players ()
174- for name , _ in pairs (beds .player ) do
175- local player = minetest .get_player_by_name (name )
176- lay_down (player , nil , nil , false )
178+ for name in pairs (beds .player ) do
179+ beds .kick_players (core .get_player_by_name (name ))
177180 end
178181end
179182
183+ core .register_globalstep (function ()
184+ for name , bed_pos in pairs (beds .bed_position ) do
185+ if not beds .is_bed_node [core .get_node (bed_pos ).name ] then
186+ beds .kick_player (core .get_player_by_name (name ))
187+ end
188+ end
189+ end )
190+
180191function beds .skip_night ()
181192 minetest .set_timeofday (0.23 )
182193end
You can’t perform that action at this time.
0 commit comments