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 c1642dd60531494d173ac08aa90791143f5bd99a..395da7e8ca0971610f06bf5b8357ef05f2247da6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -236,6 +236,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();