Skip to content

Commit 98c3a3c

Browse files
committed
improved sending break packets
1 parent 884ac41 commit 98c3a3c

File tree

2 files changed

+16
-21
lines changed

2 files changed

+16
-21
lines changed

common/src/main/kotlin/com/lambda/interaction/construction/context/BreakContext.kt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ import com.lambda.interaction.construction.verify.TargetState
2525
import com.lambda.interaction.request.rotation.RotationRequest
2626
import com.lambda.util.world.raycast.RayCastUtils.distanceTo
2727
import net.minecraft.block.BlockState
28-
import net.minecraft.client.network.ClientPlayNetworkHandler
28+
import net.minecraft.client.network.ClientPlayerInteractionManager
29+
import net.minecraft.client.world.ClientWorld
2930
import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket
3031
import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket.Action
3132
import net.minecraft.util.hit.BlockHitResult
@@ -77,22 +78,22 @@ data class BreakContext(
7778
withState(checkedState, expectedPos, sideColor, result.side)
7879
}
7980

80-
fun startBreakPacket(sequence: Int, connection: ClientPlayNetworkHandler) =
81-
breakPacket(Action.START_DESTROY_BLOCK, sequence, connection)
81+
fun startBreakPacket(world: ClientWorld, interaction: ClientPlayerInteractionManager) =
82+
breakPacket(Action.START_DESTROY_BLOCK, world, interaction)
8283

83-
fun stopBreakPacket(sequence: Int, connection: ClientPlayNetworkHandler) =
84-
breakPacket(Action.STOP_DESTROY_BLOCK, sequence, connection)
84+
fun stopBreakPacket(world: ClientWorld, interaction: ClientPlayerInteractionManager) =
85+
breakPacket(Action.STOP_DESTROY_BLOCK, world, interaction)
8586

86-
fun abortBreakPacket(sequence: Int, connection: ClientPlayNetworkHandler) =
87-
breakPacket(Action.ABORT_DESTROY_BLOCK, sequence, connection)
87+
fun abortBreakPacket(world: ClientWorld, interaction: ClientPlayerInteractionManager) =
88+
breakPacket(Action.ABORT_DESTROY_BLOCK, world, interaction)
8889

89-
private fun breakPacket(action: Action, sequence: Int, connection: ClientPlayNetworkHandler) =
90-
connection.sendPacket(
90+
private fun breakPacket(action: Action, world: ClientWorld, interaction: ClientPlayerInteractionManager) =
91+
interaction.sendSequencedPacket(world) { sequence: Int ->
9192
PlayerActionC2SPacket(
9293
action,
9394
expectedPos,
9495
result.side,
9596
sequence
9697
)
97-
)
98+
}
9899
}

common/src/main/kotlin/com/lambda/interaction/request/breaking/BreakManager.kt

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,6 @@ object BreakManager : RequestHandler<BreakRequest>(), PositionBlocking {
425425
if (info.breaking) return false
426426

427427
val blockState = blockState(ctx.expectedPos)
428-
val pendingUpdateManager = world.pendingUpdateManager.incrementSequence()
429-
val sequence = pendingUpdateManager.sequence
430428
val notAir = !blockState.isAir
431429
if (notAir && info.breakingTicks == 0) {
432430
blockState.onBlockBreakStart(world, ctx.expectedPos, player)
@@ -449,17 +447,13 @@ object BreakManager : RequestHandler<BreakRequest>(), PositionBlocking {
449447
}
450448

451449
if (info.breakConfig.breakMode == BreakMode.Packet) {
452-
ctx.stopBreakPacket(sequence, connection)
453-
ctx.startBreakPacket(sequence + 1, connection)
454-
ctx.stopBreakPacket(sequence + 1, connection)
455-
repeat(2) {
456-
pendingUpdateManager.incrementSequence()
457-
}
450+
ctx.stopBreakPacket(world, interaction)
451+
ctx.startBreakPacket(world, interaction)
452+
ctx.stopBreakPacket(world, interaction)
458453
} else {
459-
ctx.startBreakPacket(sequence, connection)
454+
ctx.startBreakPacket(world, interaction)
460455
if (breakingDelta < 1 && (breakingDelta >= 0.7 || info.breakConfig.doubleBreak)) {
461-
ctx.stopBreakPacket(sequence + 1, connection)
462-
pendingUpdateManager.incrementSequence()
456+
ctx.stopBreakPacket(world, interaction)
463457
}
464458
}
465459

0 commit comments

Comments
 (0)