Dery Postado Abril 24, 2015 Denunciar Compartilhar Postado Abril 24, 2015 Como posso fazer um Scheduler para quando um player fizer algo mandar uma mensagem para ele e mandar a mesma mensagem depois de *tal* segundos? Tipo: O player se move e manda uma mensagem: "Voce se moveu :)" E depois de *tal* segundos a mensagem é mandada ao player novamente? Link para o comentário Compartilhar em outros sites More sharing options...
AlanGomes_ (BrineDev) Postado Abril 30, 2015 Denunciar Compartilhar Postado Abril 30, 2015 Não, ele ainda continua floodando o chat... Desculpe, erro meu kk private List<String> players=new ArrayList<String>(); @EventHandler public void onMove(PlayerMoveEvent e) { int segundos=3; final String p=e.getPlayer().getName(); if (players.contains(p)) return; players.add(p); e.getPlayer().sendMessage("§bVoce se moveu :D"); p.sendMessage(mensagem); Bukkit.getScheduler().scheduleAsyncDelayedTask(this, new Runnable() { public void run() { players.remove(p); } }, segundos*20); } Link para o comentário Compartilhar em outros sites More sharing options...
Guest zCouDray Postado Abril 24, 2015 Denunciar Compartilhar Postado Abril 24, 2015 (editado) String teste = "teste"; p.sendMessage(teste); getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { public void run() { p.sendMessage(teste); } } , quantidade de segundos depois -> 1 * 20); Editado Abril 24, 2015 por zCouDray Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Abril 24, 2015 Autor Denunciar Compartilhar Postado Abril 24, 2015 String teste = "teste"; p.sendMessage(teste); getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { public void run() { p.sendMessage(teste); } } , quantidade de segundos depois -> 1 * 20); Mas assim ele irá esperar *tal* segundos para enviar a mensagem, eu quero que envie a mensagem no momento do evento e a mesma mensagem alguns segundos depois... Link para o comentário Compartilhar em outros sites More sharing options...
AlanGomes_ (BrineDev) Postado Abril 24, 2015 Denunciar Compartilhar Postado Abril 24, 2015 (editado) @EventHandler public void onMove(PlayerMoveEvent e) { final String mensagem="§bVoce se moveu :)"; int segundos=3; final Player p=e.getPlayer(); p.sendMessage(mensagem); Bukkit.getScheduler().scheduleAsyncDelayedTask(this, new Runnable() { public void run() { p.sendMessage(mensagem); } }, segundos*20); } Resolvido? Editado Abril 24, 2015 por BrineDev Link para o comentário Compartilhar em outros sites More sharing options...
Guest zCouDray Postado Abril 24, 2015 Denunciar Compartilhar Postado Abril 24, 2015 Mas assim ele irá esperar *tal* segundos para enviar a mensagem, eu quero que envie a mensagem no momento do evento e a mesma mensagem alguns segundos depois... Mano você não sabe interpretar? Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Abril 25, 2015 Denunciar Compartilhar Postado Abril 25, 2015 Ainda precisa? Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Abril 25, 2015 Autor Denunciar Compartilhar Postado Abril 25, 2015 (editado) Ainda precisa? Sim @Edit: Não vi o do @, vou testar... Editado Abril 25, 2015 por Dery Link para o comentário Compartilhar em outros sites More sharing options...
vitorrdgs Postado Abril 26, 2015 Denunciar Compartilhar Postado Abril 26, 2015 Resolvido? Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Abril 28, 2015 Denunciar Compartilhar Postado Abril 28, 2015 Sim @Edit: Não vi o do @, vou testar... Eai? 3 dias se passaram... Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Abril 29, 2015 Autor Denunciar Compartilhar Postado Abril 29, 2015 (editado) Eai? 3 dias se passaram... Estava trabalhando em outro projeto e tinha esquecido deste tópico... Vou testar agr, se funcionar marco como resolvido, caso não edito... @Edit: Também não funcionou @Edit 2: Esqueci de explicar melhor o caso, ele funciona da seguinte maneire: Digamos que quando ele se move, envia uma mensagem "Oi, como vai você?", porém essa mensagem só é exibida novamente depois de *tals* segundos, e não ficar sendo exibida e exibida e exibida, floodando o chat.... Então ele envia a mensagem uma vez e só envia novamente depois desses segundos... Editado Abril 29, 2015 por Dery Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Abril 30, 2015 Autor Denunciar Compartilhar Postado Abril 30, 2015 #UP! Link para o comentário Compartilhar em outros sites More sharing options...
AlanGomes_ (BrineDev) Postado Abril 30, 2015 Denunciar Compartilhar Postado Abril 30, 2015 private List<String> players=new ArrayList<String>(); @EventHandler public void onMove(PlayerMoveEvent e) { int segundos=3; final String p=e.getPlayer().getName(); if (players.contains(p)) return; e.getPlayer().sendMessage("§bVoce se moveu :D"); p.sendMessage(mensagem); Bukkit.getScheduler().scheduleAsyncDelayedTask(this, new Runnable() { public void run() { players.remove(p); } }, segundos*20); } Resolvido? Da próxima vez, explique melhor o pedido, o texto não tem nada a ver com o que você realmente quer Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Abril 30, 2015 Autor Denunciar Compartilhar Postado Abril 30, 2015 private List<String> players=new ArrayList<String>(); @EventHandler public void onMove(PlayerMoveEvent e) { int segundos=3; final String p=e.getPlayer().getName(); if (players.contains(p)) return; e.getPlayer().sendMessage("§bVoce se moveu :D"); p.sendMessage(mensagem); Bukkit.getScheduler().scheduleAsyncDelayedTask(this, new Runnable() { public void run() { players.remove(p); } }, segundos*20); } Resolvido? Da próxima vez, explique melhor o pedido, o texto não tem nada a ver com o que você realmente quer Não, ele ainda continua floodando o chat... Link para o comentário Compartilhar em outros sites More sharing options...
vitorrdgs Postado Abril 30, 2015 Denunciar Compartilhar Postado Abril 30, 2015 Não, ele ainda continua floodando o chat... Está registrando os eventos? Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Abril 30, 2015 Autor Denunciar Compartilhar Postado Abril 30, 2015 Sim Link para o comentário Compartilhar em outros sites More sharing options...
vitorrdgs Postado Maio 1, 2015 Denunciar Compartilhar Postado Maio 1, 2015 Resolvido? Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 1, 2015 Denunciar Compartilhar Postado Maio 1, 2015 Resolvido? vei, tipo, programador é pra ajudar, não só pra ficar perguntando se foi resolvido .-. Link para o comentário Compartilhar em outros sites More sharing options...
vitorrdgs Postado Maio 1, 2015 Denunciar Compartilhar Postado Maio 1, 2015 vei, tipo, programador é pra ajudar, não só pra ficar perguntando se foi resolvido .-. O BrineDev ja deu uma reposta e ele nao se pronunciou '-' Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 1, 2015 Denunciar Compartilhar Postado Maio 1, 2015 O BrineDev ja deu uma reposta e ele nao se pronunciou '-' Ele deu ontem, o fórum tava off, você já tinha perguntando antes... Link para o comentário Compartilhar em outros sites More sharing options...
xHiroshi Postado Maio 1, 2015 Denunciar Compartilhar Postado Maio 1, 2015 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
Dery
Como posso fazer um Scheduler para quando um player fizer algo mandar uma mensagem para ele e mandar a mesma mensagem depois de *tal* segundos?
Tipo:
O player se move e manda uma mensagem:
"Voce se moveu :)"
E depois de *tal* segundos a mensagem é mandada ao player novamente?
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados