Skip to content

Commit ae2a152

Browse files
committed
Fix Accessories mod items not being stored in graves
Updates AccessoriesCompat for Accessories 1.4.x API compatibility: - Changed `return` to `continue` in the addToGrave() loop to prevent early exit when encountering empty slots - Removed call to slotType().dropRule() (removed in 1.4.x API) - Updated ExpandedSimpleContainer to ExpandedContainer (moved to impl.core) - Updated DropRule import (moved to api.events) - Updated build dependency to accessories-fabric:1.4.0-beta+1.21.10 Fixes #210
1 parent 4dd2474 commit ae2a152

2 files changed

Lines changed: 11 additions & 14 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ dependencies {
7676

7777
modCompileOnly "dev.emi:trinkets:3.10.0"
7878
modCompileOnly "maven.modrinth:inventorio:1.10.3+1.20.2"
79-
modCompileOnly "io.wispforest:accessories-fabric:1.0.0-beta.11+1.21"
79+
modCompileOnly "io.wispforest:accessories-fabric:1.4.0-beta+1.21.10"
8080

8181
modCompileOnly "maven.modrinth:goml-reserved:1.13.1+1.21"
8282
modCompileOnly 'com.jamieswhiteshirt:rtree-3i-lite:0.3.0'

src/main/java/eu/pb4/graves/compat/AccessoriesCompat.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,21 @@
22

33
import eu.pb4.graves.GravesApi;
44
import eu.pb4.graves.grave.GraveInventoryMask;
5-
import io.wispforest.accessories.api.*;
5+
import io.wispforest.accessories.api.AccessoriesCapability;
6+
import io.wispforest.accessories.api.core.AccessoryRegistry;
7+
import io.wispforest.accessories.api.events.DropRule;
68
import io.wispforest.accessories.api.events.OnDropCallback;
79
import io.wispforest.accessories.api.slot.SlotReference;
8-
import io.wispforest.accessories.impl.ExpandedSimpleContainer;
10+
import io.wispforest.accessories.impl.core.ExpandedContainer;
911
import net.minecraft.component.EnchantmentEffectComponentTypes;
1012
import net.minecraft.enchantment.EnchantmentHelper;
11-
import net.minecraft.entity.damage.DamageSource;
12-
import net.minecraft.inventory.StackReference;
1313
import net.minecraft.item.ItemStack;
1414
import net.minecraft.nbt.NbtCompound;
1515
import net.minecraft.nbt.NbtElement;
1616
import net.minecraft.server.network.ServerPlayerEntity;
1717
import net.minecraft.util.Identifier;
1818
import org.jetbrains.annotations.Nullable;
1919

20-
import java.util.Objects;
21-
2220
public record AccessoriesCompat() implements GraveInventoryMask {
2321
private static final String TYPE_TAG = "Type";
2422
private static final String SLOT_TAG = "Slot";
@@ -35,26 +33,25 @@ public void addToGrave(ServerPlayerEntity player, ItemConsumer consumer) {
3533
}
3634

3735
cap.getContainers().forEach((s, accessoriesContainer) -> {
38-
var defRule = accessoriesContainer.slotType() != null ? Objects.requireNonNull(accessoriesContainer.slotType()).dropRule() : DropRule.DEFAULT;
39-
addToGrave(player, consumer, s, accessoriesContainer.getAccessories(), "", defRule);
40-
addToGrave(player, consumer, s, accessoriesContainer.getCosmeticAccessories(), "cosmetic", defRule);
36+
addToGrave(player, consumer, s, accessoriesContainer.getAccessories(), "", DropRule.DEFAULT);
37+
addToGrave(player, consumer, s, accessoriesContainer.getCosmeticAccessories(), "cosmetic", DropRule.DEFAULT);
4138
});
4239
}
4340

44-
private void addToGrave(ServerPlayerEntity player, ItemConsumer consumer, String slotName, ExpandedSimpleContainer accessories, String type, DropRule defaultDropRule) {
41+
private void addToGrave(ServerPlayerEntity player, ItemConsumer consumer, String slotName, ExpandedContainer accessories, String type, DropRule defaultDropRule) {
4542
var dmg = player.getRecentDamageSource();
4643
if (dmg == null) {
4744
dmg = player.getDamageSources().generic();
4845
}
4946
for (var i = 0; i < accessories.size(); i++) {
5047
var stack = accessories.getStack(i);
5148
if (stack.isEmpty() || !GravesApi.canAddItem(player, stack)) {
52-
return;
49+
continue;
5350
}
5451

5552
var ref = SlotReference.of(player, slotName, i);
5653

57-
var dropRule = AccessoriesAPI.getOrDefaultAccessory(stack).getDropRule(stack, ref, dmg);
54+
var dropRule = AccessoryRegistry.getAccessoryOrDefault(stack).getDropRule(stack, ref, dmg);
5855

5956
dropRule = OnDropCallback.EVENT.invoker().onDrop(dropRule, stack, ref, dmg);
6057

@@ -118,7 +115,7 @@ public boolean moveToPlayerClosest(ServerPlayerEntity player, ItemStack stack, i
118115
}
119116

120117
@Nullable
121-
private ExpandedSimpleContainer getInventory(ServerPlayerEntity player, String type, String slotId) {
118+
private ExpandedContainer getInventory(ServerPlayerEntity player, String type, String slotId) {
122119
var cap = AccessoriesCapability.get(player);
123120
if (cap == null) {
124121
return null;

0 commit comments

Comments
 (0)