Fix NRE from Class/Job/Level change handler (#1996)

This commit is contained in:
srkizer 2024-08-05 00:42:07 +09:00 committed by GitHub
parent 968dbc5bb7
commit 169cf32a0e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -185,11 +185,11 @@ internal sealed class ClientState : IInternalDisposableService, IClientState
switch (type) switch (type)
{ {
case UIModulePacketType.ClassJobChange: case UIModulePacketType.ClassJobChange when this.ClassJobChanged is { } callback:
{ {
var classJobId = uintParam; var classJobId = uintParam;
foreach (var action in this.ClassJobChanged.GetInvocationList().Cast<IClientState.ClassJobChangeDelegate>()) foreach (var action in callback.GetInvocationList().Cast<IClientState.ClassJobChangeDelegate>())
{ {
try try
{ {
@ -204,12 +204,12 @@ internal sealed class ClientState : IInternalDisposableService, IClientState
break; break;
} }
case UIModulePacketType.LevelChange: case UIModulePacketType.LevelChange when this.LevelChanged is { } callback:
{ {
var classJobId = *(uint*)packet; var classJobId = *(uint*)packet;
var level = *(ushort*)((nint)packet + 4); var level = *(ushort*)((nint)packet + 4);
foreach (var action in this.LevelChanged.GetInvocationList().Cast<IClientState.LevelChangeDelegate>()) foreach (var action in callback.GetInvocationList().Cast<IClientState.LevelChangeDelegate>())
{ {
try try
{ {