Solved Trying to load location from file

Discussion in 'Plugin Development' started by Rubie, Dec 21, 2020.

Thread Status:
Not open for further replies.
  1. Offline

    Rubie

    My code wich can be run using a command
    Code:
         
                        World w = Bukkit.getServer().getWorld(warpSaveFile.get().getString("warps." + args[1] + ".world"));
                        double x = warpSaveFile.get().getDouble("warps." + args[1] + ".x");
                        double y = warpSaveFile.get().getDouble("warps." + args[1] + ".y");
                        double z = warpSaveFile.get().getDouble("warps." + args[1] + ".z");
                       
                        //player.sendMessage(String.valueOf(x));
                        player.teleport(new Location(w, x, y, z));
    
    Information in my .yml file
    warps:
    home:
    ==: org.bukkit.Location
    world: world
    x: 142.80432452080765
    y: 69.0
    z: 375.0023178666905
    pitch: 0.0
    yaw: 0.0

    I'm trying to make my own warp plugin where people can create there own warps and save them. I try to teleport the player to the warp the created and wich is saved in the file. But I get errors when I'm trying to read the information out of the file. I'm new to coding a plugin so I don't really know how to read the erros


    null
    org.bukkit.command.CommandException: Unhandled exception executing command 'wp' in plugin WarpPlugin v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[server.jar:git-Spigot-628435a-768d7fc]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[server.jar:git-Spigot-628435a-768d7fc]
    at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:763) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:1788) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:1631) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1584) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(SourceFile:144) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(SourceFile:118) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:942) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:935) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(SourceFile:127) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:919) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:851) ~[server.jar:git-Spigot-628435a-768d7fc]
    at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[server.jar:git-Spigot-628435a-768d7fc]
    at java.lang.Thread.run(Thread.java:834) [?:?]
     
  2. Offline

    timtower Administrator Administrator Moderator

    @Rubie If you want to get the values like that then you also need to set them like that.
     
  3. Offline

    Rubie

    I set it like this
    Code:
    warpSaveFile.get().set("warps", locations);
    How can I retrieve data saved like that?

    Problem solved by saving it like this:
    Code:
                       
     warpSaveFile.get().set("warps." + args[1] + ".world", player.getWorld().getName());
                        warpSaveFile.get().set("warps." + args[1] + ".createdBy", player.getName());
                        warpSaveFile.get().set("warps." + args[1] + ".x", player.getLocation().getX());
                        warpSaveFile.get().set("warps." + args[1] + ".y", player.getLocation().getY());
                        warpSaveFile.get().set("warps." + args[1] + ".z", player.getLocation().getZ());
    
    And getting the data by doing this:
    Code:
                        
    World w = Bukkit.getServer().getWorld(warpSaveFile.get().getString("warps." + args[0] + ".world"));
                        double x = warpSaveFile.get().getDouble("warps." + args[0] + ".x");
                        double y = warpSaveFile.get().getDouble("warps." + args[0] + ".y");
                        double z = warpSaveFile.get().getDouble("warps." + args[0] + ".z");
    
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Dec 21, 2020
Thread Status:
Not open for further replies.

Share This Page