Ir para conteúdo

[kMF] Como fazer um timer com comando? (/confirmar)


yemiefi

Posts Recomendados

Preciso de um código para fazer um timer, seria 10 segundos para o jogador digitar um comando (/desafiar confirmar)!

Sei mais ou menos como funciona, só que estou muito confuso na hora de construir o código, se alguém puder ajudar, ficarei grato!

Link para o comentário
Compartilhar em outros sites

Pensei nesse jeito, quando um player é desafiado, você define a variável 'desafiado' como o nick do player desafiado. Quando um player digita o comando '/desafiar confirmar', você faz uma verificação se o nick do player é igual a variável, e aqui esta um método para remover o nick do player da variável apos 10s:

private static String desafiado;

 

desafiado = "nick do player".toLowerCase();
        Bukkit.getScheduler().scheduleSyncDelayedTask(main.getMain(), new Runnable() {
            @Override
            public void run() {
                desafiado = null;
            }
        }, 10 * 20L);

Link para o comentário
Compartilhar em outros sites

1 hora atrás, W e s s b o disse:

Pensei nesse jeito, quando um player é desafiado, você define a variável 'desafiado' como o nick do player desafiado. Quando um player digita o comando '/desafiar confirmar', você faz uma verificação se o nick do player é igual a variável, e aqui esta um método para remover o nick do player da variável apos 10s:

private static String desafiado;

 

desafiado = "nick do player".toLowerCase();
        Bukkit.getScheduler().scheduleSyncDelayedTask(main.getMain(), new Runnable() {
            @Override
            public void run() {
                desafiado = null;
            }
        }, 10 * 20L);

Perfeito! Fiz a mesma coisa, só que não fiz um private static String, fiz um List<String> listaDisputa = new ArrayList<String>();. Fiz errado ou isso também serve? (ainda não testei)

 

List<String> listaDisputa = new ArrayList<String>();

	listaDisputa.add(p.getName());
					
		Bukkit.getScheduler().scheduleSyncDelayedTask(main.getMain(), new Runnable() {
		@Override
		public void run() {
			listaDisputa.remove(p.getName());
		  }
		}, 10 * 20L);
Editado por yemiefi
Link para o comentário
Compartilhar em outros sites

Você vai usar String caso só possa existir um desafio de cada vez, caso possa existir mais de um desafio (precisa de algumas adaptações), o trivial será usar HashMap, assim, a chave será o player desafiado e o valor o player que esta desafiando. É interessante deixar a String/HashMap como private ou public, para que você possa utilizar os valores nos demais métodos do seu código.

Editado por W e s s b o
Link para o comentário
Compartilhar em outros sites

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