Ir para conteúdo
  • 0

[Resolvido] [Duvida] multipla config


LuizB

Pergunta

Bem criei uma config nova só que n sei setar coisas nela

se eu colocar getConfig.getString("naosei");

Vai Pra Config principal que no caso é a config.yml

codigo da config

 

File novo = new File(getDataFolder(), "config2.yml"); 
		if(!novo.exists());
			saveResource("config2.yml", false);
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

 

Bem criei uma config nova só que n sei setar coisas nela

 

se eu colocar getConfig.getString("naosei");

 

Vai Pra Config principal que no caso é a config.yml

 

codigo da config

 

 

File novo = new File(getDataFolder(), "config2.yml"); 
		if(!novo.exists());
			saveResource("config2.yml", false);
YamlConfiguration.loadConfiguration(novo).set ou .getString bla bla bla
Link para o comentário
Compartilhar em outros sites

YamlConfiguration.loadConfiguration(novo).set ou .getString bla bla bla

Quando Eu vou colocar em outra classe da 2 erros

 

Estou Colocando assim

 

 

Principal.cf.YamlConfiguration.loadConfiguration(novo).set("rMundo", (Object)player.getWorld().getName());

YamlConfiguration cannot be resolved or is not a field

 

e o outro erro é :

 

novo cannot be resolved to a variable ( Pedindo pra criar uma variavel novo )

Link para o comentário
Compartilhar em outros sites

http://hastebin.com/ozugiditow.coffee Data file manager

http://hastebin.com/bohijuxibu.avrasm Data file

Para criar um arquivo você primeiro precisa instanciar a DataFileManager em alguma classe

 

public class Classe extends JavaPlugin {
    public static DataFileManager fileManager;

    @Override
    public void onLoad() {
        fileManager = new DataFileManager(this);
    
    }

}

Depois basta você criar um arquivo em outra classe ou na mesma classe que você instanciou o gerador

 

public class Arquivo {
    public static DataFile file;

    // Instancia o arquivo
    public static void create() {
        file = Classe.dataFileManager.getNewConfig("nome_da_configuração.extensao");
        file.saveConfig();
    }

}

Depois adicione a instancia na sua classe principal:

public class Classe extends JavaPlugin {
    public static DataFileManager fileManager;

    @Override
    public void onLoad() {
        fileManager = new DataFileManager(this);
    
    }

    @Override
    public void onEnable() {
        Arquivo.create();

    }

}

Para você poder pegar os métodos da config basta acessar a variável do DataFile. Exemplo:

 

System.out.println(Arquivo.file.getString("funciona").toUpperCase());
Editado por Gabriel__
Link para o comentário
Compartilhar em outros sites

// Data file class

import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.Set;

import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;

public class DataFile {
	private int comments;
	private DataFileManager manager;

	private File file;
	private FileConfiguration config;

	@SuppressWarnings("deprecation")
	public DataFile(InputStream configStream, File configFile, int comments,
			JavaPlugin plugin) {
		this.comments = comments;
		this.manager = new DataFileManager(plugin);
		this.file = configFile;
		this.config = YamlConfiguration.loadConfiguration(configStream);
	}

	public Object get(String path) {
		return this.config.get(path);
	}

	public Object get(String path, Object def) {
		return this.config.get(path, def);
	}

	public String getString(String path) {
		return this.config.getString(path);
	}

	public String getString(String path, String def) {
		return this.config.getString(path, def);
	}

	public int getInt(String path) {
		return this.config.getInt(path);
	}

	public int getInt(String path, int def) {
		return this.config.getInt(path, def);
	}

	public boolean getBoolean(String path) {
		return this.config.getBoolean(path);
	}

	public boolean getBoolean(String path, boolean def) {
		return this.config.getBoolean(path, def);
	}

	public void createSection(String path) {
		this.config.createSection(path);
	}

	public ConfigurationSection getConfigurationSection(String path) {
		return this.config.getConfigurationSection(path);
	}

	public double getDouble(String path) {
		return this.config.getDouble(path);
	}

	public double getDouble(String path, double def) {
		return this.config.getDouble(path, def);
	}

	public List<?> getList(String path) {
		return this.config.getList(path);
	}

	public List<?> getList(String path, List<?> def) {
		return this.config.getList(path, def);
	}

	public boolean contains(String path) {
		return this.config.contains(path);
	}

	public void removeKey(String path) {
		this.config.set(path, null);
	}

	public void set(String path, Object value) {
		this.config.set(path, value);
	}

	public void set(String path, Object value, String comment) {
		if (!this.config.contains(path)) {
			this.config.set(manager.getPluginName() + "_COMMENT_" + comments,
					" " + comment);
			comments++;
		}
		this.config.set(path, value);
	}

	public void set(String path, Object value, String[] comment) {
		for (String comm : comment) {
			if (!this.config.contains(path)) {
				this.config.set(manager.getPluginName() + "_COMMENT_"
						+ comments, " " + comm);
				comments++;
			}
		}
		this.config.set(path, value);
	}

	public void setHeader(String[] header) {
		manager.setHeader(this.file, header);
		this.comments = header.length + 2;
		this.reloadConfig();
	}

	@SuppressWarnings("deprecation")
	public void reloadConfig() {
		this.config = YamlConfiguration.loadConfiguration(manager
				.getConfigContent(file));
	}

	public void saveConfig() {
		String config = this.config.saveToString();
		manager.saveConfig(config, this.file);
	}

	public Set<String> getKeys() {
		return this.config.getKeys(false);
	}
}

// Data file manager class

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.charset.Charset;

import org.bukkit.plugin.java.JavaPlugin;

public class DataFileManager {
	private JavaPlugin plugin;

	public DataFileManager(JavaPlugin plugin) {
		this.plugin = plugin;
	}

	public DataFile getNewConfig(String fileName, String[] header) {
		File file = this.getConfigFile(fileName);

		if (!file.exists()) {
			this.prepareFile(fileName);
			if (header != null && header.length != 0)
				this.setHeader(file, header);
		}

		DataFile config = new DataFile(this.getConfigContent(fileName),
				file, this.getCommentsNum(file), plugin);
		return config;
	}

	public DataFile getNewConfig(String fileName) {
		return this.getNewConfig(fileName, null);
	}

	private File getConfigFile(String file) {
		if (file.isEmpty() || file == null)
			return null;

		File configFile;

		if (file.contains("/")) {
			if (file.startsWith("/"))
				configFile = new File(plugin.getDataFolder()
						+ file.replace("/", File.separator));
			else
				configFile = new File(plugin.getDataFolder() + File.separator
						+ file.replace("/", File.separator));
		} else
			configFile = new File(plugin.getDataFolder(), file);

		return configFile;
	}

	public void prepareFile(String filePath, String resource) {
		File file = this.getConfigFile(filePath);

		if (file.exists())
			return;

		try {
			file.getParentFile().mkdirs();
			file.createNewFile();

			if (resource != null)
				if (!resource.isEmpty())
					this.copyResource(plugin.getResource(resource), file);

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void prepareFile(String filePath) {
		this.prepareFile(filePath, null);
	}

	public void setHeader(File file, String[] header) {
		if (!file.exists())
			return;

		try {
			String currentLine;
			StringBuilder config = new StringBuilder("");
			BufferedReader reader = new BufferedReader(new FileReader(file));

			while ((currentLine = reader.readLine()) != null)
				config.append(currentLine + "\n");

			reader.close();
			config.append("# +----------------------------------------------------+ #\n");

			for (String line : header) {
				if (line.length() > 50)
					continue;

				int lenght = (50 - line.length()) / 2;
				StringBuilder finalLine = new StringBuilder(line);

				for (int i = 0; i < lenght; i++) {
					finalLine.append(" ");
					finalLine.reverse();
					finalLine.append(" ");
					finalLine.reverse();
				}

				if (line.length() % 2 != 0)
					finalLine.append(" ");

				config.append("# < " + finalLine.toString() + " > #\n");
			}
			config.append("# +----------------------------------------------------+ #");

			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
			writer.write(this.prepareConfigString(config.toString()));
			writer.flush();
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public InputStream getConfigContent(File file) {
		if (!file.exists())
			return null;
		try {
			int commentNum = 0;

			String addLine;
			String currentLine;
			String pluginName = this.getPluginName();

			StringBuilder whole = new StringBuilder("");
			BufferedReader reader = new BufferedReader(new FileReader(file));

			while ((currentLine = reader.readLine()) != null) {
				if (currentLine.startsWith("#")) {
					addLine = currentLine.replaceFirst("#", pluginName
							+ "_COMMENT_" + commentNum + ":");
					whole.append(addLine + "\n");
					commentNum++;
				} else
					whole.append(currentLine + "\n");
			}

			String config = whole.toString();
			InputStream configStream = new ByteArrayInputStream(
					config.getBytes(Charset.forName("UTF-8")));

			reader.close();
			return configStream;
		} catch (IOException e) {
			e.printStackTrace();
			return null;
		}
	}

	private int getCommentsNum(File file) {
		if (!file.exists())
			return 0;
		try {
			int comments = 0;
			String currentLine;

			BufferedReader reader = new BufferedReader(new FileReader(file));

			while ((currentLine = reader.readLine()) != null)
				if (currentLine.startsWith("#"))
					comments++;

			reader.close();
			return comments;
		} catch (IOException e) {
			e.printStackTrace();
			return 0;
		}
	}

	public InputStream getConfigContent(String filePath) {
		return this.getConfigContent(this.getConfigFile(filePath));
	}

	private String prepareConfigString(String configString) {
		int lastLine = 0;
		int headerLine = 0;

		String[] lines = configString.split("\n");
		StringBuilder config = new StringBuilder("");

		for (String line : lines) {
			if (line.startsWith(this.getPluginName() + "_COMMENT")) {
				String comment = "#"
						+ line.trim().substring(line.indexOf(":") + 1);

				if (comment.startsWith("# +-")) {
					if (headerLine == 0) {
						config.append(comment + "\n");
						lastLine = 0;
						headerLine = 1;
					} else if (headerLine == 1) {
						config.append(comment + "\n\n");
						lastLine = 0;
						headerLine = 0;
					}
				} else {
					String normalComment;
					if (comment.startsWith("# ' "))
						normalComment = comment.substring(0,
								comment.length() - 1)
								.replaceFirst("# ' ", "# ");
					else
						normalComment = comment;

					if (lastLine == 0)
						config.append(normalComment + "\n");
					else if (lastLine == 1)
						config.append("\n" + normalComment + "\n");

					lastLine = 0;
				}
			} else {
				config.append(line + "\n");
				lastLine = 1;
			}
		}
		return config.toString();
	}

	public void saveConfig(String configString, File file) {
		String configuration = this.prepareConfigString(configString);

		try {
			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
			writer.write(configuration);
			writer.flush();
			writer.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public String getPluginName() {
		return plugin.getDescription().getName();
	}

	private void copyResource(InputStream resource, File file) {
		try {
			OutputStream out = new FileOutputStream(file);

			int length;
			byte[] buf = new byte[1024];

			while ((length = resource.read(buf)) > 0)
				out.write(buf, 0, length);

			out.close();
			resource.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Esses códigos não são meus, mas uso ele até hoje porque é muito útil

 

Oloco mano isso é muito grande

 

acho que deve ter um geito mais facil se não o geito é ir pra do power

Link para o comentário
Compartilhar em outros sites

 

http://hastebin.com/ozugiditow.coffee Data file manager

 

http://hastebin.com/bohijuxibu.avrasm Data file

 

Para criar um arquivo você primeiro precisa instanciar a DataFileManager em alguma classe

 

 

public class Classe extends JavaPlugin {
    public static DataFileManager fileManager;

    @Override
    public void onLoad() {
        fileManager = new DataFileManager(this);
    
    }

}

Depois basta você criar um arquivo em outra classe ou na mesma classe que você instanciou o gerador

 

 

public class Arquivo {
    public static DataFile file;

    // Instancia o arquivo
    public static void create() {
        file = Classe.dataFileManager.getNewConfig("nome_da_configuração.extensao");
        file.saveConfig();
    }

}

Depois adicione a instancia na sua classe principal:

public class Classe extends JavaPlugin {
    public static DataFileManager fileManager;

    @Override
    public void onLoad() {
        fileManager = new DataFileManager(this);
    
    }

    @Override
    public void onEnable() {
        Arquivo.create();

    }

}

Para você poder pegar os métodos da config basta acessar a variável do DataFile. Exemplo:

 

 

System.out.println(Arquivo.file.getString("funciona").toUpperCase());

Deu Varios E

 

 

http://hastebin.com/ozugiditow.coffee Data file manager

 

http://hastebin.com/bohijuxibu.avrasm Data file

 

Para criar um arquivo você primeiro precisa instanciar a DataFileManager em alguma classe

 

 

public class Classe extends JavaPlugin {
    public static DataFileManager fileManager;

    @Override
    public void onLoad() {
        fileManager = new DataFileManager(this);
    
    }

}

Depois basta você criar um arquivo em outra classe ou na mesma classe que você instanciou o gerador

 

 

public class Arquivo {
    public static DataFile file;

    // Instancia o arquivo
    public static void create() {
        file = Classe.dataFileManager.getNewConfig("nome_da_configuração.extensao");
        file.saveConfig();
    }

}

Depois adicione a instancia na sua classe principal:

public class Classe extends JavaPlugin {
    public static DataFileManager fileManager;

    @Override
    public void onLoad() {
        fileManager = new DataFileManager(this);
    
    }

    @Override
    public void onEnable() {
        Arquivo.create();

    }

}

Para você poder pegar os métodos da config basta acessar a variável do DataFile. Exemplo:

 

 

System.out.println(Arquivo.file.getString("funciona").toUpperCase());

Nesta Parte

 

 

file = Classe.dataFileManager.getNewConfig("nome_da_configuração.extensao");

Eu coloco:

 

 

file = Classe.dataFileManager.getNewConfig("confignova.yml");

Assim ?

Link para o comentário
Compartilhar em outros sites

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