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/server/ChunkGenerator.java b/src/main/java/net/minecraft/server/ChunkGenerator.java index 9a6fef215052f9c513b23024968995c97863a453..a26616d479e79729cbf4838df90612f074a47a04 100644 --- a/src/main/java/net/minecraft/server/ChunkGenerator.java +++ b/src/main/java/net/minecraft/server/ChunkGenerator.java @@ -234,6 +234,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/server/StructureFeature.java b/src/main/java/net/minecraft/server/StructureFeature.java index 8e3c0c3783b767c2ba603b3b50200ac76a7fc33e..379665ae55e76afb03b20d1b81c57347af1137db 100644 --- a/src/main/java/net/minecraft/server/StructureFeature.java +++ b/src/main/java/net/minecraft/server/StructureFeature.java @@ -11,7 +11,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/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java index a62c87bceab2c9700a7b3925f208b0ffa2b9b393..8fc283f014783b76afda83097201bb7938a1f9fa 100644 --- a/src/main/java/net/minecraft/server/StructureGenerator.java +++ b/src/main/java/net/minecraft/server/StructureGenerator.java @@ -235,6 +235,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); }