DevPaddington Postado Maio 2, 2018 Denunciar Compartilhar Postado Maio 2, 2018 Olá bom dia,tarde,noite. Gostaria de saber como posso criar uma yml custom, e tb como salvar e pegar dados do yml. Obg. Link para o comentário Compartilhar em outros sites More sharing options...
0 bieel1503 Postado Maio 2, 2018 Denunciar Compartilhar Postado Maio 2, 2018 Certo... primeiro você vai precisar criar um novo arquivo com o ".yml" como extensão dentro de seu projeto. Eu vou deixa-lo como "custom.yml". Ah, e eu vou estar usando a Main como exemplo. Depois de criar o arquivo, na nossa classe, crie duas variáveis, uma como tipo "File" e outra como "YamlConfiguration". Ficará assim: File file; YamlConfiguration yamlconfiguration; A variável "file" vai ser o nosso arquivo(custom.yml) e a "yamlconfiguration" vai ser o acesso para os dados. Agora já criamos o arquivo, definimos as variáveis, e agora falta extrairmos o arquivo para a pasta de nosso plugin. Vamos ter que criar um método para isso, e nosso método vai retornar um objeto do tipo "File". Eu vou criá-lo como "extractFile". Ficou assim: File extractFile(){ } Dentro do método, crie uma variável do tipo "File" e faça também um "try-catch". Colocaremos um "return null" dentro do "catch" para se caso der erro retornar como nulo. Ficará assim: File extractFile(){ File file; try{ }catch(Exception e){ return null; } } Na variável "file", vamos criar uma nova instância do objeto e colocaremos "getDataFolder().getAbsolutePath()" em seu parâmetro. O "getDataFolder()" é um método da classe "JavaPlugin", ele me retorna a pasta aonde o nosso plugin está e como isso retorna um arquivo, vamos usar o método "getAbsolutePath()" da classe "File" para podermos pegá-lo como "String" o seu "caminho". Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ }catch(Exception e){ return null; } } É possível que não exista a pasta do plugin e teremos que criarmos. Agora, dentro do "try-catch", vamos checar se ela existe com o método "exists" da classe "File" e se não existir, vamos criá-la com o método "mkdir". Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ //com o "!" no começo, é a mesma coisa que fizermos "if(file.exists == false)". if(!file.exists){ file.mkdir(); } }catch(Exception e){ return null; } } Já checamos se a pasta do plugin existe, e se não existir, a gente cria uma. Agora vamos dar outro valor para a variável "file", teremos que criar outra instância e vamos colocar o parâmetro como "file.getAbsolutePath() + "/custom.yml". Isso vai retornar o nosso arquivo e de primeira, ele não vai existir, mas é possível que você já tenha extraído uma vez, então temos que checar. Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ if(!file.exists){ file.mkdir(); } file = new File(file.getAbsolutePath() + "/custom.yml"); if(!file.exists){ } }catch(Exception e){ return null; } } Agora, depois de checarmos se ele não existe, teremos que pegar o arquivo "custom.yml" de dentro da nossa jar e extrairmos. Coloque esse código dentro: InputStream tocopy = getClass().getResourceAsStream("/custom.yml"); Files.copy(tocopy, file.getAbsoluteFile().toPath()); tocopy.close(); Isso vai extrair para a pasta de nosso plugin. Ah, e não se esqueça de retornar o arquivo depois disso. Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ if(!file.exists){ file.mkdir(); } file = new File(file.getAbsolutePath() + "/custom.yml"); if(!file.exists){ InputStream tocopy = getClass().getResourceAsStream("/custom.yml"); Files.copy(tocopy, file.getAbsoluteFile().toPath()); tocopy.close(); } return file; }catch(Exception e){ return null; } } Agora na "onEnable", vamos dar os valores para as nossas variáveis "file" e a "yamlconfiguration". O da "file", vai ser o arquivo que retornar do nosso método "extractFile" e o "yamlconfiguration", a gente vai fazer que carregue os dados do "file" como nosso valor. Ficará assim: public void onEnable(){ file = extractFile(); yamlconfiguration = YamlConfiguration.loadConfiguration(file); } E pronto, agora você tem um yml customizado. Ah, e você usará o "yamlconfiguration" para ter acesso aos dados. Link para o comentário Compartilhar em outros sites More sharing options...
0 zAryon Postado Maio 2, 2018 Denunciar Compartilhar Postado Maio 2, 2018 Dá uma conferida aqui Link para o comentário Compartilhar em outros sites More sharing options...
0 DevPaddington Postado Maio 2, 2018 Autor Denunciar Compartilhar Postado Maio 2, 2018 Certo... primeiro você vai precisar criar um novo arquivo com o ".yml" como extensão dentro de seu projeto. Eu vou deixa-lo como "custom.yml". Ah, e eu vou estar usando a Main como exemplo. Depois de criar o arquivo, na nossa classe, crie duas variáveis, uma como tipo "File" e outra como "YamlConfiguration". Ficará assim: File file; YamlConfiguration yamlconfiguration; A variável "file" vai ser o nosso arquivo(custom.yml) e a "yamlconfiguration" vai ser o acesso para os dados. Agora já criamos o arquivo, definimos as variáveis, e agora falta extrairmos o arquivo para a pasta de nosso plugin. Vamos ter que criar um método para isso, e nosso método vai retornar um objeto do tipo "File". Eu vou criá-lo como "extractFile". Ficou assim: File extractFile(){ } Dentro do método, crie uma variável do tipo "File" e faça também um "try-catch". Colocaremos um "return null" dentro do "catch" para se caso der erro retornar como nulo. Ficará assim: File extractFile(){ File file; try{ }catch(Exception e){ return null; } } Na variável "file", vamos criar uma nova instância do objeto e colocaremos "getDataFolder().getAbsolutePath()" em seu parâmetro. O "getDataFolder()" é um método da classe "JavaPlugin", ele me retorna a pasta aonde o nosso plugin está e como isso retorna um arquivo, vamos usar o método "getAbsolutePath()" da classe "File" para podermos pegá-lo como "String" o seu "caminho". Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ }catch(Exception e){ return null; } } É possível que não exista a pasta do plugin e teremos que criarmos. Agora, dentro do "try-catch", vamos checar se ela existe com o método "exists" da classe "File" e se não existir, vamos criá-la com o método "mkdir". Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ //com o "!" no começo, é a mesma coisa que fizermos "if(file.exists == false)". if(!file.exists){ file.mkdir(); } }catch(Exception e){ return null; } } Já checamos se a pasta do plugin existe, e se não existir, a gente cria uma. Agora vamos dar outro valor para a variável "file", teremos que criar outra instância e vamos colocar o parâmetro como "file.getAbsolutePath() + "/custom.yml". Isso vai retornar o nosso arquivo e de primeira, ele não vai existir, mas é possível que você já tenha extraído uma vez, então temos que checar. Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ if(!file.exists){ file.mkdir(); } file = new File(file.getAbsolutePath() + "/custom.yml"); if(!file.exists){ } }catch(Exception e){ return null; } } Agora, depois de checarmos se ele não existe, teremos que pegar o arquivo "custom.yml" de dentro da nossa jar e extrairmos. Coloque esse código dentro: InputStream tocopy = getClass().getResourceAsStream("/custom.yml"); Files.copy(tocopy, file.getAbsoluteFile().toPath()); tocopy.close(); Isso vai extrair para a pasta de nosso plugin. Ah, e não se esqueça de retornar o arquivo depois disso. Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ if(!file.exists){ file.mkdir(); } file = new File(file.getAbsolutePath() + "/custom.yml"); if(!file.exists){ InputStream tocopy = getClass().getResourceAsStream("/custom.yml"); Files.copy(tocopy, file.getAbsoluteFile().toPath()); tocopy.close(); } return file; }catch(Exception e){ return null; } } Agora na "onEnable", vamos dar os valores para as nossas variáveis "file" e a "yamlconfiguration". O da "file", vai ser o arquivo que retornar do nosso método "extractFile" e o "yamlconfiguration", a gente vai fazer que carregue os dados do "file" como nosso valor. Ficará assim: public void onEnable(){ file = extractFile(); yamlconfiguration = YamlConfiguration.loadConfiguration(file); } E pronto, agora você tem um yml customizado. Ah, e você usará o "yamlconfiguration" para ter acesso aos dados. W T F Essa explicação foi nem 10/10 foi 100/10 muito obg mano se eu não entender dps disso eu me mato xD Link para o comentário Compartilhar em outros sites More sharing options...
0 RUSHyoutuber Postado Maio 2, 2018 Denunciar Compartilhar Postado Maio 2, 2018 Cara na moral você complicou de mais a situação sério mesmo '-' existe 1 jeito 3000000000000% mais facil e eficaz de se fazer isso '-' Se você ainda precisar disso, ou caso você queira um jeito mais simples, eficaz e com mais opções só me chamar , achei essa explicação muito confusa e cheia de gambiarras, o meu método é basicamente o mesmo só que muito mais simples e facil, parabéns ai Link para o comentário Compartilhar em outros sites More sharing options...
0 Skip Postado Maio 2, 2018 Denunciar Compartilhar Postado Maio 2, 2018 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
DevPaddington
Olá bom dia,tarde,noite.
Gostaria de saber como posso criar uma yml custom, e tb como salvar e pegar dados do yml.
Obg.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados