Skip to content

Commit 40022f9

Browse files
committed
comment out desyncFix for now as its broken and wont be fixed for a while
1 parent 48db547 commit 40022f9

File tree

3 files changed

+17
-19
lines changed

3 files changed

+17
-19
lines changed

common/src/main/kotlin/com/lambda/config/groups/BreakSettings.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class BreakSettings(
3434
override val breakThreshold by c.setting("Break Threshold", 0.70f, 0.1f..1.0f, 0.01f, "The break amount at which the block is considered broken") { vis() && page == Page.General }
3535
override val doubleBreak by c.setting("Double Break", true, "Allows breaking two blocks at once") { vis() && page == Page.General }
3636
override val fudgeFactor by c.setting("Fudge Factor", 1, 0..5, 1, "The amount of ticks to give double, aka secondary breaks extra for the server to recognise the break") { vis() && page == Page.General }
37-
override val desyncFix by c.setting("Desync Fix", false, "Predicts if the players breaking will be slowed next tick as block break packets are processed using the players next position") { vis() && page == Page.General }
37+
// override val desyncFix by c.setting("Desync Fix", false, "Predicts if the players breaking will be slowed next tick as block break packets are processed using the players next position") { vis() && page == Page.General }
3838
override val breakDelay by c.setting("Break Delay", 0, 0..6, 1, "The delay between breaking blocks", " ticks") { vis() && page == Page.General }
3939
override val breakStageMask by c.setting("Break Stage Mask", setOf(TickEvent.Input.Pre, TickEvent.Input.Post, TickEvent.Player.Post), "The sub-tick timing at which break actions can be performed") { vis() && page == Page.General }
4040
override val swing by c.setting("Swing Mode", SwingMode.Constant, "The times at which to swing the players hand") { vis() && page == Page.General }

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ abstract class BreakConfig : RequestConfig<BreakRequest>() {
3030
abstract val breakThreshold: Float
3131
abstract val doubleBreak: Boolean
3232
abstract val fudgeFactor: Int
33-
abstract val desyncFix: Boolean
33+
//ToDo: Needs a more advanced player simulation implementation to predict the next ticks onGround / submerged status
34+
// abstract val desyncFix: Boolean
3435
abstract val breakDelay: Int
3536
abstract val breakStageMask: Set<Event>
3637
abstract val swing: SwingMode

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

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,13 @@ import com.lambda.util.Communication.warn
6666
import com.lambda.util.item.ItemUtils.block
6767
import com.lambda.util.math.lerp
6868
import com.lambda.util.player.gamemode
69-
import com.lambda.util.player.prediction.buildPlayerPrediction
7069
import com.lambda.util.player.swingHand
7170
import net.minecraft.block.BlockState
7271
import net.minecraft.client.network.ClientPlayerEntity
7372
import net.minecraft.client.sound.PositionedSoundInstance
7473
import net.minecraft.client.sound.SoundInstance
75-
import net.minecraft.enchantment.EnchantmentHelper
7674
import net.minecraft.entity.ItemEntity
7775
import net.minecraft.item.ItemStack
78-
import net.minecraft.registry.tag.FluidTags
7976
import net.minecraft.sound.SoundCategory
8077
import net.minecraft.util.Hand
8178
import net.minecraft.util.math.BlockPos
@@ -793,21 +790,21 @@ object BreakManager : RequestHandler<BreakRequest>(
793790
config: BreakConfig,
794791
item: ItemStack? = null
795792
) = runSafe {
796-
var delta = calcItemBlockBreakingDelta(player, world, pos, item ?: player.inventory.mainHandStack)
793+
val delta = calcItemBlockBreakingDelta(player, world, pos, item ?: player.inventory.mainHandStack)
797794
//ToDo: This setting requires some fixes / improvements in the player movement prediction to work properly. Currently, it's broken
798-
if (config.desyncFix) {
799-
val nextTickPrediction = buildPlayerPrediction().next()
800-
if (player.isOnGround && !nextTickPrediction.onGround) {
801-
delta /= 5.0f
802-
}
803-
804-
val affectedThisTick = player.isSubmergedIn(FluidTags.WATER) && !EnchantmentHelper.hasAquaAffinity(player)
805-
val simulatedPlayer = nextTickPrediction.predictionEntity.player
806-
val affectedNextTick = simulatedPlayer.isSubmergedIn(FluidTags.WATER) && !EnchantmentHelper.hasAquaAffinity(simulatedPlayer)
807-
if (!affectedThisTick && affectedNextTick) {
808-
delta /= 5.0f
809-
}
810-
}
795+
// if (config.desyncFix) {
796+
// val nextTickPrediction = buildPlayerPrediction().next()
797+
// if (player.isOnGround && !nextTickPrediction.onGround) {
798+
// delta /= 5.0f
799+
// }
800+
//
801+
// val affectedThisTick = player.isSubmergedIn(FluidTags.WATER) && !EnchantmentHelper.hasAquaAffinity(player)
802+
// val simulatedPlayer = nextTickPrediction.predictionEntity.player
803+
// val affectedNextTick = simulatedPlayer.isSubmergedIn(FluidTags.WATER) && !EnchantmentHelper.hasAquaAffinity(simulatedPlayer)
804+
// if (!affectedThisTick && affectedNextTick) {
805+
// delta /= 5.0f
806+
// }
807+
// }
811808
delta
812809
} ?: 0f
813810

0 commit comments

Comments
 (0)