6
6
using Impostor . Api ;
7
7
using Impostor . Api . Config ;
8
8
using Impostor . Api . Events . Managers ;
9
+ using Impostor . Api . Extension . Events ;
9
10
using Impostor . Api . Games ;
10
11
using Impostor . Api . Games . Managers ;
11
12
using Impostor . Api . Innersloth ;
@@ -102,19 +103,19 @@ public async ValueTask RemoveAsync(GameCode gameCode)
102
103
return null ;
103
104
}
104
105
105
- var @event = new GameCreationEvent ( this , owner ) ;
106
+ var @event = new GameCreationEvent ( owner , this , options , filterOptions ) ;
106
107
await _eventManager . CallAsync ( @event ) ;
107
108
108
- if ( @event . IsCancelled )
109
+ if ( @event . Cancel )
109
110
{
110
111
return null ;
111
112
}
112
113
113
- var ( success , game ) = await TryCreateAsync ( options , filterOptions , owner , @event . GameCode ) ;
114
+ var ( success , game ) = await TryCreateAsync ( options , filterOptions , owner , @event ) ;
114
115
115
116
for ( var i = 0 ; i < 10 && ! success ; i ++ )
116
117
{
117
- ( success , game ) = await TryCreateAsync ( options , filterOptions , owner ) ;
118
+ ( success , game ) = await TryCreateAsync ( options , filterOptions , owner , @event ) ;
118
119
}
119
120
120
121
if ( owner != null )
@@ -131,9 +132,9 @@ public async ValueTask RemoveAsync(GameCode gameCode)
131
132
}
132
133
133
134
private async ValueTask < ( bool Success , Game ? Game ) > TryCreateAsync ( IGameOptions options ,
134
- GameFilterOptions filterOptions , IClient ? owner , GameCode ? desiredGameCode = null )
135
+ GameFilterOptions filterOptions , IClient ? owner , GameCreationEvent ? creationEvent = null )
135
136
{
136
- var gameCode = desiredGameCode ?? _gameCodeFactory . Create ( ) ;
137
+ var gameCode = await _gameCodeFactory . CreateAsync ( creationEvent ) ;
137
138
var game = ActivatorUtilities . CreateInstance < Game > ( _serviceProvider , gameCode , options , filterOptions ) ;
138
139
139
140
if ( ! _games . TryAdd ( gameCode , game ) )
0 commit comments