Usa o NPCRightClickEvent do Citizens
@EventHandler
public static void aoInteragir(NPCRightClickEvent e) {
if (e.getClicker() instanceof Player && e.getNPC() != null) {
NPC npc = e.getNPC();
Player p = e.getClicker();
if (npc.getName().equalsIgnoreCase("nome do npc")) {
p.sendMessage("Sua mensagem")
}
}
}
Depende de como você vai usar ela. Se for usar para salvar algo em SQL a cada milissegundo, com certeza vai ocorrer algum lag, recomendo que use a forma assíncrona.
A RAM não é o único essencial para um servidor fluir sem lag, você tem que levar em conta o processador, se você quer um servidor com média de 100 players recomendo essas hospedagens que oferecem um ótimo Xeon ou i7 com 6GB RAM, vai rodar suave.
O comando /server é uma module do BungeeCord, logo você não pode alterar para /rankup. Mas você pode fazer uma module para seu BungeeCord, que quando executar o comando /rankup o jogador é redirecionado para o servidor Rank UP.