From 38394d5c28859841b136cd3d345fa5a48c812e09 Mon Sep 17 00:00:00 2001 From: Octol1ttle Date: Tue, 31 Oct 2023 00:11:40 +0500 Subject: [PATCH] feat: drop items when knocked down --- gradle.properties | 2 +- src/main/java/ru/octol1ttle/knockdowns/Knockdowns.java | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0ddbc52..a72b539 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ yarn_mappings=1.20.2+build.4 loader_version=0.14.24 # Mod Properties -mod_version=1.0.0 +mod_version=1.1.0 maven_group=ru.octol1ttle.knockdowns archives_base_name=knockdowns diff --git a/src/main/java/ru/octol1ttle/knockdowns/Knockdowns.java b/src/main/java/ru/octol1ttle/knockdowns/Knockdowns.java index 39c228f..a59282c 100644 --- a/src/main/java/ru/octol1ttle/knockdowns/Knockdowns.java +++ b/src/main/java/ru/octol1ttle/knockdowns/Knockdowns.java @@ -25,6 +25,7 @@ import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.TypedActionResult; +import net.minecraft.world.GameRules; import ru.octol1ttle.knockdowns.api.IKnockableDown; import ru.octol1ttle.knockdowns.network.KnockdownsNetworkingConstants; @@ -54,13 +55,18 @@ public class Knockdowns implements ModInitializer { return true; } + ServerPlayerEntity serverPlayer = (ServerPlayerEntity) entity; // TODO: timer + if (!serverPlayer.getWorld().getGameRules().getBoolean(GameRules.KEEP_INVENTORY)) { + serverPlayer.getInventory().dropAll(); + } entity.setHealth(1.0f); entity.setInvulnerable(true); entity.setGlowing(true); entity.setAir(entity.getMaxAir()); - entity.setFireTicks(0); + entity.extinguish(); entity.setFrozenTicks(0); + entity.setOnFire(false); entity.clearStatusEffects(); knockableDown.knockdowns$setKnockedDown(true); @@ -69,8 +75,6 @@ public class Knockdowns implements ModInitializer { buf.writeUuid(entity.getUuid()); buf.writeBoolean(true); - ServerPlayerEntity serverPlayer = (ServerPlayerEntity) entity; - ServerPlayNetworking.send(serverPlayer, KnockdownsNetworkingConstants.S2C_SEND_PLAYER_KNOCKED_DOWN, buf); for (ServerPlayerEntity player : PlayerLookup.tracking(entity)) { ServerPlayNetworking.send(player, KnockdownsNetworkingConstants.S2C_SEND_PLAYER_KNOCKED_DOWN, buf);