From 9ce27c3f65252472543853e7036f5a6d282e8335 Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 22 Sep 2022 13:01:31 +0200 Subject: [PATCH] Fixed dispensers not being able to equip friendship bracelets and amulets when trinkets is installed --- .../com/minelittlepony/unicopia/item/WearableItem.java | 2 +- .../minelittlepony/unicopia/trinkets/TrinketsDelegate.java | 7 ++----- .../unicopia/trinkets/TrinketsDelegateImpl.java | 5 ----- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/item/WearableItem.java b/src/main/java/com/minelittlepony/unicopia/item/WearableItem.java index bb9ae738..a421cb37 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/WearableItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/WearableItem.java @@ -57,7 +57,7 @@ public abstract class WearableItem extends Item implements Wearable { return pointer.getWorld().getEntitiesByClass( LivingEntity.class, new Box(pointer.getPos().offset(pointer.getBlockState().get(DispenserBlock.FACING))), - EntityPredicates.EXCEPT_SPECTATOR.and(new EntityPredicates.Equipable(armor)) + EntityPredicates.EXCEPT_SPECTATOR ) .stream() .flatMap(entity -> TrinketsDelegate.getInstance() diff --git a/src/main/java/com/minelittlepony/unicopia/trinkets/TrinketsDelegate.java b/src/main/java/com/minelittlepony/unicopia/trinkets/TrinketsDelegate.java index 780bbbb1..bba65b59 100644 --- a/src/main/java/com/minelittlepony/unicopia/trinkets/TrinketsDelegate.java +++ b/src/main/java/com/minelittlepony/unicopia/trinkets/TrinketsDelegate.java @@ -1,6 +1,7 @@ package com.minelittlepony.unicopia.trinkets; import java.util.*; +import java.util.stream.Collectors; import java.util.stream.Stream; import net.fabricmc.loader.api.FabricLoader; @@ -48,11 +49,7 @@ public interface TrinketsDelegate { } default Set getAvailableTrinketSlots(LivingEntity entity, Set probedSlots) { - return Set.of(); - } - - default Stream getEquipped(LivingEntity entity) { - return Stream.empty(); + return probedSlots.stream().filter(slot -> getEquipped(entity, slot).count() == 0).collect(Collectors.toSet()); } default Stream getEquipped(LivingEntity entity, Identifier slot) { diff --git a/src/main/java/com/minelittlepony/unicopia/trinkets/TrinketsDelegateImpl.java b/src/main/java/com/minelittlepony/unicopia/trinkets/TrinketsDelegateImpl.java index 4ca11c28..f15f4ad3 100644 --- a/src/main/java/com/minelittlepony/unicopia/trinkets/TrinketsDelegateImpl.java +++ b/src/main/java/com/minelittlepony/unicopia/trinkets/TrinketsDelegateImpl.java @@ -50,11 +50,6 @@ public class TrinketsDelegateImpl implements TrinketsDelegate { return probedSlots; } - @Override - public Stream getEquipped(LivingEntity entity) { - return getInventories(entity).flatMap(InventoryUtil::stream).filter(s -> !s.isEmpty()); - } - @Override public Stream getEquipped(LivingEntity entity, Identifier slot) { return getInventory(entity, slot).stream().flatMap(InventoryUtil::stream).filter(s -> !s.isEmpty());