From 3862373cbc9ee32776026781c321f7956493bd4d Mon Sep 17 00:00:00 2001 From: sophie Date: Mon, 6 May 2024 13:44:55 +0300 Subject: [PATCH] first commit --- .gitignore | 3 + build.nu | 1 + pom.xml | 119 ++++++++++++++++++++++++++ src/main/java/ovh/sad/lobby/Main.java | 77 +++++++++++++++++ 4 files changed, 200 insertions(+) create mode 100644 .gitignore create mode 100755 build.nu create mode 100644 pom.xml create mode 100644 src/main/java/ovh/sad/lobby/Main.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef802f8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +target +.vscode +dependency-reduced-pom.xml \ No newline at end of file diff --git a/build.nu b/build.nu new file mode 100755 index 0000000..9c16fa0 --- /dev/null +++ b/build.nu @@ -0,0 +1 @@ + mvn package; cd target; java -jar lobby-1.0-SNAPSHOT-jar-with-dependencies.jar \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..4e6a1ff --- /dev/null +++ b/pom.xml @@ -0,0 +1,119 @@ + + + + 4.0.0 + + ovh.sad.lobby + lobby + 1.0-SNAPSHOT + + lobby + + http://www.example.com + + + UTF-8 + 22 + 22 + + + + + + org.slf4j + slf4j-simple + 2.1.0-alpha1 + + + + com.github.Minestom + Minestom + 6b8a4e4cc9 + + + org.jboss.shrinkwrap.resolver + shrinkwrap-resolver-depchain + + + + + + + + jitpack + https://jitpack.io + + + + + + + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + + maven-site-plugin + 3.7.1 + + + maven-project-info-reports-plugin + 3.0.0 + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.3 + + + package + + shade + + + true + jar-with-dependencies + + + ovh.sad.lobby.Main + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/ovh/sad/lobby/Main.java b/src/main/java/ovh/sad/lobby/Main.java new file mode 100644 index 0000000..7f32754 --- /dev/null +++ b/src/main/java/ovh/sad/lobby/Main.java @@ -0,0 +1,77 @@ +package ovh.sad.lobby; + +import com.google.gson.JsonIOException; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.gson.JsonSyntaxException; + +import net.minestom.server.MinecraftServer; +import net.minestom.server.coordinate.Pos; +import net.minestom.server.entity.GameMode; +import net.minestom.server.event.GlobalEventHandler; +import net.minestom.server.event.player.AsyncPlayerConfigurationEvent; +import net.minestom.server.event.player.PlayerSpawnEvent; +import net.minestom.server.extras.velocity.VelocityProxy; +import net.minestom.server.instance.AnvilLoader; +import net.minestom.server.instance.InstanceContainer; +import net.minestom.server.instance.InstanceManager; +import net.minestom.server.instance.LightingChunk; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; + +public class Main { + public static void main( String[] args ) + { + File file = new File("config.json"); + if(!file.exists()) { + System.err.println("config.json missing!"); + return; + } + if(file.isDirectory()) { + System.err.println("config.json has to be a file!"); + return; + } + + JsonObject json = JsonParser.parseString("{}").getAsJsonObject(); + try { + json = JsonParser.parseReader(new FileReader("config.json")).getAsJsonObject(); + } catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) { + e.printStackTrace(); + } + + MinecraftServer minecraftServer = MinecraftServer.init(); + + InstanceManager instanceManager = MinecraftServer.getInstanceManager(); + InstanceContainer instance = instanceManager.createInstanceContainer(); + + instance.setChunkLoader(new AnvilLoader("./world")); + instance.setChunkSupplier(LightingChunk::new); + + if(json.has("velocity")) { + MinecraftServer.LOGGER.info("Enabling velocity proxy support!"); + VelocityProxy.enable(json.get("velocity").getAsString()); + } else { + MinecraftServer.LOGGER.info("Velocity support NOT enabled!"); + } + + GlobalEventHandler globalEventHandler = MinecraftServer.getGlobalEventHandler(); + globalEventHandler.addListener(AsyncPlayerConfigurationEvent.class, event -> { + event.setSpawningInstance(instance); + event.getPlayer().setRespawnPoint(new Pos(-342, 57, -342)); + event.getEntity().setGameMode(GameMode.ADVENTURE); + }); + globalEventHandler.addListener(PlayerSpawnEvent.class, event -> { + event.getEntity().sendMessage("Welcome to The Alliance!"); + event.getEntity().sendMessage(""); + event.getEntity().sendMessage("Use /server to list the available servers,"); + event.getEntity().sendMessage("and then join them via /server "); + event.getEntity().sendMessage("I hope you enjoy the server! -sophie"); + }); + + // Start the server + minecraftServer.start(json.get("host").getAsString(), json.get("port").getAsInt()); + System.out.println("Server started on host " + json.get("host").getAsString() + " and port " + json.get("port").getAsInt()); + } +}