Hi ,
Im having some troubles working with entities...
Here is my custom entity class :
package littlemonge.rpgcraft.entity;
import littlemonge.rpgcraft.entity.base.RpgCraftBaseEntity;
import littlemonge.rpgcraft.item.DiamoniteItem;
import littlemonge.rpgcraft.utils.Utils;
import net.minecraft.block.Blocks;
import net.minecraft.entity.EntityType;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class DiamoniteEntity extends RpgCraftBaseEntity {
public static EntityType<DiamoniteEntity> ENTITY_TYPE;
private int driedProgress = 0;
public DiamoniteEntity(EntityType<? extends DiamoniteEntity> type, World world) {
super(type, world);
}
public DiamoniteEntity(final World w, final double x, final double y, final double z, final ItemStack is) {
super(ENTITY_TYPE, w, x, y, z, is);
this.setNoDespawn();
}
@Override
public void tick() {
super.tick();
final ItemStack itemStack = this.getItem();
final DiamoniteItem diamonite = (DiamoniteItem) itemStack.getItem();
if(this.onGround && (Utils.findBlockUnderEntity(this).equals(Blocks.MAGMA_BLOCK))){
if(Utils.isClient()) {
driedProgress++;
}else {
driedProgress += 0.5;
}
}
if(driedProgress % 10 == 0 ) {
ItemStack newItem = diamonite.triggerDry(itemStack.copy());
this.setItem(newItem);
}
}
}
Here is where I register the entity :
package littlemonge.rpgcraft.init;
import littlemonge.rpgcraft.entity.DiamoniteEntity;
import littlemonge.rpgcraft.utils.Reference;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityClassification;
import net.minecraft.entity.EntityType;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.registries.ObjectHolder;
@Mod.EventBusSubscriber(modid = Reference.MODID, bus = Mod.EventBusSubscriber.Bus.MOD)
@ObjectHolder(Reference.MODID)
public final class ModEntities {
@SubscribeEvent
public static void registerEntitites(RegistryEvent.Register<EntityType<?>> event) {
init();
event.getRegistry().registerAll(DiamoniteEntity.ENTITY_TYPE);
}
private static void init() {
DiamoniteEntity.ENTITY_TYPE = createEntityType(EntityType.Builder
.<DiamoniteEntity>create(DiamoniteEntity::new, EntityClassification.MISC).size(0.25F, 0.25F)
.setTrackingRange(64).setUpdateInterval(20).setShouldReceiveVelocityUpdates(false), Reference.DIAMONITE_ENTITY);
}
@SuppressWarnings("rawtypes")
public static <T extends Entity> EntityType<T> createEntityType(EntityType.Builder builder, String name) {
EntityType<T> type = (EntityType<T>) builder.build(Reference.MODID + '.' + name).setRegistryName(name);
return type;
}
}
And here its the crash :
java.lang.NullPointerException: null
at net.minecraft.client.renderer.entity.EntityRendererManager.shouldRender(EntityRendererManager.java:232) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.renderer.WorldRenderer.getViewVector(WorldRenderer.java:940) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
at net.minecraft.client.renderer.GameRenderer.renderWorld(GameRenderer.java:612) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:434) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:957) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.run(Minecraft.java:554) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:177) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_231] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_231] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_231] {}
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_231] {}
at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.0.0-milestone.4.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.0.0-milestone.4.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.0.0-milestone.4.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.0.0-milestone.4.jar:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.0.0-milestone.4.jar:?] {}
at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.0.14_mapped_snapshot_20200131-1.15.1-recomp.jar:?]
Can somebody please help me to find why im having a nullpointer?
Thanks in advance.