mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 03:17:36 +01:00
Option to prevent data components copy in smithing recipes
This commit is contained in:
parent
ec4a7e5d87
commit
c8e36cb205
@ -14,6 +14,7 @@ public class SmithingRecipe implements Recipe, Keyed {
|
||||
private final ItemStack result;
|
||||
private final RecipeChoice base;
|
||||
private final RecipeChoice addition;
|
||||
private final boolean copyDataComponents; // Paper
|
||||
|
||||
/**
|
||||
* Create a smithing recipe to produce the specified result ItemStack.
|
||||
@ -29,6 +30,23 @@ public class SmithingRecipe implements Recipe, Keyed {
|
||||
*/
|
||||
@Deprecated(since = "1.20.1")
|
||||
public SmithingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @Nullable RecipeChoice base, @Nullable RecipeChoice addition) {
|
||||
// Paper start
|
||||
this(key, result, base, addition, true);
|
||||
}
|
||||
/**
|
||||
* Create a smithing recipe to produce the specified result ItemStack.
|
||||
*
|
||||
* @param key The unique recipe key
|
||||
* @param result The item you want the recipe to create.
|
||||
* @param base The base ingredient
|
||||
* @param addition The addition ingredient
|
||||
* @param copyDataComponents whether to copy the data components from the input base item to the output
|
||||
* @deprecated use {@link SmithingTrimRecipe} or {@link SmithingTransformRecipe}
|
||||
*/
|
||||
@Deprecated
|
||||
public SmithingRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @Nullable RecipeChoice base, @Nullable RecipeChoice addition, boolean copyDataComponents) {
|
||||
this.copyDataComponents = copyDataComponents;
|
||||
// Paper end
|
||||
this.key = key;
|
||||
this.result = result;
|
||||
this.base = base;
|
||||
@ -66,4 +84,26 @@ public class SmithingRecipe implements Recipe, Keyed {
|
||||
public NamespacedKey getKey() {
|
||||
return this.key;
|
||||
}
|
||||
|
||||
// Paper start
|
||||
/**
|
||||
* Whether to copy the NBT of the input base item to the output.
|
||||
*
|
||||
* @return true to copy the NBT (default for vanilla smithing recipes)
|
||||
* @apiNote use {@link #willCopyDataComponents()}
|
||||
*/
|
||||
@org.jetbrains.annotations.ApiStatus.Obsolete(since = "1.20.5")
|
||||
public boolean willCopyNbt() {
|
||||
return this.willCopyDataComponents();
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether to copy the data components of the input base item to the output.
|
||||
*
|
||||
* @return true to copy the data components (default for vanilla smithing recipes)
|
||||
*/
|
||||
public boolean willCopyDataComponents() {
|
||||
return this.copyDataComponents;
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
|
@ -24,6 +24,22 @@ public class SmithingTransformRecipe extends SmithingRecipe {
|
||||
super(key, result, base, addition);
|
||||
this.template = template;
|
||||
}
|
||||
// Paper start
|
||||
/**
|
||||
* Create a smithing recipe to produce the specified result ItemStack.
|
||||
*
|
||||
* @param key The unique recipe key
|
||||
* @param result The item you want the recipe to create.
|
||||
* @param template The template item.
|
||||
* @param base The base ingredient
|
||||
* @param addition The addition ingredient
|
||||
* @param copyDataComponents whether to copy the data components from the input base item to the output
|
||||
*/
|
||||
public SmithingTransformRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result, @Nullable RecipeChoice template, @Nullable RecipeChoice base, @Nullable RecipeChoice addition, boolean copyDataComponents) {
|
||||
super(key, result, base, addition, copyDataComponents);
|
||||
this.template = template;
|
||||
}
|
||||
// Paper end
|
||||
|
||||
/**
|
||||
* Get the template recipe item.
|
||||
|
@ -24,6 +24,21 @@ public class SmithingTrimRecipe extends SmithingRecipe implements ComplexRecipe
|
||||
super(key, new ItemStack(Material.AIR), base, addition);
|
||||
this.template = template;
|
||||
}
|
||||
// Paper start
|
||||
/**
|
||||
* Create a smithing recipe to produce the specified result ItemStack.
|
||||
*
|
||||
* @param key The unique recipe key
|
||||
* @param template The template item.
|
||||
* @param base The base ingredient
|
||||
* @param addition The addition ingredient
|
||||
* @param copyDataComponents whether to copy the data components from the input base item to the output
|
||||
*/
|
||||
public SmithingTrimRecipe(@NotNull NamespacedKey key, @NotNull RecipeChoice template, @NotNull RecipeChoice base, @NotNull RecipeChoice addition, boolean copyDataComponents) {
|
||||
super(key, new ItemStack(Material.AIR), base, addition, copyDataComponents);
|
||||
this.template = template;
|
||||
}
|
||||
// Paper end
|
||||
|
||||
/**
|
||||
* Get the template recipe item.
|
||||
|
Loading…
Reference in New Issue
Block a user