Skip to content

Commit 4a8fb43

Browse files
committed
Fix: clear items with Curse of Vanishing from immediate_respawn behavior
1 parent c0bc6c6 commit 4a8fb43

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

src/main/java/com/lovetropics/minigames/common/content/survive_the_tide/behavior/SurviveTheTideRulesetBehavior.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.lovetropics.minigames.common.core.game.behavior.event.EventRegistrar;
77
import com.lovetropics.minigames.common.core.game.behavior.event.GameLivingEntityEvents;
88
import com.lovetropics.minigames.common.core.game.behavior.event.GamePlayerEvents;
9+
import com.lovetropics.minigames.common.core.game.behavior.instances.ImmediateRespawnBehavior;
910
import com.lovetropics.minigames.common.core.game.state.GameProgressionState;
1011
import com.lovetropics.minigames.common.core.game.state.ProgressionPeriod;
1112
import com.mojang.serialization.Codec;
@@ -53,7 +54,7 @@ public void register(IGamePhase game, EventRegistrar events) throws GameExceptio
5354

5455
private InteractionResult onPlayerDeath(ServerPlayer player, DamageSource damageSource) {
5556
if (forceDropItemsOnDeath && player.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY)) {
56-
destroyVanishingCursedItems(player.getInventory());
57+
ImmediateRespawnBehavior.destroyVanishingCursedItems(player.getInventory());
5758
player.getInventory().dropAll();
5859
}
5960
return InteractionResult.PASS;
@@ -73,12 +74,5 @@ private InteractionResult onPlayerAttackEntity(ServerPlayer player, Entity targe
7374
return InteractionResult.PASS;
7475
}
7576

76-
private void destroyVanishingCursedItems(Container inventory) {
77-
for (int i = 0; i < inventory.getContainerSize(); ++i) {
78-
ItemStack itemstack = inventory.getItem(i);
79-
if (!itemstack.isEmpty() && EnchantmentHelper.has(itemstack, EnchantmentEffectComponents.PREVENT_EQUIPMENT_DROP)) {
80-
inventory.removeItemNoUpdate(i);
81-
}
82-
}
83-
}
77+
8478
}

src/main/java/com/lovetropics/minigames/common/core/game/behavior/instances/ImmediateRespawnBehavior.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@
1515
import com.mojang.serialization.codecs.RecordCodecBuilder;
1616
import net.minecraft.network.chat.Component;
1717
import net.minecraft.server.level.ServerPlayer;
18+
import net.minecraft.world.Container;
1819
import net.minecraft.world.InteractionResult;
1920
import net.minecraft.world.damagesource.DamageSource;
21+
import net.minecraft.world.item.enchantment.EnchantmentEffectComponents;
22+
import net.minecraft.world.item.enchantment.EnchantmentHelper;
2023

2124
import javax.annotation.Nullable;
2225
import java.util.Map;
@@ -39,6 +42,7 @@ public void register(IGamePhase game, EventRegistrar events) {
3942
}
4043

4144
private InteractionResult onPlayerDeath(IGamePhase game, ServerPlayer player, DamageSource source) {
45+
destroyVanishingCursedItems(player.getInventory());
4246
if (dropInventory) {
4347
player.getInventory().dropAll();
4448
}
@@ -80,4 +84,12 @@ private void sendDeathMessage(IGamePhase game, ServerPlayer player) {
8084
game.allPlayers().sendMessage(message);
8185
}
8286
}
87+
88+
public static void destroyVanishingCursedItems(Container inventory) {
89+
for (int i = 0; i < inventory.getContainerSize(); ++i) {
90+
if (EnchantmentHelper.has(inventory.getItem(i), EnchantmentEffectComponents.PREVENT_EQUIPMENT_DROP)) {
91+
inventory.removeItemNoUpdate(i);
92+
}
93+
}
94+
}
8395
}

0 commit comments

Comments
 (0)