Eu só fiz um assim uma vez, aquele do 'AtomBola", eu usei um task repetitiva e um switch...
*código MILENÁRIO*
Peguei esse daki, das profundezas da antiguidade, só pra tu ter uma ideia.
private static int num = 1;
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(),
new Runnable() {
public void run() {
switch(num){
case 1: objective.setDisplayName("§lAtomBola"); num++; break;//total branco
case 2: objective.setDisplayName("§e§lA§f§ltomBola"); num++; break;//letra a
case 3: objective.setDisplayName("§6§lA§f§ltomBola"); num++; break;//letra a
case 4: objective.setDisplayName("§6§lA§e§lt§f§lomBola"); num++; break;//letra t
case 5: objective.setDisplayName("§6§lA§6§lt§f§lomBola"); num++; break;//letra t
case 6: objective.setDisplayName("§6§lAt§e§lo§f§lmBola"); num++; break;//letra o
case 7: objective.setDisplayName("§6§lAt§6§lo§f§lmBola"); num++; break;//letra o
case 8: objective.setDisplayName("§6§lAto§e§lm§f§lBola"); num++; break;//letra m
case 9: objective.setDisplayName("§6§lAto§6§lm§f§lBola"); num++; break;//letra m
case 10: objective.setDisplayName("§6§lAtom§e§lB§f§lola"); num++; break;//letra b
case 11: objective.setDisplayName("§6§lAtom§6§lB§f§lola"); num++; break;//letra b
case 12: objective.setDisplayName("§6§lAtomB§e§lo§f§lla"); num++; break;//letra o
case 13: objective.setDisplayName("§6§lAtomB§6§lo§f§lla"); num++; break;//letra o
case 14: objective.setDisplayName("§6§lAtomBo§e§ll§f§la"); num++; break;//letra l
case 15: objective.setDisplayName("§6§lAtomBo§6§ll§f§la"); num++; break;//letra l
case 16: objective.setDisplayName("§6§lAtomBol§e§la"); num++; break;//letra a
case 17: objective.setDisplayName("§6§lAtomBol§6§la"); num = 1; break;//letra a
}
}