Ir para conteúdo

FileConfiguration


BatemanBR

Posts Recomendados

Venho atravez desse topico distribuir uma classe de manipulação para novos arquivos de configurações e falar que usar FileConfiguration não causa lag no servidor.

 

Quando acessamos por exemplo um metodo "getString();" ele não ira acessar o arquivo em seu computador novamente e fazer a mesma verificação.

Quando você cria um FileConfiguration ele armazena tudo em apenas uma String e depois em Maps. Com isso criar seu metodo de armazenamento somente para melhorar o desempenho não sera tão eficiente, pode até ser mais rapido mas sera pouco mais rapido.

 

Essa minha classe extende de YamlConfiguration que extende de FileConfiguration que extende de ...

Ela possibilita você criar um arquivo de configuração personalizado com mais facilidade e com metodos como saveConfig(), saveDefaultConfig() e getFile().

Agora inves de você usar

FileConfiguration configCustom = YamlConfiguration.load(new File(getDataFolder, "configCustom.yml"));

Você usa

FileConfigurationCustom configCustom = new FileConfigurationCustom(new File(getDataFolder, "configCustom.yml"));

E a diferença na criação é que você não precisa verificar se o arquivo existe, criar ele ou fazer alguma verificação de IOException

package net.craftworlds.vipcraft;


import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.bukkit.Bukkit;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;


public class FileConfigurationCustom extends YamlConfiguration{


private File file;
private JavaPlugin plugin;


public FileConfigurationCustom(JavaPlugin plugin, File file)  {
this.file = file;
this.plugin = plugin;


try{
if(!file.exists()) {saveDefaultConfig();file.createNewFile();}
load(file);
} catch(Exception e) {
e.printStackTrace();
Bukkit.getPluginManager().disablePlugin(plugin);
}
}


public FileConfigurationCustom(JavaPlugin plugin, String fileAbsolutePath)  {
file = new File(fileAbsolutePath);
this.plugin = plugin;


try {
if(!file.exists()) {saveDefaultConfig();file.createNewFile();}
load(file);
} catch (Exception e) {
e.printStackTrace();
Bukkit.getPluginManager().disablePlugin(plugin);
}
}


public void saveConfig() throws Exception {
save(file);
}


public File getFile() {
return file;
}


public void saveDefaultConfig() {
plugin.saveResource(file.getName(), false);
}


public void load(String fileAbsolutePath) throws FileNotFoundException, IOException, InvalidConfigurationException {
file = new File(fileAbsolutePath);
super.load(file);
}


public void load(File file) throws FileNotFoundException, IOException, InvalidConfigurationException {
 this.file = file;
 super.load(file);
 }
}
Editado por BatemanBR
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...