• 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
Mitglied seit
26 Oktober 2017
Beiträge
46
Diamanten
0
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
Mitglied seit
30 Juni 2017
Beiträge
420
Diamanten
37
Minecraft
SirYwell
Abgesehen, dass die Klasse Location ConfigurationSerializable implementiert, sehe ich in dem Code kein Statement, mit welchem der Spieler teleportiert werden soll.
 

SirYwell

PlotSquared Entwickler
Mitglied seit
30 Juni 2017
Beiträge
420
Diamanten
37
Minecraft
SirYwell
Wenn wir deinen Fehler finden sollen, musst du schon etwas mehr Informationen liefern. Also der gesamte betroffene Quellcode, etwaige Fehlermeldungen und und und...
 

SyntaxWolf

Redstoneengineer
Mitglied seit
26 Oktober 2017
Beiträge
46
Diamanten
0
Die Methode "getLocation(String name)" funktioniert nicht, weil man nicht teleportiert wird. Eine Fehlermeldung gibt es nicht.
 

BlackHole

Workaholic
Mitglied seit
1 Juli 2012
Beiträge
749
Diamanten
0
Minecraft
BlackHole
Irgendwie sieht diese Zeile nicht ganz richtig aus:
Code:
        double x = locationsConfiguration.getDouble("locations.lobby." + "locations.lobby" + name + ".X");
 

SyntaxWolf

Redstoneengineer
Mitglied seit
26 Oktober 2017
Beiträge
46
Diamanten
0
*FACEPALM* Ich glaube dabei habe ich geschlafen oder ich bin einfach nur blind.
 
Zuletzt bearbeitet:

SirYwell

PlotSquared Entwickler
Mitglied seit
30 Juni 2017
Beiträge
420
Diamanten
37
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
Mitglied seit
26 Oktober 2017
Beiträge
46
Diamanten
0
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
Mitglied seit
1 Juli 2012
Beiträge
749
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:
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