Skip to content

Commit 152c765

Browse files
committed
修复bug
1 parent ac2d745 commit 152c765

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

src/main/java/com/circulation/only_one_item/conversion/ItemConversionTarget.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
import com.circulation.only_one_item.util.MatchItem;
44
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
55
import lombok.Getter;
6+
import lombok.ToString;
67
import net.minecraft.item.Item;
78
import net.minecraft.item.ItemStack;
89

910
import java.util.Collections;
1011
import java.util.Set;
1112

1213
@Getter
14+
@ToString
1315
public final class ItemConversionTarget {
1416
private final String targetID;
1517
private final int targetMeta;

src/main/java/com/circulation/only_one_item/handler/MatchItemHandler.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,11 @@ public static void preItemStackInit() {
5858
int meta = stack.getMetadata();
5959
if (rl == null) continue;
6060
if ((finalItemBlackMap.containsKey(rl) && finalItemBlackMap.get(rl).contains(meta))
61-
|| finalMODIDBlackSet.contains(rl.getNamespace())) {
62-
ods.add(stack);
63-
}
64-
if (allTarget.contains(SimpleItem.getInstance(stack))) {
65-
ods.add(stack);
61+
|| finalMODIDBlackSet.contains(rl.getNamespace())
62+
|| allTarget.contains(SimpleItem.getInstance(stack))) {
63+
continue;
6664
}
65+
ods.add(stack);
6766
}
6867
});
6968

@@ -183,13 +182,12 @@ public static void addPreItemStack(OOIItemStack i) {
183182
list.add(new WeakReference<>(i));
184183
}
185184

186-
public static void addTargetItem(ResourceLocation rl, int meta, ItemConversionTarget target) {
185+
public static void addTargetItem(ResourceLocation rl, int meta, ItemConversionTarget t) {
186+
if (allTarget.contains(SimpleItem.getInstance(rl, meta))) return;
187187
itemIdToTargetMap
188188
.computeIfAbsent(rl, k -> new Int2ObjectOpenHashMap<>())
189-
.put(meta, target);
190-
finalItemBlackMap
191-
.computeIfAbsent(rl, k -> new IntOpenHashSet())
192-
.add(meta);
189+
.put(meta, t);
190+
allTarget.add(SimpleItem.getInstance(t.getTargetID(), t.getTargetMeta()));
193191
}
194192

195193
public static void onOreRegister(OreDictionary.OreRegisterEvent event) {
@@ -267,7 +265,6 @@ public static ItemConversionTarget match(Item item, int meta) {
267265

268266
private static void Init(List<ItemConversionTarget> items) {
269267
for (ItemConversionTarget t : items) {
270-
allTarget.add(SimpleItem.getInstance(t.getTargetID(), t.getTargetMeta()));
271268
for (MatchItem matchItem : t.getMatchItems()) {
272269
if (matchItem.oreName() != null) {
273270
var list = OreDictionary.getOres(matchItem.oreName(), false);

src/main/java/com/circulation/only_one_item/util/RecipeSignature.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,14 +187,19 @@ public void rebuildRecipe() {
187187
Ingredient.EMPTY
188188
: new OreIngredient(od));
189189
} else if (input instanceof Multiset<?> items) {
190-
inputs.add(Ingredient.fromStacks(items.stream()
191-
.map(ii -> {
192-
if (ii instanceof SimpleItem s) {
193-
return s.getItemStack(1);
194-
}
195-
return ItemStack.EMPTY;
196-
})
197-
.toArray(ItemStack[]::new)));
190+
inputs.add(
191+
Ingredient
192+
.fromStacks(
193+
items.stream()
194+
.map(ii -> {
195+
if (ii instanceof SimpleItem s) {
196+
return s.getItemStack(1);
197+
}
198+
return ItemStack.EMPTY;
199+
})
200+
.toArray(ItemStack[]::new)
201+
)
202+
);
198203
}
199204
}
200205
if (isEmpty(inputs)) {
@@ -249,4 +254,4 @@ public String toString() {
249254
return outputSignature.toString() + inputSignatures + shaped;
250255
}
251256

252-
}
257+
}

0 commit comments

Comments
 (0)