Guest VitorEmanoel Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 Eu estou querendo colocar uma mensagem para cada vez que alguem saiu do servidor, mais seria diferente, por exemplo: A conexão de fulano cair vai mandar uma mensagem Quando fulano sair do por vontade propria mandar outra mensagem E quando for kickado mandar outra mensagem. E uma duvida bem simples porem não sei como faz. OBS: se eu colocar uma no PlayerKickEvent e outra no PlayerQuitEvent ele manda as duas mensagens. Link para o comentário Compartilhar em outros sites More sharing options...
MrPowerGamerBR Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 No PlayerKickEvent, existe o método getReason(); (Que pelo menos na 1.9 retorna uma String), então no PlayerKickEvent, verifique as razões que você deseja e sete a mensagem com setLeaveMessage(String msg); Caso não for nenhuma das razões que voce verificou, é porque provavelmente ele mesmo desconectou O PlayerKickEvent não é disparado caso o player não foi kickado. O que eu faria é criar um HashSet e adicionar o player que foi kickado na HashSet (use o evento PlayerKickEvent), aí, no PlayerQuitEvent, verifique se o player está na HashSet, se sim, envie a mensagem que ele foi kickado, se não, mande a mensagem que ele saiu (E depois remova o player da HashSet). Link para o comentário Compartilhar em outros sites More sharing options...
Kami Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 Acho que entendi mais ou menos. Exemplos: Se eu for kikado: Kami foi kikado do servidor. Ao sair: Kami saiu do servidor Mas você não sabe se quando o cara for kikado vai aparecer os dois, né? Eu acho que não, mas é só testar .-. não vai gastar mais que um minuto. Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 (editado) No PlayerQuitEvent só da pra pegar a mensagem mesmo, vc pode verificar a mensagem e tals... não é muito bom mas é o que tem... PlayerQuitEvent também é chamado quando o jogador é kickado (obviamente), por isso que aparece 2 vezes... PlayerKickEvent é um evento, e o PlayerQuitEvent é outro... Editado Julho 1, 2016 por leonardosc Link para o comentário Compartilhar em outros sites More sharing options...
Guest VitorEmanoel Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 (editado) Mas teria como eu colocar todas essas mensagens no PlayerQuitEvent? E tambem se da pra saber se o player caiu a conexão ou saiu por que ele quiz. Editado Julho 1, 2016 por VitorEmanoel Link para o comentário Compartilhar em outros sites More sharing options...
Lüigi! Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 Mas teria como eu colocar todas essas mensagens no PlayerQuitEvent? E tambem se da pra saber se o player caiu a conexão ou saiu por que ele quiz. No PlayerKickEvent, existe o método getReason(); (Que pelo menos na 1.9 retorna uma String), então no PlayerKickEvent, verifique as razões que você deseja e sete a mensagem com setLeaveMessage(String msg); Caso não for nenhuma das razões que voce verificou, é porque provavelmente ele mesmo desconectou Link para o comentário Compartilhar em outros sites More sharing options...
jetta Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 nunca testei mas vc pode testar, qnd o jogador quitar checa o ping dele, se for maior que x seta a mensagem de leave que ele caiu (eu acho que deve funcionar) Link para o comentário Compartilhar em outros sites More sharing options...
Guest VitorEmanoel Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 O PlayerKickEvent não é disparado caso o player não foi kickado. O que eu faria é criar um HashSet e adicionar o player que foi kickado na HashSet (use o evento PlayerKickEvent), aí, no PlayerQuitEvent, verifique se o player está na HashSet, se sim, envie a mensagem que ele foi kickado, se não, mande a mensagem que ele saiu (E depois remova o player da HashSet). E para saber se a conexão dele caiu tem algum jeito de fazer? Link para o comentário Compartilhar em outros sites More sharing options...
Lüigi! Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 E para saber se a conexão dele caiu tem algum jeito de fazer? Você chegou a ler oq escrevi? Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 Você chegou a ler oq escrevi? Não vai adiantar, provavelmente o getReason retorna a mensagem que foi passada por parâmetro no método kick, e é só pra quando o jogador for kickado... E para saber se a conexão dele caiu tem algum jeito de fazer? Com a API do bukkit muito provavelmente não, mais se você for mais fundo no NMS/CraftBukkit provavelmente você vai conseguir... Link para o comentário Compartilhar em outros sites More sharing options...
Guest VitorEmanoel Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 Obrigado a todos. Consegui fazer a parte do PlayerKick e do PlayerQuit mais a do queda de conexão não, vo da uma procurada mais funda, obrigado a todos. Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Julho 1, 2016 Denunciar Compartilhar Postado Julho 1, 2016 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
Guest VitorEmanoel
Eu estou querendo colocar uma mensagem para cada vez que alguem saiu do servidor, mais seria diferente, por exemplo:
A conexão de fulano cair vai mandar uma mensagem
Quando fulano sair do por vontade propria mandar outra mensagem
E quando for kickado mandar outra mensagem.
E uma duvida bem simples porem não sei como faz.
OBS: se eu colocar uma no PlayerKickEvent e outra no PlayerQuitEvent ele manda as duas mensagens.
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados