Ir para conteúdo
  • 0

[Resolvido] [Dúvida] Argumentos


LuizB

Pergunta

21 respostass a esta questão

Posts Recomendados

Nem Vi Tua Resposta. Sim

 

só que se eu digitar /squiz qual O Nome do fórum ? = O Nome Do Forum é Gamersboard

 

Como faço pra salvar o "O Nome Do Forum é Gamersboard" em uma String ?

 

Fora do seu método de comando, use

 

 

public static String quest;
public static String answer;

 

No método é só colocar então

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
			StringBuffer buffer = new StringBuffer();
			
			for (int i = 0; i < args.length;i++){
				buffer.append(args[i]);
				
			}
			

			String allArguments = buffer.toString();
			
			if (allArguments.contains("=")) {
				String[] splitedArgs = allArguments.split("=");

                                // Aqui você pode fazer oque quiser com os argumentos divididos
                                // Eu só coloquei para imprimir no console cada um deles.
                                // OBS: Pode tirar xD
				for (int i = 0; i < splitedArgs.length;i++){
					System.out.println(splitedArgs[i] + "\n");
					
				}

                                quest = splitedArgs[0];
                                answer = splitedArgs[1];
			}
}

Se quiser salvar em config basta setar as strings na config

 

Se quiser salvar temporariamente utilize um HashMap<String, String>

Link para o comentário
Compartilhar em outros sites

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/command/CommandExecutor.html#onCommand(org.bukkit.command.CommandSender,%20org.bukkit.command.Command,%20java.lang.String,%20java.lang.String[])

 

Por exemplo, /test arg1 arg2

boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  
  String argumento1 = args[0];// é o arg1
  String argumento2 = args[1];// é o arg2

  // ... lembre-se de checar se o índice do array existe pra evitar erros.
  return true;
}
Editado por leonardosc
Link para o comentário
Compartilhar em outros sites

 

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/command/CommandExecutor.html#onCommand(org.bukkit.command.CommandSender,%20org.bukkit.command.Command,%20java.lang.String,%20java.lang.String[])

 

Por exemplo, /test arg1 arg2

boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  
  String argumento1 = args[0];// é o arg1
  String argumento2 = args[1];// é o arg2

  // ... lembre-se de checar se o índice do array existe pra evitar erros.
  return true;
}

n leoo è tipo

 

/iniciarqiuz Em Que Ano Estamos ? = Estamos em 2016

 

Preciso De varios argumentos

 

Ai queria pegar mais args depois do =

Link para o comentário
Compartilhar em outros sites

n leoo è tipo

 

/iniciarqiuz Em Que Ano Estamos ? = Estamos em 2016

 

Preciso De varios argumentos

 

Ai queria pegar mais args depois do =

Ata

String[] raw = String.join(" ", args).split("=");
String pergunta = raw[0].trim();
String resposta = raw[1].trim();

Faz a verificação pra ver se contem o '=' pra evitar erros...

Link para o comentário
Compartilhar em outros sites

Ata

String[] raw = String.join(" ", args).split("=");
String pergunta = raw[0].trim();
String resposta = raw[1].trim();

Faz a verificação pra ver se contem o '=' pra evitar erros...

Vish man preciso usar a string A String Pergunta e resposta em outra classe

 

 

E n tem como deixar Global. Pelo menos eu acho

Link para o comentário
Compartilhar em outros sites

Isso?

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
			StringBuffer buffer = new StringBuffer();
			
			for (int i = 0; i < args.length;i++){
				buffer.append(args[i]);
				
			}
			

			String allArguments = buffer.toString();
			
			if (allArguments.contains("=")) {
				String[] splitedArgs = allArguments.split("=");

                                // Aqui você pode fazer oque quiser com os argumentos divididos
                                // Eu só coloquei para imprimir no console cada um deles.
                                // OBS: Pode tirar xD
				for (int i = 0; i < splitedArgs.length;i++){
					System.out.println(splitedArgs[i] + "\n");
					
				}
			}
}
Link para o comentário
Compartilhar em outros sites

Ok. Como faço pra checar se Os Argumentos que o Player colocou é igual a todos que esta na lista ?

Exemplo /iniciarq Em que anos estamos ? = Estamos em 2016

Se Um Player qualquer digitar /quizr Estamos em 2016, Ai Envia a msg pra ele vc acertou.

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

public static String pergunta = raw[0].trim();
public static String resposta = raw[1].trim();

não deu coloquei assim

 

 

if (command.getName().equalsIgnoreCase("squiz")) {
			if (args.length <=1) {
				p.sendMessage("Use /squiz");
				return true;
			}
			if (args.length >=2) {
				try {
					Integer.parseInt(args[0]);
				}catch (NumberFormatException e) {
					p.sendMessage("Numerooooooooooo");
					return true;
				}
				
				if (!(Main.sqs == true)) {
					Main.sqs = true;
					Bukkit.getServer().broadcastMessage("Quiz Iniciado");
					String[] raw = String.join(" ", args).split("=");
				     public static String pergunta = raw[1].trim();
					public static String resposta = raw[2].trim();
						return true;
Link para o comentário
Compartilhar em outros sites

 

não deu coloquei assim

 

 

if (command.getName().equalsIgnoreCase("squiz")) {
			if (args.length <=1) {
				p.sendMessage("Use /squiz");
				return true;
			}
			if (args.length >=2) {
				try {
					Integer.parseInt(args[0]);
				}catch (NumberFormatException e) {
					p.sendMessage("Numerooooooooooo");
					return true;
				}
				
				if (!(Main.sqs == true)) {
					Main.sqs = true;
					Bukkit.getServer().broadcastMessage("Quiz Iniciado");
					String[] raw = String.join(" ", args).split("=");
				     public static String pergunta = raw[1].trim();
					public static String resposta = raw[2].trim();
						return true;

Pq isso é uma variável local, não da pra usar modificadores de acesso em uma variavel local, o unico modificador que da é o final.

 

Faz oq eu te disse.

Link para o comentário
Compartilhar em outros sites


StringBuilder sb = new StringBuilder();

for (int ArgumentoInicial = 0; i < args.length; ArgumentoInicial++){

sb.append(args[ArgumentoInicial]).append(" ");

}

String allArgs = sb.toString().trim();

Link para o comentário
Compartilhar em outros sites

StringBuilder sb = new StringBuilder();
        for (int ArgumentoInicial = 0; i < args.length; ArgumentoInicial++){
          sb.append(args[ArgumentoInicial]).append(" ");
        }
        String allArgs = sb.toString().trim();

Não é isso. Isso junta todos os argumentos.

Link para o comentário
Compartilhar em outros sites

só preciso deixar a String public e pronto. Só que n ta dando

Essa é uma maneira porca de fazer mas.... se tu quer..

 

Coloca fora do método onCommand

 

public static String pergunta;

public static String resposta;

 

Ai quando executar o comando tu colocar

 

pergunta = raw[1].trim();

resposta = raw[2].trim();

 

Ai pra usar em outra classe é só olocar

 

NomeDaSuaClasse.pergunta

NomeDaSuaClasse.resposta

Link para o comentário
Compartilhar em outros sites

 

Isso?

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
			StringBuffer buffer = new StringBuffer();
			
			for (int i = 0; i < args.length;i++){
				buffer.append(args[i]);
				
			}
			

			String allArguments = buffer.toString();
			
			if (allArguments.contains("=")) {
				String[] splitedArgs = allArguments.split("=");

                                // Aqui você pode fazer oque quiser com os argumentos divididos
                                // Eu só coloquei para imprimir no console cada um deles.
                                // OBS: Pode tirar xD
				for (int i = 0; i < splitedArgs.length;i++){
					System.out.println(splitedArgs[i] + "\n");
					
				}
			}
}

Nem Vi Tua Resposta. Sim

 

só que se eu digitar /squiz qual O Nome do fórum ? = O Nome Do Forum é Gamersboard

 

Como faço pra salvar o "O Nome Do Forum é Gamersboard" em uma String ?

 

Link para o comentário
Compartilhar em outros sites

Fora do seu método de comando, use

 

 

public static String quest;
public static String answer;

No método é só colocar então

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
			StringBuffer buffer = new StringBuffer();
			
			for (int i = 0; i < args.length;i++){
				buffer.append(args[i]);
				
			}
			

			String allArguments = buffer.toString();
			
			if (allArguments.contains("=")) {
				String[] splitedArgs = allArguments.split("=");

                                // Aqui você pode fazer oque quiser com os argumentos divididos
                                // Eu só coloquei para imprimir no console cada um deles.
                                // OBS: Pode tirar xD
				for (int i = 0; i < splitedArgs.length;i++){
					System.out.println(splitedArgs[i] + "\n");
					
				}

                                quest = splitedArgs[0];
                                answer = splitedArgs[1];
			}
}

Se quiser salvar em config basta setar as strings na config

 

Se quiser salvar temporariamente utilize um HashMap<String, String>

Ok Irie testar

Link para o comentário
Compartilhar em outros sites

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