RUSHyoutuber Postado Fevereiro 9, 2018 Denunciar Compartilhar Postado Fevereiro 9, 2018 Eu tenho uma duvida que esta me matando e até agora não achei solução espero que me ajudem! Quando eu uso PlayerInteractEvent, sempre que o player interagir com algo o plugin ira verificar se ele esta usando uma nametag? Tipo sempre que alguem interagir com algo o plugin vai verificar se foi com o botão direito e se foi com uma nametag? Isso vai gerar lag? A partir de quantos players dentro do servidor isso começaria a gerar lag? Eu posso usar isso normalmente para coisas simples ou não? @EventHandler public void Interagir(PlayerInteractEvent event) { if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) { if (event.getClickedBlock().getType() == Material.NAME_TAG) { event.setCancelled(true); } } } Link para o comentário Compartilhar em outros sites More sharing options...
Aureom Postado Fevereiro 9, 2018 Denunciar Compartilhar Postado Fevereiro 9, 2018 Primeiro que uma nametag não pode ser um bloco pro jogador clicar nele, se você quiser cancelar o evento de algum plugin sempre tente colocar um priority menor no evento, fazer essa checagem não irá gerar lag, a não ser que você faça alguma coisa muito "pesada" dentro desse evento. Se você quiser bloquear de o jogador clicar com nametag em blocos, entidades, resumindo a @%$#~&I toda. @EventHandler(priority = EventPriority.LOW) public void onInteract(PlayerInteractEvent event) { if (event.getAction().name().contains("RIGHT")) { ItemStack itemStack = event.getPlayer().getItemInHand(); if(itemStack == null) return; if (itemStack.getType().equals(Material.NAME_TAG)) { event.setCancelled(true); } } } Agora se for só em entidades @EventHandler(priority = EventPriority.LOW) public void onInteract(PlayerInteractAtEntityEvent event) { ItemStack itemStack = event.getPlayer().getItemInHand(); if(itemStack == null) return; if (itemStack.getType().equals(Material.NAME_TAG)) { event.setCancelled(true); } } 2 Link para o comentário Compartilhar em outros sites More sharing options...
TequilAxBr Postado Fevereiro 9, 2018 Denunciar Compartilhar Postado Fevereiro 9, 2018 Para qual quer movimento no jogo esse evento será chamado. 1 Link para o comentário Compartilhar em outros sites More sharing options...
B E E D Postado Fevereiro 9, 2018 Denunciar Compartilhar Postado Fevereiro 9, 2018 Bom, acho que eu estava errado, foi muito bom saber que este evento é chamado para todos movimentos no jogo.. 1 Link para o comentário Compartilhar em outros sites More sharing options...
RUSHyoutuber Postado Fevereiro 9, 2018 Autor Denunciar Compartilhar Postado Fevereiro 9, 2018 Primeiro que uma nametag não pode ser um bloco pro jogador clicar nele, se você quiser cancelar o evento de algum plugin sempre tente colocar um priority menor no evento, fazer essa checagem não irá gerar lag, a não ser que você faça alguma coisa muito "pesada" dentro desse evento. Se você quiser bloquear de o jogador clicar com nametag em blocos, entidades, resumindo a @%$#~&I toda. @EventHandler(priority = EventPriority.LOW) public void onInteract(PlayerInteractEvent event) { if (event.getAction().name().contains("RIGHT")) { ItemStack itemStack = event.getPlayer().getItemInHand(); if(itemStack == null) return; if (itemStack.getType().equals(Material.NAME_TAG)) { event.setCancelled(true); } } } Agora se for só em entidades @EventHandler(priority = EventPriority.LOW) public void onInteract(PlayerInteractAtEntityEvent event) { ItemStack itemStack = event.getPlayer().getItemInHand(); if(itemStack == null) return; if (itemStack.getType().equals(Material.NAME_TAG)) { event.setCancelled(true); } } O código não era meu e eu já estava ciente que o código estava errado, usei ele apenas como exemplo. A minha duvida era se, ao fazer essa checagem ia gerar lag ou ao usar este código ia gerar lag. Link para o comentário Compartilhar em outros sites More sharing options...
Manolo8 Postado Fevereiro 9, 2018 Denunciar Compartilhar Postado Fevereiro 9, 2018 Só que coloque no HIGHEST, para ter prioridade sobre os outros... O bukkit primeiro executa o LOW, NORMAL, HIGH, HIGHEST... Se você cancelar o plugin no low, e algum outro plugin "descancelar" no highest, o evento não vai ser cancelado... Isso é usado para tipo, no simpleclans, ele tem o evento de desativar o ataque dos membros do mesmo clan no normal, se você coloca no HIGH, para então "descancelar" o evento, o ataque a membros do mesmo clan será ativado... E não é qualquer movimento, é qualquer interação que o jogador faz... (Qualquer movimento é o PlayerMoveEvent)... E não vai causar lag... Se você ver o código fonte do bukkit vai ficar pensando como aquilo funciona? :0 1 Link para o comentário Compartilhar em outros sites More sharing options...
FilipeNock Postado Fevereiro 9, 2018 Denunciar Compartilhar Postado Fevereiro 9, 2018 Nope 0% de lag nesse evento.. mas tbm depende do que voce colocar a seguir, tipo colocar uns loop doido ai, dai vai dar lag 1 Link para o comentário Compartilhar em outros sites More sharing options...
RUSHyoutuber Postado Fevereiro 9, 2018 Autor Denunciar Compartilhar Postado Fevereiro 9, 2018 Só que coloque no HIGHEST, para ter prioridade sobre os outros... O bukkit primeiro executa o LOW, NORMAL, HIGH, HIGHEST... Se você cancelar o plugin no low, e algum outro plugin "descancelar" no highest, o evento não vai ser cancelado... Isso é usado para tipo, no simpleclans, ele tem o evento de desativar o ataque dos membros do mesmo clan no normal, se você coloca no HIGH, para então "descancelar" o evento, o ataque a membros do mesmo clan será ativado... E não é qualquer movimento, é qualquer interação que o jogador faz... (Qualquer movimento é o PlayerMoveEvent)... E não vai causar lag... Se você ver o código fonte do bukkit vai ficar pensando como aquilo funciona? :0 Nope 0% de lag nesse evento.. mas tbm depende do que voce colocar a seguir, tipo colocar uns loop doido ai, dai vai dar lag Ok. Pelo que eu entendi fazer as verificações não gera tanto lag, o que gera lag é ooque vai acontecer depois da verificação ou seja dentro do código em si. Sobre a questão das prioridades. É mais recomendado colocar HIGH ou LOW? ou depende o evento? Pelo que eu entendi é sempre recomendando colocar HIGHEST ou MONITOR Link para o comentário Compartilhar em outros sites More sharing options...
Manolo8 Postado Fevereiro 10, 2018 Denunciar Compartilhar Postado Fevereiro 10, 2018 HIGHEST é quando você quer que seu plugin tenha prioridade sobre todos os outros plugins MONITOR é quando você quer que o seu plugin sejá o que menos tenha prioridade 1 - MONITOR 2 - LOW 3 - NORMAL 4 - HIGH 5 - HIGHEST Segue a ordem: Plugin com monitor: Cancela o evento. Plugin com HIGHEST: reativa o evento. Final: O evento ocorre normalmente. Plugin com monitor: Cancela o evento. Plugin com normal: ativa o evento. Plugin com high: cancela o evento. Final: O evento é cancelado. Plugin com monitor: Define a mensagem de boas vindas para "Eai mlk" Plugin com normal: Define a mensagem de boas vindas para "Doidão" Plugin com high: Define a mensagem de boas vidas para "haha cancelei vocês" Plugin com highest: Define a mensagem de boas vindas para "hahaha, quem ri por último ri melhor... uehueh" Entendeu? Link para o comentário Compartilhar em outros sites More sharing options...
RUSHyoutuber Postado Fevereiro 10, 2018 Autor Denunciar Compartilhar Postado Fevereiro 10, 2018 HIGHEST é quando você quer que seu plugin tenha prioridade sobre todos os outros plugins MONITOR é quando você quer que o seu plugin sejá o que menos tenha prioridade 1 - MONITOR 2 - LOW 3 - NORMAL 4 - HIGH 5 - HIGHEST Segue a ordem: Plugin com monitor: Cancela o evento. Plugin com HIGHEST: reativa o evento. Final: O evento ocorre normalmente. Plugin com monitor: Cancela o evento. Plugin com normal: ativa o evento. Plugin com high: cancela o evento. Final: O evento é cancelado. Plugin com monitor: Define a mensagem de boas vindas para "Eai mlk" Plugin com normal: Define a mensagem de boas vindas para "Doidão" Plugin com high: Define a mensagem de boas vidas para "haha cancelei vocês" Plugin com highest: Define a mensagem de boas vindas para "hahaha, quem ri por último ri melhor... uehueh" Entendeu? Entendi! Sempre que eu quero fazer um evento como Enviar mensagem ao clicar no bloco eu uso Monitor. Sempre que eu quero cancelar a mensagem de morte eu uso highest? acho que é mais ou menos isso ^^ vlw pela explicação Link para o comentário Compartilhar em outros sites More sharing options...
gmoehra Postado Fevereiro 13, 2018 Denunciar Compartilhar Postado Fevereiro 13, 2018 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.Atenciosamente,Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RUSHyoutuber
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados