From 23436bb952703dfbe78fae766cba4cefef44115c Mon Sep 17 00:00:00 2001 From: haykam821 <24855774+haykam821@users.noreply.github.com> Date: Thu, 21 Sep 2023 14:34:45 -0400 Subject: [PATCH] Always drop the inventories of eliminated players Fixes #8 --- .../game/phase/BeaconBreakersActivePhase.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/github/haykam821/beaconbreakers/game/phase/BeaconBreakersActivePhase.java b/src/main/java/io/github/haykam821/beaconbreakers/game/phase/BeaconBreakersActivePhase.java index 792177c..14dd11f 100644 --- a/src/main/java/io/github/haykam821/beaconbreakers/game/phase/BeaconBreakersActivePhase.java +++ b/src/main/java/io/github/haykam821/beaconbreakers/game/phase/BeaconBreakersActivePhase.java @@ -304,15 +304,9 @@ private ActionResult onPlayerDeath(ServerPlayerEntity player, DamageSource sourc return ActionResult.FAIL; } - if (!this.config.shouldKeepInventory()) { - player.vanishCursedItems(); - player.getInventory().dropAll(); - - player.dropXp(); - player.dropShoulderEntities(); - } - PlayerEntry entry = this.getEntryFromPlayer(player); + boolean eliminated = false; + if (entry != null) { if (this.world.getGameRules().getBoolean(GameRules.SHOW_DEATH_MESSAGES)) { this.gameSpace.getPlayers().sendMessage(player.getDamageTracker().getDeathMessage()); @@ -323,10 +317,19 @@ private ActionResult onPlayerDeath(ServerPlayerEntity player, DamageSource sourc BeaconBreakersActivePhase.spawn(this.world, this.map, this.config.getMapConfig(), entry.getPlayer()); } else { this.eliminate(entry); + eliminated = true; } } } + if (eliminated || !this.config.shouldKeepInventory()) { + player.vanishCursedItems(); + player.getInventory().dropAll(); + + player.dropXp(); + player.dropShoulderEntities(); + } + player.setHealth(player.getMaxHealth()); player.getHungerManager().setFoodLevel(20);