10RF
废话不多说,如题目:相关代码
- [spoiler=BlockInit相关]<div class="blockcode"><blockquote>public static BlockBehaviour.Properties makeConfig(float strength
- , Material material, Boolean needTool, SoundType sound)
- {
- BlockBehaviour.Properties properties = BlockBehaviour.Properties.of(material);
- properties = properties.sound(sound);
- if (needTool) properties = properties.requiresCorrectToolForDrops();
- properties = properties.strength(strength, strength);
- return properties;
- }
- public static <T extends BlockEntity> RegistryObject<BlockEntityType<? extends T>> regBlockEntity(
- BlockEntityType.BlockEntitySupplier<? extends T> p, Block block, String id)
- {
- return BLOCK_ENTITY_TYPES.register(id,
- () -> BlockEntityType.Builder.of(p, block).build(DSL.remainderType()));
- }
- public static final RegistryObject<Block> MAGNETIZER = BLOCK_REGISTER.register("magnetizer",
- () -> new Magnetizer(
- makeConfig(1.4F, Material.METAL, true, SoundType.STONE)
- ));
- public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITY_TYPES =
- DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, Values.MOD_ID);
- public static final RegistryObject<BlockEntityType<? extends BlockEntity>> MAGNETIZER_ENT =
- regBlockEntity(MagnetizerEntity::new, MAGNETIZER.get(), "magnetizer");
复制代码 [/spoiler]在最后一行 "MAGNETIZER.get()"报错
GET方法源码 - @NotNull
- @Override
- public T get()
- {
- T ret = this.value;
- Objects.requireNonNull(ret, () -> "Registry Object not present: " + this.name);
- return ret;
- }
复制代码 应该就在 Objects.requireNonNull(ret, () -> "Registry Object not present: " + this.name);失败
调试时我发现"this.value" 的值是null
最后也报了:
Caused by: java.lang.NullPointerException: Registry Object not present: supertech:magnetizer
可是我这创建方法好像也没问题啊,我看了其他的RegistryObject<Block>的value也都是null啊.....
|
|