LuizB Postado Janeiro 8, 2017 Denunciar Compartilhar Postado Janeiro 8, 2017 Olá, estou com problemas ao criar uma scoreboard.Código: if (text.length() >= 16 && text.length() < 32) { Map.Entry<Team, String> team2 = makeTeam(text.substring(0,16)); OfflinePlayerv2 player = new OfflinePlayerv2(team2.getValue()); team2.getKey().addPlayer(player); resetScore(score); obj.getScore(player).setScore(score); Quando o texto inserido na scoreboard é maior que 16, da erro, isso porque só suporta 16 caracteres.Então estou usando Team + offline playerPorque o suffix do team é 16 o prefix também e offline é 16, totalizando 48.Eu queria saber se tem como pegar o resto de uma string depois que eu chamei o metodo substring();Porque eu pegava o resto e botava em um Team. Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Janeiro 9, 2017 Denunciar Compartilhar Postado Janeiro 9, 2017 (editado) Sim, tem o tamanho normal da scoreboard que é 16, Se tu usar teams tu consegue adicionar mais 32, 32 + 16 = 48; Eu consigo usar até 48 caracteres, só que está encolhendo @EDIT Ai tipo, eu terei pegar a string e setar ela no prefix, score_normal, e suffix. usando substring só que não sei o calculo @Edit String texto = "um texto grandkakssdad asd asdsad"; List<String> parts = new ArrayList<>(); if (texto.length() >= 16 && texto.length() < 48) { int idx = 0; for (int i = 0; i < 4; i++) { int end = (i + 1) * 15; boolean done = false; if (end >= texto.length()) { end = texto.length() - 1; done = true; } parts.add(texto.substring(idx, end)); if (done) { break; } idx = end; } } Fiz essa gambiarra ai e funcionou, vlw flw. ele divide o texto em pedaços de 15 caracteres e adiciona na lista 'parts', é só tu pegar cada um e setar..., Editado Janeiro 9, 2017 por leonardosc 1 Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Janeiro 8, 2017 Denunciar Compartilhar Postado Janeiro 8, 2017 (editado) String str = text.substring(16,text.length()); ? não entendi bem Editado Janeiro 8, 2017 por zAth Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Janeiro 8, 2017 Denunciar Compartilhar Postado Janeiro 8, 2017 "Porque o suffix do team é 16 o prefix também e offline é 16, totalizando 48." ?! '-' ?! String texto = "Um texto bem grande grande xx2"; if (texto.length() >= 16 && texto.length() < 32) { String parte1 = texto.substring(0, 15); String parte2 = texto.substring(15); } 1 Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy2 Postado Janeiro 8, 2017 Denunciar Compartilhar Postado Janeiro 8, 2017 Creio que tu esteja falando de usar um Team com prefix e suffix pra conseguir colocar até 48 caracteres no scoreboard. Eu fiz esse tutorial há muito tempo: http://gamersboard.com.br/topic/5335-inserindo-mais-de-16-caracteres-no-scoreboard/ 1 Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Janeiro 8, 2017 Autor Denunciar Compartilhar Postado Janeiro 8, 2017 (editado) Creio que tu esteja falando de usar um Team com prefix e suffix pra conseguir colocar até 48 caracteres no scoreboard. Eu fiz esse tutorial há muito tempo: http://gamersboard.com.br/topic/5335-inserindo-mais-de-16-caracteres-no-scoreboard/ Sabe me dizer porque está encolhendo ?, usei o seu código como exemplo. Print da scoreboard: http://prntscr.com/dt0txs Print da scoreboard 2: http://prnt.sc/dt0txs Código: @SuppressWarnings("deprecation") public void update(String text, int score) { if (teams.containsKey(score)) { text = ChatColor.translateAlternateColorCodes('&', text); Team team = teams.get(score); if (text.length() <= 16 ) { Map.Entry<Team, String> team2 = makeTeam(text); OfflinePlayerv2 player = new OfflinePlayerv2(team2.getValue()); team2.getKey().addPlayer(player); resetScore(score); obj.getScore(player).setScore(score); }else if (text.length() > 16 && text.length()< 32) { team.setPrefix(text.substring(0, 16)); String nome = text.substring(16); Map.Entry<Team, String> team2 = makeTeam(nome); OfflinePlayerv2 player = new OfflinePlayerv2(team2.getValue()); team2.getKey().addPlayer(player); resetScore(score); obj.getScore(player).setScore(score); }else if (text.length() > 32) { team.setPrefix(text.substring(0,16)); team.setSuffix(text.substring(32)); String nome = text.substring(16, 32); Map.Entry<Team, String> team2 = makeTeam(nome); OfflinePlayerv2 player = new OfflinePlayerv2(team2.getValue()); team2.getKey().addPlayer(player); resetScore(score); obj.getScore(player).setScore(score); } } } Player p = e.getPlayer(); ScoreboardAPI sb = new ScoreboardAPI("Titulo", "pistola"); sb.add("Teste "+ Double.toString(economy.getBalance(p)), 0); Editado Janeiro 8, 2017 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Janeiro 9, 2017 Autor Denunciar Compartilhar Postado Janeiro 9, 2017 (editado) "Porque o suffix do team é 16 o prefix também e offline é 16, totalizando 48." ?! '-' ?! String texto = "Um texto bem grande grande xx2"; if (texto.length() >= 16 && texto.length() < 32) { String parte1 = texto.substring(0, 15); String parte2 = texto.substring(15); } Sim, tem o tamanho normal da scoreboard que é 16, Se tu usar teams tu consegue adicionar mais 32, 32 + 16 = 48; Eu consigo usar até 48 caracteres, só que está encolhendo @EDIT Um exemplo: Se a scoreboard tiver 38 linhas, eu tenho que dividir ela em 3, e colocar um no prefixo, score_normal, e sufixo, usando substring. @EDIT 2 Ai tipo, eu terei pegar a string e setar ela no prefix, score_normal, e suffix. usando substring só que não sei o calculo Editado Janeiro 9, 2017 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Janeiro 9, 2017 Denunciar Compartilhar Postado Janeiro 9, 2017 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
LuizB
Olá, estou com problemas ao criar uma scoreboard.
Código:
Quando o texto inserido na scoreboard é maior que 16, da erro, isso porque só suporta 16 caracteres.
Então estou usando Team + offline player
Porque o suffix do team é 16 o prefix também e offline é 16, totalizando 48.
Eu queria saber se tem como pegar o resto de uma string depois que eu chamei o metodo substring();
Porque eu pegava o resto e botava em um Team.
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados