Bonjour à tous !
Je cherche actuellement à faire sauvegarder un spawn (donc une location) dans un fichier de config qui se nomme 'spawn.yml'. J'ai donc créer le code que voici :
Seulement voilà, que je démarre le serveur, aucune erreur. Dès que je fais la commande '/setspawn', j'ai cette pu**** d'erreur dans la console que je n'arrive pas à résoudre :
A la ligne 28 j'ai donc un NullPointerException, ligne 28 c'est :
"final File file = new File(main.getDataFolder(), "spawn.yml");"
Ensuite, à la compilation du plugin, j'ai remarqué que 1 fois sur 3 il me met un message d'erreur me disant qu'il n'a pas pus compiler le JAR. Voici les 'détails' que Eclipse me donne :
J'ai donc cherché sur google et j'ai trouvé ceci : https://bukkit.org/threads/need-help-with-jar-creation-failed.65877/
Mais ça n'a pas vraiment fais avancer le chmilblick.
J'ai pourtant fais comme j'avais fais auparavant avec un autre fichier en .yml et ca fonctionnait pourtant bien.
Voila vous savez tout, je rajoute juste que mes commandes sont déclarées dans le main et dans le plugin.yml.
Voilà voilà ! Si vous avez des propositions
AlexFatta
Je cherche actuellement à faire sauvegarder un spawn (donc une location) dans un fichier de config qui se nomme 'spawn.yml'. J'ai donc créer le code que voici :
Code:
package fr.alexfatta.fallenkingdoms.managers;
import java.io.File;
import java.io.IOException;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import fr.alexfatta.fallenkingdoms.main;
public class SpawnManager implements CommandExecutor {
public main main;
private Location location;
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (label.equalsIgnoreCase("setspawn") && sender instanceof Player) {
Player player = (Player) sender;
this.location = player.getLocation();
final File file = new File(main.getDataFolder(), "spawn.yml");
final YamlConfiguration configuration = YamlConfiguration.loadConfiguration(file);
fr.alexfatta.fallenkingdoms.main.setSpawn(location);
configuration.set("spawn.world", player.getWorld().getName());
configuration.set("spawn.x", player.getLocation().getX());
configuration.set("spawn.y", player.getLocation().getY());
configuration.set("spawn.z", player.getLocation().getZ());
try {
configuration.save(file);
} catch (IOException e) {
e.printStackTrace();
}
player.sendMessage(fr.alexfatta.fallenkingdoms.main.getGamePrefix() + ChatColor.GREEN + "Tu as bien set la position du spawn.");
}
if (label.equalsIgnoreCase("spawn") && sender instanceof Player) {
Player player = (Player) sender;
player.teleport(fr.alexfatta.fallenkingdoms.main.getSpawn());
}
return false;
}
public Location getLocation() {
return location;
}
public void setLocation(Location location) {
this.location = location;
}
}
Seulement voilà, que je démarre le serveur, aucune erreur. Dès que je fais la commande '/setspawn', j'ai cette pu**** d'erreur dans la console que je n'arrive pas à résoudre :
Code:
[12:15:14 INFO]: AlexFatta issued server command: /setspawn
[12:15:14 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'setspawn' in plugin FallenKingdoms v1.1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at org.bukkit.craftbukkit.v1_10_R1.CraftServer.dispatchCommand(CraftServer.java:646) ~[spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.PlayerConnection.handleCommand(PlayerConnection.java:1348) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1183) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_144]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_144]
at net.minecraft.server.v1_10_R1.SystemUtils.a(SourceFile:45) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:733) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:672) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:571) [spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_144]
Caused by: java.lang.NullPointerException
at fr.alexfatta.fallenkingdoms.managers.SpawnManager.onCommand(SpawnManager.java:28) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot_1.10.jar:git-Spigot-6016ac7-10c10b3]
... 15 more
A la ligne 28 j'ai donc un NullPointerException, ligne 28 c'est :
"final File file = new File(main.getDataFolder(), "spawn.yml");"
Ensuite, à la compilation du plugin, j'ai remarqué que 1 fois sur 3 il me met un message d'erreur me disant qu'il n'a pas pus compiler le JAR. Voici les 'détails' que Eclipse me donne :
Code:
"JAR creation failed. See details for additional information.Resource is out of sync with the file system: '/FallenKingdoms Privé/spawn.yml'.
J'ai donc cherché sur google et j'ai trouvé ceci : https://bukkit.org/threads/need-help-with-jar-creation-failed.65877/
Mais ça n'a pas vraiment fais avancer le chmilblick.
J'ai pourtant fais comme j'avais fais auparavant avec un autre fichier en .yml et ca fonctionnait pourtant bien.
Voila vous savez tout, je rajoute juste que mes commandes sont déclarées dans le main et dans le plugin.yml.
Voilà voilà ! Si vous avez des propositions

AlexFatta