Lazy.of(ModBlock.METEORITE_ORE) выдаёт ошибку
public enum ModEventGenSubscriber {
METEORITE_ORE(Lazy.of(ModBlock.METEORITE_ORE),2, 0, 8);
private final Lazy<Block> block;
private final int maxVeinSize;
private final int minHeight;
private final int maxHeight;
ModEventGenSubscriber(Lazy<Block> block, int maxVeinSize, int minHeight, int maxHeight) {
this.block = block;
this.maxVeinSize = maxVeinSize;
this.minHeight = minHeight;
this.maxHeight = maxHeight;
}
public Lazy<Block> getBlock() {
return block;
}
public int getMaxVeinSize() {
return maxVeinSize;
}
public int getMinHeight() {
return minHeight;
}
public int getMaxHeight() {
return maxHeight;
}
public static ModEventGenSubscriber get(Block block) {
for(ModEventGenSubscriber ore : values()) {
if(block == ore.block) {
return ore;
}
}
return null;
}
}
в строке Lazy.of(ModBlock.METEORITE_ORE),2, 0, 8); ошибка но я не могу понять что здесь не так, всё делал по гайдам.
текст ошибки:
Incompatible types. Found: 'net.minecraftforge.common.util.Lazy<net.minecraft.block.Block>', required: 'net.minecraftforge.common.util.Lazy<jdk.nashorn.internal.ir.Block>'
Ответы (1 шт):
В тексте ошибки ведь написано, в чём она заключается. Ошибка в том, что в параметре Lazy<Block> block конструктора ваш тип Block берётся из пакета jdk.nashorn.internal.ir, а ModBlock.METEORITE_ORE возвращаемым типом имеет Block из другого пакета - net.minecraft.block.
Так что либо в импортах пропишите
import net.minecraft.block.Block;
либо в конструкторе задайте полное имя Block, вместе с его пакетом:
Lazy<net.minecraft.block.Block> block