I tried to add an custom Entity into Minecraft, but i get this error:
[16:48:36] [Server thread/FATAL] [minecraft/ThreadTaskExecutor]: Error executing task on Server
java.lang.NullPointerException: null
at net.minecraft.network.datasync.EntityDataManager.set(EntityDataManager.java:122) ~[forge:?] {re:classloading}
at net.minecraft.entity.LivingEntity.setHealth(LivingEntity.java:924) ~[forge:?] {re:classloading}
at net.minecraft.entity.LivingEntity.<init>(LivingEntity.java:207) ~[forge:?] {re:classloading}
at net.tomschmidt.drones.entity.DroneEntity.<init>(DroneEntity.java:23) ~[?:?] {re:classloading}
at net.tomschmidt.drones.items.DroneSpawnItem.onItemUseFirst(DroneItem.java:35) ~[?:?] {re:classloading}
at net.minecraft.item.ItemStack.lambda$onItemUseFirst$6(ItemStack.java:191) ~[forge:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:202) ~[forge:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
at net.minecraft.item.ItemStack.onItemUseFirst(ItemStack.java:191) ~[forge:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
at net.minecraft.server.management.PlayerInteractionManager.useItemOn(PlayerInteractionManager.java:331) ~[forge:?] {re:classloading}
at net.minecraft.network.play.ServerPlayNetHandler.handleUseItemOn(ServerPlayNetHandler.java:958) ~[forge:?] {re:classloading}
at net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket.handle(CPlayerTryUseItemOnBlockPacket.java:36) ~[forge:?] {re:classloading}
at net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket.handle(CPlayerTryUseItemOnBlockPacket.java:12) ~[forge:?] {re:classloading}
at net.minecraft.network.PacketThreadUtil.lambda$ensureRunningOnSameThread$0(PacketThreadUtil.java:19) ~[forge:?] {re:classloading}
at net.minecraft.util.concurrent.TickDelayedTask.run(TickDelayedTask.java:17) ~[forge:?] {re:classloading}
at net.minecraft.util.concurrent.ThreadTaskExecutor.doRunTask(ThreadTaskExecutor.java:136) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.RecursiveEventLoop.doRunTask(RecursiveEventLoop.java:22) ~[forge:?] {re:classloading}
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:734) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:159) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.ThreadTaskExecutor.pollTask(ThreadTaskExecutor.java:109) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:717) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:711) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.util.concurrent.ThreadTaskExecutor.managedBlock(ThreadTaskExecutor.java:119) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:697) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:646) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:232) ~[forge:?] {re:classloading,pl:accesstransformer:B}
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_342] {}
(I try to spawn my Entity with an extra Item but the same happens with the summon command)
Other people in this forum had similiar errors, but they could fix it with
public static AttributeModifierMap.MutableAttribute setCustomAttributes() {
return LivingEntity.createLivingAttributes()
.add(Attributes.MAX_HEALTH, 20.0f);
}
and
@Mod.EventBusSubscriber(modid = Drones.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class ModEventBusEvents {
@SubscribeEvent
public static void addEntityAttributes(EntityAttributeCreationEvent event) {
CombatDrones.LOGGER.info("ID22, EntityAttributeCreationEvent"); //is executed (shows in log)
event.put(ModEntityTypes.DRONE.get(), DroneEntity.setCustomAttributes().build());
CombatDrones.LOGGER.info("HasSupplier: " + GlobalEntityTypeAttributes.hasSupplier(ModEntityTypes.DRONE.get())); //returns true
}
}
But i already did this and that confuses me.
Does anyone know the solution for my problem?
PS: excuse my typos, i am not an native english speaker.