From 6194487c491ed306bbf21d4e6c22f2a7584eaa0a Mon Sep 17 00:00:00 2001 From: Octol1ttle Date: Tue, 5 Mar 2024 23:36:38 +0500 Subject: [PATCH 1/4] fix: reset knocked state when dying & all teammates are knocked --- .../knockdowns/common/KnockdownsUtils.java | 7 +++++++ .../common/events/KnockdownsEvents.java | 16 +++------------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/common/src/main/java/ru/octol1ttle/knockdowns/common/KnockdownsUtils.java b/common/src/main/java/ru/octol1ttle/knockdowns/common/KnockdownsUtils.java index 6f6b651..4d256fd 100644 --- a/common/src/main/java/ru/octol1ttle/knockdowns/common/KnockdownsUtils.java +++ b/common/src/main/java/ru/octol1ttle/knockdowns/common/KnockdownsUtils.java @@ -28,4 +28,11 @@ public class KnockdownsUtils { player.damage(/*Objects.requireNonNullElse(recent, */player.getDamageSources().generic()/*)*/, damage); player.velocityModified = false; } + + public static void resetKnockedState(IKnockableDown knockable) { + knockable.set_KnockedDown(false); + knockable.set_ReviverCount(0); + knockable.set_ReviveTimer(KnockdownsCommon.REVIVE_WAIT_TIME); + knockable.set_KnockedAge(0); + } } diff --git a/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java b/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java index 16a3e78..299bc51 100644 --- a/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java +++ b/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java @@ -41,15 +41,8 @@ public class KnockdownsEvents { ServerPlayerEntity player = (ServerPlayerEntity) entity; - if (KnockdownsUtils.allTeammatesKnocked(server, player)) { - return EventResult.pass(); - } - - if (knockable.is_KnockedDown()) { - knockable.set_KnockedDown(false); - knockable.set_ReviverCount(0); - knockable.set_ReviveTimer(KnockdownsCommon.REVIVE_WAIT_TIME); - knockable.set_KnockedAge(0); + if (knockable.is_KnockedDown() || KnockdownsUtils.allTeammatesKnocked(server, player)) { + KnockdownsUtils.resetKnockedState(knockable); return EventResult.pass(); } @@ -101,10 +94,7 @@ public class KnockdownsEvents { knockable.set_ReviveTimer(knockable.get_ReviveTimer() - knockable.get_ReviverCount()); if (knockable.get_ReviveTimer() <= 0) { - knockable.set_KnockedDown(false); - knockable.set_ReviverCount(0); - knockable.set_ReviveTimer(KnockdownsCommon.REVIVE_WAIT_TIME); - knockable.set_KnockedAge(0); + KnockdownsUtils.resetKnockedState(knockable); player.setInvulnerable(false); player.setGlowing(false); From d5109548c851ae925fd39210b95c8bddf311a57a Mon Sep 17 00:00:00 2001 From: Octol1ttle Date: Tue, 5 Mar 2024 23:37:29 +0500 Subject: [PATCH 2/4] change: reset revived player health relative to their max health --- .../octol1ttle/knockdowns/common/events/KnockdownsEvents.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java b/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java index 299bc51..6292d7b 100644 --- a/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java +++ b/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java @@ -98,7 +98,7 @@ public class KnockdownsEvents { player.setInvulnerable(false); player.setGlowing(false); - player.setHealth(6.0f); + player.setHealth(player.getMaxHealth() * 0.3f); } return; } From 6017cb54a2c2919ad2e845b1086217a5b047d78e Mon Sep 17 00:00:00 2001 From: Octol1ttle Date: Tue, 5 Mar 2024 23:37:43 +0500 Subject: [PATCH 3/4] change: allow knocked players to interact with blocks --- .../knockdowns/common/events/KnockdownsEvents.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java b/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java index 6292d7b..ac6ce61 100644 --- a/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java +++ b/common/src/main/java/ru/octol1ttle/knockdowns/common/events/KnockdownsEvents.java @@ -132,12 +132,6 @@ public class KnockdownsEvents { } return CompoundEventResult.pass(); }); - InteractionEvent.RIGHT_CLICK_BLOCK.register((player, hand, pos, direction) -> { - if (KnockdownsUtils.isKnockedOrReviving(player)) { - return EventResult.interruptFalse(); - } - return EventResult.pass(); - }); } private static void registerOnEntityUse() { From 4968a7ca7f01eaf62c3d50c15e7baaae76c9fb32 Mon Sep 17 00:00:00 2001 From: Octol1ttle Date: Tue, 5 Mar 2024 23:37:48 +0500 Subject: [PATCH 4/4] chore: bump version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index df19e26..ed344f3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ minecraft_version=1.20.1 enabled_platforms=fabric,forge archives_base_name=knockdowns -mod_version=2.1.1 +mod_version=2.2.0 maven_group=ru.octol1ttle.knockdowns architectury_version=9.1.12