@@ -60,16 +60,18 @@ object BreakManager : RequestHandler<BreakRequest>() {
6060 init {
6161 listen<TickEvent .Pre >(Int .MIN_VALUE ) {
6262 if (updateRequest(true ) { true }) {
63- currentRequest?.contexts?.forEach { requestCtx ->
64- if (requestCtx == null ) return @forEach
65- if (! canAccept(requestCtx)) return @forEach
66-
67- primaryBreakingInfo?.let { primaryInfo ->
68- if (! buildConfig.breakSettings.doubleBreak) return @let
69- if (primaryInfo.startedWithSecondary) return @let
70- secondaryBreakingInfo = BreakInfo .SecondaryBreakInfo (requestCtx)
71- } ? : run {
72- primaryBreakingInfo = BreakInfo .PrimaryBreakInfo (requestCtx)
63+ currentRequest?.let { request ->
64+ request.contexts.forEach { requestCtx ->
65+ if (requestCtx == null ) return @forEach
66+ if (! canAccept(requestCtx)) return @forEach
67+
68+ primaryBreakingInfo?.let { primaryInfo ->
69+ if (! buildConfig.breakSettings.doubleBreak) return @let
70+ if (primaryInfo.startedWithSecondary) return @let
71+ secondaryBreakingInfo = BreakInfo .SecondaryBreakInfo (requestCtx, request.onBreak)
72+ } ? : run {
73+ primaryBreakingInfo = BreakInfo .PrimaryBreakInfo (requestCtx, request.onBreak)
74+ }
7375 }
7476 }
7577 }
@@ -113,7 +115,7 @@ object BreakManager : RequestHandler<BreakRequest>() {
113115 if (breakBlock) {
114116 destroyBlock(info)
115117 }
116- currentRequest? .onBreak()
118+ info .onBreak()
117119 }
118120 }
119121
@@ -263,7 +265,7 @@ object BreakManager : RequestHandler<BreakRequest>() {
263265 when (info.context.buildConfig.breakSettings.breakConfirmation) {
264266 BreakConfirmationMode .None -> {
265267 destroyBlock(info)
266- currentRequest? .onBreak()
268+ info .onBreak()
267269 info.nullify()
268270 }
269271 BreakConfirmationMode .BreakThenAwait -> {
@@ -309,7 +311,8 @@ object BreakManager : RequestHandler<BreakRequest>() {
309311 }
310312
311313 abstract class BreakInfo (
312- val context : BreakContext
314+ val context : BreakContext ,
315+ val onBreak : () -> Unit
313316 ) {
314317 var breaking = false
315318 var breakingTicks = 0
@@ -334,16 +337,18 @@ object BreakManager : RequestHandler<BreakRequest>() {
334337 open fun nullify () {}
335338
336339 class PrimaryBreakInfo (
337- ctx : BreakContext
338- ) : BreakInfo(ctx) {
340+ ctx : BreakContext ,
341+ onBreak : () -> Unit
342+ ) : BreakInfo(ctx, onBreak) {
339343 override fun nullify () {
340344 primaryBreakingInfo = null
341345 }
342346 }
343347
344348 class SecondaryBreakInfo (
345- ctx : BreakContext
346- ) : BreakInfo(ctx) {
349+ ctx : BreakContext ,
350+ onBreak : () -> Unit
351+ ) : BreakInfo(ctx, onBreak) {
347352 override fun getBreakThreshold () =
348353 1.0f
349354
0 commit comments