net.minestom.server.recipe.ShapelessRecipe Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of minestom-snapshots Show documentation
Show all versions of minestom-snapshots Show documentation
1.20.4 Lightweight Minecraft server
package net.minestom.server.recipe;
import net.minestom.server.item.ItemStack;
import net.minestom.server.network.packet.server.play.DeclareRecipesPacket;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
public abstract class ShapelessRecipe extends Recipe {
private String group;
private RecipeCategory.Crafting category;
private final List ingredients;
private ItemStack result;
protected ShapelessRecipe(
@NotNull String recipeId,
@NotNull String group,
@NotNull RecipeCategory.Crafting category,
@Nullable List ingredients,
@NotNull ItemStack result
) {
super(RecipeType.SHAPELESS, recipeId);
this.group = group;
this.category = category;
this.ingredients = Objects.requireNonNullElseGet(ingredients, LinkedList::new);
this.result = result;
}
@NotNull
public String getGroup() {
return group;
}
public void setGroup(@NotNull String group) {
this.group = group;
}
@NotNull
public RecipeCategory.Crafting getCategory() {
return category;
}
public void setCategory(@NotNull RecipeCategory.Crafting category) {
this.category = category;
}
public void addIngredient(DeclareRecipesPacket.Ingredient ingredient) {
ingredients.add(ingredient);
}
@NotNull
public List getIngredients() {
return ingredients;
}
@NotNull
public ItemStack getResult() {
return result;
}
public void setResult(@NotNull ItemStack result) {
this.result = result;
}
}