From 04f3f6b448e94c0c4ae0f3395c6d0cb05445d8aa Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 16 Apr 2023 19:42:48 +0200 Subject: [PATCH] remove lobby system --- .../eu/mhsl/craftattack/worldmuseum/Main.java | 43 ++++++------- .../worldmuseum/commands/TeleportCommand.java | 1 - .../worldmuseum/default_config.json | 3 + .../craftattack/worldmuseum/util/Config.java | 60 +++++++++++++++++++ .../craftattack/worldmuseum/worlds/World.java | 5 ++ .../worldmuseum/worlds/WorldManager.java | 7 ++- 6 files changed, 91 insertions(+), 28 deletions(-) create mode 100755 src/main/java/eu/mhsl/craftattack/worldmuseum/default_config.json create mode 100644 src/main/java/eu/mhsl/craftattack/worldmuseum/util/Config.java diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java index dcb7f9f..0f3cd47 100755 --- a/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/Main.java @@ -5,6 +5,8 @@ import eu.mhsl.craftattack.worldmuseum.commands.GcCommand; import eu.mhsl.craftattack.worldmuseum.commands.TeleportCommand; import eu.mhsl.craftattack.worldmuseum.listener.ChunkUnloading; import eu.mhsl.craftattack.worldmuseum.listener.ClickListener; +import eu.mhsl.craftattack.worldmuseum.util.Config; +import eu.mhsl.craftattack.worldmuseum.worlds.World; import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager; import net.minestom.server.MinecraftServer; import net.minestom.server.coordinate.Pos; @@ -26,7 +28,6 @@ import java.util.List; public class Main { static int PORT = 25565; static String IP = "0.0.0.0"; - static List worlds = new ArrayList<>(); public static void main(String[] args) { // Initialization @@ -34,27 +35,17 @@ public class Main { MinecraftServer minecraftServer = MinecraftServer.init(); InstanceManager instanceManager = MinecraftServer.getInstanceManager(); - - - //temp MinecraftServer.getSchedulerManager().scheduleTask(new TablistUpdateTask(), TaskSchedule.tick(20), TaskSchedule.tick(20)); - - - - - - - - //load eu.mhsl.craftattack.worldmuseum.worlds / configExample file - WorldManager.getInstance().loadWorlds(); - - // Create starting-instance / world - InstanceContainer instanceContainer = instanceManager.createInstanceContainer(); - instanceContainer.setBlock(0,0,0,Block.STONE); + WorldManager worldManager = WorldManager.getInstance(); + worldManager.loadWorlds(); + //load main config + Config config = Config.getInstance(); + config.loadConfig(); + World startworld = config.getStart_world(); // Add an event callback to specify the spawning instance (and the spawn position) GlobalEventHandler globalEventHandler = MinecraftServer.getGlobalEventHandler(); @@ -70,20 +61,20 @@ public class Main { globalEventHandler.addListener(PlayerLoginEvent.class, event -> { final Player player = event.getPlayer(); - event.setSpawningInstance(instanceContainer); - player.setRespawnPoint(new Pos(0.5,2,0.5)); + event.setSpawningInstance(startworld); + player.setRespawnPoint(startworld.getSpawn()); player.setGameMode(GameMode.CREATIVE); - for (int i = 0; i< WorldManager.getInstance().getWorlds().size(); i++) { - if (WorldManager.getInstance().getWorlds().get(i).isEnabled()) { - player.getInventory().setItemStack(i, WorldManager.getInstance().getWorlds().get(i).getItem()); - } else { - System.out.println("Es gibt nicht aktivierte Welten!"); - } - } +// for (int i = 0; i< WorldManager.getInstance().getWorlds().size(); i++) { +// if (WorldManager.getInstance().getWorlds().get(i).isEnabled()) { +// player.getInventory().setItemStack(i, WorldManager.getInstance().getWorlds().get(i).getItem()); +// } else { +// System.out.println("Es gibt nicht aktivierte Welten!"); +// } +// } }); try { diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/commands/TeleportCommand.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/commands/TeleportCommand.java index af513b8..1a0a09b 100644 --- a/src/main/java/eu/mhsl/craftattack/worldmuseum/commands/TeleportCommand.java +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/commands/TeleportCommand.java @@ -13,7 +13,6 @@ public class TeleportCommand extends Command { })); var playerArgument = ArgumentType.Entity("Spieler").onlyPlayers(true); - var number = ArgumentType.Integer("Kordinaten"); addSyntax(((sender, context) -> { Player targetPlayer = (Player) context.get(playerArgument).find(sender).get(0); diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/default_config.json b/src/main/java/eu/mhsl/craftattack/worldmuseum/default_config.json new file mode 100755 index 0000000..8656eeb --- /dev/null +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/default_config.json @@ -0,0 +1,3 @@ +{ + "start_world": "world" +} \ No newline at end of file diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/util/Config.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/util/Config.java new file mode 100644 index 0000000..0c1330c --- /dev/null +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/util/Config.java @@ -0,0 +1,60 @@ +package eu.mhsl.craftattack.worldmuseum.util; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import eu.mhsl.craftattack.worldmuseum.worlds.World; +import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Iterator; + +public class Config { + private static Config instance; + private World start_world; + public static Config getInstance() { + if (instance == null) instance = new Config(); + return instance; + } + public void loadConfig() { + checkConfig(); + try { + JsonObject config = (JsonObject) JsonParser.parseReader(new FileReader("config.json")); + Iterator iterator = WorldManager.getInstance().getWorlds().iterator(); + while (iterator.hasNext()) { + World w = (World) iterator.next(); + if (!w.getName().equals(config.get("start_world").getAsString())) continue; + this.start_world = w; + } + if (start_world == null) { + System.out.println("no starting world set"); + System.exit(0); + } + + }catch (IOException e) { + e.printStackTrace(); + } + } + private String default_config = "{\n" + + " \"start_world\": \"world\"\n" + + "}"; + + private void checkConfig() { + try { + File checkfile = new File("./config.json"); + if (checkfile.createNewFile()) { + FileWriter fileWriter = new FileWriter("config.json"); + fileWriter.write(default_config); + fileWriter.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + public World getStart_world() { + return start_world; + } +} diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/worlds/World.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/worlds/World.java index c84f789..bdf7414 100755 --- a/src/main/java/eu/mhsl/craftattack/worldmuseum/worlds/World.java +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/worlds/World.java @@ -76,6 +76,11 @@ public class World extends InstanceContainer { public ItemStack getItem() { return item; } + + public String getName() { + return name; + } + public Pos getSpawn() { return spawn; } diff --git a/src/main/java/eu/mhsl/craftattack/worldmuseum/worlds/WorldManager.java b/src/main/java/eu/mhsl/craftattack/worldmuseum/worlds/WorldManager.java index d70390e..dc19a87 100755 --- a/src/main/java/eu/mhsl/craftattack/worldmuseum/worlds/WorldManager.java +++ b/src/main/java/eu/mhsl/craftattack/worldmuseum/worlds/WorldManager.java @@ -19,7 +19,12 @@ public class WorldManager { List worldFolders = getFolderNames(saveDirectory); for (File f: worldFolders ) { - worlds.add(new World(f)); + World w = new World(f); + if (w.isEnabled()) { + worlds.add(w); + } else { + System.out.println("Es gibt eine nicht aktivierte Welt: " + f.toString()); + } } }