Ir para conteúdo
  • 0

[Resolvido] Como colocar cooldown em comandos?


Brunno

Pergunta

Olá!


 


Gostaria de saber como criar um cooldown em comandos


 


Mais precisamente, eu gostaria de saber como remover o player da ArryList depois de um tempo, pois esta parte da ArrayList eu ja sei


Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

 

Olá!

 

Gostaria de saber como criar um cooldown em comandos

 

Mais precisamente, eu gostaria de saber como remover o player da ArryList depois de um tempo, pois esta parte da ArrayList eu ja sei

 

public static ArrayList<String> dly = new ArrayList<String>();

 

if (!dly.contains(p.getName())) {

                    dly.add(p.getName());

//adicionando o jogador na string

                    Bukkit.getScheduler().scheduleSyncDelayedTask(this.pl, new Runnable() {

 

                        @Override

                        public void run() {

                            dly.remove(p.getName());

//removendo ele da string

                        }

                    }, 20 * 60); // tempo 20 = 1 segundo! ou seja depois de 60 segundos ele é removido!

                }

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

Bom, se o tempo for pequeno, usa Bukkit Scheduler, mas se for um tempban por exemplo (que pode durar dias), usa Date, pois se não quando reiniciar o server vai parar o scheduler

Se eu encontrar o bukkit scheduler na net, eu te resolvo, se não, edito

Link para o comentário
Compartilhar em outros sites

Se pode usar um scheduler como o carinha ali disse, ou pode salvar o System.currentTimeMillis() na hora que o jogador digitar, e quando ele digitar você calcula e vê se já passou o tempo, se tive passado você remove o cara e deixa ele executar o comando, senão não deixa.

Link para o comentário
Compartilhar em outros sites

Bom adiciona em uma collection quando ele digitar tal comando depois remove durante a quantia de tempo que deseja

aqui um metodo utilizando java8

	public static ArrayList<UUID> dly = new ArrayList<UUID>();
	
	public static void Dly(UUID uuid)
	{
		dly.add(uuid);
		Bukkit.getScheduler().runTaskLater(null, () -> {if(!dly.contains(uuid)){dly.remove(uuid);}}, 20*5);
	}

onde ta null coloca o plugin e onde ta 5 coloca o segundos
se tiver errado avise
 

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

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