I try to learn some thing about plugin for minecraft.
In my way i got to make config files.
From there everything is ok i can read it, save it into the pluginfolder..
But when i change it into my resourceFolder it dosn't update into the pluginfolder.
I try to find a way to do it but i dont know how to do.
If someone can help me, thanks a lot
My FilesUtils class:
public enum FilesUtil {
// Définie les fichiers de config
CONFIG("config.yml"),
LANG("lang.yml");
private final String fileName;
private final File dataFolder;
FilesUtil(String fileName) {
this.fileName = fileName;
this.dataFolder = FirstPlugin.getInstance().getDataFolder();
}
// Copie le fichier resource du jar vers le fichier du dossier du plugin
public void create(Logger logger) {
// Vérifie si le fichier resource jar n'est pas null et n'est pas vide
if (fileName == null || fileName.isEmpty()) {
throw new IllegalArgumentException("ResourcePath cannot be null or empty");
}
// lit le fichier resource jar
InputStream in = FirstPlugin.getInstance().getResource(fileName);
// Vérifie que le fichier n'est pas null
if (in == null) {
throw new IllegalArgumentException("The resource '" + fileName + "' cannot be found in plugin jar");
}
// Vérifie si le dossier du plugin n'existe pas et qu'on'a pas pu le créer
if (!dataFolder.exists() && !dataFolder.mkdir()) {
logger.severe("Failed to make directory");
}
// Fichier plugin
File outFile = getFile();
try {
// Vérifie si le fichier plugin existe
if (!outFile.exists()) {
logger.info("The " + fileName + " was not found, creation in progress ...");
// Permet d'écrire sur le fichier
OutputStream out = new FileOutputStream(outFile);
// Indique le nombre d'octets lu à chaque tour de boucle
byte[] buf = new byte[1024];
// Résultat de la lecture
int n;
// Tant qu'infile n'est pas lu
while ((n = in.read(buf)) >= 0) {
// Écrire dans outfile
out.write(buf, 0, n);
}
// Fermeture des flux
out.close();
in.close();
// On vérifie si le fichier du plugin est bien créé
if (!(outFile.exists())) {
logger.severe("Unable to copy the file");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
// Retourne un File plutôt qu'un nom de fichier
public File getFile() {
return new File(dataFolder, fileName);
}
// Permet de récupérer facilement le fichier config
public FileConfiguration getConfig() {
return YamlConfiguration.loadConfiguration(getFile());
}
// Permet de sauvegarder le fichier de configuration
public void save(FileConfiguration config) {
try {
config.save(getFile());
} catch (IOException e) {
e.printStackTrace();
}
}
public String getFileName() {
return fileName;
}
}