简短问题:如何解决Forge Mod代码中的两个错误?
所需的长问题/信息:
我正在创建一个锻造模型,它扩展了钻石的功能,但我在制作“积木项目”时遇到了一个问题,这是库存中积木的表示。我使用的Forge MDK是Forge-1.15.2-31.2.0-MDK
。
在下面代码的第32行,我得到两个错误。
第一个是用于新BlockItemBase()
,错误是构造函数BlockItemBase(Item)未定义
有两个“快速修复”,但当我尝试它们时,会在另一个类中导致另一个错误。
第二个是用于
CONCENTRATED_DIAMOND_BLOCK_ITEM
。错误是在定义字段之前不能引用它。
这里没有任何快速修复。
如果有帮助的话,我正在使用EclipseIDE,这两个错误都被归类为“Java错误”我不确定是否有其他新的Forge开发人员遇到这个问题,但我找不到任何解决这个问题的方法。最后,如果您需要更多信息,请告诉我。
守则:
package pw.AbyssStudios.ExtenDiamonds.util;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import pw.AbyssStudios.ExtenDiamonds.ExtenDiamonds;
import pw.AbyssStudios.ExtenDiamonds.blocks.BlockItemBase;
import pw.AbyssStudios.ExtenDiamonds.blocks.ConcentratedDiamondBlock;
import pw.AbyssStudios.ExtenDiamonds.items.ItemBase;
public class RegistryHandler {
public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, ExtenDiamonds.MOD_ID);
public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, ExtenDiamonds.MOD_ID);
public static void init() {
ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus());
BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus());
}
//ITEMS
public static final RegistryObject<Item> DIAMOND_APPLE = ITEMS.register("diamond_apple", ItemBase::new);
//BLOCKS
public static final RegistryObject<Block> CONCENTRATED_DIAMOND_BLOCK = BLOCKS.register("concentrated_diamond_block", ConcentratedDiamondBlock::new);
//BLOCKITEMS
public static final RegistryObject<Item> CONCENTRATED_DIAMOND_BLOCK_ITEM = ITEMS.register("concentrated_diamond_block", () -> new BlockItemBase(CONCENTRATED_DIAMOND_BLOCK_ITEM.get())); //THIS IS WHERE THE ERROR IS
}
为了创建CONCENTRATED_DIAMOND_BLOCK_ITEM
,您需要一个BlockItemBase
的实例,这需要CONCENTRATED_DIAMOND_BLOCK_ITEM
。这是一个循环引用。供应商指向一个**不存在的引用**。
public static final RegistryObject<Item> CONCENTRATED_DIAMOND_BLOCK_ITEM =
ITEMS.register("concentrated_diamond_block",
() -> new BlockItemBase(/*here you cannot use reference to CONCENTRATED_DIAMOND_BLOCK_ITEM */));
因为您在lambda表达式内部使用引用,所以该引用必须是最终引用,所以这里您需要找到另一种方法来创建BlockItemBase
supplier。
问题内容: 我有一个像下面这样的枚举,但是蚀说每个相对的对的第一个定义中都有错误。 我想要完成的是能够用来获取的 相反 对象。有没有可能的解决方法?也许对于一个空的占位符和之前和在此示例中定义的? 问题答案: 您可以尝试类似: 然后引用为 通过以字符串表示形式查找枚举值,应该可以完成您想要的工作。我认为您无法将其与对Baz的递归引用一起使用。
.我的理解是,这是因为javac像解释器一样工作,逐行读取。但是当涉及到我们调用类中的字段并向其传递值的方法时,我们可以在方法声明之后定义字段。 参数eyes、tail、Teath和coat在用于将值传递给构造函数后定义。javac如何理解方法后有一个变量。允许这样做是因为我们只能定义字段,而不能在类定义中对它们进行任何操作吗?
我在修改我安装的WordPress流行帖子插件时遇到了一些问题。 它可以选择从自定义字段获取缩略图,我已将其输入为“image_facebook”。但是缩略图没有显示。 在检查代码时,我发现imgsrc有post id而不是返回图像URL。 我已经把问题缩小到我安装的另一个插件http://wordpress.org/plugins/advanced-custom-fields/ 当它处于活动状态
问题内容: 我试图通过使用查询在Access中创建一个计算。目前,一个查询计算出“ MPP油”的值(最大生产潜力),而另一个查询需要使用该值来计算“未分配的损失”。这些计算使用来自基本查询“ PEBaseQuery”的公司/资产/年份数据。其他输入值(用于计算未分配的损失)使用ID引用…虽然我的代码似乎有误,请帮忙! 问题答案: 从您在评论中提到的错误: 错误“您试图执行不包含指定表达式“ Com
介绍 model 参考文档已经介绍了如何使用 Django 的标准字段类;例如 CharField, DateField,等等。对于很多应用来说,这些类足够用了。 但是在某些情况下, 你所用的Django 不具备你需要的某些精巧功能,或是你想使用的字段与 Django 自带字段完全不同。 Django 内置的字段类型并不能覆盖所有可能遇到的数据库的列类型,仅仅是些普通的字段类型,例如VARCHAR
我想在WooCommerce结帐页面中添加自定义字段,但用于选定的产品。 例如,如果客户的购物车中只有产品A,则此自定义字段应显示在WooCommerce签出页面中 我在函数中使用以下代码。php添加自定义字段: