Implementa um launcher que inicia o server.jar e monitora ele por mudanças; quando ele muda, manda um sinal para o processo atual (para que ele termine de tratar os clientes e saia quando eles desconectarem todos)
Modifica o servidor para receber o sinal acima e parar de escutar conexões
Com isso já é possível fazer o restart "gentil" apenas dando o bulid.
Este PR:
Com isso já é possível fazer o restart "gentil" apenas dando o bulid.