From 63ec61fc4a27fde7a5ca63062b7cf5d39d2524a5 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Fri, 27 Jul 2018 19:16:12 +1000 Subject: [PATCH] SPIGOT-4160: StructureGrowEvent not triggering for giant trees By: md_5 --- .../WorldGenMegaTreeProvider.patch | 26 +++++++++++++++++++ .../nms-patches/WorldGenTreeProvider.patch | 6 +---- 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 paper-server/nms-patches/WorldGenMegaTreeProvider.patch diff --git a/paper-server/nms-patches/WorldGenMegaTreeProvider.patch b/paper-server/nms-patches/WorldGenMegaTreeProvider.patch new file mode 100644 index 0000000000..66577618f3 --- /dev/null +++ b/paper-server/nms-patches/WorldGenMegaTreeProvider.patch @@ -0,0 +1,26 @@ +--- a/net/minecraft/server/WorldGenMegaTreeProvider.java ++++ b/net/minecraft/server/WorldGenMegaTreeProvider.java +@@ -2,6 +2,7 @@ + + import java.util.Random; + import javax.annotation.Nullable; ++import org.bukkit.TreeType; // CraftBukkit + + public abstract class WorldGenMegaTreeProvider extends WorldGenTreeProvider { + +@@ -28,6 +29,15 @@ + if (worldgentreeabstract == null) { + return false; + } else { ++ // CraftBukkit start ++ if (worldgentreeabstract instanceof WorldGenJungleTree) { ++ BlockSapling.treeType = TreeType.JUNGLE; ++ } else if (worldgentreeabstract instanceof WorldGenMegaTree) { ++ BlockSapling.treeType = TreeType.MEGA_REDWOOD; ++ } else { ++ throw new IllegalArgumentException("Unknown tree generator " + worldgentreeabstract); ++ } ++ // CraftBukkit end + IBlockData iblockdata1 = Blocks.AIR.getBlockData(); + + generatoraccess.setTypeAndData(blockposition.a(i, 0, j), iblockdata1, 4); diff --git a/paper-server/nms-patches/WorldGenTreeProvider.patch b/paper-server/nms-patches/WorldGenTreeProvider.patch index c8da90acfd..41d9998c33 100644 --- a/paper-server/nms-patches/WorldGenTreeProvider.patch +++ b/paper-server/nms-patches/WorldGenTreeProvider.patch @@ -8,7 +8,7 @@ public abstract class WorldGenTreeProvider { -@@ -16,6 +17,29 @@ +@@ -16,6 +17,25 @@ if (worldgentreeabstract == null) { return false; } else { @@ -21,10 +21,6 @@ + BlockSapling.treeType = TreeType.BIRCH; + } else if (worldgentreeabstract instanceof WorldGenForestTree) { + BlockSapling.treeType = TreeType.DARK_OAK; -+ } else if (worldgentreeabstract instanceof WorldGenJungleTree) { -+ BlockSapling.treeType = TreeType.JUNGLE; -+ } else if (worldgentreeabstract instanceof WorldGenMegaTree) { -+ BlockSapling.treeType = TreeType.MEGA_REDWOOD; + } else if (worldgentreeabstract instanceof WorldGenTaiga1) { + BlockSapling.treeType = TreeType.REDWOOD; + } else if (worldgentreeabstract instanceof WorldGenTaiga2) {