Skip to content

Commit 0e98b21

Browse files
IP connection flow remvoed from lobbies (#595)
1 parent 7f1ab4c commit 0e98b21

File tree

6 files changed

+21
-89
lines changed

6 files changed

+21
-89
lines changed

Assets/BossRoom/Scripts/Client/UI/Lobby/LobbyCreationUI.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ public class LobbyCreationUI : MonoBehaviour
1111
[SerializeField] Toggle m_IsPrivate;
1212
[SerializeField] CanvasGroup m_CanvasGroup;
1313
LobbyUIMediator m_LobbyUIMediator;
14-
OnlineMode m_OnlineMode;
1514

1615
void Awake()
1716
{
@@ -26,14 +25,12 @@ void InjectDependencies(LobbyUIMediator lobbyUIMediator)
2625

2726
void EnableUnityRelayUI()
2827
{
29-
m_OnlineMode = OnlineMode.UnityRelay;
30-
3128
m_LoadingIndicatorObject.SetActive(false);
3229
}
3330

3431
public void OnCreateClick()
3532
{
36-
m_LobbyUIMediator.CreateLobbyRequest(m_LobbyNameInputField.text, m_IsPrivate.isOn, 8, m_OnlineMode);
33+
m_LobbyUIMediator.CreateLobbyRequest(m_LobbyNameInputField.text, m_IsPrivate.isOn, 8);
3734
}
3835

3936
public void Show()

Assets/BossRoom/Scripts/Client/UI/Lobby/LobbyListItemUI.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ public class LobbyListItemUI : MonoBehaviour
1212
{
1313
[SerializeField] TextMeshProUGUI m_lobbyNameText;
1414
[SerializeField] TextMeshProUGUI m_lobbyCountText;
15-
[SerializeField] TextMeshProUGUI m_OnlineModeText;
1615

1716
LobbyUIMediator m_LobbyUIMediator;
1817
LocalLobby m_Data;
@@ -28,7 +27,6 @@ public void SetData(LocalLobby data)
2827
m_Data = data;
2928
m_lobbyNameText.SetText(data.LobbyName);
3029
m_lobbyCountText.SetText($"{data.PlayerCount}/{data.MaxPlayerCount}");
31-
m_OnlineModeText.SetText(data.OnlineMode.ToString());
3230
}
3331

3432
public void OnClick()

Assets/BossRoom/Scripts/Client/UI/Lobby/LobbyUIMediator.cs

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ void OnDestroy()
6262

6363
//Lobby and Relay calls done from UI
6464

65-
public void CreateLobbyRequest(string lobbyName, bool isPrivate, int maxPlayers, OnlineMode onlineMode)
65+
public void CreateLobbyRequest(string lobbyName, bool isPrivate, int maxPlayers)
6666
{
6767
// before sending request to lobby service, populate an empty lobby name, if necessary
6868
if (string.IsNullOrEmpty(lobbyName))
6969
{
7070
lobbyName = k_DefaultLobbyName;
7171
}
7272

73-
m_LobbyServiceFacade.CreateLobbyAsync(lobbyName, maxPlayers, isPrivate, onlineMode, OnCreatedLobby, OnFailedLobbyCreateOrJoin);
73+
m_LobbyServiceFacade.CreateLobbyAsync(lobbyName, maxPlayers, isPrivate, OnCreatedLobby, OnFailedLobbyCreateOrJoin);
7474
BlockUIWhileLoadingIsInProgress();
7575
}
7676

@@ -132,37 +132,17 @@ void OnCreatedLobby(Lobby lobby)
132132

133133
m_GameNetPortal.PlayerName = m_LocalUser.DisplayName;
134134

135-
switch (m_LocalLobby.OnlineMode)
136-
{
137-
case OnlineMode.IpHost:
138-
Debug.Log($"Created lobby with ID: {m_LocalLobby.LobbyID} and code {m_LocalLobby.LobbyCode}, at IP:Port {m_LocalLobby.Data.IP}:{m_LocalLobby.Data.Port}");
139-
m_GameNetPortal.StartHost(m_LocalLobby.Data.IP, m_LocalLobby.Data.Port);
140-
break;
141-
142-
case OnlineMode.UnityRelay:
143-
Debug.Log($"Created lobby with ID: {m_LocalLobby.LobbyID} and code {m_LocalLobby.LobbyCode}, Internal Relay Join Code{m_LocalLobby.RelayJoinCode}");
144-
m_GameNetPortal.StartUnityRelayHost();
145-
break;
146-
}
135+
Debug.Log($"Created lobby with ID: {m_LocalLobby.LobbyID} and code {m_LocalLobby.LobbyCode}, Internal Relay Join Code{m_LocalLobby.RelayJoinCode}");
136+
m_GameNetPortal.StartUnityRelayHost();
147137
}
148138

149139
void OnJoinedLobby(Lobby remoteLobby)
150140
{
151141
m_LobbyServiceFacade.SetRemoteLobby(remoteLobby);
152142
m_GameNetPortal.PlayerName = m_LocalUser.DisplayName;
153143

154-
switch (m_LocalLobby.OnlineMode)
155-
{
156-
case OnlineMode.IpHost:
157-
Debug.Log($"Joined lobby with code: {m_LocalLobby.LobbyCode}, at IP:Port {m_LocalLobby.Data.IP}:{m_LocalLobby.Data.Port}");
158-
m_ClientNetPortal.StartClient(m_LocalLobby.Data.IP, m_LocalLobby.Data.Port);
159-
break;
160-
161-
case OnlineMode.UnityRelay:
162-
Debug.Log($"Joined lobby with code: {m_LocalLobby.LobbyCode}, Internal Relay Join Code{m_LocalLobby.RelayJoinCode}");
163-
m_ClientNetPortal.StartClientUnityRelayModeAsync(m_LocalLobby.RelayJoinCode, OnRelayJoinFailed);
164-
break;
165-
}
144+
Debug.Log($"Joined lobby with code: {m_LocalLobby.LobbyCode}, Internal Relay Join Code{m_LocalLobby.RelayJoinCode}");
145+
m_ClientNetPortal.StartClientUnityRelayModeAsync(m_LocalLobby.RelayJoinCode, OnRelayJoinFailed);
166146

167147
void OnRelayJoinFailed(string message)
168148
{

Assets/BossRoom/Scripts/Client/UI/RoomNameBox.cs

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using Unity.Multiplayer.Samples.BossRoom;
32
using UnityEngine;
43
using TMPro;
54
using Unity.Multiplayer.Samples.BossRoom.Shared.Infrastructure;
@@ -24,29 +23,24 @@ private void InjectDependencies(LocalLobby localLobby)
2423
UpdateUI(localLobby);
2524
}
2625

26+
void Awake()
27+
{
28+
gameObject.SetActive(false);
29+
}
30+
2731
private void OnDestroy()
2832
{
2933
m_LocalLobby.changed -= UpdateUI;
3034
}
3135

3236
private void UpdateUI(LocalLobby localLobby)
3337
{
34-
switch (localLobby.OnlineMode)
38+
if (!string.IsNullOrEmpty(localLobby.LobbyCode))
3539
{
36-
case OnlineMode.IpHost:
37-
case OnlineMode.UnityRelay:
38-
m_LobbyCode = localLobby.LobbyCode;
39-
m_RoomNameText.text = $"Lobby Code: {m_LobbyCode}";
40-
m_CopyToClipboardButton.gameObject.SetActive(true);
41-
break;
42-
case OnlineMode.Unset:
43-
//this can happen if we launch the game while circumventing lobby logic
44-
m_LobbyCode = "";
45-
m_RoomNameText.text = $"-----------";
46-
m_CopyToClipboardButton.gameObject.SetActive(false);
47-
break;
48-
default:
49-
throw new ArgumentOutOfRangeException();
40+
m_LobbyCode = localLobby.LobbyCode;
41+
m_RoomNameText.text = $"Lobby Code: {m_LobbyCode}";
42+
gameObject.SetActive(true);
43+
m_CopyToClipboardButton.gameObject.SetActive(true);
5044
}
5145
}
5246

Assets/BossRoom/Scripts/Shared/Net/UnityServices/Lobbies/LobbyServiceFacade.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Threading.Tasks;
43
using Unity.Multiplayer.Samples.BossRoom.Shared.Infrastructure;
54
using Unity.Multiplayer.Samples.BossRoom.Shared.Net.UnityServices.Infrastructure;
65
using Unity.Services.Authentication;
@@ -145,7 +144,7 @@ void OnSuccess(Lobby lobby)
145144
/// <summary>
146145
/// Attempt to create a new lobby and then join it.
147146
/// </summary>
148-
public void CreateLobbyAsync(string lobbyName, int maxPlayers, bool isPrivate, OnlineMode onlineMode, Action<Lobby> onSuccess, Action onFailure)
147+
public void CreateLobbyAsync(string lobbyName, int maxPlayers, bool isPrivate, Action<Lobby> onSuccess, Action onFailure)
149148
{
150149
if (!m_RateLimitHost.CanCall)
151150
{
@@ -156,12 +155,7 @@ public void CreateLobbyAsync(string lobbyName, int maxPlayers, bool isPrivate, O
156155

157156
m_RateLimitHost.PutOnCooldown();
158157

159-
var initialLobbyData = new Dictionary<string, DataObject>()
160-
{
161-
{"OnlineMode", new DataObject(DataObject.VisibilityOptions.Public, ((int)onlineMode).ToString())}
162-
};
163-
164-
m_LobbyApiInterface.CreateLobbyAsync(AuthenticationService.Instance.PlayerId, lobbyName, maxPlayers, isPrivate, m_LocalUser.GetDataForUnityServices(), initialLobbyData, onSuccess, onFailure);
158+
m_LobbyApiInterface.CreateLobbyAsync(AuthenticationService.Instance.PlayerId, lobbyName, maxPlayers, isPrivate, m_LocalUser.GetDataForUnityServices(), null, onSuccess, onFailure);
165159
}
166160

167161
/// <summary>
@@ -351,7 +345,7 @@ public void UpdateLobbyDataAsync(Dictionary<string, DataObject> data, Action onS
351345
}
352346

353347
//we would want to lock lobbies from appearing in queries if we're in relay mode and the relay isn't fully set up yet
354-
var shouldLock = m_LocalLobby.OnlineMode == OnlineMode.UnityRelay && string.IsNullOrEmpty(m_LocalLobby.RelayJoinCode);
348+
var shouldLock = string.IsNullOrEmpty(m_LocalLobby.RelayJoinCode);
355349

356350
m_LobbyApiInterface.UpdateLobbyAsync(CurrentUnityLobby.Id, dataCurr, shouldLock, OnComplete, onFailure);
357351

Assets/BossRoom/Scripts/Shared/Net/UnityServices/Lobbies/LocalLobby.cs

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ public struct LobbyData
4545
public bool Private { get; set; }
4646
public int MaxPlayerCount { get; set; }
4747

48-
public OnlineMode OnlineMode { get; set; }
49-
public string IP { get; set; }
50-
public int Port { get; set; }
51-
5248
public LobbyData(LobbyData existing)
5349
{
5450
LobbyID = existing.LobbyID;
@@ -57,9 +53,6 @@ public LobbyData(LobbyData existing)
5753
LobbyName = existing.LobbyName;
5854
Private = existing.Private;
5955
MaxPlayerCount = existing.MaxPlayerCount;
60-
OnlineMode = existing.OnlineMode;
61-
IP = existing.IP;
62-
Port = existing.Port;
6356
}
6457

6558
public LobbyData(string lobbyCode)
@@ -70,9 +63,6 @@ public LobbyData(string lobbyCode)
7063
LobbyName = null;
7164
Private = false;
7265
MaxPlayerCount = -1;
73-
OnlineMode = OnlineMode.Unset;
74-
IP = string.Empty;
75-
Port = 0;
7666
}
7767
}
7868

@@ -184,18 +174,6 @@ public int MaxPlayerCount
184174
}
185175
}
186176

187-
public OnlineMode OnlineMode
188-
{
189-
get => m_Data.OnlineMode;
190-
set
191-
{
192-
if (m_Data.OnlineMode != value)
193-
{ m_Data.OnlineMode = value;
194-
OnChanged();
195-
}
196-
}
197-
}
198-
199177
public void CopyDataFrom(LobbyData data, Dictionary<string, LocalLobbyUser> currUsers)
200178
{
201179
m_Data = data;
@@ -239,10 +217,7 @@ public void CopyDataFrom(LobbyData data, Dictionary<string, LocalLobbyUser> curr
239217
public Dictionary<string, DataObject> GetDataForUnityServices() =>
240218
new Dictionary<string, DataObject>()
241219
{
242-
{"RelayJoinCode", new DataObject(DataObject.VisibilityOptions.Public, RelayJoinCode)},
243-
{"OnlineMode", new DataObject(DataObject.VisibilityOptions.Public, ((int)Data.OnlineMode).ToString())},
244-
{"IP", new DataObject(DataObject.VisibilityOptions.Public, Data.IP)},
245-
{"Port", new DataObject(DataObject.VisibilityOptions.Public, Data.Port.ToString())},
220+
{"RelayJoinCode", new DataObject(DataObject.VisibilityOptions.Public, RelayJoinCode)}
246221
};
247222

248223
public void ApplyRemoteData(Lobby lobby)
@@ -257,16 +232,10 @@ public void ApplyRemoteData(Lobby lobby)
257232
if (lobby.Data != null)
258233
{
259234
info.RelayJoinCode = lobby.Data.ContainsKey("RelayJoinCode") ? lobby.Data["RelayJoinCode"].Value : null; // By providing RelayCode through the lobby data with Member visibility, we ensure a client is connected to the lobby before they could attempt a relay connection, preventing timing issues between them.
260-
info.OnlineMode = lobby.Data.ContainsKey("OnlineMode") ? (OnlineMode) int.Parse(lobby.Data["OnlineMode"].Value) : OnlineMode.Unset;
261-
info.IP = lobby.Data.ContainsKey("IP") ? lobby.Data["IP"].Value : string.Empty;
262-
info.Port = lobby.Data.ContainsKey("Port") ? int.Parse(lobby.Data["Port"].Value) : 0;
263235
}
264236
else
265237
{
266238
info.RelayJoinCode = null;
267-
info.OnlineMode = OnlineMode.Unset;
268-
info.IP = string.Empty;
269-
info.Port = 0;
270239
}
271240

272241
var lobbyUsers = new Dictionary<string, LocalLobbyUser>();

0 commit comments

Comments
 (0)