From 2df6318ebf44e77b30b22d4246433e06ce98a609 Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot <noreply+git-bukkit@papermc.io> Date: Thu, 9 Nov 2023 06:43:30 +1100 Subject: [PATCH] #927: Add PlayerRecipeBookSettingsChangeEvent By: Jishuna <joshl5324@gmail.com> --- .../PlayerRecipeBookSettingsChangeEvent.java | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 paper-api/src/main/java/org/bukkit/event/player/PlayerRecipeBookSettingsChangeEvent.java diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerRecipeBookSettingsChangeEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerRecipeBookSettingsChangeEvent.java new file mode 100644 index 0000000000..249f670f7d --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerRecipeBookSettingsChangeEvent.java @@ -0,0 +1,87 @@ +package org.bukkit.event.player; + +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + +/** + * Called when a player changes recipe book settings. + */ +public class PlayerRecipeBookSettingsChangeEvent extends PlayerEvent { + + private static final HandlerList handlers = new HandlerList(); + private final RecipeBookType recipeBookType; + private final boolean open; + private final boolean filtering; + + public PlayerRecipeBookSettingsChangeEvent(@NotNull final Player player, @NotNull final RecipeBookType recipeBookType, final boolean open, final boolean filtering) { + super(player); + this.recipeBookType = recipeBookType; + this.open = open; + this.filtering = filtering; + } + + /** + * Gets the type of recipe book the player is changing the settings for. + * + * @return the type of recipe book + */ + @NotNull + public RecipeBookType getRecipeBookType() { + return recipeBookType; + } + + /** + * Checks if the recipe book is being opened or closed. + * + * @return true if opening + */ + public boolean isOpen() { + return open; + } + + /** + * Checks if the recipe book filter is being enabled or disabled. + * + * @return true if enabling + */ + public boolean isFiltering() { + return filtering; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } + + /** + * Enum representing the various types of recipe book. + * <br> + * Different types of recipe book are shown in different GUIs. + */ + public enum RecipeBookType { + + /** + * Recipe book seen in crafting table and player inventory. + */ + CRAFTING, + /** + * Recipe book seen in furnace. + */ + FURNACE, + /** + * Recipe book seen in blast furnace. + */ + BLAST_FURNACE, + /** + * Recipe book seen in smoker. + */ + SMOKER; + } +}