Dentro de um array, que é o args, quando você usa o args.lenght ele retorna a quantidade de itens que tem, ou seja, se for 0, é por que ele digitou somente o nome do comando, mas para acessar o array a primeira posição é 0, que no lenght seria 1, logo o seus argumentos estão respectivamente na ordem:
args[0] = modificar
args[1] = linha1
args[2] = texto
no seu for você utilizou o numero 3 para iniciar, logo ele só iria começar a contar tudo pelo args[3] e seu texto começa no args[2]
Logo seu for() deveria ficar assim:
String msg = "";
for(int i = 2; i<args.lenght; i++){
msg += args + " ";
}
Espero ter ajudado.
Qualquer ajuda extra que precisar, pode me chamar no discord: Fabiaum#2151
Se puder retornar o feedback, agradeço!