@@ -59,9 +59,7 @@ object BreakManager : RequestHandler<BreakRequest>() {
5959
6060 init {
6161 listen<TickEvent .Pre >(Int .MIN_VALUE ) {
62- info(" ${breakingInfos.count { it != null }} " )
63-
64- updateRequest { true }
62+ val updated = updateRequest(true ) { true }
6563
6664 for (it in breakingInfos.reversed()) {
6765 if (interaction.blockBreakingCooldown > 0 ) {
@@ -76,9 +74,9 @@ object BreakManager : RequestHandler<BreakRequest>() {
7674 }
7775 }
7876
79- val request = currentRequest ? : return @listen
77+ if ( ! updated) return @listen
8078
81- request .contexts.forEach { requestCtx ->
79+ currentRequest? .contexts? .forEach { requestCtx ->
8280 if (requestCtx == null ) return @forEach
8381 if (! canAccept(requestCtx)) return @forEach
8482
@@ -92,15 +90,18 @@ object BreakManager : RequestHandler<BreakRequest>() {
9290 }
9391
9492 listen<WorldEvent .BlockUpdate .Server >(alwaysListen = true ) { event ->
95- var broken = false
93+ var breakBlock = false
9694 val info = pendingInteractions
9795 .firstOrNull { it.context.expectedPos == event.pos }
98- ?.also { pendingInteractions.remove(it) }
96+ ?.also {
97+ pendingInteractions.remove(it)
98+ if (buildConfig.breakSettings.breakConfirmation == BreakConfirmationMode .AwaitThenBreak )
99+ breakBlock = true
100+ }
99101 ? : breakingInfos
100102 .firstOrNull { it?.context?.expectedPos == event.pos }
101103 ?.also {
102- breakBlock(it)
103- broken = true
104+ breakBlock = true
104105 }
105106 ? : return @listen
106107
@@ -110,8 +111,8 @@ object BreakManager : RequestHandler<BreakRequest>() {
110111 this @BreakManager.warn(" Update at ${event.pos.toShortString()} was rejected with ${event.newState} instead of ${info.context.targetState} " )
111112 return @listen
112113 }
113- if (buildConfig.breakSettings.breakConfirmation == BreakConfirmationMode . AwaitThenBreak ) {
114- if ( ! broken) breakBlock(info)
114+ if (breakBlock ) {
115+ breakBlock(info)
115116 }
116117 currentRequest?.onBreak()
117118 }
0 commit comments