Jump to content

Entity Problems


Guest

Recommended Posts

I assume this has been posted about before, so point me.

but i cannot find a tutorial that has worked and was specifically for a custom villager with custom items.

 

however. i am stuck with this entity registering and rendering. will someone please help me with this. despite my best efforts, i cannot get my entity (NPC) to show up with an egg. something is giving me an error (asking for "()") --I'll get that eventually--

but even before rearranging thing to cause this error, it ran but without my entity.

 

here the crash report. please help me.

 

 

---- Minecraft Crash Report ----

// Hi. I'm Minecraft, and I'm a crashaholic.

 

Time: 3/5/16 12:12 AM

Description: Initializing game

 

java.lang.NullPointerException: Initializing game

at com.drmdgg.mcraft.entity.P$ModelPHead.<init>(PHead.java:220)

at com.drmdgg.macraft.entity.PHead.load(PHead.java:55)

at com.drmdgg.mcraft.MCraft.load(MCraft.java:84)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:518)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)

at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)

at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)

at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)

at com.google.common.eventbus.EventBus.post(EventBus.java:275)

at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:208)

at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:187)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)

at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)

at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)

at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)

at com.google.common.eventbus.EventBus.post(EventBus.java:275)

at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:118)

at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:692)

at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:291)

at net.minecraft.client.Minecraft.startGame(Minecraft.java:521)

at net.minecraft.client.Minecraft.run(Minecraft.java:356)

at net.minecraft.client.main.Main.main(Main.java:117)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)

at GradleStart.main(Unknown Source)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at com.drmdgg.mcraft.entity.PHead$ModelPHead.<init>(PotHead.java:220)

at com.drmdgg.mcraft.entity.PHead.load(PHead.java:55)

at com.drmdgg.mcraft.MCraft.load(MCraft.java:84)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:518)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)

at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)

at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)

at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)

at com.google.common.eventbus.EventBus.post(EventBus.java:275)

at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:208)

at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:187)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)

at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)

at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)

at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)

at com.google.common.eventbus.EventBus.post(EventBus.java:275)

at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:118)

at net.minecraftforge.fml.common.Loader.initializeMods(Loader.java:692)

at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:291)

at net.minecraft.client.Minecraft.startGame(Minecraft.java:521)

 

-- Initialization --

Details:

Stacktrace:

at net.minecraft.client.Minecraft.run(Minecraft.java:356)

at net.minecraft.client.main.Main.main(Main.java:117)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)

at GradleStart.main(Unknown Source)

 

-- System Details --

Details:

Minecraft Version: 1.8

Operating System: Windows 10 (amd64) version 10.0

Java Version: 1.8.0_74, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 909796344 bytes (867 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0

FML: MCP v9.10 FML v8.0.42.1341 Minecraft Forge 11.14.1.1341 4 mods loaded, 4 mods active

mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized

FML{8.0.42.1341} [Forge Mod Loader] (forgeSrc-1.8-11.14.1.1341.jar) Unloaded->Constructed->Pre-initialized->Initialized

Forge{11.14.1.1341} [Minecraft Forge] (forgeSrc-1.8-11.14.1.1341.jar) Unloaded->Constructed->Pre-initialized->Initialized

mcraft{1.0} [MCraft] (bin) Unloaded->Constructed->Pre-initialized->Errored

Loaded coremods (and transformers):

Launched Version: 1.8

LWJGL: 2.9.1

OpenGL: Quadro FX 2700M/PCIe/SSE2 GL version 3.3.0, NVIDIA Corporation

GL Caps: Using GL 1.3 multitexturing.

Using GL 1.3 texture combiners.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Shaders are available because OpenGL 2.1 is supported.

VBOs are available because OpenGL 1.5 is supported.

 

Using VBOs: No

Is Modded: Definitely; Client brand changed to 'fml,forge'

Type: Client (map_client.txt)

Resource Packs: []

Current Language: English (US)

Profiler Position: N/A (disabled)

Link to comment
Share on other sites

I'd prefer if someone could direct me to something that explains why the OBJLoader is causing me problems with it imported. But not called anywhere else.

Link to comment
Share on other sites

Something is

null

on line 220 of the

P.ModelPHead

class (in the constructor). We're not telepathic, so we can't really tell you much more without seeing your code.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

fine. here. im just paranoid that someone that isnt just learning is going to steal my shit. (though im sure that comment with bring on some hilarious banter...i digress).

 

here's that class.

 

package com.drmdgg.marijuanacraft.entity;

 

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

import java.util.Random;

 

import com.drmdgg.marijuanacraft.Mitems.MarijuanaSeed;

 

import net.minecraft.client.Minecraft;

import net.minecraft.client.model.ModelBase;

import net.minecraft.client.model.ModelRenderer;

import net.minecraft.client.renderer.entity.RenderLiving;

import net.minecraft.entity.Entity;

import net.minecraft.entity.EntityCreature;

import net.minecraft.entity.EntityList;

import net.minecraft.entity.EntityLiving;

import net.minecraft.entity.EnumCreatureType;

import net.minecraft.entity.ai.EntityAIAttackOnCollide;

import net.minecraft.entity.ai.EntityAIEatGrass;

import net.minecraft.entity.ai.EntityAIHurtByTarget;

import net.minecraft.entity.ai.EntityAILookIdle;

import net.minecraft.entity.ai.EntityAINearestAttackableTarget;

import net.minecraft.entity.ai.EntityAIPanic;

import net.minecraft.entity.ai.EntityAISwimming;

import net.minecraft.entity.ai.EntityAIWander;

import net.minecraft.entity.ai.EntityAIWatchClosest;

import net.minecraft.entity.boss.BossStatus;

import net.minecraft.entity.boss.IBossDisplayData;

import net.minecraft.entity.effect.EntityLightningBolt;

import net.minecraft.entity.passive.EntityOcelot;

import net.minecraft.entity.passive.EntityVillager;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraft.util.DamageSource;

import net.minecraft.util.MathHelper;

import net.minecraft.util.ResourceLocation;

import net.minecraft.world.World;

import net.minecraft.world.biome.BiomeGenBase;

import net.minecraftforge.fml.client.registry.RenderingRegistry;

import net.minecraftforge.fml.common.event.FMLInitializationEvent;

import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

import net.minecraftforge.fml.common.event.FMLServerStartingEvent;

import net.minecraftforge.fml.common.registry.EntityRegistry;

import net.minecraftforge.fml.relauncher.Side;

import net.minecraftforge.fml.relauncher.SideOnly;

 

public class PotHead {

public static int mobid = 0;

  public Object instance;

 

  public void load(FMLInitializationEvent event){

    RenderingRegistry.registerEntityRenderingHandler(PotHead.EntitypotHead.class, new RenderLiving(Minecraft.getMinecraft().getRenderManager(), new PotHead.ModelPotHead(), 0)

    {

      protected ResourceLocation getEntityTexture(Entity par1Entity)

      {

      return new ResourceLocation("textures/entity/PotHead/PotHeadTex.png");

      }

});

}

 

  public void generateNether(World world, Random random, int chunkX, int chunkZ){}

public void generateSurface(World world, Random random, int chunkX, int chunkZ){}

public int addFuel(ItemStack fuel){

return 0;

 

}

  @SideOnly(Side.CLIENT)

  public static void registerRenderers() {}

 

  public void serverLoad(FMLServerStartingEvent event){}

 

  public void preInit(FMLPreInitializationEvent event){

    int entityID = EntityRegistry.findGlobalUniqueEntityId();

    mobid = entityID;

    EntityRegistry.registerGlobalEntityID(EntitypotHead.class, "PotHead", entityID);

    EntityRegistry.registerModEntity(EntitypotHead.class, "PotHead", entityID, this.instance, 64, 1, true);

    EntityList.entityEggs.put(Integer.valueOf(entityID), new EntityList.EntityEggInfo(entityID, (0 << 16) + (255 << 8) + 51, (255 << 16) + (153 << 8) + 0));

    EntityRegistry.addSpawn(EntitypotHead.class, 20, 3, 30, EnumCreatureType.CREATURE, new BiomeGenBase[] { BiomeGenBase.jungle, BiomeGenBase.forest, BiomeGenBase.jungleHills });

  }

 

  public static BiomeGenBase[] clean(BiomeGenBase[] v)

  {

    List<BiomeGenBase> list = new ArrayList(Arrays.asList(v));

    list.removeAll(Collections.singleton(null));

    return (BiomeGenBase[])list.toArray(new BiomeGenBase[list.size()]);

  }

 

  public static class EntitypotHead

    extends EntityVillager implements IBossDisplayData

  {

    World world = null;

   

    public EntitypotHead(World var1)

    {

      super(var1);

      this.world = var1;

      experienceValue = 5;

      this.isImmuneToFire = true;

      addRandomArmor();

      setNoAI(true);

     

      this.targetTasks.addTask(5, new EntityAINearestAttackableTarget(this, EntityOcelot.class, true));

      this.targetTasks.addTask(6, new EntityAIHurtByTarget(this, false));

      this.tasks.addTask(6, new EntityAIWander(this, 0.8D));

      this.tasks.addTask(8, new EntityAILookIdle(this));

      this.tasks.addTask(8, new EntityAISwimming(this));

      this.tasks.addTask(1, new EntityAIAttackOnCollide(this, EntityOcelot.class, 1.0D, false));

      this.tasks.addTask(10, new EntityAIWatchClosest(this, EntityVillager.class, 6.0F));

      this.tasks.addTask(1, new EntityAIEatGrass(this));

      this.tasks.addTask(3, new EntityAIPanic(this, 1.2D));

    }

   

    public boolean hasCustomNameTag()

    {

      return true;

    }

   

    protected void addRandomArmor() {}

   

    protected void dropRareDrop(int par1)

    {

      this.dropItem(MarijuanaSeed.mseed, 1);

    }

    @Override

    protected Item getDropItem()

    {

      return new ItemStack(MarijuanaSeed.mseed).getItem();

    }

    @Override

    protected String getLivingSound()

    {

      return "";

    }

    @Override

    protected String getHurtSound()

    {

      return "game.neutral.hurt";

    }

    @Override

    protected String getDeathSound()

    {

      return "game.neutral.die";

    }

   

    @Override

    public void onStruckByLightning(EntityLightningBolt entityLightningBolt)

    {

      super.onStruckByLightning(entityLightningBolt);

      int i = (int)this.posX;

      int j = (int)this.posY;

      int k = (int)this.posZ;

      Entity entity = this;

    }

    @Override

    public void fall(float l, float d)

    {

      super.fall(l, d);

      int i = (int)this.posX;

      int j = (int)this.posY;

      int k = (int)this.posZ;

      super.fall(l, d);

      Entity entity = this;

    }

    @Override

    public void onDeath(DamageSource source)

    {

      super.onDeath(source);

      int i = (int)this.posX;

      int j = (int)this.posY;

      int k = (int)this.posZ;

      Entity entity = this;

    }

    @Override

    public boolean interact(EntityPlayer entity)

    {

      super.interact(entity);

      int i = (int)this.posX;

      int j = (int)this.posY;

      int k = (int)this.posZ;

     

      return true;

    }

    @Override

    protected float getSoundVolume()

    {

      return 1.0F;

    }

  }

 

  public static class ModelPotHead

    extends ModelBase

  {

    ModelRenderer head;

    ModelRenderer body;

    ModelRenderer rightarm;

    ModelRenderer leftarm;

    ModelRenderer rightleg;

    ModelRenderer leftleg;

   

    public ModelPotHead()

    {

      this.textureWidth = 64;

      this.textureHeight = 64;

     

      this.head = new ModelRenderer(this, 0, 2);

      this.head.addBox(-4.0F, -8.0F, -4.0F, 8, 8, 8);

      this.head.setRotationPoint(0.0F, 0.0F, 0.0F);

      this.head.setTextureSize(64, 64);

      this.head.mirror = true;

      setRotation(this.head, 0.0F, 0.0F, 0.0F);

      this.body = new ModelRenderer(this, 0, 41);

      this.body.addBox(-4.0F, 0.0F, -2.0F, 8, 12, 4);

      this.body.setRotationPoint(0.0F, 0.0F, 0.0F);

      this.body.setTextureSize(64, 64);

      this.body.mirror = true;

      setRotation(this.body, 0.0F, 0.0F, 0.0F);

      this.rightarm.mirror = true;

      this.rightarm = new ModelRenderer(this, 7, 47);

      this.rightarm.addBox(-3.0F, -2.0F, -2.0F, 4, 12, 4);

      this.rightarm.setRotationPoint(-5.0F, 2.0F, 0.0F);

      this.rightarm.setTextureSize(64, 64);

      this.rightarm.mirror = true;

      setRotation(this.rightarm, -0.0297429F, 0.0F, 0.0F);

      this.rightarm.mirror = false;

      this.leftarm = new ModelRenderer(this, 0, 47);

      this.leftarm.addBox(-1.0F, -2.0F, -2.0F, 4, 12, 4);

      this.leftarm.setRotationPoint(5.0F, 2.0F, 0.0F);

      this.leftarm.setTextureSize(64, 64);

      this.leftarm.mirror = true;

      setRotation(this.leftarm, 0.0F, 0.0F, 0.0F);

      this.rightleg = new ModelRenderer(this, 3, 22);

      this.rightleg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4);

      this.rightleg.setRotationPoint(-2.0F, 12.0F, 0.0F);

      this.rightleg.setTextureSize(64, 64);

      this.rightleg.mirror = true;

      setRotation(this.rightleg, 0.0F, 0.0F, 0.0F);

      this.leftleg = new ModelRenderer(this, 0, 22);

      this.leftleg.addBox(-2.0F, 0.0F, -2.0F, 4, 12, 4);

      this.leftleg.setRotationPoint(2.0F, 12.0F, 0.0F);

      this.leftleg.setTextureSize(64, 64);

      this.leftleg.mirror = true;

      setRotation(this.leftleg, 0.0F, 0.0F, 0.0F);

    }

   

    public void func_78088_a(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)

    {

      super.render(entity, f, f1, f2, f3, f4, f5);

      func_78087_a(f, f1, f2, f3, f4, f5, entity);

     

      this.head.render(f5);

      this.body.render(f5);

      this.rightarm.render(f5);

      this.leftarm.render(f5);

      this.rightleg.render(f5);

      this.leftleg.render(f5);

    }

   

    private void setRotation(ModelRenderer model, float x, float y, float z)

    {

      model.rotateAngleX = x;

      model.rotateAngleY = y;

      model.rotateAngleZ = z;

    }

   

    public void func_78087_a(float f, float f1, float f2, float f3, float f4, float f5, Entity e)

    {

      super.setRotationAngles(f, f1, f2, f3, f4, f5, e);

      this.head.rotateAngleY = (f3 / 57.295776F);

      this.head.rotateAngleX = (f4 / 57.295776F);

      this.leftleg.rotateAngleX = (MathHelper.cos(f * 1.0F) * -1.0F * f1);

      this.rightleg.rotateAngleX = (MathHelper.cos(f * 1.0F) * 1.0F * f1);

      this.rightarm.rotateAngleX = (MathHelper.cos(f * 0.6662F + 3.1415927F) * 2.0F * f1 * 0.5F);

      this.leftarm.rotateAngleX = (MathHelper.cos(f * 0.6662F) * 2.0F * f1 * 0.5F);

    }

  }

 

public static void addSpawns() {

EntityRegistry.addSpawn(EntityPotHead.class, 100, 0, 0, EnumCreatureType.CREATURE, new BiomeGenBase[] { BiomeGenBase.jungle, BiomeGenBase.forest, BiomeGenBase.jungleHills});

}

 

public static void registerMobs() {

EntityRegistry.instance();

 

}

 

 

}

 

 

Link to comment
Share on other sites

this.rightarm.mirror = true;
this.rightarm = new ModelRenderer(this, 7, 47);

 

You're trying to set a field of

this.rightarm

before you assign it a value, so it's still

null

. This causes the

NullPointerException

.

 

To be honest, your code is a mess; it looks like it was generated by MCreator or a similar program:

  • You have a bunch of random methods all over the place, some of which are doing absolutely nothing.
  • You don't have a clear separation between common and client-only code.
  • You're using global entity IDs and manually adding spawn eggs. Just use the overload of
    EntityRegistry.registerModEntity

    with the two additional

    int

    arguments and an egg will be added using those as the background/foreground colours. Global IDs aren't needed and will only cause problems.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

thta is correct. i am just going to start from scratch yet again.

i got all the blocks and items no problem.

this entity villager crap is a pain.

 

i figured mcreator was a good alternative. but i knew it would be garbage for what im doing

Link to comment
Share on other sites

Well that's a bit excessive.

But I get where you're coming from. It's over no harm done. I have deleted that whole class. And any other items to do with that specific entity and am going to go from scratch once things get back in order and running.

Sorry to offend.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.