Skip to content

Commit f2fe7af

Browse files
committed
fixing issue where disconnect reason would be overriden by leaveSession
1 parent 5585deb commit f2fe7af

File tree

6 files changed

+15
-13
lines changed

6 files changed

+15
-13
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using UnityEngine.SceneManagement;
33
using UnityEngine.UI;
44
using TMPro;
5+
using Unity.Multiplayer.Samples.BossRoom.Client;
56
using Unity.Multiplayer.Samples.BossRoom.Shared;
67
using Unity.Multiplayer.Samples.BossRoom.Shared.Infrastructure;
78
using Unity.Multiplayer.Samples.Utilities;
@@ -102,7 +103,7 @@ public void OnPlayAgainClicked()
102103

103104
public void OnMainMenuClicked()
104105
{
105-
m_ApplicationController.LeaveSession();
106+
m_ApplicationController.LeaveSession(withReason: ConnectStatus.UserRequestedDisconnect);
106107
}
107108
}
108109
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void Quit()
3535
}
3636
else
3737
{
38-
m_ApplicationController.LeaveSession();
38+
m_ApplicationController.LeaveSession(withReason: ConnectStatus.UserRequestedDisconnect);
3939
}
4040

4141
gameObject.SetActive(false);

Assets/BossRoom/Scripts/Shared/ApplicationController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,15 @@ private bool OnWantToQuit()
100100
return canQuit;
101101
}
102102

103-
public void LeaveSession()
103+
public void LeaveSession(ConnectStatus withReason = ConnectStatus.Undefined)
104104
{
105105
m_LobbyServiceFacade.ForceLeaveLobbyAttempt();
106106

107107
// first disconnect then return to menu
108108
var gameNetPortal = GameNetPortal.Instance;
109109
if (gameNetPortal != null)
110110
{
111-
gameNetPortal.RequestDisconnect();
111+
gameNetPortal.RequestDisconnect(withReason);
112112
}
113113

114114
SceneLoaderWrapper.Instance.LoadScene("MainMenu");

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/ClientGameNetPortal.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,15 @@ public void OnNetworkReady()
8787
}
8888
}
8989

90-
/// <summary>
91-
/// Invoked when the user has requested a disconnect via the UI, e.g. when hitting "Return to Main Menu" in the post-game scene.
92-
/// </summary>
93-
public void OnUserDisconnectRequest()
90+
public void OnDisconnectRequest(ConnectStatus withDisconnectReason = ConnectStatus.Undefined)
9491
{
9592
if (m_Portal.NetManager.IsClient)
9693
{
97-
DisconnectReason.SetDisconnectReason(ConnectStatus.UserRequestedDisconnect);
94+
if (withDisconnectReason != ConnectStatus.Undefined)
95+
{
96+
DisconnectReason.SetDisconnectReason(withDisconnectReason);
97+
}
98+
9899
if (m_TryToReconnectCoroutine != null)
99100
{
100101
StopCoroutine(m_TryToReconnectCoroutine);

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/GameNetPortal.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,14 +235,14 @@ void StartHost()
235235
/// This will disconnect (on the client) or shutdown the server (on the host).
236236
/// It's a local signal (not from the network), indicating that the user has requested a disconnect.
237237
/// </summary>
238-
public void RequestDisconnect()
238+
public void RequestDisconnect(ConnectStatus withDisconnectReason = ConnectStatus.Undefined)
239239
{
240240
if (NetManager.IsServer)
241241
{
242242
NetManager.SceneManager.OnSceneEvent -= OnSceneEvent;
243243
}
244-
m_ClientPortal.OnUserDisconnectRequest();
245-
m_ServerPortal.OnUserDisconnectRequest();
244+
m_ClientPortal.OnDisconnectRequest(withDisconnectReason);
245+
m_ServerPortal.OnDisconnectRequest();
246246
}
247247

248248
public string GetPlayerId()

Assets/BossRoom/Scripts/Shared/Net/ConnectionManagement/ServerGameNetPortal.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void OnClientSceneChanged(ulong clientId, int sceneIndex)
127127
/// Handles the flow when a user has requested a disconnect via UI (which can be invoked on the Host, and thus must be
128128
/// handled in server code).
129129
/// </summary>
130-
public void OnUserDisconnectRequest()
130+
public void OnDisconnectRequest()
131131
{
132132
Clear();
133133
if (m_Portal.NetManager.IsServer)

0 commit comments

Comments
 (0)