Minecraft Plugin World löschen?
Hey, ich bin gerade dabei ein Spielmodus zu entwickeln in Spigot für die 1.20.1. Dafür wird aus einem Ordner (./server/plugins/meinplugin/Welten) eine Welt zufällig geladen. Diese soll aber nun nach der Runde zurück gesetzt werden. Ich habe dafür die Welt gelöscht und eine neue reingeladen. Dann ein restart per Zusatz Skript ausgeführt. Das Problem ist das die world nie entladen werden kann. Dies ging aber vor dem Automatischen Server Restart noch (da habe ich per Hand "world" gelöscht und den Server selbst gerestartet).
Nun meine Frage: Wie kann ich den Server neustarten sodass world entladen wird und eine neue Spielwelt erfolgreich (aus dem Ordner) geladen wird?
Ps: Ich habe auch schon probiert ob das ganze während der Startup Phase geht. Ohne Erfolg. Das ganze ist später mal für ein Bungeecord System gedacht.
Also es geht praktisch um ein Zurücksetzen des Spielmodus nach einer Runde (Ressourcen schonend)
1 Antwort
Hey,
ich bin mir nicht ganz sicher, aber man kann eine Welt im onLoad Event löschen. Ich habe es in einem meiner Plugins mal so gelöst gehabt.
@Override
public void onLoad() {
if (getConfig().getBoolean("reset")) {
File world = new File(Bukkit.getWorldContainer(), "world");
utils.deleteWorld(world);
getConfig().set("reset_now", false);
saveConfig();
}
}
Ich schreibe bevor ich den Server neu starte füge ich ein reset: true in die Config und dann wird die Welt im onLoad Event gelöscht. Der Server läd nämlich keine Welten mit anderen Namen es sei denn diese wird von einem Plugin angefordert. So kann man auch neustarten und nicht resetten wenn man kein reset: true in die Config einträgt. Allerdings muss in der plugin.yml das hier stehen:
load: STARTUP
So wird das Plugin vor den Welten geladen und man kann die Welt löschen / austauschen.
Ich hoffe das hilft dir irgendwie...
LG
Jonas