From f9fb3d38af9d3fd5af407d022b1da4660740fd34 Mon Sep 17 00:00:00 2001 From: cxxpxr <60411087+cxxpxr@users.noreply.github.com> Date: Sat, 27 Mar 2021 11:06:28 -0400 Subject: [PATCH] fixed dead lobby joining --- .../.vs/LRM-Server/v16/.suo | Bin 0 -> 60416 bytes .../Program.cs | 35 ++++++++++++++++-- .../RelayHandler.cs | 29 +++++++++++++-- ServerProject-DONT-IMPORT-INTO-UNITY/Room.cs | 1 + 4 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 ServerProject-DONT-IMPORT-INTO-UNITY/.vs/LRM-Server/v16/.suo diff --git a/ServerProject-DONT-IMPORT-INTO-UNITY/.vs/LRM-Server/v16/.suo b/ServerProject-DONT-IMPORT-INTO-UNITY/.vs/LRM-Server/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..c550625dbcae2b8e74a518c9db1a883b85913429 GIT binary patch literal 60416 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 literal 0 HcmV?d00001 diff --git a/ServerProject-DONT-IMPORT-INTO-UNITY/Program.cs b/ServerProject-DONT-IMPORT-INTO-UNITY/Program.cs index 23f6117..b12a7bf 100644 --- a/ServerProject-DONT-IMPORT-INTO-UNITY/Program.cs +++ b/ServerProject-DONT-IMPORT-INTO-UNITY/Program.cs @@ -10,13 +10,15 @@ namespace LightReflectiveMirror { class Program { + public static Transport transport; public static Config conf; RelayHandler relay; - public static Transport transport; + MethodInfo awakeMethod; MethodInfo startMethod; MethodInfo updateMethod; MethodInfo lateUpdateMethod; + List _currentConnections = new List(); int _currentHeartbeatTimer = 0; @@ -25,6 +27,7 @@ namespace LightReflectiveMirror public async Task MainAsync() { + WriteTitle(); if (!File.Exists("config.json")) { @@ -41,12 +44,15 @@ namespace LightReflectiveMirror Console.WriteLine(Directory.GetCurrentDirectory()); var asm = Assembly.LoadFile(Directory.GetCurrentDirectory() + @"\" + conf.TransportDLL); WriteLogMessage($"Loaded Assembly: {asm.FullName}", ConsoleColor.Green); - transport = (Transport)asm.CreateInstance(conf.TransportClass); + + transport = asm.CreateInstance(conf.TransportClass) as Transport; if (transport != null) { - WriteLogMessage($"Loaded Transport: {asm.GetType(conf.TransportClass).Name}! Loading Methods...", ConsoleColor.Green); - CheckMethods(asm.GetType(conf.TransportClass)); + var transportClass = asm.GetType(conf.TransportClass); + + WriteLogMessage($"Loaded Transport: {transportClass.Name}! Loading Methods...", ConsoleColor.Green); + CheckMethods(transportClass); if (awakeMethod != null) { @@ -152,5 +158,26 @@ namespace LightReflectiveMirror if (lateUpdateMethod != null) WriteLogMessage("'LateUpdate' Loaded!", ConsoleColor.Yellow); } + + void WriteTitle() + { + string t = @" + w c(..)o ( + _ _____ __ __ \__(-) __) + | | | __ \ | \/ | /\ ( + | | | |__) || \ / | /(_)___) + | | | _ / | |\/| | w /| + | |____ | | \ \ | | | | | \ + |______||_| \_\|_| |_| m m copyright monkesoft 2021 + +"; + + string load = $"Chimp Event Listener Initializing... OK" + + "\nHarambe Memorial Initializing... OK" + + "\nBananas initializing... OK\n"; + + WriteLogMessage(t, ConsoleColor.Green); + WriteLogMessage(load, ConsoleColor.Cyan); + } } } diff --git a/ServerProject-DONT-IMPORT-INTO-UNITY/RelayHandler.cs b/ServerProject-DONT-IMPORT-INTO-UNITY/RelayHandler.cs index b44303d..57aca00 100644 --- a/ServerProject-DONT-IMPORT-INTO-UNITY/RelayHandler.cs +++ b/ServerProject-DONT-IMPORT-INTO-UNITY/RelayHandler.cs @@ -125,7 +125,7 @@ namespace LightReflectiveMirror buffer.WriteBool(ref pos, true); buffer.WriteString(ref pos, rooms[i].serverName); buffer.WriteString(ref pos, rooms[i].serverData); - buffer.WriteInt(ref pos, rooms[i].hostId); + buffer.WriteInt(ref pos, rooms[i].serverId); buffer.WriteInt(ref pos, rooms[i].maxPlayers); buffer.WriteInt(ref pos, rooms[i].clients.Count + 1); } @@ -193,7 +193,7 @@ namespace LightReflectiveMirror for(int i = 0; i < rooms.Count; i++) { - if(rooms[i].hostId == serverId) + if(rooms[i].serverId == serverId) { if(rooms[i].clients.Count < rooms[i].maxPlayers) { @@ -206,7 +206,7 @@ namespace LightReflectiveMirror sendJoinBuffer.WriteInt(ref sendJoinPos, clientId); Program.transport.ServerSend(clientId, 0, new ArraySegment(sendJoinBuffer, 0, sendJoinPos)); - Program.transport.ServerSend(serverId, 0, new ArraySegment(sendJoinBuffer, 0, sendJoinPos)); + Program.transport.ServerSend(rooms[i].hostId, 0, new ArraySegment(sendJoinBuffer, 0, sendJoinPos)); sendBuffers.Return(sendJoinBuffer); return; } @@ -235,6 +235,7 @@ namespace LightReflectiveMirror room.serverData = serverData; room.clients = new List(); + room.serverId = GetRandomServerID(); rooms.Add(room); int pos = 0; @@ -247,6 +248,28 @@ namespace LightReflectiveMirror sendBuffers.Return(sendBuffer); } + int GetRandomServerID() + { + Random rand = new Random(); + int temp = rand.Next(int.MinValue, int.MaxValue); + + while (DoesServerIdExist(temp)) + temp = rand.Next(int.MinValue, int.MaxValue); + + return temp; + } + + bool DoesServerIdExist(int id) + { + for (int i = 0; i < rooms.Count; i++) + { + if (rooms[i].serverId == id) + return true; + } + + return false; + } + void LeaveRoom(int clientId, int requiredHostId = -1) { for(int i = 0; i < rooms.Count; i++) diff --git a/ServerProject-DONT-IMPORT-INTO-UNITY/Room.cs b/ServerProject-DONT-IMPORT-INTO-UNITY/Room.cs index 06386e4..a284c10 100644 --- a/ServerProject-DONT-IMPORT-INTO-UNITY/Room.cs +++ b/ServerProject-DONT-IMPORT-INTO-UNITY/Room.cs @@ -6,6 +6,7 @@ namespace LightReflectiveMirror { class Room { + public int serverId; public int hostId; public string serverName; public string serverData;