diff --git a/jobs.py b/jobs.py index 848c9d3..bcc6e90 100644 --- a/jobs.py +++ b/jobs.py @@ -739,7 +739,13 @@ class SleepWithBedStates: w = self.g.world p = utils.pint(self.g.pos) - self.beds = w.find_blocks_indexed(p, blocks.BED_IDS) + result = w.find_blocks_indexed(p, blocks.BED_IDS) + + self.beds = [] + for bed in result: + if bed not in self.beds and bed not in self.bad_beds: + self.beds.append(bed) + print('Found:', self.beds) self.state = self.choose_bed @@ -755,6 +761,7 @@ class SleepWithBedStates: return bed = self.beds[0] + print('Chose:', bed) tmp = c.get_block_at(*bed) c.set_block_at(*bed, blocks.AIR) @@ -771,6 +778,9 @@ class SleepWithBedStates: return else: self.beds.pop(0) + self.bad_beds.append(bed) + print('Cant get to bed, blacklisting') + self.state = self.select_bed def going_to_bed(self): if utils.pint(self.g.pos) == self.opening: @@ -884,6 +894,7 @@ class SleepWithBedStates: self.my_bed = False self.beds = [] + self.bad_beds = [] self.area = None self.opening = None self.bad_areas = []