diff --git a/build-data/paper.at b/build-data/paper.at index cd262bbbf9..d84006cd15 100644 --- a/build-data/paper.at +++ b/build-data/paper.at @@ -512,6 +512,7 @@ public net.minecraft.world.flag.FeatureFlagRegistry names public net.minecraft.world.food.FoodData exhaustionLevel public net.minecraft.world.food.FoodData foodLevel public net.minecraft.world.food.FoodData saturationLevel +public net.minecraft.world.inventory.AbstractContainerMenu menuType public net.minecraft.world.inventory.AbstractContainerMenu quickcraftSlots public net.minecraft.world.inventory.AbstractContainerMenu quickcraftStatus public net.minecraft.world.inventory.AbstractContainerMenu quickcraftType diff --git a/paper-api/src/main/java/org/bukkit/inventory/InventoryView.java b/paper-api/src/main/java/org/bukkit/inventory/InventoryView.java index 46f5f50171..5c5906421d 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/InventoryView.java +++ b/paper-api/src/main/java/org/bukkit/inventory/InventoryView.java @@ -2,6 +2,7 @@ package org.bukkit.inventory; import org.bukkit.entity.HumanEntity; import org.bukkit.event.inventory.InventoryType; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -321,4 +322,16 @@ public interface InventoryView { */ @Deprecated(since = "1.21.1") // Paper public void setTitle(@NotNull String title); + + /** + * Gets the menu type of the inventory view if applicable. + *
+ * Some inventory types do not support a menu type. In such cases, this method
+ * returns null. This typically applies to inventories belonging to entities
+ * like players or animals (e.g., a horse).
+ *
+ * @return the menu type of the inventory view or null if not applicable
+ */
+ @ApiStatus.Experimental
+ @Nullable MenuType getMenuType();
}
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
index 1ce328bed5..c00ddfe414 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java
@@ -95,6 +95,11 @@ public class CraftContainer extends AbstractContainerMenu {
this.title = title;
}
+ @Override
+ public MenuType getMenuType() {
+ return CraftMenuType.minecraftToBukkit(getNotchInventoryType(inventory));
+ }
+
}, player, id);
}
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
index e9fd57b9e1..5039d87d7f 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryView.java
@@ -94,6 +94,12 @@ public class CraftInventoryView