QoL improvements unity side

This commit is contained in:
Derek S 2021-04-10 00:19:05 -05:00
parent a4548a72c1
commit 68b840bfb8
3 changed files with 24 additions and 3 deletions

View file

@ -10,7 +10,7 @@ namespace LightReflectiveMirror
public TimeSpan GetUptime() => DateTime.Now - _startupTime;
public int GetPublicRoomCount() => _relay.rooms.Where(x => x.isPublic).Count();
static void WriteLogMessage(string message, ConsoleColor color = ConsoleColor.White, bool oneLine = false)
public static void WriteLogMessage(string message, ConsoleColor color = ConsoleColor.White, bool oneLine = false)
{
Console.ForegroundColor = color;
if (oneLine)

View file

@ -46,6 +46,11 @@ namespace LightReflectiveMirror
sendBuffer.WriteByte(ref writePos, (byte)OpCodes.Authenticated);
Program.transport.ServerSend(clientId, 0, new ArraySegment<byte>(sendBuffer, 0, writePos));
}
else
{
Program.WriteLogMessage($"Client {clientId} sent wrong auth key! Removing from LRM node.");
Program.transport.ServerDisconnect(clientId);
}
}
return;
}
@ -73,7 +78,7 @@ namespace LightReflectiveMirror
case OpCodes.UpdateRoomData:
var plyRoom = _cachedClientRooms[clientId];
if (plyRoom == null)
if (plyRoom == null || plyRoom.hostId != clientId)
return;
bool newName = data.ReadBool(ref pos);

View file

@ -192,6 +192,20 @@ namespace LightReflectiveMirror
{
// They have completed the "setup guide" Show them the main UI
// Remove unused transports...
foreach(var transport in lrm.GetComponentsInChildren<Transport>())
{
if(!(transport is LightReflectiveMirrorTransport))
{
if(transport != lrm.clientToServerTransport && (directModule == null ? true : directModule.directConnectTransport != transport))
{
if (transport.gameObject == lrm.gameObject)
DestroyImmediate(transport);
else
DestroyImmediate(transport.gameObject);
}
}
}
#if !NET_4_6
EditorGUILayout.BeginVertical("Box");
EditorGUILayout.HelpBox("For LRM to function properly, it needs the API Compatibility to be at 4.x", MessageType.Error);
@ -231,7 +245,9 @@ namespace LightReflectiveMirror
// NAT punch tab.
if (directModule == null)
{
EditorGUILayout.HelpBox("If you wish to use NAT punch, you will need to add a \"Direct Connect Module\" to this gameobject.", MessageType.Info);
EditorGUILayout.HelpBox("NAT Punchthrough disabled, missing Direct Connect.", MessageType.Info);
if (GUILayout.Button("Add Direct Connect"))
lrm.gameObject.AddComponent<LRMDirectConnectModule>();
}
else
{