Ir para conteúdo
  • 0

[Resolvido] Duvida com PlayerQuitEvent


Guest VitorEmanoel

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

 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

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

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 por leonardosc
Link para o comentário
Compartilhar em outros sites

Guest VitorEmanoel

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 por VitorEmanoel
Link para o comentário
Compartilhar em outros sites

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

Guest VitorEmanoel

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

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

Guest VitorEmanoel

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

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