SquidDev-CC / plethora

A peripheral provider for ComputerCraft
https://plethora.madefor.cc/
MIT License
57 stars 22 forks source link

Furnace throwing "this block has changed" #118

Open redfast00 opened 6 years ago

redfast00 commented 6 years ago

I'm trying to setup an automatic furnace array. When I try to get metadata, the lua code crashes.

lua> a = peripheral.wrap("minecraft:furnace_1").getItemMeta(2)
lua:1:The block has changed

There are some items in the burn slot, some items in the result slot, but there is no fuel. The furnace worked before.

SquidDev commented 6 years ago

Hrrm, I thought I had fixed this issue several times (#49, #34). What version of ComputerCraft are you running?

redfast00 commented 6 years ago

I'm on CC: Tweaked 1.80pr1.5 and plethora 1.1.11.

SquidDev commented 6 years ago

Testing on master with CC:T 1.80pr1.6 gives minecraft:furnace_4 is no longer attached. I suspect the root cause is the same: the furnace peripheral is refreshed due to the smelting state changing, meaning the queued task is aborted as its associated peripheral is no longer attached.

I'm not quite sure how to solve this, aside from waiting for 1.13 where furnaces are no longer deranged. On your end, your best bet is to poll furnaces less often. It won't fix the bug, but will dramatically reduce the changes of it happening - in my inventory program, I only check their state every 10 seconds, and I've not seen this error occur.