Fixed #11612
This commit is contained in:
@@ -384,20 +384,22 @@ public class DataPatcher{
|
||||
}else if(value instanceof JsonValue jsv && object instanceof Block bl && jsv.isObject() && field.equals("consumes")){
|
||||
Seq<Consume> prevBuilder = Reflect.<Seq<Consume>>get(Block.class, bl, "consumeBuilder").copy();
|
||||
boolean hadItems = bl.hasItems, hadLiquids = bl.hasLiquids, hadPower = bl.hasPower, acceptedItems = bl.acceptsItems;
|
||||
reset(() -> {
|
||||
Runnable resetCons = () -> {
|
||||
Reflect.set(Block.class, bl, "consumeBuilder", prevBuilder);
|
||||
bl.reinitializeConsumers();
|
||||
bl.hasItems = hadItems;
|
||||
bl.hasLiquids = hadLiquids;
|
||||
bl.hasPower = hadPower;
|
||||
bl.acceptsItems = acceptedItems;
|
||||
});
|
||||
};
|
||||
reset(resetCons);
|
||||
|
||||
try{
|
||||
bl.hasPower = false; //if a block doesn't have a power consumer, hasPower should be false. if it does, it will get set to true in reinitializeConsumers
|
||||
parser.readBlockConsumers(bl, jsv);
|
||||
bl.reinitializeConsumers();
|
||||
}catch(Throwable e){
|
||||
resetCons.run();
|
||||
Log.err(e);
|
||||
warn("Failed to read consumers for '@': @", bl, Strings.getSimpleMessage(e));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user