Null Variant, any ideas?

Discussion in 'Plugin Development' started by Nebula111, Aug 15, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Nebula111

    When I go on a horse I get a null pointer on line 20 (variant variable declaration). Do you know whats causing it to become null? Surly every horse has a variant.
    Code:
        @EventHandler
        public void onHorseUse(VehicleEnterEvent e){
            Entity entity = e.getEntered();
            Vehicle v = e.getVehicle();
            if (entity instanceof Player && v instanceof Horse){
                Horse h = (Horse) v.getVehicle();
                Variant var = h.getVariant();
                if (!(var.equals(Variant.SKELETON_HORSE))){
                    h.setVariant(Variant.SKELETON_HORSE);
                    System.out.println("Debug - it worked!");
                }
            }
        }
    The Error:
    Code:
    15:37:50 [SEVERE] Could not pass event VehicleEnterEvent to test v0.1
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
        at net.minecraft.server.v1_6_R2.Entity.setPassengerOf(Entity.java:1434)
        at net.minecraft.server.v1_6_R2.EntityHuman.setPassengerOf(EntityHuman.java:327)
        at net.minecraft.server.v1_6_R2.EntityPlayer.setPassengerOf(EntityPlayer.java:474)
        at net.minecraft.server.v1_6_R2.EntityPlayer.mount(EntityPlayer.java:466)
        at net.minecraft.server.v1_6_R2.EntityHorse.h(EntityHorse.java:664)
        at net.minecraft.server.v1_6_R2.EntityHorse.a(EntityHorse.java:649)
        at net.minecraft.server.v1_6_R2.EntityInsentient.c(EntityInsentient.java:812)
        at net.minecraft.server.v1_6_R2.EntityHuman.p(EntityHuman.java:810)
        at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:1107)
        at net.minecraft.server.v1_6_R2.Packet7UseEntity.handle(SourceFile:36)
        at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296)
        at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116)
        at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
        at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30)
        at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590)
        at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226)
        at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
        at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
        at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
    Caused by: java.lang.NullPointerException
        at com.github.epicshadow.test.VehicleEvent.onHorseUse(VehicleEvent.java:20)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
        ... 22 more
    
    Thanks
     
  2. Offline

    Rocoty

    Code:java
    1. Horse h = (Horse) v.getVehicle(); //This line gets the vehicle of the vehicle...? Surely that will be null ;)
    2. Variant var = h.getVariant(); //Then you are trying to invoke a method on the null object. Ooooh, not good.


    Fix:
    Code:java
    1. Horse h = (Horse) v; //removed .getVehicle()
    2. Variant var = h.getVariant(); //Now it's not null anymore
     
  3. Offline

    Nebula111

    Oops lol I was trying to get the vehicle from the vehicle *Facepalm* Thanks
     
Thread Status:
Not open for further replies.

Share This Page