Ir para conteúdo
  • SHOUTBOX GAMER'S BOARD ❤️

    Carregar mais
    Você não tem permissão para conversar :(
  • 0

Pergunta

>>BUKKIT 1.6.4<<

 

Boa tarde, estou com um problema com Tasks no meu código. Possuo uma task de broadcast de evento, porém há um problema: Ela é impossivel de ser parada! Ja tentei varias coisas, troquei o runnable de BukkitRunnable para Runnable do java, ja atribui a task para uma variável, mas nada funciona.

É o seguinte: preciso cancelar essa task atravez de outro método. Possuo o método start() que faz o broadcast do evento e o metodo close() (Que fecha a entrada do evento à força)

Esse método close() era responsável por cancelar a task de broadcast, caso ela estivesse ocorrendo, e ara isso eu fiz o seguinte:

Criei 2 variáveis para as tasks do evento

image.png.ce8cff644f231d0c1d3a3d10c4d3f389.png

(A do pvpTask ta tudo ok, o problem mesmo é a do broadcast)

Eu possuo uma condição que cancela a task de broadcast em 2 métodos: No método cancelar() (Para cancelar o evento e puxar todos os jogadores para o spawn) e no método close(). O mais estranho é: a condição para cancelar a task funciona no método cancelar() e não funciona no metodo close(), sendo que são exatamente IDENTICAS nos 2 (???????)

image.png.be0438662638f8c0f557c7fa0988d0ff.png

(Alias, esse aqui é o momento que eu atribuo a task para um BukkitRunnable no metodo start())

image.png.6a84d3ea6ea8c7a08788dcdc8c29b408.png

image.png.46520a827f3cddfff2f2d7869f39142b.png

 

Só para constar, ja tentei fazer direto pelo Bukkit.getScheduler() mas não rolou também. Somebody can help me?

 

Editado por Bl4ckFairy

Compartilhar este post


Link para o post
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0
1 hora atrás, VictorHeaven disse:

Não compreendi muito bem o que tu quer, mas o que eu entendi foi que tu quer um contador? Se for, aqui está:

Por favor, registre-se ou entre para visualizar isso.

Se não for, só me explicar melhor que eu tento ajudar

O contador eu ja tenho, preciso de um meio de cancelar a task de um contador por outro metodo. Ja tentei de tudo. Fiz a seguinte verificação: se a broadcastTask (variavel quer recebe a task de broadcast) for diferente de null, ele cancela a task e seta ela como null, porém, o mais estranho: ISSO FUNFA EM UM METODO (CANCELAR()) e NAO funciona no outro (close()) wtf??? se tiver alguma ideia deixa ai pfv

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
1 minuto atrás, Bl4ckFairy disse:

O contador eu ja tenho, preciso de um meio de cancelar a task de um contador por outro metodo. Ja tentei de tudo. Fiz a seguinte verificação: se a broadcastTask (variavel quer recebe a task de broadcast) for diferente de null, ele cancela a task e seta ela como null, porém, o mais estranho: ISSO FUNFA EM UM METODO (CANCELAR()) e NAO funciona no outro (close()) wtf??? se tiver alguma ideia deixa ai pfv

Não entendi, por que não usa o que eu te mandei e adapta para o teu uso?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
2 minutos atrás, VictorHeaven disse:

Não entendi, por que não usa o que eu te mandei e adapta para o teu uso?

O problema nao é o BukkitRunnable, ele esta funcionando, o problema é cancelar ele dentro de outro método

Editado por Bl4ckFairy

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
15 horas atrás, Bl4ckFairy disse:

O problema nao é o BukkitRunnable, ele esta funcionando, o problema é cancelar ele dentro de outro método

não é só dar uma executavel de 'metodo.cancel()'?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
3 horas atrás, Jota ♨️ disse:

não é só dar uma executavel de 'metodo.cancel()'?

Isso que estou fazendo, eu armazeno a task em uma variavel e tento cancelar essa variavel (BukkitTask) e depois seto-a como null, mas ela se recusa a parar por algum motivo...

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
6 horas atrás, zDubsCrazy2 disse:

Faz o mesmo que tu fez no método cancelar, em vez de chamar o método close() faz: broadcastTask.cancel();

é que eu NECESSITO chamar o close, pois ele é responsavel por outras coisas também. Mas consegui resolver! Fiz um workaround que funcionou. Obrigado pela ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
12 horas atrás, BlackFloyd disse:

é que eu NECESSITO chamar o close, pois ele é responsavel por outras coisas também. Mas consegui resolver! Fiz um workaround que funcionou. Obrigado pela ajuda de todos.

Não sei o que você fez para resolver, mas pensei que você estava querendo o close() da runnable (sim, ela também tem o metódo close), e é isso que acontece, você estava chamando o close() dela, para chamar o close() da sua classe, você poderia fazer MiniGladiador.this.close();

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
Hospedagem de Minecraft Host de Minecraft Host de Minecraft BR Host de Minecraft EUA Servidor Cloud Servidor Cloud BR Servidor Cloud EUA