1
1
using System ;
2
2
using Unity . Multiplayer . Samples . BossRoom . Server ;
3
+ using Unity . Multiplayer . Samples . BossRoom . Shared . Infrastructure ;
3
4
using Unity . Multiplayer . Samples . Utilities ;
4
5
using Unity . Netcode ;
5
6
using UnityEngine ;
@@ -46,6 +47,14 @@ ServerSwitchedDoor ServerSwitchedDoor
46
47
47
48
bool m_DestroyPortalsOnNextToggle = true ;
48
49
50
+ IPublisher < CheatUsedMessage > m_CheatUsedMessagePublisher ;
51
+
52
+ [ Inject ]
53
+ void InjectDependencies ( IPublisher < CheatUsedMessage > publisher )
54
+ {
55
+ m_CheatUsedMessagePublisher = publisher ;
56
+ }
57
+
49
58
void Update ( )
50
59
{
51
60
if ( Input . touchCount == k_NbTouchesToOpenWindow && AnyTouchDown ( ) ||
@@ -127,15 +136,15 @@ void SpawnEnemyServerRpc(ServerRpcParams serverRpcParams = default)
127
136
{
128
137
var newEnemy = Instantiate ( m_EnemyPrefab ) ;
129
138
newEnemy . SpawnWithOwnership ( NetworkManager . Singleton . LocalClientId , true ) ;
130
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "SpawnEnemy" ) ;
139
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "SpawnEnemy" ) ;
131
140
}
132
141
133
142
[ ServerRpc ( RequireOwnership = false ) ]
134
143
void SpawnBossServerRpc ( ServerRpcParams serverRpcParams = default )
135
144
{
136
145
var newEnemy = Instantiate ( m_BossPrefab ) ;
137
146
newEnemy . SpawnWithOwnership ( NetworkManager . Singleton . LocalClientId , true ) ;
138
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "SpawnBoss" ) ;
147
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "SpawnBoss" ) ;
139
148
}
140
149
141
150
[ ServerRpc ( RequireOwnership = false ) ]
@@ -152,7 +161,7 @@ void KillTargetServerRpc(ServerRpcParams serverRpcParams = default)
152
161
if ( damageable != null && damageable . IsDamageable ( ) )
153
162
{
154
163
damageable . ReceiveHP ( playerServerCharacter , int . MinValue ) ;
155
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "KillTarget" ) ;
164
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "KillTarget" ) ;
156
165
}
157
166
else
158
167
{
@@ -176,7 +185,7 @@ void KillAllEnemiesServerRpc(ServerRpcParams serverRpcParams = default)
176
185
}
177
186
}
178
187
}
179
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "KillAllEnemies" ) ;
188
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "KillAllEnemies" ) ;
180
189
}
181
190
182
191
[ ServerRpc ( RequireOwnership = false ) ]
@@ -187,7 +196,7 @@ void ToggleGodModeServerRpc(ServerRpcParams serverRpcParams = default)
187
196
if ( playerServerCharacter != null )
188
197
{
189
198
playerServerCharacter . NetState . NetworkLifeState . IsGodMode . Value = ! playerServerCharacter . NetState . NetworkLifeState . IsGodMode . Value ;
190
- LogCheatUsedClientRPC ( clientId , "ToggleGodMode" ) ;
199
+ PublishCheatUsedMessage ( clientId , "ToggleGodMode" ) ;
191
200
}
192
201
}
193
202
@@ -210,7 +219,7 @@ void HealPlayerServerRpc(ServerRpcParams serverRpcParams = default)
210
219
damageable . ReceiveHP ( null , baseHp ) ;
211
220
}
212
221
}
213
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "HealPlayer" ) ;
222
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "HealPlayer" ) ;
214
223
}
215
224
}
216
225
@@ -226,7 +235,7 @@ void ToggleSuperSpeedServerRpc(ServerRpcParams serverRpcParams = default)
226
235
break ;
227
236
}
228
237
}
229
- LogCheatUsedClientRPC ( clientId , "ToggleSuperSpeed" ) ;
238
+ PublishCheatUsedMessage ( clientId , "ToggleSuperSpeed" ) ;
230
239
}
231
240
232
241
[ ServerRpc ( RequireOwnership = false ) ]
@@ -241,7 +250,7 @@ void ToggleTeleportModeServerRpc(ServerRpcParams serverRpcParams = default)
241
250
break ;
242
251
}
243
252
}
244
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "ToggleTeleportMode" ) ;
253
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "ToggleTeleportMode" ) ;
245
254
}
246
255
247
256
[ ServerRpc ( RequireOwnership = false ) ]
@@ -250,7 +259,7 @@ void ToggleDoorServerRpc(ServerRpcParams serverRpcParams = default)
250
259
if ( ServerSwitchedDoor != null )
251
260
{
252
261
ServerSwitchedDoor . ForceOpen = ! ServerSwitchedDoor . ForceOpen ;
253
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "ToggleDoor" ) ;
262
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "ToggleDoor" ) ;
254
263
}
255
264
else
256
265
{
@@ -277,20 +286,23 @@ void TogglePortalsServerRpc(ServerRpcParams serverRpcParams = default)
277
286
}
278
287
279
288
m_DestroyPortalsOnNextToggle = ! m_DestroyPortalsOnNextToggle ;
280
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "TogglePortals" ) ;
289
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "TogglePortals" ) ;
281
290
}
282
291
283
292
[ ServerRpc ( RequireOwnership = false ) ]
284
293
void GoToPostGameServerRpc ( ServerRpcParams serverRpcParams = default )
285
294
{
286
295
SceneLoaderWrapper . Instance . LoadScene ( "PostGame" , useNetworkSceneManager : true ) ;
287
- LogCheatUsedClientRPC ( serverRpcParams . Receive . SenderClientId , "GoToPostGame" ) ;
296
+ PublishCheatUsedMessage ( serverRpcParams . Receive . SenderClientId , "GoToPostGame" ) ;
288
297
}
289
298
290
- [ ClientRpc ]
291
- void LogCheatUsedClientRPC ( ulong clientId , string cheatUsed )
299
+ void PublishCheatUsedMessage ( ulong clientId , string cheatUsed )
292
300
{
293
- UnityEngine . Debug . Log ( $ "Cheat { cheatUsed } used by client { clientId } ") ;
301
+ var playerData = SessionManager < SessionPlayerData > . Instance . GetPlayerData ( clientId ) ;
302
+ if ( playerData . HasValue )
303
+ {
304
+ m_CheatUsedMessagePublisher . Publish ( new CheatUsedMessage ( cheatUsed , playerData . Value . PlayerName ) ) ;
305
+ }
294
306
}
295
307
296
308
static void LogCheatNotImplemented ( string cheat )
0 commit comments