• 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!

PlugIn Location aus Config auslesen

SyntaxWolf

Redstoneengineer
Registriert
26 Oktober 2017
Beiträge
46
Diamanten
250
Hallo,

ich habe ein Problem mit den Locations in der Config. Das Problem ist, dass man nicht teleportiert wird.

Code:
public static void createLocation(Player p, String name) {
        Location location = p.getLocation();
        locationsConfiguration.set("locations.lobby." + name + ".World", location.getWorld().getName());
        locationsConfiguration.set("locations.lobby." + name + ".X", Double.valueOf(location.getX()));
        locationsConfiguration.set("locations.lobby." + name + ".Y", Double.valueOf(location.getY()));
        locationsConfiguration.set("locations.lobby." + name + ".Z", Double.valueOf(location.getZ()));
        locationsConfiguration.set("locations.lobby." + name + ".Yaw", Float.valueOf(location.getYaw()));
        locationsConfiguration.set("locations.lobby." + name + ".Pich", Float.valueOf(location.getPitch()));
        try {
            locationsConfiguration.save(locationsFile);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    public static Location getLocation(String name) {
        World w = Bukkit.getWorld(locationsConfiguration.getString("locations.lobby" + name + ".World"));
        double x = locationsConfiguration.getDouble("locations.lobby." + "locations.lobby" + name + ".X");
        double y = locationsConfiguration.getDouble("locations.lobby." + name + ".Y");
        double z = locationsConfiguration.getDouble("locations.lobby." + name + ".Z");
        float yaw = (float) locationsConfiguration.getDouble("locations.lobby." + name + ".Yaw");
        float pitch = (float) locationsConfiguration.getDouble("locations.lobby." + name + ".Pitch");
        return new Location(w, x, y, z, yaw, pitch);
    }
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Irgendwie sieht diese Zeile nicht ganz richtig aus:
So genau hab ich nicht mal geschaut, aber da ist tatsächlich ein Fehler drin.
Allerdings löst das noch nicht das Problem, da ja nur die x Koordinate immer 0 ist. Aber weshalb man gar nicht teleportiert wird, erschließt sich mir daraus noch nicht
 

SyntaxWolf

Redstoneengineer
Registriert
26 Oktober 2017
Beiträge
46
Diamanten
250
Vielleicht hilft das.
Code:
[17:36:53] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to LobbySystem v0.0.1
org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.PlayerList.onPlayerJoin(PlayerList.java:298) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.PlayerList.a(PlayerList.java:157) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.LoginListener.b(LoginListener.java:144) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.LoginListener.c(LoginListener.java:54) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.NetworkManager.a(NetworkManager.java:231) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java:148) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:814) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24]
    at java.base/java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.IllegalArgumentException: Name cannot be null
    at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.getWorld(CraftServer.java:1014) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at org.bukkit.Bukkit.getWorld(Bukkit.java:496) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    at de.EmeraldPvP.LobbySystem.SyntaxWolf.utils.Data.getLocation(Data.java:50) ~[?:?]
    at de.EmeraldPvP.LobbySystem.SyntaxWolf.listener.PlayerJoinListener.onPlayerJoin(PlayerJoinListener.java:23) ~[?:?]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
    at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
    ... 14 more
[17:36:53] [Server thread/INFO]: SyntaxWolf[/127.0.0.1:6637] logged in with entity id 29 at ([world]-111.71817674159463, 4.0, -36.80234072283484)
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Der Weltnamen den du aus der Config liest, ist null. Du musst in jedem Fall noch etwas Fehlerbehandlung einbauen.
Ausgelöst wird es jedenfalls dadurch, dass du hier einen "." vergessen hast:
Code:
        World w = Bukkit.getWorld(locationsConfiguration.getString("locations.lobby" + name + ".World"));

Und da fällt mir noch ein Rechtschreibfehler auf:
Code:
        locationsConfiguration.set("locations.lobby." + name + ".Pich", Float.valueOf(location.getPitch()));
 
Zuletzt bearbeitet:

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Genau aus diesem Grund kann ich nur wiederholt betonen, wie sinnvoll es ist, einfach
Code:
config.set("path", location);
zum Speichern und
Code:
Location location = (Location) config.get("path");
zum Laden zu verwenden. Damit reduziert man die Fehlerquellen schon definitiv.
 
F

Figz

Guest
Genau aus diesem Grund kann ich nur wiederholt betonen, wie sinnvoll es ist, einfach
Code:
config.set("path", location);
zum Speichern und
Code:
Location location = (Location) config.get("path");
zum Laden zu verwenden. Damit reduziert man die Fehlerquellen schon definitiv.
Bester Weg die Location zu speichern und zu holen.

Abgesehen davon wurde dieses Thema in den letzten Wochen ca 3 mal in diesem Forum angesprochen?
 
Oben