Помогите Создание npc и клик на него

Мне не нужен api. Можно ли заспавнить npc, назвать его test и в проверку EntityDamageByEntityEvent проверять на npc и имя
 
Мне не нужен api. Можно ли заспавнить npc, назвать его test и в проверку EntityDamageByEntityEvent проверять на npc и имя
Просто так моба типа PLAYER заспаунить нельзя. Если хочешь без готовых апи - придётся знакомиться с NMS и/или пакетами. Опять же, можешь глянуть исходники того плагина, что скинул выше
 
Никогда не работал с пакетами: PacketPlayOutNamedEntitySpawn Это?
 
А как мне его отправить и пользоваться?
 
Код:
public static void npc(Player p, String nameNpc)
    {
        Location l = p.getLocation();
        MinecraftServer nms = ((CraftServer)Bukkit.getServer()).getServer();
        WorldServer world = ((CraftWorld)p.getWorld()).getHandle();
        GameProfile gP = new GameProfile(UUID.randomUUID(), nameNpc);
        
        EntityPlayer npc = new EntityPlayer(nms, world, gP, new PlayerInteractManager(world));
        Player npcP = npc.getBukkitEntity().getPlayer();
        npc.setLocation(l.getX(), l.getY(), l.getZ(), l.getYaw(), l.getPitch());
        
        PlayerConnection connect = ((CraftPlayer) p).getHandle().playerConnection;
        connect.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, npc));
        connect.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
    }

Так?
 
Код:
public static void npc(Player p, String nameNpc)
    {
        Location l = p.getLocation();
        MinecraftServer nms = ((CraftServer)Bukkit.getServer()).getServer();
        WorldServer world = ((CraftWorld)p.getWorld()).getHandle();
        GameProfile gP = new GameProfile(UUID.randomUUID(), nameNpc);
       
        EntityPlayer npc = new EntityPlayer(nms, world, gP, new PlayerInteractManager(world));
        Player npcP = npc.getBukkitEntity().getPlayer();
        npc.setLocation(l.getX(), l.getY(), l.getZ(), l.getYaw(), l.getPitch());
       
        PlayerConnection connect = ((CraftPlayer) p).getHandle().playerConnection;
        connect.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, npc));
        connect.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
    }

Так?
Похоже на правду, попробуй
 
А как его убрать?
 
Назад
Верх