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 шт):

Автор решения: Byb

В тексте ошибки ведь написано, в чём она заключается. Ошибка в том, что в параметре 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
→ Ссылка