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

Spigot World Management funktioniert nicht.

Dev_Lucky

Minecrafter
Registriert
4 Dezember 2015
Beiträge
21
Diamanten
310
Guten Tag liebe Community

Ich sitze nun seit mehreren Wochen an dem gleichen Fehler und bekomme ihn einfach nicht gelöst.

Ausgangslage: Ich programmiere gerade ein TTT Plugin, dies soll mit einem Map Vote System funktionieren und dafür muss ich Welten Laden welche nicht standardmässig von Bukkit geladen werden. Soweit so gut. Doch bis jetzt habe ich das Problem, dass meine Welt nicht richtig bzw. gar nicht geladen wird.

1. Versuch: Ich habe es über den Standardweg versucht. So habe ich auch eine Map bekommen doch das war immer eine generierte und entsprach nie der Map in dem Ordner
Java:
if(Bukkit.getWorld(world) == null) {
    Bukkit.createWorld(new WorldCreator(world));
}

2. Versuch: Ich habe diesesmal die Chance von Multiverse gesehen und habe dies versucht zu implementieren. Doch auch hier habe ich später beim Teleport Event immer eine NullPointer Exception bekommen mit dem Verweis auf die Welt
Java:
        if(Bukkit.getWorld(world) == null) {
            MultiverseCore multiverseCore = (MultiverseCore) Bukkit.getServer().getPluginManager().getPlugin("Multiverse-Core");
            if(multiverseCore != null) {
                if(multiverseCore.getMVWorldManager().getMVWorld(world) == null) {
                    multiverseCore.getMVWorldManager().loadWorld(world);
                }
            }
        }

3. Versuch: Ich habe wieder mit Multiverse herumgespielt und habe in den Docs die Methode #getCBWorld() gesehen und wollte die Nutzen. Doch diese lieferte mir wieder Null zurück.

Java:
        if(Bukkit.getWorld(world) == null) {
            MultiverseCore multiverseCore = (MultiverseCore) Bukkit.getServer().getPluginManager().getPlugin("Multiverse-Core");
            if(multiverseCore != null) {
                if(multiverseCore.getMVWorldManager().getMVWorld(world) == null) {
                    multiverseCore.getMVWorldManager().loadWorld(world);
                    if(multiverseCore.getMVWorldManager().getMVWorld(world) != null) {
                        Bukkit.getWorlds().add(multiverseCore.getMVWorldManager().getMVWorld(world).getCBWorld());
                    }
                }
            }
        }

Nun bin ich am Ende und weiss nicht mehr was machen. Den, wenn ich den offiziellen Weg bestreite, bekomme ich jedes Mal eine Random generierte Welt und wenn ich versuche das ganze über Multiverse zu laden, fliegt mir, dass ganze wieder um die Ohren. Ich hoffe, ihr habt einen Vorschlag oder seht einen Fehler in meiner Überlegung.

Ps: Der Weltenname stimmt und es gibt auch eine Welt mit dem Namen


Java:
 Could not pass event PlayerTeleportEvent to Multiverse-Core v2.5-b699
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 org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer.teleport(CraftPlayer.java:444) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity.teleport(CraftEntity.java:226) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
at de.tacemc.structs.Map.teleportPlayers(Map.java:115) ~[?:?]
at de.tacemc.gamestates.IngameState.start(IngameState.java:43) ~[?:?]
at de.tacemc.spigotcore.gamestates.GameManager.startGameState(GameManager.java:35) ~[?:?]
at de.tacemc.countdown.LobbyCountdown.lambda$run$0(LobbyCountdown.java:49) ~[?:?]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71) [spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:723) [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.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
Caused by: java.lang.NullPointerException
at com.onarandombox.MultiverseCore.listeners.MVPlayerListener.playerTeleport(MVPlayerListener.java:178) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_252]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_252]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_252]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_252]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
... 16 more
 

BloodSKreaper

Vorarbeiter
Registriert
12 Oktober 2014
Beiträge
249
Diamanten
316
Minecraft
BloodSKreaper
1. Versuch: Ich habe es über den Standardweg versucht. So habe ich auch eine Map bekommen doch das war immer eine generierte und entsprach nie der Map in dem Ordner
Java:
if(Bukkit.getWorld(world) == null) {
    Bukkit.createWorld(new WorldCreator(world));
}
Wird ein neuer Ordner erstellt oder hat die Welt einen Namen mit Sonderzeichen oder Ähnliches?

Freundliche Grüße
BloodSKreaper
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Befindet sich der Ordner auch an der korrekten Stelle (Im Server-Hauptverzeichnis und nicht im Pluginordner deines Plugins) und das Plugin hat Zugriff auf diesen?

Ich habe vor etwa einer Woche genau das gleiche mit Paper 1.16 getan: Eine Welt erstellt und diese dann per createWorld auch wieder aus einem Ordner geladen.

Ich könnte mir nur vorstellen das die Welt entweder nicht gespeichert wird (also nicht entladen bei einem Stop des Servers) oder daß du versuchst die Welt zu früh zu laden bei einem Start.
 
Oben