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 039efd0b8eb141de044668a5633f26eee238c2b0..4a62482b7c73728de8a94542e8978e836540b328 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();