From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Mon, 27 Mar 2023 10:20:00 -0700 Subject: [PATCH] Add Structure check API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 8b4b4017f9874a153c27a96a7df1a966c5bdf4f3..2536a37ab9e5a7aa7373b1880f55cdb8c32a6f53 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -237,6 +237,20 @@ public class CraftWorld extends CraftRegionAccessor implements World { }; } // Paper end + // Paper start - structure check API + @Override + public boolean hasStructureAt(final io.papermc.paper.math.Position position, final Structure structure) { + net.minecraft.world.level.levelgen.structure.Structure vanillaStructure = this.world.registryAccess() + .registryOrThrow(net.minecraft.core.registries.Registries.STRUCTURE) + .getHolder(CraftNamespacedKey.toMinecraft(structure.getStructureType().getKey())) + .orElseThrow() + .value(); + return this.world.structureManager().getStructureWithPieceAt( + io.papermc.paper.util.MCUtil.toBlockPos(position), + vanillaStructure + ).isValid(); + } + // Paper end private static final Random rand = new Random();