Paper/patches/api/0375-Add-NamespacedKey-biome-methods.patch
Jake Potrebic e105354330
Fix incorrect new blockdata in EntityChangeBlockEvent (#9445)
Also fixes EntityBreakDoorEvent not having the correct 'to' block data

Also standardizes how to handle EntityChangeBlockEvent before a removeBlock or destroyBlock
call. Always use 'state.getFluidState().createLegacyBlock()' to get the new state instead of
just using the 'air' state.
2023-07-07 10:25:36 -07:00

45 lines
1.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Josh Roy <10731363+JRoy@users.noreply.github.com>
Date: Sun, 14 Aug 2022 12:22:54 -0400
Subject: [PATCH] Add NamespacedKey biome methods
Co-authored-by: Thonk <30448663+ExcessiveAmountsOfZombies@users.noreply.github.com>
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index fed8f959f87f82a7f8fb8afe770f5cb73fcf27b2..c661eab343ae76488de701630424e2d589f44fc0 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -222,5 +222,32 @@ public interface UnsafeValues {
* @throws IllegalArgumentException if {@link Material#isBlock()} is false
*/
boolean isCollidable(@org.jetbrains.annotations.NotNull Material material);
+
+ /**
+ * Gets the {@link NamespacedKey} for the biome at the given location.
+ *
+ * @param accessor The {@link RegionAccessor} of the provided coordinates
+ * @param x X-coordinate of the block
+ * @param y Y-coordinate of the block
+ * @param z Z-coordinate of the block
+ * @return the biome's {@link NamespacedKey}
+ */
+ @org.jetbrains.annotations.NotNull
+ NamespacedKey getBiomeKey(RegionAccessor accessor, int x, int y, int z);
+
+ /**
+ * Sets the biome at the given location to a biome registered
+ * to the given {@link NamespacedKey}. If no biome by the given
+ * {@link NamespacedKey} exists, an {@link IllegalStateException}
+ * will be thrown.
+ *
+ * @param accessor The {@link RegionAccessor} of the provided coordinates
+ * @param x X-coordinate of the block
+ * @param y Y-coordinate of the block
+ * @param z Z-coordinate of the block
+ * @param biomeKey Biome key
+ * @throws IllegalStateException if no biome by the given key is registered.
+ */
+ void setBiomeKey(RegionAccessor accessor, int x, int y, int z, NamespacedKey biomeKey);
// Paper end
}