Bukkit Plugin Programmieren, Welt wird nicht geladen sondern neu generiert?
Hallo,
ich schreibe ein BedWars Plugin und bin eigentlich fertig, außer das eine Map nachdem sie resettet wurde, nicht geladen wird, sonder neu generiert o.O?
Also was ich mach wenn die BedWars Runde vorbei ist:
unload World (welt 2)
delete World (welt 2)
copy World (welt1 kopieren zu welt 2)
delete uid.dat (welt 2)
Bis hier funktioniert alles, doch dann wird nicht die neue kopierte geladen sondern eine neue erstellt:
load World (welt 2)
Hier der code von load World: (bei onEnable funktionierts, also bei Neustart)
public static boolean unloadWorld(String world)
{
if(isLoaded(world))
{
World w = Bukkit.getWorld(world);
for (Player p : w.getPlayers())
{
p.teleport(Bukkit.getWorlds().get(0).getSpawnLocation());
}
for(Chunk c : w.getLoadedChunks())
{
c.unload();
}
boolean unload = Bukkit.unloadWorld(w, true);
return unload;
}
return false;
}
Code hab ich aus dem Internet. Wei gesagt funktionoert nur bei onEnable also Neustart. bei /reload bugt es auch.
Danke für jede hilfreiche Antwort!
3 Antworten
Ach und:
Wenn eine neue Welt generiert wird, wird immer die gleiche generiert, und soger mit veränderungen die ich gemacht hab, trotz das ich die immer lösche!!!
for(Chunk c : Bukkit.getWorld("world").getLoadedChunks()) {
c.unload(false, false);
}Bukkit.getServer().unloadWorld("world", false);
Sry habe oben den flaschen Code geschrieben, hier der richtige:
public static World loadWorld(String world){
if(!isLoaded(world)){return Bukkit.getServer().createWorld(new WorldCreator(world));
}else{return Bukkit.getWorld(world);}
}
public static boolean isLoaded(String world){
for (World w : Bukkit.getServer().getWorlds()){
if (w.getName().equals(world)) {return true;}}return false;
}
Oh, sry hab flaschen Code geschickt... Warte ich schreibe nochmal den richtigen! Ach und Les nochmal die Frage :D.