From 181936e3d46e19c6f8785112bcf481fc33d3b7f9 Mon Sep 17 00:00:00 2001 From: devbeni Date: Sun, 14 Dec 2025 23:22:34 +0100 Subject: [PATCH] Refactor seed handling in game start logic and improve packet sending reliability --- Main.cs | 1 - Packets/Packet.cs | 2 +- ServerLobby/ServerLobbyScript.cs | 24 +++++++++++++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Main.cs b/Main.cs index c566c74..86dd41c 100644 --- a/Main.cs +++ b/Main.cs @@ -435,7 +435,6 @@ namespace KCM // Your code here // Get the name of the last method that called OnPlayerPlacement - string callTree = ""; List strings = new List(); for (int i = 1; i < 10; i++) diff --git a/Packets/Packet.cs b/Packets/Packet.cs index 0fecfd6..4e2e0d8 100644 --- a/Packets/Packet.cs +++ b/Packets/Packet.cs @@ -110,7 +110,7 @@ namespace KCM.Packets { if (KCServer.IsRunning && toClient != 0) { - KCServer.server.Send(PacketHandler.SerialisePacket(this), toClient, Riptide.MessageSendMode.Reliable); + KCServer.server.Send(PacketHandler.SerialisePacket(this), toClient, true); } } catch (Exception ex) diff --git a/ServerLobby/ServerLobbyScript.cs b/ServerLobby/ServerLobbyScript.cs index fa0bb84..dfd0565 100644 --- a/ServerLobby/ServerLobbyScript.cs +++ b/ServerLobby/ServerLobbyScript.cs @@ -60,8 +60,6 @@ namespace KCM Falle } - bool awake = false; - public void Start() { Main.helper.Log("ServerLobby start called"); @@ -188,14 +186,30 @@ namespace KCM StartGameButton.GetComponentInChildren().text = "Start"; StartGameButton.onClick.AddListener(() => { - if (World.inst.GetTextSeed() != WorldSeed.text) + int definitiveSeed; + if (string.IsNullOrWhiteSpace(WorldSeed.text)) { - World.inst.seed = World.inst.SeedFromText(WorldSeed.text); + World.inst.Generate(); + definitiveSeed = World.inst.seed; + } + else + { + if (int.TryParse(WorldSeed.text, out int parsedSeed)) + { + definitiveSeed = parsedSeed; + World.inst.Generate(definitiveSeed); + } + else + { + Main.helper.LogWarning($"Invalid seed '{WorldSeed.text}' entered. Generating a random seed."); + World.inst.Generate(); + definitiveSeed = World.inst.seed; + } } new WorldSeed() { - Seed = World.inst.seed + Seed = definitiveSeed }.SendToAll(KCClient.client.Id); new StartGame().SendToAll();