From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Nahuel Date: Sat, 9 Jan 2021 15:36:59 +0100 Subject: [PATCH] Add StructureGenerateEvent This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Co-authored-by: Mariell Hoversholm diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java index 316287af6e405ff224636255c2964f46003215ce..ff98335155c86803b98d8c67f0b40b8d65214890 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -287,6 +287,14 @@ public abstract class ChunkGenerator { if (structuresettingsfeature != null) { StructureStart structurestart1 = structurefeature.a(iregistrycustom, this, this.b, definedstructuremanager, i, chunkcoordintpair, biomebase, j, structuresettingsfeature); + // Purpur start + if (new net.pl3x.purpur.event.world.StructureGenerateEvent( + structuremanager.getWorld().getWorld(), + org.bukkit.StructureType.getStructureTypes().get(structurefeature.getFeature().getRegistryKey().toLowerCase()), + chunkcoordintpair.x, + chunkcoordintpair.z + ).callEvent()) + // Purpur end structuremanager.a(SectionPosition.a(ichunkaccess.getPos(), 0), structurefeature.d, structurestart1, ichunkaccess); } diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/StructureFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/StructureFeature.java index 839cc598e6dd87dd77940b5b6dcb8ddcd0b3271e..2d653ba2582c39ac1c7f396c50a7a974aa02a07e 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/StructureFeature.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/StructureFeature.java @@ -23,7 +23,7 @@ public class StructureFeature>> b = RegistryFileCodec.a(IRegistry.av, StructureFeature.a); public static final Codec>>> c = RegistryFileCodec.b(IRegistry.av, StructureFeature.a); - public final F d; + public final F d; public final F getFeature() { return this.d; } // Purpur - OBFHELPER public final FC e; public StructureFeature(F f0, FC fc) { diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/StructureGenerator.java b/src/main/java/net/minecraft/world/level/levelgen/feature/StructureGenerator.java index e5c22e92a305050df0eae2da53217ea2c3249e03..8dffba8abfbda029c8a35ec7262faabd9f76c904 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/feature/StructureGenerator.java +++ b/src/main/java/net/minecraft/world/level/levelgen/feature/StructureGenerator.java @@ -277,6 +277,7 @@ public abstract class StructureGenerator public abstract StructureGenerator.a a(); + public final String getRegistryKey() { return this.i(); } // Purpur - OBFHELPER public String i() { return (String) StructureGenerator.a.inverse().get(this); }