diff --git a/.github/workflows/dev_build.yml b/.github/workflows/dev_build.yml index 670873f..d4cb73d 100644 --- a/.github/workflows/dev_build.yml +++ b/.github/workflows/dev_build.yml @@ -18,6 +18,6 @@ jobs: repo_token: '${{ secrets.GITHUB_TOKEN }}' automatic_release_tag: "1.20.4_1.0.8.3" prerelease: true - title: "1.20.4 | 1.0.8.4" + title: "1.20.4 | 1.0.8.5" files: | ./build/libs/*.jar diff --git a/gradle.properties b/gradle.properties index a525f34..723ffa6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ yarn_mappings=1.20.4+build.2 loader_version=0.15.1 # Mod Properties -mod_version=1.0.8.4 +mod_version=1.0.8.5 maven_group=nekiplay.meteorplus archives_base_name=meteor-plus diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/KillAuraMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/KillAuraMixin.java index 12fc3be..75ea455 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/KillAuraMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/KillAuraMixin.java @@ -1,6 +1,7 @@ package nekiplay.meteorplus.mixin.meteorclient.modules; import meteordevelopment.meteorclient.settings.BoolSetting; +import meteordevelopment.meteorclient.settings.IntSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Category; @@ -76,6 +77,28 @@ public Entity getTarget() { .build() ); + @Unique + private final Setting customDelay = sgTiming.add(new BoolSetting.Builder() + .name("custom-delay-for-one-hit-entities") + .defaultValue(true) + .visible(() -> entities.get().contains(EntityType.SHULKER_BULLET) || entities.get().contains(EntityType.FIREBALL)) + .build() + ); + + @Unique + private final Setting hitDelay = sgTiming.add(new IntSetting.Builder() + .name("delay-for-one-hit-entities") + .description("How fast you hit the entity in ticks.") + .defaultValue(2) + .min(0) + .sliderMax(60) + .visible(() -> customDelay.get()) + .build() + ); + + @Unique + private int hitTimer; + public KillAuraMixin(Category category, String name, String description) { super(category, name, description); } @@ -85,11 +108,31 @@ private void delayCheck(CallbackInfoReturnable cir) { if (onlyCrits.get() && !CriticalsPlus.allowCrit()) { cir.setReturnValue(false); } - else if (ignoreOnlyCritsForOneHitEntity.get() && oneHitEntity()) { - cir.setReturnValue(true); - } - else if (oneHitEntity() && ignoreSmartDelayForShulkerBulletAndGhastCharge.get() && !onlyCrits.get()) { - cir.setReturnValue(true); + + float delay = (customDelay.get()) ? hitDelay.get() : 0.5f; + + if (oneHitEntity()) { + if (customDelay.get()) { + if (hitTimer < delay) { + hitTimer++; + cir.setReturnValue(false); + } else { + if (ignoreOnlyCritsForOneHitEntity.get()) { + cir.setReturnValue(true); + hitTimer = 0; + } else if (oneHitEntity() && ignoreSmartDelayForShulkerBulletAndGhastCharge.get() && !onlyCrits.get()) { + cir.setReturnValue(true); + hitTimer = 0; + } + } + } + else { + if (ignoreOnlyCritsForOneHitEntity.get()) { + cir.setReturnValue(true); + } else if (oneHitEntity() && ignoreSmartDelayForShulkerBulletAndGhastCharge.get() && !onlyCrits.get()) { + cir.setReturnValue(true); + } + } } }