Ir para conteúdo
  • 0

[Resolvido] [Java] Pq isto não está funcionando? rs rs rs....


Pinke

Pergunta

Então né gente... Sei que isto é uma coisa muito simples, mas... Não sei pq isto não está funcionando kkk

 

Olha aí:

 

 

 

@EventHandler(priority = EventPriority.HIGHEST)
public static void aoDropar(PlayerDropItemEvent e) {
   e.getPlayer().sendMessage("1");
   if(!jogadores.contains(e.getPlayer())) {
      e.setCancelled(true);
      e.getPlayer().sendMessage("2");
   }
}

 

 

 

As duas mensagens aparecem, mas, o evento não é cancelado...

SIM, eu REGISTREI O EVENTO NA MAIN, e coloquei o "implements Listener" na classe. Tenho outros eventos na mesma classe que estão funcionando perfeitamente, só este evento aq que não quer pegar kkkk

Também não é outro plugin interferindo pois eu tirei todos para testar este .-.

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

13 respostass a esta questão

Posts Recomendados

Depois da "mensagem 2", coloque esta linha:

System.out.println("Cancelou? "+e.isCancelled());

 

Mostre o que aparece no console.

Ele falou que as 2 mensagens estão aparecendo '-'

 

@Topic

Troca o e.setCancelled(true) para e.getItemDrop().getItemStack().setType(Material.AIR);

Link para o comentário
Compartilhar em outros sites

Parece que alguém aqui está precisando de algumas aulinhas.....   ;-;

 

Podem fechar o tópico kkkk

 

O problema era que eu tinha colocado o código dentro de um "runTaskAsynchronously", por causa disto, o e.setCancelled(true) não funfava .-.

Alguém pode me explicar o pq disto?

 

 

Vlw galera! :D

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

o bukkit funciona em 2 threads...

 

Dizemos que um executa os ticks, englobando os mobs, o movimento da água, o dano o passar do tempo (dia e noite) etc...

 

E a outra thread executa funções como o chat por exemplo (por isso que quando o server trava, você as vezes ainda pode enviar mensagens pois, apenas a thread do servidor travou)

 

Pesquise sobre synchronized e volatile no google... (isto existe para evitar problemas quando há mais de uma thread num programa...)

 

+/- isso, faz muito tempo que li sobre isso, logo posso ter falado algo errado '-'

Link para o comentário
Compartilhar em outros sites

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