yLR111 Postado Maio 31, 2018 Denunciar Compartilhar Postado Maio 31, 2018 Se o jogador estiver em uma arraylist, e alguem falar perto dele aparecer como não existe Link para o comentário Compartilhar em outros sites More sharing options...
0 Out of Orbit Postado Junho 2, 2018 Denunciar Compartilhar Postado Junho 2, 2018 Vlw, funfou, tu sabe tbm pra cancelar o evento de enviar tell quem estiver de /v Só usar o evento PrivateMessageEvent @EventHandler public void onTell(PrivateMessageEvent e) { if (va.contains(e.getReceiver()) { e.setCancelled(true); e.getSender().sendMessage("Jogador não encontrado"); } } Link para o comentário Compartilhar em outros sites More sharing options...
0 TequilAxBr Postado Maio 31, 2018 Denunciar Compartilhar Postado Maio 31, 2018 Isso é fácil... você tem 2 opções: Editar o LegendChat, implementar a API do seu plugin de Vanish; No plugin de Vanish, use o evento do LegendChat... talvez funcione. Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Maio 31, 2018 Autor Denunciar Compartilhar Postado Maio 31, 2018 Isso é fácil... você tem 2 opções: Editar o LegendChat, implementar a API do seu plugin de Vanish; No plugin de Vanish, use o evento do LegendChat... talvez funcione. como posso fazer usando o legendchat em meu plugin de vanish? Link para o comentário Compartilhar em outros sites More sharing options...
0 TequilAxBr Postado Maio 31, 2018 Denunciar Compartilhar Postado Maio 31, 2018 como posso fazer usando o legendchat em meu plugin de vanish? Pelo ChatMessageEvent(acho que é esse o evento do LC), mas dai vc verifica se quem recebeu a msg está na ArrayList e ai se estiver, você cancela. Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Maio 31, 2018 Autor Denunciar Compartilhar Postado Maio 31, 2018 Pelo ChatMessageEvent(acho que é esse o evento do LC), mas dai vc verifica se quem recebeu a msg está na ArrayList e ai se estiver, você cancela. Ok, sei que e chato ficar pedindo e que nunca mexi com legendchat, tem como dar exemplo como ficaria? Link para o comentário Compartilhar em outros sites More sharing options...
0 TequilAxBr Postado Maio 31, 2018 Denunciar Compartilhar Postado Maio 31, 2018 Ok, sei que e chato ficar pedindo e que nunca mexi com legendchat, tem como dar exemplo como ficaria? Não mexo mais com o Bukkit, então não. Sorry. Link para o comentário Compartilhar em outros sites More sharing options...
0 Ygor Postado Junho 1, 2018 Denunciar Compartilhar Postado Junho 1, 2018 @EventHandler public void onChat(ChatMessageEvent e){ if ( /* checa se está com vanish */) { e.setCancelled(true); e.getSender().sendMessage("Você está oculto, não pode falar no chat."); } } Fiz este código aqui mesmo no tópico, então podem haver métodos errados, mas esta é a base. 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Junho 1, 2018 Autor Denunciar Compartilhar Postado Junho 1, 2018 @EventHandler public void onChat(ChatMessageEvent e){ if ( /* checa se está com vanish */) { e.setCancelled(true); e.getSender().sendMessage("Você está oculto, não pode falar no chat."); } } Fiz este código aqui mesmo no tópico, então podem haver métodos errados, mas esta é a base. Não funcionou fiz isso -> http://prntscr.com/jpm4y2 Link para o comentário Compartilhar em outros sites More sharing options...
0 Out of Orbit Postado Junho 2, 2018 Denunciar Compartilhar Postado Junho 2, 2018 (editado) Você quer que quando alguém fale perto de algém no modo vanish, mostre para quem enviou que este alguém não recebeu a mensagem, mas ele receba mesmo assim? Você pode tentar algo assim: @EventHandler public void onChat(ChatMessageEvent e) { if (e.getChannel().getName().equals("local")) { // Verifica se foi no chat local for (String player : va) { // Inicia um laço de repetição com os jogadores no modo vanish if (e.getRecipients().contains(Bukkit.getPlayer(player)) { // Verifica se o jogador está na lista de quem receberá a mensagem e.getRecipients().remove(Bukkit.getPlayer(player()); // Remove o jogador da lista de quem receberá a mensagem Bukkit.getPlayer(player).sendMessage(e.getSender().getName() + ": " + e.getMessage()); // Envia a mensagem } } } } Editado Junho 2, 2018 por Out of Orbit Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Junho 2, 2018 Autor Denunciar Compartilhar Postado Junho 2, 2018 Você quer que quando alguém fale perto de algém no modo vanish, mostre para quem enviou que este alguém não recebeu a mensagem, mas ele receba mesmo assim? Você pode tentar algo assim: @EventHandler public void onChat(ChatMessageEvent e) { if (e.getChannel().getName().equals("local")) { // Verifica se foi no chat local for (String player : va) { // Inicia um laço de repetição com os jogadores no modo vanish if (e.getRecipients().contains(Bukkit.getPlayer(player)) { // Verifica se o jogador está na lista de quem receberá a mensagem e.getRecipients().remove(Bukkit.getPlayer(player()); // Remove o jogador da lista de quem receberá a mensagem Bukkit.getPlayer(player).sendMessage(e.getSender().getName() + ": " + e.getMessage()); // Envia a mensagem } } } } Está com erro - http://prntscr.com/jq00ey http://prntscr.com/jq00kr- codigo https://pastebin.com/URxh3LBi Link para o comentário Compartilhar em outros sites More sharing options...
0 BaconKibes Postado Junho 2, 2018 Denunciar Compartilhar Postado Junho 2, 2018 Está com erro - http://prntscr.com/jq00ey http://prntscr.com/jq00kr- codigo https://pastebin.com/URxh3LBi Sua lista guarda player e quer fazer um foreach com String? LOOOOOOL vanish.forEach(a -> faça suas coisas aqui =d, pega o nome do player com a.getName()); Link para o comentário Compartilhar em outros sites More sharing options...
0 Out of Orbit Postado Junho 2, 2018 Denunciar Compartilhar Postado Junho 2, 2018 Está com erro - http://prntscr.com/jq00ey http://prntscr.com/jq00kr- codigo https://pastebin.com/URxh3LBi Ah, foi mal. Pensei que sua ArrayList guardava strings. Só usar este código aqui então: @EventHandler public void onChat(ChatMessageEvent e) { if (e.getChannel().getName().equals("local")) { for (Player player : va) { if (e.getRecipients().contains(player) { e.getRecipients().remove(player); player.sendMessage(e.getSender().getName() + ": " + e.getMessage()); } } } } Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Junho 2, 2018 Autor Denunciar Compartilhar Postado Junho 2, 2018 Ah, foi mal. Pensei que sua ArrayList guardava strings. Só usar este código aqui então: @EventHandler public void onChat(ChatMessageEvent e) { if (e.getChannel().getName().equals("local")) { for (Player player : va) { if (e.getRecipients().contains(player) { e.getRecipients().remove(player); player.sendMessage(e.getSender().getName() + ": " + e.getMessage()); } } } } Vlw, funfou, tu sabe tbm pra cancelar o evento de enviar tell quem estiver de /v Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Junho 2, 2018 Autor Denunciar Compartilhar Postado Junho 2, 2018 Só usar o evento PrivateMessageEvent @EventHandler public void onTell(PrivateMessageEvent e) { if (va.contains(e.getReceiver()) { e.setCancelled(true); e.getSender().sendMessage("Jogador não encontrado"); } } Muito obriado!!! vlw mesmo Link para o comentário Compartilhar em outros sites More sharing options...
0 Lightwood Postado Junho 4, 2018 Denunciar Compartilhar Postado Junho 4, 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
yLR111
Se o jogador estiver em uma arraylist, e alguem falar perto dele aparecer como não existe
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados