Здоровье у энтити

Версия Minecraft
1.12.2

GoogleTan

Картошка :3
1,354
43
310
У меня есть Entity и мне надо сделать ей хпшки и для этого я сказала что оная теперь EntityLiving, но дебагер сказал мне что не может ставить ей хп(NPE). И сразу это не мой мод - я его модифицирую и не претедную на Авторские права. Кода очень много - говорите что надо я скину.
 
Краш-лог
[10:12:36] [Server thread/ERROR] [FML]: Encountered an exception while constructing entity 'astikorcarts:cotopult'
java.lang.reflect.InvocationTargetException: null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_231]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_231]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_231]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_231]
at net.minecraftforge.fml.common.registry.EntityEntryBuilder$ConstructorFactory.apply(EntityEntryBuilder.java:306) [EntityEntryBuilder$ConstructorFactory.class:?]
at net.minecraftforge.fml.common.registry.EntityEntryBuilder$ConstructorFactory.apply(EntityEntryBuilder.java:292) [EntityEntryBuilder$ConstructorFactory.class:?]
at net.minecraftforge.fml.common.registry.EntityEntry.newInstance(EntityEntry.java:68) [EntityEntry.class:?]
at net.minecraft.entity.EntityList.createEntityByIDFromName(EntityList.java:244) [EntityList.class:?]
at net.minecraft.entity.EntityList.createEntityFromNBT(EntityList.java:258) [EntityList.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.createEntityFromNBT(AnvilChunkLoader.java:637) [AnvilChunkLoader.class:?]
at net.minecraft.world.chunk.storage.AnvilChunkLoader.readWorldEntityPos(AnvilChunkLoader.java:596) [AnvilChunkLoader.class:?]
at net.minecraft.command.server.CommandSummon.execute(CommandSummon.java:109) [CommandSummon.class:?]
at net.minecraft.command.CommandHandler.tryExecute(CommandHandler.java:126) [CommandHandler.class:?]
at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:98) [CommandHandler.class:?]
at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:1003) [NetHandlerPlayServer.class:?]
at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:979) [NetHandlerPlayServer.class:?]
at net.minecraft.network.play.client.CPacketChatMessage.processPacket(CPacketChatMessage.java:47) [CPacketChatMessage.class:?]
at net.minecraft.network.play.client.CPacketChatMessage.processPacket(CPacketChatMessage.java:8) [CPacketChatMessage.class:?]
at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:21) [PacketThreadUtil$1.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_231]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_231]
at net.minecraft.util.Util.runTask(Util.java:53) [Util.class:?]
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:798) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743) [MinecraftServer.class:?]
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_231]
Caused by: java.lang.NullPointerException
at net.minecraft.network.datasync.EntityDataManager.set(EntityDataManager.java:156) ~[EntityDataManager.class:?]
at net.minecraft.entity.EntityLivingBase.setHealth(EntityLivingBase.java:955) ~[EntityLivingBase.class:?]
at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:216) ~[EntityLivingBase.class:?]
at de.mennomax.astikorcarts.entity.AbstractDrawn.<init>(AbstractDrawn.java:64) ~[AbstractDrawn.class:?]
at de.mennomax.astikorcarts.entity.EntityCotopult.<init>(EntityCotopult.java:32) ~[EntityCotopult.class:?]
... 27 more
Краш-лог:
[10:12:36] [Server thread/ERROR] [FML]: Encountered an exception while constructing entity 'astikorcarts:cotopult'
java.lang.reflect.InvocationTargetException: null
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_231]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_231]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_231]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_231]
	at net.minecraftforge.fml.common.registry.EntityEntryBuilder$ConstructorFactory.apply(EntityEntryBuilder.java:306) [EntityEntryBuilder$ConstructorFactory.class:?]
	at net.minecraftforge.fml.common.registry.EntityEntryBuilder$ConstructorFactory.apply(EntityEntryBuilder.java:292) [EntityEntryBuilder$ConstructorFactory.class:?]
	at net.minecraftforge.fml.common.registry.EntityEntry.newInstance(EntityEntry.java:68) [EntityEntry.class:?]
	at net.minecraft.entity.EntityList.createEntityByIDFromName(EntityList.java:244) [EntityList.class:?]
	at net.minecraft.entity.EntityList.createEntityFromNBT(EntityList.java:258) [EntityList.class:?]
	at net.minecraft.world.chunk.storage.AnvilChunkLoader.createEntityFromNBT(AnvilChunkLoader.java:637) [AnvilChunkLoader.class:?]
	at net.minecraft.world.chunk.storage.AnvilChunkLoader.readWorldEntityPos(AnvilChunkLoader.java:596) [AnvilChunkLoader.class:?]
	at net.minecraft.command.server.CommandSummon.execute(CommandSummon.java:109) [CommandSummon.class:?]
	at net.minecraft.command.CommandHandler.tryExecute(CommandHandler.java:126) [CommandHandler.class:?]
	at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:98) [CommandHandler.class:?]
	at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:1003) [NetHandlerPlayServer.class:?]
	at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:979) [NetHandlerPlayServer.class:?]
	at net.minecraft.network.play.client.CPacketChatMessage.processPacket(CPacketChatMessage.java:47) [CPacketChatMessage.class:?]
	at net.minecraft.network.play.client.CPacketChatMessage.processPacket(CPacketChatMessage.java:8) [CPacketChatMessage.class:?]
	at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:21) [PacketThreadUtil$1.class:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_231]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_231]
	at net.minecraft.util.Util.runTask(Util.java:53) [Util.class:?]
	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:798) [MinecraftServer.class:?]
	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743) [MinecraftServer.class:?]
	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) [MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_231]
Caused by: java.lang.NullPointerException
	at net.minecraft.network.datasync.EntityDataManager.set(EntityDataManager.java:156) ~[EntityDataManager.class:?]
	at net.minecraft.entity.EntityLivingBase.setHealth(EntityLivingBase.java:955) ~[EntityLivingBase.class:?]
	at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:216) ~[EntityLivingBase.class:?]
	at de.mennomax.astikorcarts.entity.AbstractDrawn.<init>(AbstractDrawn.java:64) ~[AbstractDrawn.class:?]
	at de.mennomax.astikorcarts.entity.EntityCotopult.<init>(EntityCotopult.java:32) ~[EntityCotopult.class:?]
	... 27 more
3,005
192
592

ReyMagos

Тег-бомбастер
412
7
121
Попробуй наследовать существо от EntityCreature.
Edit: Если убрать эту строчку, то ошибка исчезнет? А то не похоже, что проблемы только из-за неё.
И да, можешь скинуть конструкторы вот этих классов EntityCotopult и AbstractDrawn и если есть метод applyEntityAttributes из AbstractDrawn.
 
Последнее редактирование:

GoogleTan

Картошка :3
1,354
43
310
Edit: Если убрать эту строчку, то ошибка исчезнет?
Исчезнет если наследоваться от Entity, а не от ливинга.
Java:
    public EntityCotopult(World worldIn)
    {
        super(worldIn);
        setSize(2, 2);
    }
Java:
    public AbstractDrawn(World worldIn)
    {
        super(worldIn);
        this.stepHeight = 1.2F;
        if(worldIn.isRemote)
        {
            this.firstPullingId = -1;
        }
    }
Java:
    @Override
    protected void applyEntityAttributes()
    {
        super.applyEntityAttributes();
        this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(50F);
    }
Если наследовтаься от EntityCreature то в логе появляется строка и все:
Java:
[22:49:52] [Server thread/ERROR] [FML]: Encountered an exception while constructing entity 'astikorcarts:cotopult'
java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_231]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_231]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_231]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_231]
    at net.minecraftforge.fml.common.registry.EntityEntryBuilder$ConstructorFactory.apply(EntityEntryBuilder.java:306) [EntityEntryBuilder$ConstructorFactory.class:?]
    at net.minecraftforge.fml.common.registry.EntityEntryBuilder$ConstructorFactory.apply(EntityEntryBuilder.java:292) [EntityEntryBuilder$ConstructorFactory.class:?]
    at net.minecraftforge.fml.common.registry.EntityEntry.newInstance(EntityEntry.java:68) [EntityEntry.class:?]
    at net.minecraft.entity.EntityList.createEntityByIDFromName(EntityList.java:244) [EntityList.class:?]
    at net.minecraft.entity.EntityList.createEntityFromNBT(EntityList.java:258) [EntityList.class:?]
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.createEntityFromNBT(AnvilChunkLoader.java:637) [AnvilChunkLoader.class:?]
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.readWorldEntityPos(AnvilChunkLoader.java:596) [AnvilChunkLoader.class:?]
    at net.minecraft.command.server.CommandSummon.execute(CommandSummon.java:109) [CommandSummon.class:?]
    at net.minecraft.command.CommandHandler.tryExecute(CommandHandler.java:126) [CommandHandler.class:?]
    at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:98) [CommandHandler.class:?]
    at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:1003) [NetHandlerPlayServer.class:?]
    at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:979) [NetHandlerPlayServer.class:?]
    at net.minecraft.network.play.client.CPacketChatMessage.processPacket(CPacketChatMessage.java:47) [CPacketChatMessage.class:?]
    at net.minecraft.network.play.client.CPacketChatMessage.processPacket(CPacketChatMessage.java:8) [CPacketChatMessage.class:?]
    at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:21) [PacketThreadUtil$1.class:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_231]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_231]
    at net.minecraft.util.Util.runTask(Util.java:53) [Util.class:?]
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:798) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:743) [MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:192) [IntegratedServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:592) [MinecraftServer.class:?]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_231]
Caused by: java.lang.NullPointerException
    at net.minecraft.network.datasync.EntityDataManager.set(EntityDataManager.java:156) ~[EntityDataManager.class:?]
    at net.minecraft.entity.EntityLivingBase.setHealth(EntityLivingBase.java:955) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:216) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.EntityLiving.<init>(EntityLiving.java:101) ~[EntityLiving.class:?]
    at net.minecraft.entity.EntityCreature.<init>(EntityCreature.java:22) ~[EntityCreature.class:?]
    at de.mennomax.astikorcarts.entity.AbstractDrawn.<init>(AbstractDrawn.java:60) ~[AbstractDrawn.class:?]
    at de.mennomax.astikorcarts.entity.EntityCotopult.<init>(EntityCotopult.java:32) ~[EntityCotopult.class:?]
 
Последнее редактирование:
3,005
192
592
SharedMonsterAttributes.MAX_HEALTH регается только в EntityLivingBase.
Если тебе нужно добавить к своему мобу, которые не наследует EntityLivingBase, то в applyEntityAttributes пишешь
this.getAttributeMap().registerAttribute(SharedMonsterAttributes.MAX_HEALTH);
И после
this.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(50F);
 

GoogleTan

Картошка :3
1,354
43
310
Теперь оная есть! Но при ударе падает:
Java:
java.lang.NullPointerException: at index 1
    at com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:236)
    at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:226)
    at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:220)
    at com.google.common.collect.ImmutableList.construct(ImmutableList.java:347)
    at com.google.common.collect.ImmutableList.of(ImmutableList.java:102)
    at com.google.common.collect.FluentIterable.concat(FluentIterable.java:189)
    at com.google.common.collect.Iterables.concat(Iterables.java:428)
    at net.minecraft.entity.Entity.getEquipmentAndArmor(Entity.java:2520)
    at net.minecraft.enchantment.EnchantmentHelper.applyThornEnchantments(EnchantmentHelper.java:188)
    at net.minecraft.entity.player.EntityPlayer.attackTargetEntityWithCurrentItem(EntityPlayer.java:1511)
    at net.minecraft.client.multiplayer.PlayerControllerMP.attackEntity(PlayerControllerMP.java:575)
    at net.minecraft.client.Minecraft.clickMouse(Minecraft.java:1622)
    at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2375)
    at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2146)
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1934)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1187)
    at net.minecraft.client.Minecraft.run(Minecraft.java:441)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    at GradleStart.main(GradleStart.java:25)
 

ReyMagos

Тег-бомбастер
412
7
121
Какой-то из этих методов (this.getHeldEquipment(), this.getArmorInventoryList()) возвращает null. Посмотри не переопределены ли они где-нибудь, если да и там возвращается null, то верни за место него вот это Collections.<ItemStack>emptyList()
 

ReyMagos

Тег-бомбастер
412
7
121
Какой-то из этих методов (this.getHeldEquipment(), this.getArmorInventoryList()) возвращает null. Посмотри не переопределены ли они где-нибудь, если да и там возвращается null, то верни за место него вот это Collections.<ItemStack>emptyList()
И ещё возможно по этому сообщению ты меня неправильно поняла, если эти методы где-то переопределялись (в EntityCotopult или AbstractDrawn) и возвращают в каком-то случае null, то за место return null надо поставить Collections.<ItemStack>emptyList(). То есть остальную логику метода (если она конечно же есть), в том числе то что вернул супер метод, стирать не надо.
 
Сверху