• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spawn Location in Config abspeichern funzt nicht

AconTM

Schafhirte
Registriert
15 Juni 2015
Beiträge
118
Alter
29
Diamanten
260
Minecraft
AconTM
Guten tag,

ich hab grad folgendes Problem: Ich habe mir mit hilfe eines Tutorials ein "Setspawn" Command geschrieben
was auch alles geklappt hat.. Jedoch wollte ich dieses jetzt in ein anderes Plugin implementieren & dort
kriege ich InGame beim Befehl "setspawn" eine Nullpointer.. Kann mir jemand den Grund nennen?

Code:
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
      
        if(sender instanceof Player) {
            Player p = (Player) sender;
            if(p.hasPermission("tutorial.setspawn")) {
                if(args.length == 0) {
                  
                    FileConfiguration cfg = Main.getPlugin().getConfig();
                    Location loc = p.getLocation();
                  
                    cfg.set("Spawn.World", loc.getWorld().getName());
                    cfg.set("Spawn.X", loc.getX());
                    cfg.set("Spawn.Y", loc.getY());
                    cfg.set("Spawn.Z", loc.getZ());
                    cfg.set("Spawn.Yaw", loc.getYaw());
                    cfg.set("Spawn.Pitch", loc.getPitch());
                    Main.getPlugin().saveConfig();
                  
                    p.sendMessage("§a§lPixelcurse §8» §7Spawn wurde erfolgreich gesetzt!");
                  
                } else
                    p.sendMessage("§a§lPixelcurse §8» §7Bitte benutze §6/setspawn§7.");
            } else
                p.sendMessage("§c§lPixelcurse §8» §7Dieser Befehl existiert nicht!");
        }
      
        return false;
    }

Code:
[13:39:06 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'setspawn' in plugin PixelCore v0.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchCommand(CraftServer.java:650) ~[spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.PlayerConnection.handleCommand(PlayerConnection.java:1354) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.PlayerConnection.a(PlayerConnection.java:1189) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_151]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_151]
        at net.minecraft.server.v1_11_R1.SystemUtils.a(SourceFile:46) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:747) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot.jar:git-Spigot-3fb9445-6e3cec8]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_151]
Caused by: java.lang.NullPointerException
        at de.acontm.pixelcore.commands.SetSpawnCommand.onCommand(SetSpawnCommand.java:22) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Spigot-3fb9445-6e3cec8]
        ... 15 more

Der Fehler liegt angeblich beim "FileConfiguration cfg = Main.getPlugin().getConfig();"
 

moinless

Schafhirte
Registriert
4 Oktober 2013
Beiträge
103
Diamanten
302
Der Code deiner Main Klasse wäre noch hilfreich. Vermutlich ist die Plugininstanz, welche du mit dem Getter übergibst, null.

Übrigens implementiert Location das ConfigurationSerializable Interface, weshalb du die Location selbst in die Config speichern kannst.
Code:
cfg.set("Spawn.Location", loc)

Beim Laden aus der Config muss das Objekt dann zu einer Location gecastet werden.
Code:
Location loc = (Location) cfg.get("Spawn.Location")
 
Zuletzt bearbeitet:

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Eine NullPointerException tritt auf, wenn auf ein Klassenmitglied einer Instanz zugegriffen wird, die null ist.
In deinem Fall vermute ich mal, dass "Main" eine Klasse bezeichnet und kein Feld. Dann kann dies schon mal nicht null sein.
getPlugin() kann durchaus null zurückliefert und würde dann die Exception produzieren, sobald du versucht darauf getConfig() auszuführen.
Sollte getPlugin() nicht null zurück liefern, aber getConfig(), dann wird keine Exception erzeugt, weil du null durchaus in der Variablen cfg speichern kannst.
Also wird getPlugin() null zurückliefern.
 
Oben