LuizB Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Como faço pra fazer um sistema de tempban Com JavaCalendar Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 15, 2016 Denunciar Compartilhar Postado Maio 15, 2016 /tempban Derry 30 Teste args[1] é 30 Ué, já lhe mandei o código: System.currentTimeMillis() + TimeUnit.seconds.toMillis(Integer.parseInt(args[1])); 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest yNekro Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Como faço pra fazer um sistema de tempban Com JavaCalendar Eu não sei se é possivel fazer com JavaCalendar mas aconselho fazer em JavaScript pois é mais fácil identificar algum tipo de erro caso exista! Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 Eu não sei se é possivel fazer com JavaCalendar mas aconselho fazer em JavaScript pois é mais fácil identificar algum tipo de erro caso exista! Estou Usando A API Do Spigot ou seja não da pra fazer Com JS Link para o comentário Compartilhar em outros sites More sharing options...
Guest yNekro Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Estou Usando A API Do Spigot ou seja não da pra fazer Com JS Se você estiver fazendo seu server (pelo que eu entendi sim) pegue um plugin avançado já pronto. Existem vários no site da Spigot mas alguns são pagos! Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 Se você estiver fazendo seu server (pelo que eu entendi sim) pegue um plugin avançado já pronto. Existem vários no site da Spigot mas alguns são pagos! Eu Quero Aprender a Fazer Link para o comentário Compartilhar em outros sites More sharing options...
Guest yNekro Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Eu Quero Aprender a Fazer Aconselho fazer um curso ou dar uma boa pesquisada então na internet, acho meio difícil explicar por aqui! Se procurar bem você acha algo parecido, exatamente oque você quer não sei se vai encontrar. Abraços! Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Nunca utilizei a biblioteca Calendar ou Date para iss, mas recomendo utilizar CurrentTimeMillis. Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 Nunca utilizei a biblioteca Calendar ou Date para iss, mas recomendo utilizar CurrentTimeMillis. Pode Me Ensinar ? Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Pode Me Ensinar ? Você vai ter que salvar quando o player for banido, ( System.currentTimeMillis() ) Para converter esse tempo em milisegundos para outras medidas; long seg = (bantime / 1000) % 60; //segundos long min = (bantime / (1000 * 60)) % 60; //minutos long hor = (bantime / (1000 * 60 * 60)) % 24; //horas depois é só comparar o tempo que ele foi banido com o tempo atual se for maior que o tempo do ban. Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 (editado) Você vai ter que salvar quando o player for banido, ( System.currentTimeMillis() ) Para converter esse tempo em milisegundos para outras medidas; long seg = (bantime / 1000) % 60; //segundos long min = (bantime / (1000 * 60)) % 60; //minutos long hor = (bantime / (1000 * 60 * 60)) % 24; //horas depois é só comparar o tempo que ele foi banido com o tempo atual se for maior que o tempo do ban. Essa Porcetagem é o que ? @EDIT Esse bantime é o tempo que o sender colocou ? Editado Maio 14, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Essa Porcetagem é o que ? Significa resto, é matemática. Tem que saber bem para começar a fazer sistemas mais complexos. Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Você vai ter que salvar quando o player for banido, ( System.currentTimeMillis() ) Para converter esse tempo em milisegundos para outras medidas; long seg = (bantime / 1000) % 60; //segundos long min = (bantime / (1000 * 60)) % 60; //minutos long hor = (bantime / (1000 * 60 * 60)) % 24; //horas depois é só comparar o tempo que ele foi banido com o tempo atual se for maior que o tempo do ban. TimeUnit pra que @Topic: Como já lhe disse: long time = System.currentTimeMillis() + TimeUnit.seconds.toMillis(60); // Tempo em mile segundos + 60 segundos Link para o comentário Compartilhar em outros sites More sharing options...
Guest Mateus Demarchi Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 TimeUnit pra que @Topic: Como já lhe disse: long time = System.currentTimeMillis() + TimeUnit.seconds.toMillis(60); // Tempo em mile segundos + 60 segundos ;- é ué, bem lembrado . Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 TimeUnit pra que @Topic: Como já lhe disse: long time = System.currentTimeMillis() + TimeUnit.seconds.toMillis(60); // Tempo em mile segundos + 60 segundos Então se eu quiser 1 minuto é long time = System.currentTimeMillis() + TimeUnit.seconds.toMillis(60*60); ? Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Então se eu quiser 1 minuto é long time = System.currentTimeMillis() + TimeUnit.seconds.toMillis(60*60); ? Na verdade: long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(1); Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 (editado) TimeUnit pra que @Topic: Como já lhe disse: long time = System.currentTimeMillis() + TimeUnit.seconds.toMillis(60); // Tempo em mile segundos + 60 segundos Eu Coloquei long time = System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(60); System.out.println(time); Ai Deu : 1463256333310 @EDIT o Cara Explicou Que Se Colocar System.currentTimeMillis(); Vai Pegar Todos Os Milisegundos desde 01 de janeiro de 1970 Editado Maio 14, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Eu Coloquei long time = System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(60); System.out.println(time); Ai Deu : 1463256333310 @EDIT o Cara Explicou Que Se Colocar System.currentTimeMillis(); Vai Pegar Todos Os Milisegundos desde 01 de janeiro de 1970 Sim, ele pegou o atual tempo em mile segundos desde 1 de Janeiro de 1970 e somou com mais um minuto. Para ver funcionando use: System.out.println(System.currentTimeMillis()); long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(1); Date data = new Date(time); SimpleDataFormat sdf = new SimpleDataFormat("dd/MM/yyyy HH:mm:ss"); System.out.println(sdf.format(data)); Isso é em java 7, acho que no 8 simplificou Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 (editado) Sim, ele pegou o atual tempo em mile segundos desde 1 de Janeiro de 1970 e somou com mais um minuto. Para ver funcionando use: System.out.println(System.currentTimeMillis()); long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(1); Date data = new Date(time); SimpleDataFormat sdf = new SimpleDataFormat("dd/MM/yyyy HH:mm:ss"); System.out.println(sdf.format(data)); Isso é em java 7, acho que no 8 simplificou Sim Funcionou 1463257073599 14/05/2016 17:18:53 Mais pq somar mais um minuto ? @EDIT Tem que salvar Esse Tempo na Config ? e ficar checando se ele já passou ? Editado Maio 14, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 (editado) Sim Funcionou 1463257073599 14/05/2016 17:18:53 Mais pq somar mais um minuto ? Não é Tempban? Tem que adicionar alguma coisa... Mas pode ser mais que um minuto: long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(1); // +1 minuto long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(10); // +10 minutos long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(100); // +100 minutos long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(1000); // +1000 minutos Também tem horas, etc Olha: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html E isso é o que ele converte para mile segundos: http://prntscr.com/b42fx8 Editado Maio 14, 2016 por ƒσƒασ 1 Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 Não é Tempban? Tem que adicionar alguma coisa... Mas pode ser mais que um minuto: long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(1); // +1 minuto long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(10); // +10 minutos long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(100); // +100 minutos long time = System.currentTimeMillis() + TimeUnit.minutes.toMillis(1000); // +1000 minutos Também tem horas, etc Olha: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html E isso é o que ele converte para mile segundos: http://prntscr.com/b42fx8 Mais pq tem que adicionar Algo ? Sim é tempban E Como faço pra checar se o tempo já Passou ? Irei criar um Scheduler que se repete a cada 1 min Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Mais pq tem que adicionar Algo ? Sim é tempban E Como faço pra checar se o tempo já Passou ? Irei criar um Scheduler que se repete a cada 1 min Como assim "pq tem que adicionar algo"? Simples, checa se o currentTimeMillis que tu salvou é menor que o da máquina, se for, desbane o cara Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 (editado) Como assim "pq tem que adicionar algo"? Simples, checa se o currentTimeMillis que tu salvou é menor que o da máquina, se for, desbane o cara Tem que Adicionar 1 @EDIT Então tem que salvar Por Exemplo: 1463257164800 Na Config if (milisalvado <= System.CurrentTimeMillis){ desban } Editado Maio 14, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 Tem que Adicionar 1 @EDIT Então tem que salvar Por Exemplo: 1463257164800 Na Configif (milisalvado <= System.CurrentTimeMillis){ desban } sim, desse jeito Link para o comentário Compartilhar em outros sites More sharing options...
Langsdorf Postado Maio 14, 2016 Denunciar Compartilhar Postado Maio 14, 2016 pra que tanta complicação CalendarAgora.after(CalendarAntes); retorna uma boolean true ou false '-' Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 14, 2016 Autor Denunciar Compartilhar Postado Maio 14, 2016 sim, desse jeito e se tipo eu quise pra quando o Player Entrar Aparece Você Foi Foi Banido(a) Por 30 minuto(s) e se depois de 1 minuto ele entrase aparece Você Foi Banido(a) Por 29 Minuto(s) E Assim continua ate chegar a 1 minuto Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 15, 2016 Denunciar Compartilhar Postado Maio 15, 2016 Usa esse método para pegar o tempo restante: public String getTime(long time) { String format = ""; long hours = TimeUnit.MILLISECONDS.toHours(time); long hoursInMillis = TimeUnit.HOURS.toMillis(hours); long minutes = TimeUnit.MILLISECONDS.toMinutes(time - hoursInMillis); long minutesInMillis = TimeUnit.MINUTES.toMillis(minutes); long seconds = TimeUnit.MILLISECONDS.toSeconds(time - (hoursInMillis + minutesInMillis)); if (hours > 0) format = hours + (hours > 1 ? " horas" : " hora"); if (minutes > 0) { if ((seconds > 0) && (hours > 0)) format += ", "; else if (hours > 0) format += " e "; format += minutes + (minutes > 1 ? " minutos" : " minuto"); } if (seconds > 0) { if ((hours > 0) || (minutes > 0)) format += " e "; format += seconds + (seconds > 1 ? " segundos" : " segundo"); } if (format.equals("")) { long rest = time / 100; if (rest == 0) rest = 1; format = "0." + rest + " segundos"; } return format; } p.kickPlayer("§cVocê está banido por " + getTime(System.currentTimeMillis() - millissalvo)) Obs, não fui eu que criei. Deve haver um método mais fácil, mas não estou lembrado Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 15, 2016 Autor Denunciar Compartilhar Postado Maio 15, 2016 Usa esse método para pegar o tempo restante: public String getTime(long time) { String format = ""; long hours = TimeUnit.MILLISECONDS.toHours(time); long hoursInMillis = TimeUnit.HOURS.toMillis(hours); long minutes = TimeUnit.MILLISECONDS.toMinutes(time - hoursInMillis); long minutesInMillis = TimeUnit.MINUTES.toMillis(minutes); long seconds = TimeUnit.MILLISECONDS.toSeconds(time - (hoursInMillis + minutesInMillis)); if (hours > 0) format = hours + (hours > 1 ? " horas" : " hora"); if (minutes > 0) { if ((seconds > 0) && (hours > 0)) format += ", "; else if (hours > 0) format += " e "; format += minutes + (minutes > 1 ? " minutos" : " minuto"); } if (seconds > 0) { if ((hours > 0) || (minutes > 0)) format += " e "; format += seconds + (seconds > 1 ? " segundos" : " segundo"); } if (format.equals("")) { long rest = time / 100; if (rest == 0) rest = 1; format = "0." + rest + " segundos"; } return format; } p.kickPlayer("§cVocê está banido por " + getTime(System.currentTimeMillis() - millissalvo)) Obs, não fui eu que criei. Deve haver um método mais fácil, mas não estou lembrado Krl Me Buguei Todo Nisso ae kkk Onde eu coloco o args[1] ? Do Comando Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Maio 15, 2016 Denunciar Compartilhar Postado Maio 15, 2016 Krl Me Buguei Todo Nisso ae kkk Onde eu coloco o args[1] ? Do Comando Que args[1] mano? O que você quer fazer? Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 15, 2016 Autor Denunciar Compartilhar Postado Maio 15, 2016 Que args[1] mano? O que você quer fazer? /tempban Derry 30 Teste args[1] é 30 Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 15, 2016 Autor Denunciar Compartilhar Postado Maio 15, 2016 Ué, já lhe mandei o código: System.currentTimeMillis() + TimeUnit.seconds.toMillis(Integer.parseInt(args[1])); Não Vi kkk Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
LuizB
Como faço pra fazer um sistema de tempban Com JavaCalendar
Link para o comentário
Compartilhar em outros sites
31 respostass a esta questão
Posts Recomendados