yemiefi Postado Julho 29, 2020 Denunciar Compartilhar Postado Julho 29, 2020 Preciso de um código para fazer um timer, seria 10 segundos para o jogador digitar um comando (/desafiar confirmar)! Sei mais ou menos como funciona, só que estou muito confuso na hora de construir o código, se alguém puder ajudar, ficarei grato! Link para o comentário Compartilhar em outros sites More sharing options...
W e s s b o Postado Julho 30, 2020 Denunciar Compartilhar Postado Julho 30, 2020 Pensei nesse jeito, quando um player é desafiado, você define a variável 'desafiado' como o nick do player desafiado. Quando um player digita o comando '/desafiar confirmar', você faz uma verificação se o nick do player é igual a variável, e aqui esta um método para remover o nick do player da variável apos 10s: private static String desafiado; desafiado = "nick do player".toLowerCase(); Bukkit.getScheduler().scheduleSyncDelayedTask(main.getMain(), new Runnable() { @Override public void run() { desafiado = null; } }, 10 * 20L); 1 Link para o comentário Compartilhar em outros sites More sharing options...
yemiefi Postado Julho 30, 2020 Autor Denunciar Compartilhar Postado Julho 30, 2020 (editado) 1 hora atrás, W e s s b o disse: Pensei nesse jeito, quando um player é desafiado, você define a variável 'desafiado' como o nick do player desafiado. Quando um player digita o comando '/desafiar confirmar', você faz uma verificação se o nick do player é igual a variável, e aqui esta um método para remover o nick do player da variável apos 10s: private static String desafiado; desafiado = "nick do player".toLowerCase(); Bukkit.getScheduler().scheduleSyncDelayedTask(main.getMain(), new Runnable() { @Override public void run() { desafiado = null; } }, 10 * 20L); Perfeito! Fiz a mesma coisa, só que não fiz um private static String, fiz um List<String> listaDisputa = new ArrayList<String>();. Fiz errado ou isso também serve? (ainda não testei) List<String> listaDisputa = new ArrayList<String>(); listaDisputa.add(p.getName()); Bukkit.getScheduler().scheduleSyncDelayedTask(main.getMain(), new Runnable() { @Override public void run() { listaDisputa.remove(p.getName()); } }, 10 * 20L); Editado Julho 30, 2020 por yemiefi Link para o comentário Compartilhar em outros sites More sharing options...
W e s s b o Postado Julho 30, 2020 Denunciar Compartilhar Postado Julho 30, 2020 (editado) Você vai usar String caso só possa existir um desafio de cada vez, caso possa existir mais de um desafio (precisa de algumas adaptações), o trivial será usar HashMap, assim, a chave será o player desafiado e o valor o player que esta desafiando. É interessante deixar a String/HashMap como private ou public, para que você possa utilizar os valores nos demais métodos do seu código. Editado Julho 30, 2020 por W e s s b o Link para o comentário Compartilhar em outros sites More sharing options...
yemiefi Postado Julho 30, 2020 Autor Denunciar Compartilhar Postado Julho 30, 2020 (editado) Dúvida solucionada! Mas "private static String desafiado;" deveria ser "private static String desafiado = "";" Obrigado @W e s s b o ^^ Editado Julho 30, 2020 por yemiefi pode fechar o topico Link para o comentário Compartilhar em outros sites More sharing options...
SrBlecaute Postado Julho 30, 2020 Denunciar Compartilhar Postado Julho 30, 2020 Sua dúvida foi marcada como resolvida pela nossa equipe. Caso sua dúvida não tenha sido sanada, crie outro tópico. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados