diff --git a/build.gradle b/build.gradle index 998fdec..a59d5ef 100644 --- a/build.gradle +++ b/build.gradle @@ -76,7 +76,7 @@ dependencies { modCompileOnly "dev.emi:trinkets:3.10.0" modCompileOnly "maven.modrinth:inventorio:1.10.3+1.20.2" - modCompileOnly "io.wispforest:accessories-fabric:1.0.0-beta.11+1.21" + modCompileOnly "io.wispforest:accessories-fabric:1.4.0-beta+1.21.10" modCompileOnly "maven.modrinth:goml-reserved:1.13.1+1.21" modCompileOnly 'com.jamieswhiteshirt:rtree-3i-lite:0.3.0' diff --git a/src/main/java/eu/pb4/graves/compat/AccessoriesCompat.java b/src/main/java/eu/pb4/graves/compat/AccessoriesCompat.java index 8ca27cc..2754305 100644 --- a/src/main/java/eu/pb4/graves/compat/AccessoriesCompat.java +++ b/src/main/java/eu/pb4/graves/compat/AccessoriesCompat.java @@ -2,14 +2,14 @@ import eu.pb4.graves.GravesApi; import eu.pb4.graves.grave.GraveInventoryMask; -import io.wispforest.accessories.api.*; +import io.wispforest.accessories.api.AccessoriesCapability; +import io.wispforest.accessories.api.core.AccessoryRegistry; +import io.wispforest.accessories.api.events.DropRule; import io.wispforest.accessories.api.events.OnDropCallback; import io.wispforest.accessories.api.slot.SlotReference; -import io.wispforest.accessories.impl.ExpandedSimpleContainer; +import io.wispforest.accessories.impl.core.ExpandedContainer; import net.minecraft.component.EnchantmentEffectComponentTypes; import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.inventory.StackReference; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; @@ -17,8 +17,6 @@ import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; -import java.util.Objects; - public record AccessoriesCompat() implements GraveInventoryMask { private static final String TYPE_TAG = "Type"; private static final String SLOT_TAG = "Slot"; @@ -35,13 +33,12 @@ public void addToGrave(ServerPlayerEntity player, ItemConsumer consumer) { } cap.getContainers().forEach((s, accessoriesContainer) -> { - var defRule = accessoriesContainer.slotType() != null ? Objects.requireNonNull(accessoriesContainer.slotType()).dropRule() : DropRule.DEFAULT; - addToGrave(player, consumer, s, accessoriesContainer.getAccessories(), "", defRule); - addToGrave(player, consumer, s, accessoriesContainer.getCosmeticAccessories(), "cosmetic", defRule); + addToGrave(player, consumer, s, accessoriesContainer.getAccessories(), "", DropRule.DEFAULT); + addToGrave(player, consumer, s, accessoriesContainer.getCosmeticAccessories(), "cosmetic", DropRule.DEFAULT); }); } - private void addToGrave(ServerPlayerEntity player, ItemConsumer consumer, String slotName, ExpandedSimpleContainer accessories, String type, DropRule defaultDropRule) { + private void addToGrave(ServerPlayerEntity player, ItemConsumer consumer, String slotName, ExpandedContainer accessories, String type, DropRule defaultDropRule) { var dmg = player.getRecentDamageSource(); if (dmg == null) { dmg = player.getDamageSources().generic(); @@ -49,12 +46,12 @@ private void addToGrave(ServerPlayerEntity player, ItemConsumer consumer, String for (var i = 0; i < accessories.size(); i++) { var stack = accessories.getStack(i); if (stack.isEmpty() || !GravesApi.canAddItem(player, stack)) { - return; + continue; } var ref = SlotReference.of(player, slotName, i); - var dropRule = AccessoriesAPI.getOrDefaultAccessory(stack).getDropRule(stack, ref, dmg); + var dropRule = AccessoryRegistry.getAccessoryOrDefault(stack).getDropRule(stack, ref, dmg); dropRule = OnDropCallback.EVENT.invoker().onDrop(dropRule, stack, ref, dmg); @@ -118,7 +115,7 @@ public boolean moveToPlayerClosest(ServerPlayerEntity player, ItemStack stack, i } @Nullable - private ExpandedSimpleContainer getInventory(ServerPlayerEntity player, String type, String slotId) { + private ExpandedContainer getInventory(ServerPlayerEntity player, String type, String slotId) { var cap = AccessoriesCapability.get(player); if (cap == null) { return null;