diff --git a/build.gradle.kts b/build.gradle.kts index 707ad67..67bc8ca 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,5 +30,6 @@ tasks.register("copyJarToTestServer") { dependsOn(tasks.jar) mustRunAfter(tasks.jar) - commandLine("cp", "build/libs/WorldMuseum-1.0-SNAPSHOT.jar", "/home/elias/Dokumente/mcTestServer/plugins/worldmuseum.jar") + commandLine("cp", "build/libs/WorldMuseum-1.0-SNAPSHOT.jar", "/Users/olischma/Desktop/paper/plugins") + } diff --git a/src/main/java/eu/mhsl/minecraft/WorldMuseum/Main.java b/src/main/java/eu/mhsl/minecraft/WorldMuseum/Main.java index 41113d3..a5b3374 100644 --- a/src/main/java/eu/mhsl/minecraft/WorldMuseum/Main.java +++ b/src/main/java/eu/mhsl/minecraft/WorldMuseum/Main.java @@ -45,12 +45,18 @@ public class Main extends JavaPlugin { private void loadWorlds() { File worldFolder = new File(getDataFolder().getAbsolutePath() + "/worlds"); - if(!worldFolder.setReadOnly()) throw new RuntimeException("Could not set Worlds to readonly. Be careful!"); + //if(!worldFolder.setReadOnly()) throw new RuntimeException("Could not set Worlds to readonly. Be careful!"); //noinspection ResultOfMethodCallIgnored worldFolder.mkdirs(); - Arrays.stream(Objects.requireNonNull(worldFolder.listFiles())).forEach(file -> this.worlds.add(new ViewableWorld(file))); + Arrays.stream(Objects.requireNonNull(worldFolder.listFiles())).forEach(file -> { + Bukkit.getLogger().info("[Worldmuseum] Loading world " + file.getName()); + if (file.isDirectory()) this.worlds.add(new ViewableWorld(file)); + else Bukkit.getLogger().info( "[Worldmuseum] " + file.getName() + " is not a valid world!"); + }); this.worlds.forEach(ViewableWorld::loadWorld); + for(ViewableWorld viewableWorld : this.worlds) viewableWorld.getWorld().setAutoSave(false); + } public static Main instance() { diff --git a/src/main/java/eu/mhsl/minecraft/WorldMuseum/viewableWorld/ViewableWorld.java b/src/main/java/eu/mhsl/minecraft/WorldMuseum/viewableWorld/ViewableWorld.java index 3815bc3..445e48c 100644 --- a/src/main/java/eu/mhsl/minecraft/WorldMuseum/viewableWorld/ViewableWorld.java +++ b/src/main/java/eu/mhsl/minecraft/WorldMuseum/viewableWorld/ViewableWorld.java @@ -3,7 +3,7 @@ package eu.mhsl.minecraft.WorldMuseum.viewableWorld; import net.kyori.adventure.text.Component; import net.kyori.adventure.util.TriState; import org.bukkit.*; -import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.generator.ChunkGenerator; @@ -11,6 +11,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import java.io.File; +import java.io.IOException; import java.util.Objects; public class ViewableWorld { @@ -23,13 +24,24 @@ public class ViewableWorld { public ViewableWorld(File worldLocation) { this.worldLocation = worldLocation; - this.name = "unnamed_" + worldLocation.getName(); + this.name = "unnamed_" + this.worldLocation.toPath().getFileName().toString(); File configFile = new File(this.worldLocation.getAbsolutePath() + "/config.yml"); if (configFile.exists()) { - ConfigurationSection config = YamlConfiguration.loadConfiguration(configFile); + FileConfiguration config = YamlConfiguration.loadConfiguration(configFile); this.enabled = config.getBoolean("enabled"); this.name = config.getString("name"); this.icon = Material.valueOf(config.getString("icon")); + } else { + System.out.println("[WorldMuseum] Could not find config.yml"); + try { + configFile.createNewFile(); + FileConfiguration data = YamlConfiguration.loadConfiguration(configFile); + data.set("enabled", false); + data.set("name", this.name); + data.set("icon", this.icon.name()); + data.save(configFile); + + } catch (IOException e) {e.printStackTrace();} } } @@ -63,4 +75,8 @@ public class ViewableWorld { public boolean isEnabled() { return enabled; } + + public World getWorld() { + return world; + } }