diff --git a/patches/api/0457-CropBlock-API.patch b/patches/api/0457-CropBlock-API.patch new file mode 100644 index 0000000000000..bd4f1a291bba5 --- /dev/null +++ b/patches/api/0457-CropBlock-API.patch @@ -0,0 +1,29 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: leguan +Date: Sun, 14 Jan 2024 21:26:35 +0100 +Subject: [PATCH] CropBlock API + + +diff --git a/src/main/java/io/papermc/paper/block/CropBlock.java b/src/main/java/io/papermc/paper/block/CropBlock.java +new file mode 100644 +index 0000000000000000000000000000000000000000..07f982e6f5019ae7f15bdad0dc9602ca67bb3c5b +--- /dev/null ++++ b/src/main/java/io/papermc/paper/block/CropBlock.java +@@ -0,0 +1,17 @@ ++package io.papermc.paper.block; ++ ++import org.bukkit.Material; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Represents a CropBlock. ++ */ ++public interface CropBlock { ++ ++ /** ++ * Gets the seed of the planted block. E.g. WHEAT_SEEDS for WHEAT. ++ * @return The seed of the planted block. ++ */ ++ Material getBaseSeedId(); ++ ++} diff --git a/patches/server/1062-CropBlock-API.patch b/patches/server/1062-CropBlock-API.patch new file mode 100644 index 0000000000000..7f80016e9438a --- /dev/null +++ b/patches/server/1062-CropBlock-API.patch @@ -0,0 +1,131 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: leguan +Date: Sun, 14 Jan 2024 21:26:15 +0100 +Subject: [PATCH] CropBlock API + + +diff --git a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java +index 90b4883f3e9748212ae7d6a09781d846a88c5abf..39a42bd0e02ac9d7ee109344f786156e97d52611 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java +@@ -3,7 +3,7 @@ + */ + package org.bukkit.craftbukkit.block.impl; + +-public final class CraftBeetroot extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { ++public final class CraftBeetroot extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable, io.papermc.paper.block.CropBlock { // Paper - CropBlock API + + public CraftBeetroot() { + super(); +@@ -31,4 +31,11 @@ public final class CraftBeetroot extends org.bukkit.craftbukkit.block.data.Craft + public int getMaximumAge() { + return getMax(CraftBeetroot.AGE); + } ++ ++ // Paper start - CropBlock API ++ @Override ++ public org.bukkit.Material getBaseSeedId() { ++ return org.bukkit.craftbukkit.inventory.CraftItemStack.asNewCraftStack(((net.minecraft.world.level.block.CropBlock) getState().getBlock()).getBaseSeedId().asItem()).getType(); ++ } ++ // Paper end - CropBlock API + } +diff --git a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCarrots.java b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCarrots.java +index 270416eb51c4aac676969bf51d8a719f2d5da0ac..7bd8048c404cd8c45747648b9013f302f37598e3 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCarrots.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCarrots.java +@@ -3,7 +3,7 @@ + */ + package org.bukkit.craftbukkit.block.impl; + +-public final class CraftCarrots extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { ++public final class CraftCarrots extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable, io.papermc.paper.block.CropBlock { // Paper - CropBlock API + + public CraftCarrots() { + super(); +@@ -31,4 +31,11 @@ public final class CraftCarrots extends org.bukkit.craftbukkit.block.data.CraftB + public int getMaximumAge() { + return getMax(CraftCarrots.AGE); + } ++ ++ // Paper start - CropBlock API ++ @Override ++ public org.bukkit.Material getBaseSeedId() { ++ return org.bukkit.craftbukkit.inventory.CraftItemStack.asNewCraftStack(((net.minecraft.world.level.block.CropBlock) getState().getBlock()).getBaseSeedId().asItem()).getType(); ++ } ++ // Paper end - CropBlock API + } +diff --git a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrops.java b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrops.java +index d186de7098a63a8667c39ff1749f65d6ab82e4e8..d100988b197dd5ee258e46245b17bc83772d76b7 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrops.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrops.java +@@ -3,7 +3,7 @@ + */ + package org.bukkit.craftbukkit.block.impl; + +-public final class CraftCrops extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { ++public final class CraftCrops extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable, io.papermc.paper.block.CropBlock { // Paper - CropBlock API + + public CraftCrops() { + super(); +@@ -31,4 +31,11 @@ public final class CraftCrops extends org.bukkit.craftbukkit.block.data.CraftBlo + public int getMaximumAge() { + return getMax(CraftCrops.AGE); + } ++ ++ // Paper start - CropBlock API ++ @Override ++ public org.bukkit.Material getBaseSeedId() { ++ return org.bukkit.craftbukkit.inventory.CraftItemStack.asNewCraftStack(((net.minecraft.world.level.block.CropBlock) getState().getBlock()).getBaseSeedId().asItem()).getType(); ++ } ++ // Paper end - CropBlock API + } +diff --git a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPotatoes.java b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPotatoes.java +index ee3faab6b3d2371579dfdb619c1aae2109e22211..f362b691e06d0c536c1e8b86fb6add21a5dd2122 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPotatoes.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPotatoes.java +@@ -3,7 +3,7 @@ + */ + package org.bukkit.craftbukkit.block.impl; + +-public final class CraftPotatoes extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { ++public final class CraftPotatoes extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable, io.papermc.paper.block.CropBlock { // Paper - CropBlock API + + public CraftPotatoes() { + super(); +@@ -31,4 +31,11 @@ public final class CraftPotatoes extends org.bukkit.craftbukkit.block.data.Craft + public int getMaximumAge() { + return getMax(CraftPotatoes.AGE); + } ++ ++ // Paper start - CropBlock API ++ @Override ++ public org.bukkit.Material getBaseSeedId() { ++ return org.bukkit.craftbukkit.inventory.CraftItemStack.asNewCraftStack(((net.minecraft.world.level.block.CropBlock) getState().getBlock()).getBaseSeedId().asItem()).getType(); ++ } ++ // Paper end - CropBlock API + } +diff --git a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java +index 2a4ade3518b60ea97d6dbb6c66cf2f40aaf4ab7d..d7728bb55d42dbfb5831f2235a53b448d619a173 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java +@@ -3,7 +3,7 @@ + */ + package org.bukkit.craftbukkit.block.impl; + +-public final class CraftTorchflowerCrop extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { ++public final class CraftTorchflowerCrop extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable, io.papermc.paper.block.CropBlock { // Paper - CropBlock API + + public CraftTorchflowerCrop() { + super(); +@@ -31,4 +31,11 @@ public final class CraftTorchflowerCrop extends org.bukkit.craftbukkit.block.dat + public int getMaximumAge() { + return getMax(CraftTorchflowerCrop.AGE); + } ++ ++ // Paper start - CropBlock API ++ @Override ++ public org.bukkit.Material getBaseSeedId() { ++ return org.bukkit.craftbukkit.inventory.CraftItemStack.asNewCraftStack(((net.minecraft.world.level.block.CropBlock) getState().getBlock()).getBaseSeedId().asItem()).getType(); ++ } ++ // Paper end - CropBlock API + }