Ir para conteúdo
  • 0

Cooldown


KolM

Pergunta

9 respostass a esta questão

Posts Recomendados

Cara vc Colcou errado quero que quando ela use o comando fale exemplo: falta 3 minutos pra usa esse comandos "dps de 2 minutos" falta 1 minuto pra usar esse comando 

private HashMap<String, Long> cooldowns = new HashMap<>();
    Long delay = TimeUnit.MINUTES.toMillis(5); // cooldown de 5 minutos
    
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (command.getName().equalsIgnoreCase("sb")) {
            if (cooldowns.keySet().contains(sender.getName().toLowerCase())) {
                if (cooldowns.get(sender.getName().toLowerCase()) > System.currentTimeMillis()) {
                    int minutesRemaining = TimeUnit.MILLIS.toMinutes(System.currentTimeMillis() - cooldowns.get(sender.getName().toLowerCase()));
                    sender.sendMessage("Falta " + minutesRemaining + "minutos");
                    return true;
                }
                cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
            }
            cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
            
            ((Player) sender).teleport(getServer().getWorld("skyblock").getSpawnLocation());
        }
        return false;
    }

Link para o comentário
Compartilhar em outros sites

Explique mais, como assim cooldown? Tempo antes das mensagens? teleporte? etc.

 

Quer fazer como? java? skript? lua?

Acho que ele quer tipo Tempos para usar comando tipo espere 2 minutos eu acho 

Link para o comentário
Compartilhar em outros sites

private HashMap<String, Long> cooldowns = new HashMap<>();
    Long delay = TimeUnit.SECONDS.toMillis(5); // cooldown de 5 segundos
    
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (command.getName().equalsIgnoreCase("sb")) {
            if (cooldowns.keySet().contains(sender.getName().toLowerCase())) {
                if (cooldowns.get(sender.getName().toLowerCase()) > System.currentTimeMillis()) {
                    sender.sendMessage("Está em cooldown");
                    return true;
                }
                cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
            }
            cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
            
            ((Player) sender).teleport(getServer().getWorld("skyblock").getSpawnLocation());
        }
        return false;
    }

Exemplo com um comando.. só precisa da hash, do delay e dessa parte

            if (cooldowns.keySet().contains(sender.getName().toLowerCase())) {
                if (cooldowns.get(sender.getName().toLowerCase()) > System.currentTimeMillis()) {
                    sender.sendMessage("Está em cooldown");
                    return true;
                }
                cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
            }
            cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
Link para o comentário
Compartilhar em outros sites

private HashMap<String, Long> cooldowns = new HashMap<>();
    Long delay = TimeUnit.SECONDS.toMillis(5); // cooldown de 5 segundos
    
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (command.getName().equalsIgnoreCase("sb")) {
            if (cooldowns.keySet().contains(sender.getName().toLowerCase())) {
                if (cooldowns.get(sender.getName().toLowerCase()) > System.currentTimeMillis()) {
                    sender.sendMessage("Está em cooldown");
                    return true;
                }
                cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
            }
            cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
            
            ((Player) sender).teleport(getServer().getWorld("skyblock").getSpawnLocation());
        }
        return false;
    }

Exemplo com um comando.. só precisa da hash, do delay e dessa parte

            if (cooldowns.keySet().contains(sender.getName().toLowerCase())) {
                if (cooldowns.get(sender.getName().toLowerCase()) > System.currentTimeMillis()) {
                    sender.sendMessage("Está em cooldown");
                    return true;
                }
                cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);
            }
            cooldowns.put(sender.getName().toLowerCase(), System.currentTimeMillis() + delay);

Onde Coloca o Tempo De Delay ? 

Link para o comentário
Compartilhar em outros sites

Onde Coloca o Tempo De Delay ? 


    Long delay = TimeUnit.SECONDS.toMillis(5); // cooldown de 5 segundos

Se quiser 5 minutos


    Long delay = TimeUnit.MINUTES.toMillis(5); // cooldown de 5 minutos



			
				


	Editado  por zAth
	
	

			
		
Link para o comentário
Compartilhar em outros sites


    Long delay = TimeUnit.SECONDS.toMillis(5); // cooldown de 5 segundos

Se quiser 5 minutos


    Long delay = TimeUnit.MINUTES.toMillis(5); // cooldown de 5 minutos

Cara vc Colcou errado quero que quando ela use o comando fale exemplo: falta 3 minutos pra usa esse comandos "dps de 2 minutos" falta 1 minuto pra usar esse comando 

Link para o comentário
Compartilhar em outros sites

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