From 8f8a03fca9bd68e5b3087df4e29ff57f3ba5e137 Mon Sep 17 00:00:00 2001 From: Abdullah Arafat <62858251+kmaba@users.noreply.github.com> Date: Thu, 30 Jan 2025 17:03:52 +0800 Subject: [PATCH] Add configurable lobby IPs --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/kmaba/vLobbyConnect?shareId=XXXX-XXXX-XXXX-XXXX). --- README.md | 13 +++++++ .../kmaba/vLobbyConnect/VelocityPlugin.java | 38 +++++++++++++------ src/main/resources/config.yml | 5 +++ 3 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 src/main/resources/config.yml diff --git a/README.md b/README.md index 7de0e49..fbcf296 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,16 @@ vLobbyConnect is a Velocity plugin that automatically directs players to the cor ### **Lobby Mapping:** - **1.20+ Players →** `lobby1` or `lobby2` - **1.8 Players →** `lobby3` or `lobby4` + +### **Configuration:** +To configure the lobby IPs, edit the `config.yml` file located in `src/main/resources/`. The default configuration is as follows: + +```yaml +lobbies: + lobby1: "127.0.0.1:25565" + lobby2: "127.0.0.1:25566" + lobby3: "127.0.0.1:25567" + lobby4: "127.0.0.1:25568" +``` + +You can change the IP addresses and ports to match your server setup. diff --git a/src/main/java/io/github/kmaba/vLobbyConnect/VelocityPlugin.java b/src/main/java/io/github/kmaba/vLobbyConnect/VelocityPlugin.java index 2d913cd..696a521 100644 --- a/src/main/java/io/github/kmaba/vLobbyConnect/VelocityPlugin.java +++ b/src/main/java/io/github/kmaba/vLobbyConnect/VelocityPlugin.java @@ -9,7 +9,13 @@ import com.velocitypowered.api.proxy.server.RegisteredServer; import org.slf4j.Logger; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Map; import java.util.Optional; +import org.yaml.snakeyaml.Yaml; @Plugin( id = "vlobbyconnect", @@ -30,19 +36,27 @@ public final class VelocityPlugin { @Subscribe void onProxyInitialization(final ProxyInitializeEvent event) { // Initialize lobbies - Optional lobby1Opt = event.getServer().getServer("lobby1"); - Optional lobby2Opt = event.getServer().getServer("lobby2"); - Optional lobby3Opt = event.getServer().getServer("lobby3"); - Optional lobby4Opt = event.getServer().getServer("lobby4"); + Yaml yaml = new Yaml(); + try { + Map config = yaml.load(Files.newInputStream(Paths.get("src/main/resources/config.yml"))); + Map lobbies = (Map) config.get("lobbies"); - if (lobby1Opt.isPresent() && lobby2Opt.isPresent() && lobby3Opt.isPresent() && lobby4Opt.isPresent()) { - lobby1 = lobby1Opt.get(); - lobby2 = lobby2Opt.get(); - lobby3 = lobby3Opt.get(); - lobby4 = lobby4Opt.get(); - logger.info("vLobbyConnect initialized successfully."); - } else { - logger.error("Failed to initialize lobbies. Make sure all lobbies are registered."); + Optional lobby1Opt = event.getServer().getServer(lobbies.get("lobby1")); + Optional lobby2Opt = event.getServer().getServer(lobbies.get("lobby2")); + Optional lobby3Opt = event.getServer().getServer(lobbies.get("lobby3")); + Optional lobby4Opt = event.getServer().getServer(lobbies.get("lobby4")); + + if (lobby1Opt.isPresent() && lobby2Opt.isPresent() && lobby3Opt.isPresent() && lobby4Opt.isPresent()) { + lobby1 = lobby1Opt.get(); + lobby2 = lobby2Opt.get(); + lobby3 = lobby3Opt.get(); + lobby4 = lobby4Opt.get(); + logger.info("vLobbyConnect initialized successfully."); + } else { + logger.error("Failed to initialize lobbies. Make sure all lobbies are registered."); + } + } catch (IOException e) { + logger.error("Failed to load config.yml", e); } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..6b30c45 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,5 @@ +lobbies: + lobby1: "127.0.0.1:25565" + lobby2: "127.0.0.1:25566" + lobby3: "127.0.0.1:25567" + lobby4: "127.0.0.1:25568"