Reflections
Afinal, pra que serve reflection?
Reflection é uma universal parte do java, neste tutorial, a principal função é
acessar variáveis da Bukkit API. Usando reflections conseguimos
fazer um plugin suportar desde da 1.5 até à 1.11. Como fazemos isso? É simples,
se você já trabalhou com Bukkit API, deve ter percebido que a cada
versão que ao importar certas classes, a classe importada vem com a versão
do spigot utilizada (Exemplo: org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer & org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer).
Se utilizarmos uma versão do spigot diferente do projeto, irá dar um erro no console (java.lang.ClassNotFound) falando que a classe do projeto não foi encontrada.
Exemplos:
Titles:
Como utilizar (Titles):
sendFullTitle(Player player, int entrada,int duracao, int saida, String titulo, String subtitlo);
ActionBar:
Como utilizar (ActionBar):
sendActionBarMessage(Player player, String mensagem);