aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2021-04-23 13:57:13 -0700
committerGitHub <[email protected]>2021-04-23 22:57:13 +0200
commit454a4c78ee0bc09e461875d710965fa2a10cc962 (patch)
treecd95241fef4cefa0a5c09b6cab452691d128bac5 /Spigot-Server-Patches
parent869e023048bbd1d3abab61dc8c00f398afa564fd (diff)
downloadPaper-454a4c78ee0bc09e461875d710965fa2a10cc962.tar.gz
Paper-454a4c78ee0bc09e461875d710965fa2a10cc962.zip
More World API (#3850)
Diffstat (limited to 'Spigot-Server-Patches')
-rw-r--r--Spigot-Server-Patches/0714-More-World-API.patch146
1 files changed, 146 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0714-More-World-API.patch b/Spigot-Server-Patches/0714-More-World-API.patch
new file mode 100644
index 0000000000..88a8d987c6
--- /dev/null
+++ b/Spigot-Server-Patches/0714-More-World-API.patch
@@ -0,0 +1,146 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Tue, 7 Jul 2020 10:52:34 -0700
+Subject: [PATCH] More World API
+
+
+diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
+index bea183ba796f2acf5465ad91e4e7fe3e73c9da74..47fbb8df04b2b77e10314666e87eaef621cffb3b 100644
+--- a/src/main/java/net/minecraft/server/level/WorldServer.java
++++ b/src/main/java/net/minecraft/server/level/WorldServer.java
+@@ -1870,6 +1870,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
+ return !this.worldDataServer.getGeneratorSettings().shouldGenerateMapFeatures() ? null : this.getChunkProvider().getChunkGenerator().findNearestMapFeature(this, structuregenerator, blockposition, i, flag); // CraftBukkit
+ }
+
++ public BlockPosition getNearestBiome(BiomeBase biomeBase, BlockPosition blockPosition, int radius, int step) { return this.a(biomeBase, blockPosition, radius, step); } // Paper - OBFHELPER
+ @Nullable
+ public BlockPosition a(BiomeBase biomebase, BlockPosition blockposition, int i, int j) {
+ return this.getChunkProvider().getChunkGenerator().getWorldChunkManager().a(blockposition.getX(), blockposition.getY(), blockposition.getZ(), i, j, (biomebase1) -> {
+@@ -1892,6 +1893,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
+ return this.savingDisabled;
+ }
+
++ public IRegistryCustom getWorldCustomRegistry() { return r(); } // Paper - OBFHELPER
+ @Override
+ public IRegistryCustom r() {
+ return this.server.getCustomRegistry();
+diff --git a/src/main/java/net/minecraft/world/level/dimension/DimensionManager.java b/src/main/java/net/minecraft/world/level/dimension/DimensionManager.java
+index 72bc1a1e1c2153550313e93cf7df901a514a9bef..be6d63bcf15027e02a0bfbee0792c24f2300b27e 100644
+--- a/src/main/java/net/minecraft/world/level/dimension/DimensionManager.java
++++ b/src/main/java/net/minecraft/world/level/dimension/DimensionManager.java
+@@ -142,10 +142,10 @@ public class DimensionManager {
+ public static IRegistryCustom.Dimension a(IRegistryCustom.Dimension iregistrycustom_dimension) {
+ IRegistryWritable<DimensionManager> iregistrywritable = iregistrycustom_dimension.b(IRegistry.K);
+
+- iregistrywritable.a(DimensionManager.OVERWORLD, (Object) DimensionManager.OVERWORLD_IMPL, Lifecycle.stable());
+- iregistrywritable.a(DimensionManager.l, (Object) DimensionManager.m, Lifecycle.stable());
+- iregistrywritable.a(DimensionManager.THE_NETHER, (Object) DimensionManager.THE_NETHER_IMPL, Lifecycle.stable());
+- iregistrywritable.a(DimensionManager.THE_END, (Object) DimensionManager.THE_END_IMPL, Lifecycle.stable());
++ iregistrywritable.a(DimensionManager.OVERWORLD, DimensionManager.OVERWORLD_IMPL, Lifecycle.stable()); // Paper - decompile fix
++ iregistrywritable.a(DimensionManager.l, DimensionManager.m, Lifecycle.stable()); // Paper - decompile fix
++ iregistrywritable.a(DimensionManager.THE_NETHER, DimensionManager.THE_NETHER_IMPL, Lifecycle.stable()); // Paper - decompile fix
++ iregistrywritable.a(DimensionManager.THE_END, DimensionManager.THE_END_IMPL, Lifecycle.stable()); // Paper - decompile fix
+ return iregistrycustom_dimension;
+ }
+
+@@ -164,10 +164,10 @@ public class DimensionManager {
+ public static RegistryMaterials<WorldDimension> a(IRegistry<DimensionManager> iregistry, IRegistry<BiomeBase> iregistry1, IRegistry<GeneratorSettingBase> iregistry2, long i) {
+ RegistryMaterials<WorldDimension> registrymaterials = new RegistryMaterials<>(IRegistry.M, Lifecycle.experimental());
+
+- registrymaterials.a(WorldDimension.THE_NETHER, (Object) (new WorldDimension(() -> {
++ registrymaterials.a(WorldDimension.THE_NETHER, (new WorldDimension(() -> { // Paper - decompile fix
+ return (DimensionManager) iregistry.d(DimensionManager.THE_NETHER);
+ }, b(iregistry1, iregistry2, i))), Lifecycle.stable());
+- registrymaterials.a(WorldDimension.THE_END, (Object) (new WorldDimension(() -> {
++ registrymaterials.a(WorldDimension.THE_END, (new WorldDimension(() -> { // Paper - decompile fix
+ return (DimensionManager) iregistry.d(DimensionManager.THE_END);
+ }, a(iregistry1, iregistry2, i))), Lifecycle.stable());
+ return registrymaterials;
+@@ -256,6 +256,7 @@ public class DimensionManager {
+ return this.E[i];
+ }
+
++ public Tag<Block> getInfiniburnTag() { return o(); } // Paper - OBFHELPER
+ public Tag<Block> o() {
+ Tag<Block> tag = TagsBlock.a().a(this.infiniburn);
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+index 6c2a4607028c61e4a01ff200d301878e2d63b456..80de9f687d9acd7425e7c8a453c2759450869497 100644
+--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
++++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+@@ -2533,6 +2533,75 @@ public class CraftWorld implements World {
+ return (nearest == null) ? null : new Location(this, nearest.getX(), nearest.getY(), nearest.getZ());
+ }
+
++ // Paper start
++ @Override
++ public Location locateNearestBiome(Location origin, Biome biome, int radius) {
++ return this.locateNearestBiome(origin, biome, radius, 8);
++ }
++
++ @Override
++ public Location locateNearestBiome(Location origin, Biome biome, int radius, int step) {
++ BlockPosition originPos = new BlockPosition(origin.getX(), origin.getY(), origin.getZ());
++ BlockPosition nearest = getHandle().getNearestBiome(CraftBlock.biomeToBiomeBase(getHandle().getWorldCustomRegistry().b(IRegistry.ay), biome), originPos, radius, step);
++ return (nearest == null) ? null : new Location(this, nearest.getX(), nearest.getY(), nearest.getZ());
++ }
++
++ @Override
++ public boolean isUltrawarm() {
++ return getHandle().getDimensionManager().isNether();
++ }
++
++ @Override
++ public boolean isNatural() {
++ return getHandle().getDimensionManager().isNatural();
++ }
++
++ @Override
++ public double getCoordinateScale() {
++ return getHandle().getDimensionManager().getCoordinateScale();
++ }
++
++ @Override
++ public boolean hasSkylight() {
++ return getHandle().getDimensionManager().hasSkyLight();
++ }
++
++ @Override
++ public boolean hasBedrockCeiling() {
++ return getHandle().getDimensionManager().hasSkyLight();
++ }
++
++ @Override
++ public boolean isPiglinSafe() {
++ return getHandle().getDimensionManager().isPiglinSafe();
++ }
++
++ @Override
++ public boolean doesBedWork() {
++ return getHandle().getDimensionManager().isBedWorks();
++ }
++
++ @Override
++ public boolean doesRespawnAnchorWork() {
++ return getHandle().getDimensionManager().isRespawnAnchorWorks();
++ }
++
++ @Override
++ public boolean hasRaids() {
++ return getHandle().getDimensionManager().hasRaids();
++ }
++
++ @Override
++ public boolean isFixedTime() {
++ return getHandle().getDimensionManager().isFixedTime();
++ }
++
++ @Override
++ public Collection<org.bukkit.Material> getInfiniburn() {
++ return com.google.common.collect.Sets.newHashSet(com.google.common.collect.Iterators.transform(getHandle().getDimensionManager().getInfiniburnTag().getTagged().iterator(), CraftMagicNumbers::getMaterial));
++ }
++ // Paper end
++
+ @Override
+ public Raid locateNearestRaid(Location location, int radius) {
+ Validate.notNull(location, "Location cannot be null");