xKiizame Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 Olá novamente, faz tempos e tempos que eu mexo com loops e gostaria de saber se existe um método para resolver esse "bug" de mostrar a mensagem mais do que a quantidade desejada. Exemplo: for(Player p : Bukkit.getOnlinePlayers()) { Bukkit.broadcastMessage("Oi " + p.getName() + ""); } Até o momento ses não entenderam nada neh? ai que tá.. se estiver 5 jogadores online a mensagem "Oi player" vai aparecer 5 vezes, se estiver 3 jogadores, a mensagem vai aparecer 3 vezes! tenderam? como eu faço um loop sem ter esse probleminha ? Link para o comentário Compartilhar em outros sites More sharing options...
IHEAY Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 Cara voce ta viajando no quiabo , so voce fazer isso que manda para todos os players online !! for(Player p : Bukkit.getOnlinePlayers()) { p.sendMessage("Oi " + p.getName() + ""); } Link para o comentário Compartilhar em outros sites More sharing options...
ChaveMestra Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 Voce tá usando broadcast, que já manda pro servidor inteiro.Use -> p.sendMessage("Mensagem"); Link para o comentário Compartilhar em outros sites More sharing options...
xKiizame Postado Julho 16, 2016 Autor Denunciar Compartilhar Postado Julho 16, 2016 Voce tá usando broadcast, que já manda pro servidor inteiro. Use -> p.sendMessage("Mensagem"); Não e isso '-'! Eu to FALANDO que o loop faz a mensagem se repetir de acordo com a quantidade de jogadores! Tipo tenho 3 jogadores no meu servidor, ai o loop manda a mensagem que está dentro 3 vezes tendeu? Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 for(Player p : Bukkit.getOnlinePlayers()) { Bukkit.broadcastMessage("Oi " + p.getName() + ""); } Seu próprio código já faz isso. getOnlinePlayers é um Collections com todos os players que estão online no servidor. Link para o comentário Compartilhar em outros sites More sharing options...
xKiizame Postado Julho 16, 2016 Autor Denunciar Compartilhar Postado Julho 16, 2016 for(Player p : Bukkit.getOnlinePlayers()) { Bukkit.broadcastMessage("Oi " + p.getName() + ""); } Seu próprio código já faz isso. getOnlinePlayers é um Collections com todos os players que estão online no servidor. quer dizer que a mensagem vai se repetir de acordo com a quantidade de jogadores? wft Link para o comentário Compartilhar em outros sites More sharing options...
ChaveMestra Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 (editado) Não e isso '-'! Eu to FALANDO que o loop faz a mensagem se repetir de acordo com a quantidade de jogadores! Tipo tenho 3 jogadores no meu servidor, ai o loop manda a mensagem que está dentro 3 vezes tendeu? Que? Voce qr mandar 1 mensagem pra todos os jogadores ou o que? Quantas vezes voce qr que essa mensagem seja enviada? Se quiser uma quantidade diferente, faça um for loop com int O loop que voce fez faz ele rodar x vezes, sendo x o numero de jogadores online. Não parece que você usa muito loop '-' (off) Editado Julho 16, 2016 por Ganesha Link para o comentário Compartilhar em outros sites More sharing options...
Guest zCouDray Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 Como o nome diz é um Loop, tudo que estiver dentro será executado quantas vezes ele for rodado, tente usar o p.sendMessage para que só mostre para o jogador atual.. Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 quer dizer que a mensagem vai se repetir de acordo com a quantidade de jogadores? wft Sim se tiver 100 player vai mandar oi + nome do player pra esses 100 player no teu servidor, simples não?. Link para o comentário Compartilhar em outros sites More sharing options...
xKiizame Postado Julho 16, 2016 Autor Denunciar Compartilhar Postado Julho 16, 2016 Como o nome diz é um Loop, tudo que estiver dentro será executado quantas vezes ele for rodado, tente usar o p.sendMessage para que só mostre para o jogador atual.. Já usei p.sendMessage, e a mensagem continua sendo enviada de acordo com a quantidade de jogadores. Que? Voce qr mandar 1 mensagem pra todos os jogadores ou o que? Quantas vezes voce qr que essa mensagem seja enviada? Se quiser uma quantidade diferente, faça um for loop com int O loop que voce fez faz ele rodar x vezes, sendo x o numero de jogadores online. Não parece que você usa muito loop '-' (off) você não ta sacando '-' o loop tá mandando a mensagem de acordo com a quantidade de jogadores, ou seja se tem 3 jogadores online ela manda 3 mensagens repetidas '-', eu to querendo colocar para mandar apenas 1. (Resolver esse problema do LOOP) Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 Já usei p.sendMessage, e a mensagem continua sendo enviada de acordo com a quantidade de jogadores. você não ta sacando '-' o loop tá mandando a mensagem de acordo com a quantidade de jogadores, ou seja se tem 3 jogadores online ela manda 3 mensagens repetidas '-', eu to querendo colocar para mandar apenas 1. (Resolver esse problema do LOOP) Java 8; Bukkit .getOnlinePlayers() .stream() .filter(p -> p.getName().equals("noob")) .forEach(p -> p.sendMessage("seu noob")); Link para o comentário Compartilhar em outros sites More sharing options...
xKiizame Postado Julho 16, 2016 Autor Denunciar Compartilhar Postado Julho 16, 2016 Java 8; Bukkit .getOnlinePlayers() .stream() .filter(p -> p.getName().equals("noob")) .forEach(p -> p.sendMessage("seu noob")); tem outras maneiras de pegar um jogador em um evento? sem ser o tradicional player p? *Obs: eu uso o Java 7 \o/ Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 tem outras maneiras de pegar um jogador em um evento? sem ser o tradicional player p? *Obs: eu uso o Java 7 \o/ Usando o loop, só você criar uma condição para verificar o player. ex; for(Player p : Bukkit.getOnlinePlayers()) { if(p.getName().equals("Ronaldo")) { p.sendMessage("Olá " + p.getName()); } } Link para o comentário Compartilhar em outros sites More sharing options...
xKiizame Postado Julho 16, 2016 Autor Denunciar Compartilhar Postado Julho 16, 2016 Usando o loop, só você criar uma condição para verificar o player. ex; for(Player p : Bukkit.getOnlinePlayers()) { if(p.getName().equals("Ronaldo")) { p.sendMessage("Olá " + p.getName()); } } eu quero saber outras maneiras de pegar o jogador, porque o evento que eu tenho só sei o loop. Eu já tentei public void meuEvento(Player p) mas n funfa porque precisa importa pro onEnable e não tem player no onEnable Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 eu quero saber outras maneiras de pegar o jogador, porque o evento que eu tenho só sei o loop. Eu já tentei public void meuEvento(Player p) mas n funfa porque precisa importa pro onEnable e não tem player no onEnable Wtf cara, você esta perdido no código, agora não entendi oque você quer fazer, explique melhor pf. Link para o comentário Compartilhar em outros sites More sharing options...
ChaveMestra Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 Cara. Vai aprender um pouco mais sobre o básico do java antes de pular direto pra plugins, se não vai ficar 1000h p tirar uma dúvida que a apostila pode tirar em 3 linhas..Já explicamos como é, mas sem querer ser rude e tal, tenta ver sobre como o java funciona antes. Como o cara disse aí, você tá totalmente perdido no código. Link para o comentário Compartilhar em outros sites More sharing options...
xKiizame Postado Julho 16, 2016 Autor Denunciar Compartilhar Postado Julho 16, 2016 Wtf cara, você esta perdido no código, agora não entendi oque você quer fazer, explique melhor pf. Kkkkkkkk , quero só saber outras maneiras de pegar o jogador, tipo: public static Player p; (Nunca funfou, tem outros?) Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 (editado) Cara. Vai aprender um pouco mais sobre o básico do java antes de pular direto pra plugins, se não vai ficar 1000h p tirar uma dúvida que a apostila pode tirar em 3 linhas.. Já explicamos como é, mas sem querer ser rude e tal, tenta ver sobre como o java funciona antes. Como o cara disse aí, você tá totalmente perdido no código. Pois é, eu digo isso sempre pra alguém que quer ir pra uma API sendo que não sabe nem o básico da linguagem. @Edit Pedro manda print do seu código. Editado Julho 16, 2016 por Mateus Demarchi Link para o comentário Compartilhar em outros sites More sharing options...
MrSilkBr Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 2016 To entendendo nada ..... Explica direito cara. Link para o comentário Compartilhar em outros sites More sharing options...
xKiizame Postado Julho 16, 2016 Autor Denunciar Compartilhar Postado Julho 16, 2016 Cara voce ta viajando no quiabo , so voce fazer isso que manda para todos os players online !! for(Player p : Bukkit.getOnlinePlayers()) { p.sendMessage("Oi " + p.getName() + ""); } já resolvi usando outros métodos '-' Link para o comentário Compartilhar em outros sites More sharing options...
jetta Postado Julho 16, 2016 Denunciar Compartilhar Postado Julho 16, 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
xKiizame
Olá novamente, faz tempos e tempos que eu mexo com loops e gostaria de saber se existe um método para resolver esse "bug" de mostrar a mensagem mais do que a quantidade desejada.
Exemplo:
Até o momento ses não entenderam nada neh?
ai que tá.. se estiver 5 jogadores online a mensagem "Oi player" vai aparecer 5 vezes, se estiver 3 jogadores, a mensagem vai aparecer 3 vezes!
tenderam? como eu faço um loop sem ter esse probleminha ?
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados