feat(localclient): cancel walk command handling if nostale returns false on walk
2 files changed, 14 insertions(+), 1 deletions(-) M Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkCancelReason.cs M Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkCommandHandler.cs
M Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkCancelReason.cs => Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkCancelReason.cs +8 -0
@@ 32,4 32,12 @@ public enum WalkCancelReason /// The client was not walking for too long. /// </summary> NotWalkingTooLong, /// <summary> /// The nostale walk function has returned false. /// </summary> /// <remarks> /// The player may be stunned or immobile. /// </remarks> NosTaleReturnedFalse } \ No newline at end of file
M Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkCommandHandler.cs => Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkCommandHandler.cs +6 -1
@@ 58,9 58,14 @@ public class WalkCommandHandler : ICommandHandler<WalkCommand> // ignored, just for cancellation } return walkResult; return Result.FromError(walkResult); } if (walkResult.Entity == false) { await _walkStatus.CancelWalkingAsync(WalkCancelReason.NosTaleReturnedFalse); return new WalkNotFinishedError(_walkStatus.CurrentX, _walkStatus.CurrentY, WalkCancelReason.NosTaleReturnedFalse); } try { await Task.Delay(_options.CheckDelay, ct);