Ir para conteúdo
  • 0

[Bug] Mensagem não da o delay


Cassiano_14

Pergunta

7 respostass a esta questão

Posts Recomendados

  • 0
1 minuto atrás, Burpo disse:

Como assim não dá o delay? Ele chega no 2 e já executa tudo o resto?

 

Mande seu código.

Sim, 

Spoiler

				Random r = new Random();
				int num = r.nextInt(this.max - this.min + 1) + this.min;
				if (p.hasPermission("cassianoloteria.usar")) {
					if (args.length >= 0) {
						Bukkit.broadcastMessage("");
						Bukkit.broadcastMessage("§aO Sorteio de " + num + " coins");
						Bukkit.broadcastMessage("§aIrá começar em 15 segundos");
						Bukkit.broadcastMessage("");
						for (Player onp:Bukkit.getOnlinePlayers()) {
							onp.playSound(onp.getLocation(), Sound.ORB_PICKUP, 10, 10);
						}
						new BukkitRunnable() {

							int inicia = 5;
							int chamadas = 10;

							@Override
							public void run() {
								if (inicia > 0) {
									inicia--;
								}
								if (inicia == 0) {
										if (chamadas > 1) {
											Bukkit.broadcastMessage("§aO Sorteio de Dinheiro irá começar em " + chamadas
													+ " segundos.");
											for (Player onp:Bukkit.getOnlinePlayers()) {
												onp.playSound(onp.getLocation(), Sound.ORB_PICKUP, 10, 10);
											}
											chamadas--;
										}
										if (chamadas == 1) {
											Bukkit.broadcastMessage("§aO Sorteio de Dinheiro irá começar em "
													+ chamadas + " segundo.");
											for (Player onp:Bukkit.getOnlinePlayers()) {
												onp.playSound(onp.getLocation(), Sound.ORB_PICKUP, 10, 10);
											}
											chamadas--;
										}
									}
									if (chamadas == 0) {
										this.cancel();
										Bukkit.broadcastMessage(
												"§aO Jogador " + rp.getName() + " foi o escolhido para");
										Bukkit.broadcastMessage("§ao sorteio de " + num + " §acoins");
									}
							}
						}.runTaskTimer(Main.getPlugin(Main.class), 20, 20);
					}

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

A melhor forma para você fazer o que deseja, é assim:

	    public static void preparar(int avisos) {
        Main.ocorrendo = true;
        int tempoavisos = 1;
        if (avisos == 0) {
         //INICIAR O EVENTO
            return;
        }
        for (String x : Main.getInstance().getConfig().getStringList("Chamadas_Evento")) {
            Bukkit.broadcastMessage(x.replace("&", "§"));
        }
        new BukkitRunnable() {
            public void run() {
                Methodos.preparar(avisos - 1);
            }
        }.runTaskLater(Main.getInstance(), tempoavisos * 20);
    }
	

Link para o comentário
Compartilhar em outros sites

  • 0
11 minutos atrás, Burpo disse:

A melhor forma para você fazer o que deseja, é assim:

 


	    public static void preparar(int avisos) {
        Main.ocorrendo = true;
        int tempoavisos = 1;
        if (avisos == 0) {
         //INICIAR O EVENTO
            return;
        }
        for (String x : Main.getInstance().getConfig().getStringList("Chamadas_Evento")) {
            Bukkit.broadcastMessage(x.replace("&", "§"));
        }
        new BukkitRunnable() {
            public void run() {
                Methodos.preparar(avisos - 1);
            }
        }.runTaskLater(Main.getInstance(), tempoavisos * 20);
    }
	

 

Não entendi. Poderia converter o meu codigo para esse?

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

Na parte do código que você verifica se resta apenas uma chamada você diminui mais 1, ou seja.

Do 2 irá direto para 0.

Para solucionar isso é muito simples, retire o chamadas--; da verificação supracitada.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
18 horas atrás, Ygor disse:

Olá,

Na parte do código que você verifica se resta apenas uma chamada você diminui mais 1, ou seja.

Do 2 irá direto para 0.

Para solucionar isso é muito simples, retire o chamadas--; da verificação supracitada.

Abraços.

Obrigado não foi bem isso que eu fiz mas deu certo.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...