mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
45 lines
1.8 KiB
Diff
45 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
|
Date: Fri, 2 Oct 2020 17:43:24 -0500
|
|
Subject: [PATCH] Add predicate to recipe's ExactChoice ingredient
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/inventory/RecipeChoice.java b/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
|
index f1aa67997f904953742e8895e49341c2f73d44a2..993cf7995514fb0ef3c4388bb3ce49c3187ab251 100644
|
|
--- a/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
|
+++ b/src/main/java/org/bukkit/inventory/RecipeChoice.java
|
|
@@ -191,6 +191,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
|
public static class ExactChoice implements RecipeChoice {
|
|
|
|
private List<ItemStack> choices;
|
|
+ private Predicate<ItemStack> predicate; // Purpur
|
|
|
|
public ExactChoice(@NotNull ItemStack stack) {
|
|
this(Arrays.asList(stack));
|
|
@@ -241,6 +242,7 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
|
|
|
@Override
|
|
public boolean test(@NotNull ItemStack t) {
|
|
+ if (predicate != null) return predicate.test(t); // Purpur
|
|
for (ItemStack match : choices) {
|
|
if (t.isSimilar(match)) {
|
|
return true;
|
|
@@ -250,6 +252,17 @@ public interface RecipeChoice extends Predicate<ItemStack>, Cloneable {
|
|
return false;
|
|
}
|
|
|
|
+ // Purpur start
|
|
+ @org.jetbrains.annotations.Nullable
|
|
+ public Predicate<ItemStack> getPredicate() {
|
|
+ return predicate;
|
|
+ }
|
|
+
|
|
+ public void setPredicate(@org.jetbrains.annotations.Nullable Predicate<ItemStack> predicate) {
|
|
+ this.predicate = predicate;
|
|
+ }
|
|
+ // Purpur end
|
|
+
|
|
@Override
|
|
public int hashCode() {
|
|
int hash = 7;
|