Posted March 22, 20214 yr Hi, I am trying to add a custom entity, however whenever I try to summon the entity I keep receiving the following error. [10:19:35] [Server thread/WARN] [minecraft/EntityType]: Exception loading entity: java.lang.NullPointerException: null at net.minecraft.entity.ai.attributes.AttributeModifierManager.getAttributeValue(AttributeModifierManager.java:67) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.entity.LivingEntity.getAttributeValue(LivingEntity.java:1849) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.entity.LivingEntity.getMaxHealth(LivingEntity.java:1610) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.entity.LivingEntity.<init>(LivingEntity.java:209) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.entity.MobEntity.<init>(MobEntity.java:108) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.entity.CreatureEntity.<init>(CreatureEntity.java:13) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.entity.AgeableEntity.<init>(AgeableEntity.java:21) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.entity.passive.AnimalEntity.<init>(AnimalEntity.java:37) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.entity.passive.CowEntity.<init>(CowEntity.java:35) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at me.minecraft.star.entities.TestEntity.<init>(TestEntity.java:15) ~[main/:?] {re:classloading} at net.minecraft.entity.EntityType.create(EntityType.java:448) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.entity.EntityType.lambda$loadEntityUnchecked$1(EntityType.java:459) ~[forge-1.16.4-35.1.4_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} //removed excess at net.minecraft.server.MinecraftServer.runScheduledTasks(MinecraftServer.java:721) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:667) ~[forge:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.lambda$startServer$0(MinecraftServer.java:233) ~[forge:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:748) [?:1.8.0_282] {} [10:19:35] [Render thread/INFO] [minecraft/NewChatGui]: [CHAT] Unable to summon entity I have tried multiple different methods but for some reason the entity attributes are not being set correctly. I am currently using the method suggested in the topic below with no success. https://forums.minecraftforge.net/topic/87597-1161-custom-entity-attributes/ Code: Main class: @Mod(Main.MODID) public class Main { //Removed excess private void setup(final FMLCommonSetupEvent event) { LOGGER.info("STAR - Setup Complete"); DeferredWorkQueue.runLater(() -> { GlobalEntityTypeAttributes.put(EntityRegister.TESTENTITY_TYPE, TestEntity.setCustomAttributes().create()); }); } } Entity Class: public class TestEntity extends CowEntity { //Removed Excess public static AttributeModifierMap.MutableAttribute setCustomAttributes() { return MobEntity.func_233666_p_().createMutableAttribute(Attributes.MOVEMENT_SPEED, (double)0.5F).createMutableAttribute(Attributes.MAX_HEALTH, 20.0D).createMutableAttribute(Attributes.ATTACK_DAMAGE, 5.0D); } } I am using a deferred register method to register entities and it seems to be registering them successfully in the output. It also appears in the commands autofill. Any help would be greatly appreciated
April 8, 20214 yr Author Okay, so I've tried to add it as a subscribe event but it does not appear to exist. I'm using forge-1.16.4-35.1.4 in the eclipse IDE. Here is the event I created: @SubscribeEvent public void entityAttributeCreationEvent(EntityAttributeCreationEvent event) { //EntityAttributeCreateEvent cannot be resolved to a type } There don't seem to be any import candidates.
April 11, 20214 yr Author Thanks for all your help. Here is the method that seems to register the attributes correctly. Entity Class: public class TestEntity extends CowEntity { public static final String REG = "simple_entity"; public static final EntityType<TestEntity> TYPE = EntityType.Builder.<TestEntity>of(TestEntity::new, EntityClassification.MISC) .sized(0.98F, 0.7F) .clientTrackingRange(8) .build(REG); public static final AttributeModifierMap MAP = AttributeModifierMap.builder().add(Attributes.MAX_HEALTH, 20.0) .add(Attributes.MOVEMENT_SPEED, 20.0) .add(Attributes.FOLLOW_RANGE, 20.0) .build(); public TestEntity(EntityType<? extends CowEntity> p_i48567_1_, World p_i48567_2_) { super(p_i48567_1_, p_i48567_2_); this.setNoAi(true); } } Main Class: @Mod(Main.MODID) public class Main { //trim public Main() { IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); bus.register(this.getClass()); //trim LOGGER.info("STAR has been initialised"); } //trim @SubscribeEvent public static void entityAttributeCreationEvent(EntityAttributeCreationEvent event) { LOGGER.info("STAR - Entity Attribute Event"); event.put(TestEntity.TYPE, TestEntity.MAP); } //trim } Now I seem to have an error where there is no defined ai for the entity causing a ticking crash but I'll make a separate topic for that.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.