NPC's Dissapearing

Discussion in 'Plugin Development' started by Tijmen_Dejong, May 3, 2016.

Thread Status:
Not open for further replies.
  1. I made a plugin that spawns a npc in when i join the server but,
    here comes the problem, when i join the npc shows up for one sec, and then it's gone?

    My question is now: how to fix this?


    Code:
    package NPCLIST;
    
    import java.util.UUID;
    
    import org.bukkit.Bukkit;
    import org.bukkit.craftbukkit.v1_9_R1.CraftServer;
    import org.bukkit.craftbukkit.v1_9_R1.CraftWorld;
    import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import com.mojang.authlib.GameProfile;
    
    import net.minecraft.server.v1_9_R1.EntityPlayer;
    import net.minecraft.server.v1_9_R1.MinecraftServer;
    import net.minecraft.server.v1_9_R1.PacketPlayOutNamedEntitySpawn;
    import net.minecraft.server.v1_9_R1.PacketPlayOutPlayerInfo;
    import net.minecraft.server.v1_9_R1.PlayerConnection;
    import net.minecraft.server.v1_9_R1.PlayerInteractManager;
    import net.minecraft.server.v1_9_R1.WorldServer;
    import net.minecraft.server.v1_9_R1.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
    
    public class NPC extends JavaPlugin implements Listener  {
       
        private EntityPlayer npc;
       
        @Override
        public void onEnable(){
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
    
    
            MinecraftServer server = ((CraftServer) Bukkit.getServer()).getServer();
            WorldServer world = ((CraftWorld) Bukkit.getServer().getWorlds().get(0)).getHandle();
            npc = new EntityPlayer(server, world, new GameProfile(UUID.randomUUID(), "NPC"), new PlayerInteractManager(world));
        }
       
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e) {
            npc.teleportTo(e.getPlayer().getLocation(), false);
           
            PlayerConnection connection = ((CraftPlayer) e.getPlayer()).getHandle().playerConnection;
            connection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, npc));
            connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
        }
    }

    BTW: sorry if my english is bad :p
     
  2. Offline

    mine-care

    Hmm, thats odd,
    Try spawning with a litle delay after join (use a bukkit task)
     
  3. okay i will try that
     
    Last edited: May 3, 2016
  4. Offline

    mine-care

  5. @mine-care did'nt worked but i gonne trie to make it with a lib so its little bit easy'er i hope.
     
Thread Status:
Not open for further replies.

Share This Page