Ir para conteúdo
  • 0

Como usar novamente ?


DevPaddington

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0

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

  • 0

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

  • 0

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...