From 21c5f961fad6ddfd3a9ace10c044d0de79c8bf7a Mon Sep 17 00:00:00 2001 From: Rutger Kok Date: Sun, 2 Sep 2018 10:04:00 +0200 Subject: [PATCH] Move classes implementing Bukkit/Minecraft API to a separate package These classes don't play nice with the @ParametersAreNonnullByDefault annotation (since the Bukkit/Minecraft code omits those annotations), so those classes had to be moved to a package that does not have that annotation. --- .../decoration/package-info.java | 5 ++- .../internal/BiomeGeneratorImpl.java | 5 +-- .../internal/WorldGeneratorApiImpl.java | 1 + .../internal/WorldGeneratorImpl.java | 1 + .../bukkitoverrides/CustomBiomeGrid.java | 25 +++++++++++++ .../DummyBukkitChunkGenerator.java | 6 ++-- .../InjectedChunkGenerator.java | 36 +++++-------------- .../bukkitoverrides/package-info.java | 6 ++++ .../internal/package-info.java | 3 ++ 9 files changed, 55 insertions(+), 33 deletions(-) create mode 100644 src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/CustomBiomeGrid.java rename src/main/java/nl/rutgerkok/worldgeneratorapi/internal/{ => bukkitoverrides}/DummyBukkitChunkGenerator.java (90%) rename src/main/java/nl/rutgerkok/worldgeneratorapi/internal/{ => bukkitoverrides}/InjectedChunkGenerator.java (86%) create mode 100644 src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/package-info.java diff --git a/src/main/java/nl/rutgerkok/worldgeneratorapi/decoration/package-info.java b/src/main/java/nl/rutgerkok/worldgeneratorapi/decoration/package-info.java index 477b824..48a1047 100644 --- a/src/main/java/nl/rutgerkok/worldgeneratorapi/decoration/package-info.java +++ b/src/main/java/nl/rutgerkok/worldgeneratorapi/decoration/package-info.java @@ -1,4 +1,7 @@ /** * Decorations are flowers, ores, trees and even villages strongholds. */ -package nl.rutgerkok.worldgeneratorapi.decoration; \ No newline at end of file +@ParametersAreNonnullByDefault +package nl.rutgerkok.worldgeneratorapi.decoration; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/BiomeGeneratorImpl.java b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/BiomeGeneratorImpl.java index b5def31..d24143f 100644 --- a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/BiomeGeneratorImpl.java +++ b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/BiomeGeneratorImpl.java @@ -7,13 +7,14 @@ import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock; import net.minecraft.server.v1_13_R2.BiomeBase; import net.minecraft.server.v1_13_R2.WorldChunkManager; + import nl.rutgerkok.worldgeneratorapi.BiomeGenerator; -final class BiomeGeneratorImpl implements BiomeGenerator { +public final class BiomeGeneratorImpl implements BiomeGenerator { private final WorldChunkManager internal; - BiomeGeneratorImpl(WorldChunkManager worldChunkManager) { + public BiomeGeneratorImpl(WorldChunkManager worldChunkManager) { internal = Objects.requireNonNull(worldChunkManager, "worldChunkManager"); } diff --git a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/WorldGeneratorApiImpl.java b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/WorldGeneratorApiImpl.java index 0ccee76..a65d501 100644 --- a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/WorldGeneratorApiImpl.java +++ b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/WorldGeneratorApiImpl.java @@ -18,6 +18,7 @@ import nl.rutgerkok.worldgeneratorapi.WorldGenerator; import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi; import nl.rutgerkok.worldgeneratorapi.WorldRef; import nl.rutgerkok.worldgeneratorapi.event.WorldGeneratorInitEvent; +import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.DummyBukkitChunkGenerator; import nl.rutgerkok.worldgeneratorapi.property.PropertyRegistry; public class WorldGeneratorApiImpl extends JavaPlugin implements WorldGeneratorApi, Listener { diff --git a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/WorldGeneratorImpl.java b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/WorldGeneratorImpl.java index 894f48b..dd43111 100644 --- a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/WorldGeneratorImpl.java +++ b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/WorldGeneratorImpl.java @@ -18,6 +18,7 @@ import nl.rutgerkok.worldgeneratorapi.BiomeGenerator; import nl.rutgerkok.worldgeneratorapi.WorldGenerator; import nl.rutgerkok.worldgeneratorapi.WorldRef; import nl.rutgerkok.worldgeneratorapi.decoration.WorldDecorator; +import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.InjectedChunkGenerator; final class WorldGeneratorImpl implements WorldGenerator { diff --git a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/CustomBiomeGrid.java b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/CustomBiomeGrid.java new file mode 100644 index 0000000..370cf8d --- /dev/null +++ b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/CustomBiomeGrid.java @@ -0,0 +1,25 @@ +package nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides; + +import org.bukkit.block.Biome; +import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock; +import org.bukkit.generator.ChunkGenerator.BiomeGrid; + +import net.minecraft.server.v1_13_R2.BiomeBase; + +class CustomBiomeGrid implements BiomeGrid { + final BiomeBase[] biomeArray; + + CustomBiomeGrid(BiomeBase[] biome) { + this.biomeArray = biome; + } + + @Override + public Biome getBiome(final int x, final int z) { + return CraftBlock.biomeBaseToBiome(this.biomeArray[z << 4 | x]); + } + + @Override + public void setBiome(final int x, final int z, final Biome bio) { + this.biomeArray[z << 4 | x] = CraftBlock.biomeToBiomeBase(bio); + } +} \ No newline at end of file diff --git a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/DummyBukkitChunkGenerator.java b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/DummyBukkitChunkGenerator.java similarity index 90% rename from src/main/java/nl/rutgerkok/worldgeneratorapi/internal/DummyBukkitChunkGenerator.java rename to src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/DummyBukkitChunkGenerator.java index 5a80d9e..8840cd1 100644 --- a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/DummyBukkitChunkGenerator.java +++ b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/DummyBukkitChunkGenerator.java @@ -1,4 +1,4 @@ -package nl.rutgerkok.worldgeneratorapi.internal; +package nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides; import java.util.ArrayList; import java.util.List; @@ -21,11 +21,11 @@ import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi; * brand new world), {@link #getDefaultPopulators(World)} takes over this task. * */ -final class DummyBukkitChunkGenerator extends ChunkGenerator { +public final class DummyBukkitChunkGenerator extends ChunkGenerator { private final WorldGeneratorApi impl; - DummyBukkitChunkGenerator(WorldGeneratorApi impl) { + public DummyBukkitChunkGenerator(WorldGeneratorApi impl) { this.impl = Objects.requireNonNull(impl); } diff --git a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/InjectedChunkGenerator.java b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/InjectedChunkGenerator.java similarity index 86% rename from src/main/java/nl/rutgerkok/worldgeneratorapi/internal/InjectedChunkGenerator.java rename to src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/InjectedChunkGenerator.java index fcd5a60..977ecae 100644 --- a/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/InjectedChunkGenerator.java +++ b/src/main/java/nl/rutgerkok/worldgeneratorapi/internal/bukkitoverrides/InjectedChunkGenerator.java @@ -1,11 +1,9 @@ -package nl.rutgerkok.worldgeneratorapi.internal; +package nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides; import java.lang.reflect.Field; import java.util.List; import java.util.Objects; -import org.bukkit.block.Biome; -import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock; import org.bukkit.craftbukkit.v1_13_R2.generator.CraftChunkData; import org.bukkit.generator.ChunkGenerator.BiomeGrid; import org.bukkit.generator.ChunkGenerator.ChunkData; @@ -34,26 +32,10 @@ import net.minecraft.server.v1_13_R2.WorldServer; import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator; import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk; import nl.rutgerkok.worldgeneratorapi.BiomeGenerator; +import nl.rutgerkok.worldgeneratorapi.internal.BiomeGeneratorImpl; +import nl.rutgerkok.worldgeneratorapi.internal.WorldDecoratorImpl; -final class InjectedChunkGenerator extends ChunkGeneratorAbstract { - - private static class CustomBiomeGrid implements BiomeGrid { - private final BiomeBase[] biomeArray; - - private CustomBiomeGrid(BiomeBase[] biome) { - this.biomeArray = biome; - } - - @Override - public Biome getBiome(final int x, final int z) { - return CraftBlock.biomeBaseToBiome(this.biomeArray[z << 4 | x]); - } - - @Override - public void setBiome(final int x, final int z, final Biome bio) { - this.biomeArray[z << 4 | x] = CraftBlock.biomeToBiomeBase(bio); - } - } +public final class InjectedChunkGenerator extends ChunkGeneratorAbstract { private final org.bukkit.World world; @@ -63,12 +45,12 @@ final class InjectedChunkGenerator extends ChunkGeneratorAbstract