Bonsoir,
J'aimerais faire un plugin qui dans la méthode OnEnable() créer un fichier "Mémoire" ou "Stockage", et le rendre invisible au utilisateurs du plugin (Genre car c'est un simple stockage d'infos, genre Map, List et j'en passe. Mais que les utilisateurs ne verront pas donc ne pourront pas modifier(Ce qui entraînerait des bugs de mon plugin)). Je connais le proccessus pour le rendre invisible j'ai même fais des tests avec la méthode .isHidden(), mon fichier est bien caché à 1ère vue, mais quand je veux ajouter quelque chose dans le fichier depuis une commande que les utilisateurs pourront faire ingame, ils me disent que le chemin du fichier est trouvable mais que l'accès est refusé, mes codes :
1) Rendre le fichier caché :
2) Accès au Fichier "Caché.yml":
3) Ajout et sauvegarde d'un String dans "Caché.yml":
4) Erreur en console lors du Try/Catch pour Sauvegarder le String
Voilà tout. Ou alors si vous avez une solution pour créer un lieu de stockage que les utilisateurs ne peuvent pas modifier, je suis prenneur. Merci d'avance
Bonne soirée,
Luca_008
J'aimerais faire un plugin qui dans la méthode OnEnable() créer un fichier "Mémoire" ou "Stockage", et le rendre invisible au utilisateurs du plugin (Genre car c'est un simple stockage d'infos, genre Map, List et j'en passe. Mais que les utilisateurs ne verront pas donc ne pourront pas modifier(Ce qui entraînerait des bugs de mon plugin)). Je connais le proccessus pour le rendre invisible j'ai même fais des tests avec la méthode .isHidden(), mon fichier est bien caché à 1ère vue, mais quand je veux ajouter quelque chose dans le fichier depuis une commande que les utilisateurs pourront faire ingame, ils me disent que le chemin du fichier est trouvable mais que l'accès est refusé, mes codes :
1) Rendre le fichier caché :
Code:
File test = new File("plugins/MyPlugin/Caché.yml");
try {
test.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
Process p = Runtime.getRuntime().exec("attrib +h " + test.getPath());
try {
p.waitFor();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
2) Accès au Fichier "Caché.yml":
Code:
File hide = new File("plugins/MyPlugin/Caché.yml");
FileConfiguration hideConfig = YamlConfiguration.loadConfiguration(hide);
3) Ajout et sauvegarde d'un String dans "Caché.yml":
Code:
hideConfig.set("hidden", "coucou");
try {
hideConfig.save(hide);
} catch(IOException e){
System.out.println("Error");
e.printStackTrace();
}
4) Erreur en console lors du Try/Catch pour Sauvegarder le String
Code:
[21:43:59 INFO]: Error
[21:43:59 WARN]: java.io.FileNotFoundException: plugins\MyPlugin\CachÚ.yml (AccÞs refusÚ)
[21:43:59 WARN]: at java.io.FileOutputStream.open0(Native Method)
[21:43:59 WARN]: at java.io.FileOutputStream.open(Unknown Source)
[21:43:59 WARN]: at java.io.FileOutputStream.<init>(Unknown Source)
[21:43:59 WARN]: at java.io.FileOutputStream.<init>(Unknown Source)
[21:43:59 WARN]: at org.bukkit.configuration.file.FileConfiguration.save(FileConfiguration.java:70)
[21:43:59 WARN]: at me.Luca008.MyPlugin.MyCommand.onCommand(MyCommand.java:180)
[21:43:59 WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
[21:43:59 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
[21:43:59 WARN]: at org.bukkit.craftbukkit.v1_9_R1.CraftServer.dispatchCommand(CraftServer.java:645)
[21:43:59 WARN]: at org.bukkit.craftbukkit.v1_9_R1.CraftServer.dispatchServerCommand(CraftServer.java:631)
[21:43:59 WARN]: at net.minecraft.server.v1_9_R1.DedicatedServer.aL(DedicatedServer.java:438)
[21:43:59 WARN]: at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:401)
[21:43:59 WARN]: at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:660)
[21:43:59 WARN]: at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:559)
[21:43:59 WARN]: at java.lang.Thread.run(Unknown Source)
Voilà tout. Ou alors si vous avez une solution pour créer un lieu de stockage que les utilisateurs ne peuvent pas modifier, je suis prenneur. Merci d'avance
Bonne soirée,
Luca_008