Fake Player crash problem

Discussion in 'Plugin Development' started by Mew32, Aug 19, 2012.

  1. Offline

    Mew32

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I created a class that extends net.minecraft.server.EntityPlayer,
    when I spawn a zombie near a player it gets set to the fake player, but when I hit the fake player entity the server crashes and gives me this error:

    Code:
    [SEVERE]    at net.minecraft.server.ServerConfigurationManagerAbstract.a(ServerConfigurationManagerAbstract.java:92)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.NetLoginHandler.d(NetLoginHandler.java:121)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.NetLoginHandler.c(NetLoginHandler.java:41)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:44)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServerConnection.b(SourceFile:29)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:581)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    2012-08-19 22:10:39 [INFO] Skipping Entity with id Zombie
    2012-08-19 22:10:39 [SEVERE] java.lang.NoSuchMethodException: me.Mew32.TestPlugin.FakePlayer.<init>(net.minecraft.server.World)
    2012-08-19 22:10:39 [SEVERE]    at java.lang.Class.getConstructor0(Unknown Source)
    2012-08-19 22:10:39 [SEVERE]    at java.lang.Class.getConstructor(Unknown Source)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.EntityTypes.a(SourceFile:108)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkRegionLoader.a(ChunkRegionLoader.java:283)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkRegionLoader.a(ChunkRegionLoader.java:66)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkRegionLoader.a(ChunkRegionLoader.java:55)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkProviderServer.loadChunk(ChunkProviderServer.java:146)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:90)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.PlayerInstance.<init>(PlayerInstance.java:23)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.PlayerManager.a(PlayerManager.java:66)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.PlayerManager.addPlayer(PlayerManager.java:101)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ServerConfigurationManagerAbstract.a(ServerConfigurationManagerAbstract.java:123)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ServerConfigurationManagerAbstract.c(ServerConfigurationManagerAbstract.java:172)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ServerConfigurationManagerAbstract.a(ServerConfigurationManagerAbstract.java:92)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.NetLoginHandler.d(NetLoginHandler.java:121)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.NetLoginHandler.c(NetLoginHandler.java:41)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:44)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServerConnection.b(SourceFile:29)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:581)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    2012-08-19 22:10:39 [INFO] Skipping Entity with id Zombie
    2012-08-19 22:10:39 [SEVERE] java.lang.NoSuchMethodException: me.Mew32.TestPlugin.FakePlayer.<init>(net.minecraft.server.World)
    2012-08-19 22:10:39 [SEVERE]    at java.lang.Class.getConstructor0(Unknown Source)
    2012-08-19 22:10:39 [SEVERE]    at java.lang.Class.getConstructor(Unknown Source)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.EntityTypes.a(SourceFile:108)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkRegionLoader.a(ChunkRegionLoader.java:283)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkRegionLoader.a(ChunkRegionLoader.java:66)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkRegionLoader.a(ChunkRegionLoader.java:55)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkProviderServer.loadChunk(ChunkProviderServer.java:146)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:90)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.PlayerInstance.<init>(PlayerInstance.java:23)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.PlayerManager.a(PlayerManager.java:66)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.PlayerManager.addPlayer(PlayerManager.java:101)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ServerConfigurationManagerAbstract.a(ServerConfigurationManagerAbstract.java:123)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ServerConfigurationManagerAbstract.c(ServerConfigurationManagerAbstract.java:172)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ServerConfigurationManagerAbstract.a(ServerConfigurationManagerAbstract.java:92)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.NetLoginHandler.d(NetLoginHandler.java:121)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.NetLoginHandler.c(NetLoginHandler.java:41)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:44)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServerConnection.b(SourceFile:29)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:581)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    2012-08-19 22:10:39 [SEVERE]    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    2012-08-19 22:10:39 [INFO] Skipping Entity with id Zombie
    2012-08-19 22:11:01 [SEVERE] java.lang.NullPointerException
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:634)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityHuman.damageEntity(EntityHuman.java:594)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityPlayer.damageEntity(EntityPlayer.java:349)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityMonster.k(EntityMonster.java:80)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.PathfinderGoalMeleeAttack.d(PathfinderGoalMeleeAttack.java:79)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.PathfinderGoalSelector.a(SourceFile:84)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityLiving.bc(EntityLiving.java:1216)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityLiving.d(EntityLiving.java:1091)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityMonster.d(EntityMonster.java:21)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityZombie.d(EntityZombie.java:55)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityLiving.h_(EntityLiving.java:447)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.EntityMonster.h_(EntityMonster.java:25)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.World.entityJoinedWorld(World.java:1239)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:498)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.World.playerJoinedWorld(World.java:1221)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.World.tickEntities(World.java:1119)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:565)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    2012-08-19 22:11:01 [SEVERE]    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    2012-08-19 22:11:01 [SEVERE] Encountered an unexpected exception NullPointerException
    java.lang.NullPointerException
        at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:634)
        at net.minecraft.server.EntityHuman.damageEntity(EntityHuman.java:594)
        at net.minecraft.server.EntityPlayer.damageEntity(EntityPlayer.java:349)
        at net.minecraft.server.EntityMonster.k(EntityMonster.java:80)
        at net.minecraft.server.PathfinderGoalMeleeAttack.d(PathfinderGoalMeleeAttack.java:79)
        at net.minecraft.server.PathfinderGoalSelector.a(SourceFile:84)
        at net.minecraft.server.EntityLiving.bc(EntityLiving.java:1216)
        at net.minecraft.server.EntityLiving.d(EntityLiving.java:1091)
        at net.minecraft.server.EntityMonster.d(EntityMonster.java:21)
        at net.minecraft.server.EntityZombie.d(EntityZombie.java:55)
        at net.minecraft.server.EntityLiving.h_(EntityLiving.java:447)
        at net.minecraft.server.EntityMonster.h_(EntityMonster.java:25)
        at net.minecraft.server.World.entityJoinedWorld(World.java:1239)
        at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:498)
        at net.minecraft.server.World.playerJoinedWorld(World.java:1221)
        at net.minecraft.server.World.tickEntities(World.java:1119)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:565)
        at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
        at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)


    The FakePlayer class

    Code:
    package me.Mew32.TestPlugin;
     
    import org.bukkit.Location;
    import org.bukkit.entity.Player;
    import org.bukkit.event.player.PlayerMoveEvent;
     
    import net.minecraft.server.ItemInWorldManager;
    import net.minecraft.server.MinecraftServer;
    import net.minecraft.server.World;
     
    public class FakePlayer extends net.minecraft.server.EntityPlayer{
     
        public FakePlayer(MinecraftServer craftServer, World world, String s) {
            super(craftServer, world, s, new ItemInWorldManager(world));
        }
       
        @Override
        public void h_(){
            Player NPCPlayer = (Player) this.getBukkitEntity();
           
     
            Location from = new Location(NPCPlayer.getWorld(), this.lastX, this.lastY, this.lastZ, this.lastYaw, this.lastPitch);
            Location to = new Location(NPCPlayer.getWorld(), this.locX, this.locY, this.locZ, this.yaw, this.pitch);
     
            PlayerMoveEvent event = new PlayerMoveEvent(NPCPlayer, from, to);
     
            this.world.getServer().getPluginManager().callEvent(event);
     
            if (event.isCancelled() && NPCPlayer.isDead() == false){
                return;
            }
     
            super.h_();
        }
     
    }
    
    [/SPOILER

    What do I have to add to my FakePlayer class to prevent an error happening?

    This post has been edited 1 time. It was last edited by Mew32 Aug 19, 2012.
  2. Offline

    Giant

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Your error:
    java.lang.NoSuchMethodException: me.Mew32.TestPlugin.FakePlayer.<init>(net.minecraft.server.World)

    In other words, you forgot the constructor that takes just a World param. :)
  3. Offline

    Mew32

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Do you know which one?
  4. Offline

    Giant

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    read my post better >__>
  5. Offline

    Mew32

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Still have no idea... sorry
  6. Offline

    escortkeel

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Update the version of Bukkit you are compiling against. Then the compiler will give you an error for this. The problem is with your call to super.
  7. Offline

    Mew32

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Eclipse doesn't give any problem...

    This post has been edited 1 time. It was last edited by Mew32 Aug 20, 2012.
  8. Offline

    Giant

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I'll try again.
    "In other words, you forgot the constructor that takes just a World param. :)"
  9. Offline

    Mew32

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    So I have to find the right constructor?
  10. Offline

    Giant

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Do you even know what a constructor is?
  11. Offline

    Mew32

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Kinda, :p
  12. Offline

    Giant

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Then you know how to fix it as well. :)

Share This Page