Ir para conteúdo
  • 0

[Resolvido] args.length não funciona


GhostTheWolf

Pergunta

Saudações,
Não consigo entender o que estou fazendo de errado.
Sempre que executo /nome (textocommaisde16caracteres), o plugin ignora o "16 < args.length"...

Meu código:

if (cmd.getName().equalsIgnoreCase("nome")) {
			if (args.length == 0) {
				return false;
			} else if (16 < args.length) {
				jogador.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cNome muito longo! (16 é o máximo)"));
				return true;
			}
			else {
				jogador.setPlayerListName(args[0]);
				jogador.sendMessage(ChatColor.translateAlternateColorCodes('&', "&aSeu nome agora é: &c" + args[0]));
				return true;
			}
		}
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

if (cmd.getName().equalsIgnoreCase("nome")) {
	if (args.length == 0) {
		return false;
	} else if (args.length > 16) {
		jogador.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cNome muito longo! (16 é o máximo)"));
		return true;
	}
	jogador.setPlayerListName(args[0]);
	jogador.sendMessage(ChatColor.translateAlternateColorCodes('&', "&aSeu nome agora é: &c" + args[0]));
}

Na verdade, isso ta errado maluco, tu não pode usar args.length, tem que montar uma String com todos os argumentos.

 

@CÓDIGO ARRUMADO:

if (cmd.getName().equalsIgnoreCase("nome")) {
	if (args.length == 0) {
		return true;
	}
        StringBuilder sb = new StringBuilder();
        for (String arg : args)
            sb.append(arg);
        if (sb.toString().length() > 16) {
            // mandar a mensagem que é muito grande o nome
            return true;
        }
	jogador.setPlayerListName(sb.toString());
	jogador.sendMessage(ChatColor.translateAlternateColorCodes('&', "&aSeu nome agora é: &c" + args[0]));
}

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

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