Ir para conteúdo

Duvida - Args


RedPT

Posts Recomendados

Ola pessoal

entao , eu estou tentando fazer um comando tipo assim : /rptm modificar linha1 <texto>

Nao sei porque , mas como eu tenho nao esta dando!

Alguem me pode ajudar?

Obrigado.

Spoiler

             if (args.length > 0) {
                if (args[0].equalsIgnoreCase("modificar")){ // modificar
                if (args.length == 1) {
                    sender.sendMessage("§c/rptm modificar <linha1,linha2,linha3,linha4");
                return true;
                }
                if (args[1].equalsIgnoreCase("linha1")) {
                    if (args.length == 2)
                    sender.sendMessage("/rptm modificar linha1 (texto)");
                    return true;
                }
                StringBuilder str = new StringBuilder();
                for (int i = 3; i < args.length; i++) {
                        str.append(args + " ");
                }
                String linha1 = str.toString();
                getConfig().set("Mensagem.Linha1", linha1);
                saveConfig();
                linha1 = linha1.replaceAll("%player%", sender.getName());
                sender.sendMessage(" ");
                sender.sendMessage("§7Linha1 setada para " +  linha1);
                sender.sendMessage(" ");
                return true;

 

Link para o comentário
Compartilhar em outros sites

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!

Editado por FabioPvP_
Link para o comentário
Compartilhar em outros sites

23 minutos atrás, FabioPvP_ disse:

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!

Aee mano vlw pela ajuda! era isso mesmo!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...