Skip to content

Commit 8f7db1b

Browse files
committed
Added Interact
1 parent 9d61c10 commit 8f7db1b

File tree

6 files changed

+42
-3
lines changed

6 files changed

+42
-3
lines changed

common/src/main/java/com/lambda/mixin/MinecraftClientMixin.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
package com.lambda.mixin;
22

3+
import com.lambda.Lambda;
34
import com.lambda.event.EventFlow;
45
import com.lambda.event.events.ClientEvent;
56
import com.lambda.event.events.TickEvent;
7+
import com.lambda.module.modules.player.Interact;
68
import net.minecraft.client.MinecraftClient;
9+
import net.minecraft.client.network.ClientPlayerInteractionManager;
710
import org.spongepowered.asm.mixin.Mixin;
811
import org.spongepowered.asm.mixin.injection.At;
912
import org.spongepowered.asm.mixin.injection.Inject;
13+
import org.spongepowered.asm.mixin.injection.Redirect;
1014
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
15+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1116

1217
@Mixin(MinecraftClient.class)
1318
public class MinecraftClientMixin {
@@ -33,4 +38,19 @@ private void onShutdown(CallbackInfo ci) {
3338
private void onStartup(CallbackInfo ci) {
3439
EventFlow.post(new ClientEvent.Startup());
3540
}
41+
42+
@Redirect(method = "doItemUse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;isBreakingBlock()Z"))
43+
boolean injectMultiActon(ClientPlayerInteractionManager instance) {
44+
if (instance == null) return true;
45+
46+
if (Interact.INSTANCE.isEnabled() && Interact.getMultiAction()) return false;
47+
return instance.isBreakingBlock();
48+
}
49+
50+
@Inject(method = "doItemUse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isRiding()Z"))
51+
void injectFastPlace(CallbackInfo ci) {
52+
if (!Interact.INSTANCE.isEnabled()) return;
53+
54+
Lambda.INSTANCE.getMc().itemUseCooldown = Interact.getPlaceDelay();
55+
}
3656
}

common/src/main/java/com/lambda/mixin/MixinKeyBinding.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.lambda.mixin;
22

3-
import com.lambda.module.modules.Sprint;
3+
import com.lambda.module.modules.movement.Sprint;
44
import net.minecraft.client.option.KeyBinding;
55
import org.spongepowered.asm.mixin.Mixin;
66
import org.spongepowered.asm.mixin.injection.At;

common/src/main/kotlin/com/lambda/module/modules/SafeWalk.kt renamed to common/src/main/kotlin/com/lambda/module/modules/movement/SafeWalk.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.lambda.module.modules
1+
package com.lambda.module.modules.movement
22

33
import com.lambda.event.events.MovementEvent
44
import com.lambda.event.listener.SafeListener.Companion.listener

common/src/main/kotlin/com/lambda/module/modules/Sprint.kt renamed to common/src/main/kotlin/com/lambda/module/modules/movement/Sprint.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.lambda.module.modules
1+
package com.lambda.module.modules.movement
22

33
import com.lambda.module.tag.ModuleTag
44
import com.lambda.module.Module
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.lambda.module.modules.player
2+
3+
import com.lambda.module.Module
4+
import com.lambda.module.tag.ModuleTag
5+
6+
object Interact : Module(
7+
name = "Interact",
8+
description = "Modify players interaction with the world",
9+
defaultTags = setOf(ModuleTag.PLAYER)
10+
) {
11+
// ToDo: Is this fast place / fast use? Should it be relocated with more options?
12+
@JvmStatic val placeDelay by setting("Item Use / Place Delay", 4, 0..20, 1, description = "Sets the delay between placing blocks or using items")
13+
// @JvmStatic val breakDelay by setting("Attack / Break Delay", 10, 0..20, 1)
14+
@JvmStatic val multiAction by setting("Multi Action", false, description = "Allows to use many items while breaking blocks")
15+
}

common/src/main/resources/lambda.accesswidener

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
accessWidener v2 named
2+
# MC
3+
accessible field net/minecraft/client/MinecraftClient itemUseCooldown I
4+
accessible field net/minecraft/client/MinecraftClient attackCooldown I
25

6+
# Text
37
accessible field net/minecraft/text/Style color Lnet/minecraft/text/TextColor;
48
accessible field net/minecraft/text/Style bold Ljava/lang/Boolean;
59
accessible field net/minecraft/text/Style italic Ljava/lang/Boolean;

0 commit comments

Comments
 (0)