forked from nalc/nalc_game
		
	Add nil checks for placer
This commit is contained in:
		| @@ -49,7 +49,8 @@ function beds.register_bed(name, def) | ||||
| 			local node = minetest.get_node(under) | ||||
| 			local udef = minetest.registered_nodes[node.name] | ||||
| 			if udef and udef.on_rightclick and | ||||
| 					not (placer and placer:get_player_control().sneak) then | ||||
| 					not (placer and placer:is_player() and | ||||
| 					placer:get_player_control().sneak) then | ||||
| 				return udef.on_rightclick(under, node, placer, itemstack, | ||||
| 					pointed_thing) or itemstack | ||||
| 			end | ||||
| @@ -61,9 +62,11 @@ function beds.register_bed(name, def) | ||||
| 				pos = pointed_thing.above | ||||
| 			end | ||||
|  | ||||
| 			if minetest.is_protected(pos, placer:get_player_name()) and | ||||
| 					not minetest.check_player_privs(placer, "protection_bypass") then | ||||
| 				minetest.record_protection_violation(pos, placer:get_player_name()) | ||||
| 			local player_name = placer and placer:get_player_name() or "" | ||||
|  | ||||
| 			if minetest.is_protected(pos, player_name) and | ||||
| 					not minetest.check_player_privs(player_name, "protection_bypass") then | ||||
| 				minetest.record_protection_violation(pos, player_name) | ||||
| 				return itemstack | ||||
| 			end | ||||
|  | ||||
| @@ -72,12 +75,13 @@ function beds.register_bed(name, def) | ||||
| 				return itemstack | ||||
| 			end | ||||
|  | ||||
| 			local dir = minetest.dir_to_facedir(placer:get_look_dir()) | ||||
| 			local dir = placer and placer:get_look_dir() and | ||||
| 				minetest.dir_to_facedir(placer:get_look_dir()) or 0 | ||||
| 			local botpos = vector.add(pos, minetest.facedir_to_dir(dir)) | ||||
|  | ||||
| 			if minetest.is_protected(botpos, placer:get_player_name()) and | ||||
| 					not minetest.check_player_privs(placer, "protection_bypass") then | ||||
| 				minetest.record_protection_violation(botpos, placer:get_player_name()) | ||||
| 			if minetest.is_protected(botpos, player_name) and | ||||
| 					not minetest.check_player_privs(player_name, "protection_bypass") then | ||||
| 				minetest.record_protection_violation(botpos, player_name) | ||||
| 				return itemstack | ||||
| 			end | ||||
|  | ||||
| @@ -90,7 +94,7 @@ function beds.register_bed(name, def) | ||||
| 			minetest.set_node(botpos, {name = name .. "_top", param2 = dir}) | ||||
|  | ||||
| 			if not (creative and creative.is_enabled_for | ||||
| 					and creative.is_enabled_for(placer:get_player_name())) then | ||||
| 					and creative.is_enabled_for(player_name)) then | ||||
| 				itemstack:take_item() | ||||
| 			end | ||||
| 			return itemstack | ||||
|   | ||||
		Reference in New Issue
	
	Block a user