@@ -84,34 +84,31 @@ public void BeginTracking()
84
84
}
85
85
}
86
86
87
- public Task EndTracking ( )
87
+ public async void EndTracking ( )
88
88
{
89
- var task = Task . CompletedTask ;
90
89
if ( CurrentUnityLobby != null )
91
90
{
92
- var lobbyId = m_LocalLobby ? . LobbyID ;
93
-
94
- if ( ! string . IsNullOrEmpty ( lobbyId ) )
91
+ if ( m_LocalUser . IsHost )
95
92
{
96
- if ( m_LocalUser . IsHost )
97
- {
98
- task = DeleteLobbyAsync ( lobbyId ) ;
99
- }
100
- else
101
- {
102
- task = LeaveLobbyAsync ( lobbyId ) ;
103
- }
93
+ await DeleteLobbyAsync ( ) ;
104
94
}
95
+ else
96
+ {
97
+ await LeaveLobbyAsync ( ) ;
98
+ }
99
+ }
100
+
101
+ if ( m_LobbyEvents != null )
102
+ {
103
+ await m_LobbyEvents . UnsubscribeAsync ( ) ;
105
104
}
106
105
107
- m_LobbyEvents ? . UnsubscribeAsync ( ) ;
108
106
if ( m_IsTracking )
109
107
{
110
108
m_IsTracking = false ;
111
109
m_HeartbeatTime = 0 ;
112
110
m_JoinedLobbyContentHeartbeat . EndTracking ( ) ;
113
111
}
114
- return task ;
115
112
}
116
113
117
114
/// <summary>
@@ -225,7 +222,7 @@ void ResetLobby()
225
222
// no need to disconnect Netcode, it should already be handled by Netcode's callback to disconnect
226
223
}
227
224
228
- async void OnLobbyChanges ( ILobbyChanges changes )
225
+ void OnLobbyChanges ( ILobbyChanges changes )
229
226
{
230
227
if ( changes . LobbyDeleted )
231
228
{
@@ -250,21 +247,20 @@ async void OnLobbyChanges(ILobbyChanges changes)
250
247
}
251
248
252
249
m_UnityServiceErrorMessagePub . Publish ( new UnityServiceErrorMessage ( "Host left the lobby" , "Disconnecting." , UnityServiceErrorMessage . Service . Lobby ) ) ;
253
- await EndTracking ( ) ;
254
-
250
+ EndTracking ( ) ;
255
251
// no need to disconnect Netcode, it should already be handled by Netcode's callback to disconnect
256
252
}
257
253
}
258
254
}
259
255
260
256
void OnKickedFromLobby ( )
261
257
{
262
- throw new NotImplementedException ( ) ;
258
+ Debug . Log ( "Kicked from Lobby" ) ;
259
+ ResetLobby ( ) ;
263
260
}
264
261
265
262
void OnLobbyEventConnectionStateChanged ( LobbyEventConnectionState lobbyEventConnectionState )
266
263
{
267
-
268
264
Debug . Log ( $ "LobbyEventConnectionState changed to { lobbyEventConnectionState } ") ;
269
265
}
270
266
@@ -307,11 +303,11 @@ public async Task RetrieveAndPublishLobbyListAsync()
307
303
}
308
304
}
309
305
310
- public async Task < Lobby > ReconnectToLobbyAsync ( string lobbyId )
306
+ public async Task < Lobby > ReconnectToLobbyAsync ( )
311
307
{
312
308
try
313
309
{
314
- return await m_LobbyApiInterface . ReconnectToLobby ( lobbyId ) ;
310
+ return await m_LobbyApiInterface . ReconnectToLobby ( m_LocalLobby . LobbyID ) ;
315
311
}
316
312
catch ( LobbyServiceException e )
317
313
{
@@ -328,12 +324,12 @@ public async Task<Lobby> ReconnectToLobbyAsync(string lobbyId)
328
324
/// <summary>
329
325
/// Attempt to leave a lobby
330
326
/// </summary>
331
- public async Task LeaveLobbyAsync ( string lobbyId )
327
+ public async Task LeaveLobbyAsync ( )
332
328
{
333
329
string uasId = AuthenticationService . Instance . PlayerId ;
334
330
try
335
331
{
336
- await m_LobbyApiInterface . RemovePlayerFromLobby ( uasId , lobbyId ) ;
332
+ await m_LobbyApiInterface . RemovePlayerFromLobby ( uasId , m_LocalLobby . LobbyID ) ;
337
333
ResetLobby ( ) ;
338
334
}
339
335
catch ( LobbyServiceException e )
@@ -366,13 +362,13 @@ public async void RemovePlayerFromLobbyAsync(string uasId, string lobbyId)
366
362
}
367
363
}
368
364
369
- public async Task DeleteLobbyAsync ( string lobbyId )
365
+ public async Task DeleteLobbyAsync ( )
370
366
{
371
367
if ( m_LocalUser . IsHost )
372
368
{
373
369
try
374
370
{
375
- await m_LobbyApiInterface . DeleteLobby ( lobbyId ) ;
371
+ await m_LobbyApiInterface . DeleteLobby ( m_LocalLobby . LobbyID ) ;
376
372
ResetLobby ( ) ;
377
373
}
378
374
catch ( LobbyServiceException e )
0 commit comments