Ir para conteúdo
  • 0

[Resolvido] [Ajudinha] HandlerList


caneva20

Pergunta

Olá gente.

 

Estou com uma pequena dúvida aqui. Se eu usar.

HandlerList.unregisterAll(this);

O spigot vai desrregistrar TODOS os meus Listeners daquele tipo, ou só aquela instância?

 

Código:

 

 

 

 

 

package me.Game_Crytus.QuizGC.Listener;

import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;

import me.Game_Crytus.QuizGC.Quiz.Quiz;

public class BlockInteractAreaMarker implements Listener {
    private Quiz quiz;
    
    public BlockInteractAreaMarker (Quiz quiz) {
        this.quiz = quiz;
    }
    
    
    @EventHandler
    private void onInteract (PlayerInteractEvent event) {
        if (!quiz.isWaitingArea()) {
            HandlerList.unregisterAll(this);
        }
        
        if (event.getAction().equals(Action.LEFT_CLICK_BLOCK)) {
            
        } else if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
            
        }
    }
}

 

 

 


Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

 

Da instancia.

 

Mas acho que isso não seria uma boa opção, porque simplesmente nao usa valores booleanos e retorna caso verdadeiro/falso?

 

É por que pretendo que para cada jogador que usar x comando seja criado um novo Listener temporário, dai quando ele terminar de fazer o que se deve esse Listener seria removido.

 

@Edit

 

E por que não seria uma "boa opção"?

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

É por que pretendo que para cada jogador que usar x comando seja criado um novo Listener temporário, dai quando ele terminar de fazer o que se deve esse Listener seria removido.

 

@Edit

 

E por que não seria uma "boa opção"?

Registrar e desregistrar os listeners pode causar perdas de desempenho, pelo motivo que como você disse serão vários... O ideal seria apenas um, dai tu usava ele para todos os players. Por exemplo, tu poderia fazer algumMetodo(PlayerInteractEvent e) e a partir dele executar as ações pro jogador, ou fazer direto mesmo.

Link para o comentário
Compartilhar em outros sites

Registrar e desregistrar os listeners pode causar perdas de desempenho, pelo motivo que como você disse serão vários... O ideal seria apenas um, dai tu usava ele para todos os players. Por exemplo, tu poderia fazer algumMetodo(PlayerInteractEvent e) e a partir dele executar as ações pro jogador, ou fazer direto mesmo.

 

Tendi.

Mas é que eu ACHO que não vale a pena ficar todo o tempo se x coisa está acontecendo já que eu só preciso de saber disse em pouquíssimos momentos e para poucos players (só OP, ADM, ...), já que isso é só para um "setup" de config.

 

Mas vlw mesmo pela ajuda.

Link para o comentário
Compartilhar em outros sites

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