How can I teleport a specific villager to a specific player?
Summen the villager like that (He will be in "god mode" and will not move)
/summon Villager ~ ~1 ~ {CustomName:"Eliza",CustomNameVisible:1,Profession:0,Invulnerable:1,NoAI:1}
To teleport the villager to the Player put this cmd into an repeating cmd block
/tp @e[name=Eliza,type=Villager] @p
The problem is, that the villeger is exactly in the player. To soolve this, we'll add a kind of delay.
Create a scoreboard:
/scoreboard objectives add lifeTime dummy
Then a repeating cmd block chain:
/summon ArmorStand ~-2 ~ ~ {CustomName:"Follower",Marker:1b,Invisible:1,Invulnerable:1,NoGravity:1}
/scoreboard players add @e[type=ArmorStand,name=Follower] lifeTime 1
/tp @e[score_lifeTime=1,type=ArmorStand,name=Follower] @p
/execute @p ~ ~ ~ tp @e[name=Eliza,type=Villager] @e[score_lifeTime_min=20,type=ArmorStand,name=Follower,rm=2]
/kill @e[score_lifeTime_min=20,type=ArmorStand]
The player will then follow the player but will not go nearby the player (2 blocks radius)
Generator for summon commands: https://mcstacker.bimbimma.com/
Command selectors: http://minecraft.gamepedia.com/Commands#Target_selectors
Plugin for visible Commands: CommandDescriptor by SimonMeusel: https://www.spigotmc.org/resources/commanddesciptor.23870/
Command 1 (In a repeating command block):
/tp @e[type=Villager,name=Eliza] @p
Command 2 (In a chain command block after the repeating one):
/tp @e[type=Villager,name=Eliza] ~-2 ~ ~
This will have Eliza stay at least 2 blocks away from the player but follow the player around.