Solitario Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 2016 (editado) Galera como posso recarregar uma customconfigyml e como posso fazer ela carregar por que parece que não esta funcionando com o seguinte code: public void salvar(FileConfiguration ymlConfig, File ymlFile) { try { ymlConfig.save(ymlFile); } catch (IOException e) { e.printStackTrace(); } } public File LocaisYML = new File(this.getDataFolder()+"/locs.yml"); public FileConfiguration Locais = YamlConfiguration.loadConfiguration(LocaisYML); public void onEnable(){ salvar(Locais, LocaisYML); } Esqueci citar: Se eu setar todos as localizações esta funcionando ok, se eu reiniciar o servidor ocorre o problema ... Editado Dezembro 18, 2016 por MusicsBass Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 2016 (editado) qual é a linha 59? tente usar isso double x = Locais.getDouble("Npc." + entity.getName() + ".X"); double y = Locais.getDouble("Npc." + entity.getName() + ".Y"); double z = Locais.getDouble("Npc." + entity.getName() + ".Z"); double pitch = Locais.getDouble("Npc." + entity.getName() + ".pitch"); double yaw = Locais.getDouble("Npc." + entity.getName() + ".yaw"); World Mundo = Bukkit.getWorld(Locais.getString("Npc." + entity.getName() + ".World")); Location local = new Location(Mundo, x, y, z, (float)yaw, (float)pitch); event.getPlayer().teleport(local); Yaw e Pitch não é double, é float O código correto séria: double x = Double.valueOf(Locais.getString("Npc." + entity.getName() + ".X")); double y = Double.valueOf(Locais.getString("Npc." + entity.getName() + ".Y")); double z = Double.valueOf(Locais.getString("Npc." + entity.getName() + ".Z")); float pitch = Float.valueOf(Locais.getString("Npc." + entity.getName() + ".pitch")); float yaw = Float.valueOf(Locais.getString("Npc." + entity.getName() + ".yaw")); World Mundo = Bukkit.getWorld(Locais.getString("Npc." + entity.getName() + ".World")); Location local = new Location(Mundo, x, y, z, yaw, pitch); event.getPlayer().teleport(local); Sei que poderia ter deixado os doubles pra getDouble, porém, preferi deixar como exemplo, mesmo assim ainda ta certo! @Edit Para ficar mais fácil caso queira, utilize minha classe para ficar mais fácil de pegar localizações(SerializeLocations.java) http://archives.mcproshop.cf/#elf_l1_SmF2YS9DbGFzcyBVdGlsaXRpZXM Assim é só utilizar //Use este código para salvar, ele vai setar como string String stringLocation = SerializeLocation.toString(p.getLocation()); //Exemplo Locais.set("NPC." + entity.getName() + ".Location"); salvar(); //Este aqui é para teleportar Location local = SerializeLocation.fromString(Locais.getString("NPC." + entity.getName() + ".Location")); event.getPlayer().teleport(local); Editado Dezembro 18, 2016 por ??? Link para o comentário Compartilhar em outros sites More sharing options...
Kami Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 2016 Precisamos do código z.z sem ele vai ser foda ajudar Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy2 Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 2016 public void onEnable() { salvar(); // Esse metodo pode ser usado pra dar reload tbm } public void salvar() { File f = new File(getDataFolder(), "seu-arquivo.yml"); if (!(f.exists())) saveResource("seu-arquivo.yml", false); // O arquivo tem que estar criado no JAR, junto com o plugin.yml FileConfiguration fc = YamlConfiguration.loadConfiguration(f); // Aqui que seria "recarregar a config" // A partir daqui voce utiliza o "fc" normalmente } Link para o comentário Compartilhar em outros sites More sharing options...
mabazi Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 2016 Erro é na linha 59 do seu Main manda o codigo ou o "PlayerInteractEntityEvent" que a gente talvez consiga-mos ajudar! Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 2016 veja o erro que está dando.. "Caused by: double cannot be cast to float" mande a linha 59 ou tudo desse evento, eu acho melhor salvar na config as localizaçoes como numeros inteiros( 788 ) e não esses numeros ( 788.248925252 ) mas vc q sabe, mande o código para poder ajudar Link para o comentário Compartilhar em outros sites More sharing options...
Solitario Postado Dezembro 18, 2016 Autor Denunciar Compartilhar Postado Dezembro 18, 2016 (editado) veja o erro que está dando.. "Caused by: double cannot be cast to float" mande a linha 59 ou tudo desse evento, eu acho melhor salvar na config as localizaçoes como numeros inteiros( 788 ) e não esses numeros ( 788.248925252 ) mas vc q sabe, mande o código para poder ajudar Erro é na linha 59 do seu Main manda o codigo ou o "PlayerInteractEntityEvent" que a gente talvez consiga-mos ajudar! Precisamos do código z.z sem ele vai ser foda ajudar Primeiramente ... citei que o code funciona somente antes que o servidor reinicie ou seja ligado novamente ... então não creio que seja problema nesse code '-' @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) { Entity entity = event.getRightClicked(); boolean isCitizensNPC = entity.hasMetadata("NPC"); if ((isCitizensNPC)){ if(Locais.contains("Npc." + entity.getName())){ event.getPlayer().sendMessage("§3Teleportando para §b" + entity.getName()); double x = Locais.getDouble("Npc." + entity.getName() + ".X"); double y = Locais.getDouble("Npc." + entity.getName() + ".Y"); double z = Locais.getDouble("Npc." + entity.getName() + ".Z"); float pitch = (float) Locais.get("Npc." + entity.getName() + ".pitch"); float yaw = (float) Locais.get("Npc." + entity.getName() + ".yaw"); World Mundo = Bukkit.getWorld(Locais.getString("Npc." + entity.getName() + ".World")); Location local = new Location(Mundo, x, y, z); local.setPitch(pitch); local.setYaw(yaw); event.getPlayer().teleport(local); } } } public void onEnable() { salvar(); // Esse metodo pode ser usado pra dar reload tbm } public void salvar() { File f = new File(getDataFolder(), "seu-arquivo.yml"); if (!(f.exists())) saveResource("seu-arquivo.yml", false); // O arquivo tem que estar criado no JAR, junto com o plugin.yml FileConfiguration fc = YamlConfiguration.loadConfiguration(f); // Aqui que seria "recarregar a config" // A partir daqui voce utiliza o "fc" normalmente } o problema é que não é publico entretanto só foi usado na função de salvar .-. ... e também não quer funcionar para salvar os dados após o set... Editado Dezembro 18, 2016 por MusicsBass Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 2016 Primeiramente ... citei que o code funciona somente antes que o servidor reinicie ou seja ligado novamente ... então não creio que seja problema nesse code '-' @EventHandler public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) { Entity entity = event.getRightClicked(); boolean isCitizensNPC = entity.hasMetadata("NPC"); if ((isCitizensNPC)){ if(Locais.contains("Npc." + entity.getName())){ event.getPlayer().sendMessage("§3Teleportando para §b" + entity.getName()); double x = Locais.getDouble("Npc." + entity.getName() + ".X"); double y = Locais.getDouble("Npc." + entity.getName() + ".Y"); double z = Locais.getDouble("Npc." + entity.getName() + ".Z"); float pitch = (float) Locais.get("Npc." + entity.getName() + ".pitch"); float yaw = (float) Locais.get("Npc." + entity.getName() + ".yaw"); World Mundo = Bukkit.getWorld(Locais.getString("Npc." + entity.getName() + ".World")); Location local = new Location(Mundo, x, y, z); local.setPitch(pitch); local.setYaw(yaw); event.getPlayer().teleport(local); } } } o problema é que não é publico entretanto só foi usado na função de salvar .-. ... e também não quer funcionar para salvar os dados após o set... qual é a linha 59? tente usar isso double x = Locais.getDouble("Npc." + entity.getName() + ".X"); double y = Locais.getDouble("Npc." + entity.getName() + ".Y"); double z = Locais.getDouble("Npc." + entity.getName() + ".Z"); double pitch = Locais.getDouble("Npc." + entity.getName() + ".pitch"); double yaw = Locais.getDouble("Npc." + entity.getName() + ".yaw"); World Mundo = Bukkit.getWorld(Locais.getString("Npc." + entity.getName() + ".World")); Location local = new Location(Mundo, x, y, z, (float)yaw, (float)pitch); event.getPlayer().teleport(local); Link para o comentário Compartilhar em outros sites More sharing options...
Solitario Postado Dezembro 18, 2016 Autor Denunciar Compartilhar Postado Dezembro 18, 2016 qual é a linha 59? tente usar isso double x = Locais.getDouble("Npc." + entity.getName() + ".X"); double y = Locais.getDouble("Npc." + entity.getName() + ".Y"); double z = Locais.getDouble("Npc." + entity.getName() + ".Z"); double pitch = Locais.getDouble("Npc." + entity.getName() + ".pitch"); double yaw = Locais.getDouble("Npc." + entity.getName() + ".yaw"); World Mundo = Bukkit.getWorld(Locais.getString("Npc." + entity.getName() + ".World")); Location local = new Location(Mundo, x, y, z, (float)yaw, (float)pitch); event.getPlayer().teleport(local); Ah ... eu tava mexendo no code e acho que terminei perdendo a linha 59 e.e mais acho que ta entre public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) { e float pitch = (float) Locais.get("Npc." + entity.getName() + ".pitch"); Yaw e Pitch não é double, é float O código correto séria: double x = Double.valueOf(Locais.getString("Npc." + entity.getName() + ".X")); double y = Double.valueOf(Locais.getString("Npc." + entity.getName() + ".Y")); double z = Double.valueOf(Locais.getString("Npc." + entity.getName() + ".Z")); float pitch = Float.valueOf(Locais.getString("Npc." + entity.getName() + ".pitch")); float yaw = Float.valueOf(Locais.getString("Npc." + entity.getName() + ".yaw")); World Mundo = Bukkit.getWorld(Locais.getString("Npc." + entity.getName() + ".World")); Location local = new Location(Mundo, x, y, z, yaw, pitch); event.getPlayer().teleport(local); Sei que poderia ter deixado os doubles pra getDouble, porém, preferi deixar como exemplo, mesmo assim ainda ta certo! @Edit Para ficar mais fácil caso queira, utilize minha classe para ficar mais fácil de pegar localizações(SerializeLocations.java) http://archives.mcproshop.cf/#elf_l1_SmF2YS9DbGFzcyBVdGlsaXRpZXM Assim é só utilizar //Use este código para salvar, ele vai setar como string String stringLocation = SerializeLocation.toString(p.getLocation()); //Exemplo Locais.set("NPC." + entity.getName() + ".Location"); salvar(); //Este aqui é para teleportar Location local = SerializeLocation.fromString(Locais.getString("NPC." + entity.getName() + ".Location")); event.getPlayer().teleport(local); Parabéns .-. acho que vc descobriu o problema .... e eu fui muito burro pra n notar 1 coisa .-. no set eu coloquei float e no rightclick coloquei double Link para o comentário Compartilhar em outros sites More sharing options...
Nano Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 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...
leonardosc Postado Dezembro 18, 2016 Denunciar Compartilhar Postado Dezembro 18, 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
Solitario
Galera como posso recarregar uma customconfigyml e como posso fazer ela carregar por que parece que não esta funcionando com o seguinte code:
Esqueci citar: Se eu setar todos as localizações esta funcionando ok, se eu reiniciar o servidor ocorre o problema ...
Editado por MusicsBassLink para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados