Skip to content

Commit 624dafc

Browse files
authoredFeb 11, 2021
Fix crash on exit of bed formspec if not sleeping (#2826)
1 parent 3d95fce commit 624dafc

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed
 

‎mods/beds/functions.lua

+11-5
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,19 @@ local function lay_down(player, pos, bed_pos, state, skip)
6060

6161
-- stand up
6262
if state ~= nil and not state then
63-
local p = beds.pos[name] or nil
63+
if not beds.player[name] then
64+
-- player not in bed, do nothing
65+
return false
66+
end
6467
beds.bed_position[name] = nil
6568
-- skip here to prevent sending player specific changes (used for leaving players)
6669
if skip then
6770
return
6871
end
69-
if p then
70-
player:set_pos(p)
71-
end
72+
player:set_pos(beds.pos[name])
7273

7374
-- physics, eye_offset, etc
74-
local physics_override = assert(beds.player[name].physics_override)
75+
local physics_override = beds.player[name].physics_override
7576
beds.player[name] = nil
7677
player:set_physics_override({
7778
speed = physics_override.speed,
@@ -101,6 +102,11 @@ local function lay_down(player, pos, bed_pos, state, skip)
101102
return false
102103
end
103104

105+
if beds.player[name] then
106+
-- player already in bed, do nothing
107+
return false
108+
end
109+
104110
beds.pos[name] = pos
105111
beds.bed_position[name] = bed_pos
106112
beds.player[name] = {physics_override = player:get_physics_override()}

0 commit comments

Comments
 (0)