Skip to content

Commit 47aede5

Browse files
committed
more nits and fixes
1 parent 914c226 commit 47aede5

File tree

8 files changed

+40
-40
lines changed

8 files changed

+40
-40
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ open class BreakSettings(
5454
override val serverSwapTicks by c.setting("Server Swap", 0, 0..5, 1, "The number of ticks to give the server time to recognize the player attributes on the swapped item", " tick(s)").group(baseGroup, Group.General).index()
5555

5656
// 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 }
57-
override val breakDelay by c.setting("Break Delay", 0, 0..6, 1, "The delay between breaking blocks", " tick(s)").group(baseGroup, Group.General).index()
57+
override val breakDelay by c.setting("Break Delay", 0, 0..5, 1, "The delay between breaking blocks", " tick(s)").group(baseGroup, Group.General).index()
5858

5959
// Timing
6060
override val tickStageMask by c.setting("Break Stage Mask", setOf(TickEvent.Input.Post), ALL_STAGES.toSet(), description = "The sub-tick timing at which break actions can be performed").group(baseGroup, Group.General).index()

src/main/kotlin/com/lambda/config/groups/InteractSettings.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import com.lambda.event.events.TickEvent
2323
import com.lambda.event.events.TickEvent.Companion.ALL_STAGES
2424
import com.lambda.interaction.managers.interacting.InteractConfig
2525
import com.lambda.interaction.managers.interacting.InteractConfig.AirPlaceMode
26-
import com.lambda.interaction.managers.interacting.InteractConfig.PlaceConfirmationMode
26+
import com.lambda.interaction.managers.interacting.InteractConfig.InteractConfirmationMode
2727
import com.lambda.util.NamedEnum
2828

2929
class InteractSettings(
@@ -35,7 +35,7 @@ class InteractSettings(
3535
override val axisRotateSetting by c.setting("Axis Rotate", true, "Overrides the Rotate For Place setting and rotates the player on each axis to air place rotational blocks") { airPlace.isEnabled }.group(baseGroup).index()
3636
override val sorter by c.setting("Interaction Sorter", ActionConfig.SortMode.Tool, "The order in which placements are performed").group(baseGroup).index()
3737
override val tickStageMask by c.setting("Interaction Stage Mask", setOf(TickEvent.Input.Post), ALL_STAGES.toSet(), description = "The sub-tick timing at which place actions are performed").group(baseGroup).index()
38-
override val interactConfirmationMode by c.setting("Interact Confirmation", PlaceConfirmationMode.PlaceThenAwait, "Wait for block placement confirmation").group(baseGroup).index()
38+
override val interactConfirmationMode by c.setting("Interact Confirmation", InteractConfirmationMode.PlaceThenAwait, "Wait for block placement confirmation").group(baseGroup).index()
3939
override val maxPendingInteractions by c.setting("Max Pending Interactions", 5, 0..30, 1, "The maximum amount of pending placements").group(baseGroup).index()
4040
override val interactionsPerTick by c.setting("Interactions Per Tick", 1, 1..30, 1, "Maximum instant block places per tick").group(baseGroup).index()
4141
override val swing by c.setting("Swing On Interact", true, "Swings the players hand when placing").group(baseGroup).index()

src/main/kotlin/com/lambda/interaction/managers/breaking/BreakManager.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,16 @@ import com.lambda.event.listener.SafeListener.Companion.listen
3131
import com.lambda.event.listener.UnsafeListener.Companion.listenUnsafe
3232
import com.lambda.graphics.renderer.esp.DynamicAABB
3333
import com.lambda.interaction.construction.blueprint.Blueprint.Companion.toStructure
34-
import com.lambda.interaction.construction.simulation.result.results.BreakResult
3534
import com.lambda.interaction.construction.simulation.BuildSimulator.simulate
3635
import com.lambda.interaction.construction.simulation.context.BreakContext
36+
import com.lambda.interaction.construction.simulation.result.results.BreakResult
3737
import com.lambda.interaction.construction.verify.TargetState
38-
import com.lambda.interaction.material.StackSelection
39-
import com.lambda.interaction.material.StackSelection.Companion.select
4038
import com.lambda.interaction.managers.Logger
39+
import com.lambda.interaction.managers.Manager
4140
import com.lambda.interaction.managers.ManagerUtils.isPosBlocked
4241
import com.lambda.interaction.managers.ManagerUtils.newStage
4342
import com.lambda.interaction.managers.ManagerUtils.newTick
4443
import com.lambda.interaction.managers.PositionBlocking
45-
import com.lambda.interaction.managers.Manager
4644
import com.lambda.interaction.managers.breaking.BreakConfig.BreakConfirmationMode
4745
import com.lambda.interaction.managers.breaking.BreakConfig.BreakMode
4846
import com.lambda.interaction.managers.breaking.BreakInfo.BreakType.Primary
@@ -75,7 +73,10 @@ import com.lambda.interaction.managers.breaking.BrokenBlockHandler.startPending
7573
import com.lambda.interaction.managers.breaking.RebreakHandler.getRebreakPotential
7674
import com.lambda.interaction.managers.breaking.SwapInfo.Companion.getSwapInfo
7775
import com.lambda.interaction.managers.hotbar.HotbarRequest
76+
import com.lambda.interaction.managers.interacting.InteractManager
7877
import com.lambda.interaction.managers.rotating.RotationRequest
78+
import com.lambda.interaction.material.StackSelection
79+
import com.lambda.interaction.material.StackSelection.Companion.select
7980
import com.lambda.module.hud.ManagerDebugLoggers.breakManagerLogger
8081
import com.lambda.threading.runSafeAutomated
8182
import com.lambda.util.BlockUtils.blockState
@@ -307,6 +308,7 @@ object BreakManager : Manager<BreakRequest>(
307308
*/
308309
override fun AutomatedSafeContext.handleRequest(request: BreakRequest) {
309310
if (activeRequest != null || request.contexts.isEmpty()) return
311+
if (InteractManager.activeThisTick) return
310312

311313
activeRequest = request
312314
processRequest(request)
@@ -841,7 +843,7 @@ object BreakManager : Manager<BreakRequest>(
841843
logger.success("Instant breaking", info)
842844
info.vanillaInstantBreakable = progress >= 1
843845
onBlockBreak(info)
844-
if (!info.vanillaInstantBreakable) breakCooldown = breakConfig.breakDelay
846+
if (!info.vanillaInstantBreakable) breakCooldown = breakConfig.breakDelay + 1
845847
} else {
846848
logger.debug("Starting break", info)
847849
info.apply {

src/main/kotlin/com/lambda/interaction/managers/interacting/InteractConfig.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ interface InteractConfig : ActionConfig, ISettingGroup {
2828
val airPlace: AirPlaceMode
2929
val axisRotateSetting: Boolean
3030
val axisRotate get() = rotate && airPlace.isEnabled && axisRotateSetting
31-
val interactConfirmationMode: PlaceConfirmationMode
31+
val interactConfirmationMode: InteractConfirmationMode
3232
val maxPendingInteractions: Int
3333
val interactionsPerTick: Int
3434
val swing: Boolean
@@ -47,12 +47,12 @@ interface InteractConfig : ActionConfig, ISettingGroup {
4747
val isEnabled get() = this != None
4848
}
4949

50-
enum class PlaceConfirmationMode(
50+
enum class InteractConfirmationMode(
5151
override val displayName: String,
5252
override val description: String
5353
) : NamedEnum, Describable {
54-
None("No confirmation", "Place immediately without waiting for the server; lowest latency, possible brief desync."),
55-
PlaceThenAwait("Place now, confirm later", "Show placement right away, then wait for server confirmation to verify."),
56-
AwaitThenPlace("Confirm first, then place", "Wait for server response before showing placement; most accurate, adds a short delay.")
54+
None("No confirmation", "Interact immediately without waiting for the server; possible desync."),
55+
PlaceThenAwait("Interact now, confirm later", "Interact immediately, then wait for server confirmation to verify."),
56+
AwaitThenPlace("Confirm first, then Interact", "Wait for server response before interacting; safest, adds a short delay.")
5757
}
5858
}

src/main/kotlin/com/lambda/interaction/managers/interacting/InteractManager.kt

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ import com.lambda.event.events.UpdateManagerEvent
2828
import com.lambda.event.listener.SafeListener.Companion.listen
2929
import com.lambda.interaction.construction.simulation.context.InteractContext
3030
import com.lambda.interaction.managers.Logger
31+
import com.lambda.interaction.managers.Manager
3132
import com.lambda.interaction.managers.ManagerUtils.isPosBlocked
3233
import com.lambda.interaction.managers.ManagerUtils.newStage
3334
import com.lambda.interaction.managers.ManagerUtils.newTick
3435
import com.lambda.interaction.managers.PositionBlocking
35-
import com.lambda.interaction.managers.Manager
3636
import com.lambda.interaction.managers.breaking.BreakManager
3737
import com.lambda.interaction.managers.interacting.InteractManager.activeRequest
3838
import com.lambda.interaction.managers.interacting.InteractManager.maxPlacementsThisTick
@@ -123,6 +123,7 @@ object InteractManager : Manager<InteractRequest>(
123123
*/
124124
override fun AutomatedSafeContext.handleRequest(request: InteractRequest) {
125125
if (activeRequest != null || request.contexts.isEmpty()) return
126+
if (BreakManager.activeThisTick) return
126127

127128
activeRequest = request
128129
processRequest(request)
@@ -164,15 +165,13 @@ object InteractManager : Manager<InteractRequest>(
164165
else interaction.interactBlock(player, Hand.MAIN_HAND, ctx.hitResult)
165166
if (!actionResult.isAccepted) {
166167
logger.warning("Placement interaction failed with $actionResult", ctx, request)
167-
} else {
168-
if (interactConfig.swing) {
169-
swingHand(interactConfig.swingType, Hand.MAIN_HAND)
170-
171-
val stackInHand = player.getStackInHand(Hand.MAIN_HAND)
172-
val stackCountPre = stackInHand.count
173-
if (!stackInHand.isEmpty && (stackInHand.count != stackCountPre || player.isInCreativeMode)) {
174-
mc.gameRenderer.firstPersonRenderer.resetEquipProgress(Hand.MAIN_HAND)
175-
}
168+
} else if (interactConfig.swing) {
169+
swingHand(interactConfig.swingType, Hand.MAIN_HAND)
170+
171+
val stackInHand = player.getStackInHand(Hand.MAIN_HAND)
172+
val stackCountPre = stackInHand.count
173+
if (!stackInHand.isEmpty && (stackInHand.count != stackCountPre || player.isInCreativeMode)) {
174+
mc.gameRenderer.firstPersonRenderer.resetEquipProgress(Hand.MAIN_HAND)
176175
}
177176
}
178177
placementsThisTick++
@@ -339,14 +338,14 @@ object InteractManager : Manager<InteractRequest>(
339338
sendInteractPacket(hand, hitResult)
340339
}
341340

342-
if (interactConfig.interactConfirmationMode != InteractConfig.PlaceConfirmationMode.None) {
341+
if (interactConfig.interactConfirmationMode != InteractConfig.InteractConfirmationMode.None) {
343342
InteractInfo(interactContext, request.pendingInteractions, request.onPlace, interactConfig).startPending()
344343
}
345344

346345
val itemStack = itemPlacementContext.stack
347346
itemStack.decrementUnlessCreative(1, player)
348347

349-
if (interactConfig.interactConfirmationMode == InteractConfig.PlaceConfirmationMode.AwaitThenPlace)
348+
if (interactConfig.interactConfirmationMode == InteractConfig.InteractConfirmationMode.AwaitThenPlace)
350349
return ActionResult.SUCCESS
351350

352351
// TODO: Implement restriction checks (e.g., world height) to prevent unnecessary server requests when the
@@ -367,7 +366,7 @@ object InteractManager : Manager<InteractRequest>(
367366

368367
if (interactConfig.sounds) placeSound(state, blockPos)
369368

370-
if (interactConfig.interactConfirmationMode == InteractConfig.PlaceConfirmationMode.None) {
369+
if (interactConfig.interactConfirmationMode == InteractConfig.InteractConfirmationMode.None) {
371370
request.onPlace?.invoke(this, interactContext.blockPos)
372371
}
373372

src/main/kotlin/com/lambda/interaction/managers/interacting/InteractedBlockHandler.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ object InteractedBlockHandler : PostActionHandler<InteractInfo>() {
3535
DEFAULT.buildConfig.actionTimeout * 50L
3636
) {
3737
info("${it::class.simpleName} at ${it.context.blockPos.toShortString()} timed out")
38-
if (it.interactConfig.interactConfirmationMode != InteractConfig.PlaceConfirmationMode.AwaitThenPlace) {
38+
if (it.interactConfig.interactConfirmationMode != InteractConfig.InteractConfirmationMode.AwaitThenPlace) {
3939
runSafe {
4040
world.setBlockState(it.context.blockPos, it.context.cachedState)
4141
}
@@ -66,7 +66,7 @@ object InteractedBlockHandler : PostActionHandler<InteractInfo>() {
6666

6767
pending.stopPending()
6868

69-
if (pending.interactConfig.interactConfirmationMode == InteractConfig.PlaceConfirmationMode.AwaitThenPlace)
69+
if (pending.interactConfig.interactConfirmationMode == InteractConfig.InteractConfirmationMode.AwaitThenPlace)
7070
with(pending.context) { placeSound(expectedState, blockPos) }
7171
pending.onPlace?.invoke(this, pending.context.blockPos)
7272
}

src/main/kotlin/com/lambda/module/modules/player/Nuker.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,7 @@ object Nuker : Module(
7878

7979
selection
8080
}.build(finishOnDone = false)
81-
// ToDo: Add build setting delegates
82-
83-
task?.run()
81+
.run()
8482
}
8583

8684
onDisable {

src/main/kotlin/com/lambda/task/tasks/BuildTask.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ import com.lambda.interaction.construction.blueprint.Blueprint.Companion.toStruc
3131
import com.lambda.interaction.construction.blueprint.PropagatingBlueprint
3232
import com.lambda.interaction.construction.blueprint.StaticBlueprint.Companion.toBlueprint
3333
import com.lambda.interaction.construction.blueprint.TickingBlueprint
34+
import com.lambda.interaction.construction.simulation.BuildGoal
35+
import com.lambda.interaction.construction.simulation.BuildSimulator.simulate
36+
import com.lambda.interaction.construction.simulation.Simulation.Companion.simulation
3437
import com.lambda.interaction.construction.simulation.context.BuildContext
3538
import com.lambda.interaction.construction.simulation.result.BuildResult
3639
import com.lambda.interaction.construction.simulation.result.Contextual
@@ -42,9 +45,6 @@ import com.lambda.interaction.construction.simulation.result.results.BreakResult
4245
import com.lambda.interaction.construction.simulation.result.results.GenericResult
4346
import com.lambda.interaction.construction.simulation.result.results.InteractResult
4447
import com.lambda.interaction.construction.simulation.result.results.PreSimResult
45-
import com.lambda.interaction.construction.simulation.BuildGoal
46-
import com.lambda.interaction.construction.simulation.BuildSimulator.simulate
47-
import com.lambda.interaction.construction.simulation.Simulation.Companion.simulation
4848
import com.lambda.interaction.construction.verify.TargetState
4949
import com.lambda.interaction.managers.breaking.BreakRequest.Companion.breakRequest
5050
import com.lambda.interaction.managers.interacting.InteractRequest.Companion.interactRequest
@@ -134,7 +134,7 @@ class BuildTask private constructor(
134134
}
135135

136136
private fun SafeContext.handleResult(result: BuildResult, allResults: List<BuildResult>) {
137-
if (result !is Contextual && pendingInteractions.isNotEmpty())
137+
if (result !is Dependent && result !is Contextual && pendingInteractions.isNotEmpty())
138138
return
139139

140140
when (result) {
@@ -174,17 +174,18 @@ class BuildTask private constructor(
174174
}
175175
}?.submit()
176176

177-
is InteractResult.Interact ->
178-
allResults.interactRequest(pendingInteractions, false) {
179-
onPlace { placements++ }
180-
}?.submit()
177+
is InteractResult.Interact -> {
178+
allResults.interactRequest(pendingInteractions, false) {
179+
onPlace { placements++ }
180+
}?.submit()
181+
}
181182
}
182183
}
183184

184185
is Dependent -> handleResult(result.lastDependency, allResults)
185186

186187
is Resolvable -> {
187-
LOG.info("Resolving: ${result.name}")
188+
LOG.info("Resolving: ${result.name}")
188189
result.resolve().execute(this@BuildTask)
189190
}
190191
}

0 commit comments

Comments
 (0)