It compiles on 1.16.2

...but crashes on startup.
This commit is contained in:
Rutger Kok 2020-08-16 12:06:08 +02:00
parent 9d6867a3e9
commit 8c08d2f6af
16 changed files with 237 additions and 235 deletions

View File

@ -71,7 +71,7 @@
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId> <artifactId>spigot</artifactId>
<version>1.16.1-R0.1-SNAPSHOT</version> <version>1.16.2-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -4,18 +4,18 @@ import java.lang.reflect.Field;
import java.util.Objects; import java.util.Objects;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R1.CraftWorld; import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
import net.minecraft.server.v1_16_R1.ChunkGenerator; import net.minecraft.server.v1_16_R2.ChunkGenerator;
import net.minecraft.server.v1_16_R1.ChunkGeneratorAbstract; import net.minecraft.server.v1_16_R2.ChunkGeneratorAbstract;
import net.minecraft.server.v1_16_R1.ChunkProviderDebug; import net.minecraft.server.v1_16_R2.ChunkProviderDebug;
import net.minecraft.server.v1_16_R1.ChunkProviderFlat; import net.minecraft.server.v1_16_R2.ChunkProviderFlat;
import net.minecraft.server.v1_16_R1.GeneratorAccess; import net.minecraft.server.v1_16_R2.GeneratorAccess;
import net.minecraft.server.v1_16_R1.HeightMap; import net.minecraft.server.v1_16_R2.HeightMap;
import net.minecraft.server.v1_16_R1.SeededRandom; import net.minecraft.server.v1_16_R2.SeededRandom;
import net.minecraft.server.v1_16_R1.StructureManager; import net.minecraft.server.v1_16_R2.StructureManager;
import net.minecraft.server.v1_16_R1.WorldChunkManager; import net.minecraft.server.v1_16_R2.WorldChunkManager;
import net.minecraft.server.v1_16_R1.WorldServer; import net.minecraft.server.v1_16_R2.WorldServer;
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator; import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator; import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.ChunkDataImpl; import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.ChunkDataImpl;

View File

@ -5,12 +5,13 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import net.minecraft.server.v1_16_R1.BiomeBase; import net.minecraft.server.v1_16_R2.BiomeBase;
import net.minecraft.server.v1_16_R1.WorldChunkManager; import net.minecraft.server.v1_16_R2.RegistryGeneration;
import net.minecraft.server.v1_16_R2.WorldChunkManager;
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator; import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
/** /**
@ -48,7 +49,7 @@ public final class BiomeGeneratorImpl implements BiomeGenerator {
.get(this.internal); .get(this.internal);
for (BiomeBase biome : biomeBases) { for (BiomeBase biome : biomeBases) {
biomes.add(CraftBlock.biomeBaseToBiome(biome)); biomes.add(CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME, biome));
} }
return biomes.build(); return biomes.build();
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
@ -60,7 +61,7 @@ public final class BiomeGeneratorImpl implements BiomeGenerator {
@Override @Override
public Biome getZoomedOutBiome(int x, int y, int z) { public Biome getZoomedOutBiome(int x, int y, int z) {
return CraftBlock.biomeBaseToBiome(internal.getBiome(x, y, z)); return CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME, internal.getBiome(x, y, z));
} }
} }

View File

@ -6,74 +6,75 @@ import org.bukkit.Material;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBanner; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBanner;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBarrel; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBarrel;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBeacon; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBeacon;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBeehive; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBeehive;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBell; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBell;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlastFurnace; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlastFurnace;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlockEntityState; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlockEntityState;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlockState; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlockState;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBrewingStand; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBrewingStand;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftCampfire; import org.bukkit.craftbukkit.v1_16_R2.block.CraftCampfire;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftChest; import org.bukkit.craftbukkit.v1_16_R2.block.CraftChest;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftCommandBlock; import org.bukkit.craftbukkit.v1_16_R2.block.CraftCommandBlock;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftComparator; import org.bukkit.craftbukkit.v1_16_R2.block.CraftComparator;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftCreatureSpawner; import org.bukkit.craftbukkit.v1_16_R2.block.CraftCreatureSpawner;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftDaylightDetector; import org.bukkit.craftbukkit.v1_16_R2.block.CraftDaylightDetector;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftDispenser; import org.bukkit.craftbukkit.v1_16_R2.block.CraftDispenser;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftDropper; import org.bukkit.craftbukkit.v1_16_R2.block.CraftDropper;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftEnchantingTable; import org.bukkit.craftbukkit.v1_16_R2.block.CraftEnchantingTable;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftEndGateway; import org.bukkit.craftbukkit.v1_16_R2.block.CraftEndGateway;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftEnderChest; import org.bukkit.craftbukkit.v1_16_R2.block.CraftEnderChest;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftFurnaceFurnace; import org.bukkit.craftbukkit.v1_16_R2.block.CraftFurnaceFurnace;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftHopper; import org.bukkit.craftbukkit.v1_16_R2.block.CraftHopper;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftJigsaw; import org.bukkit.craftbukkit.v1_16_R2.block.CraftJigsaw;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftJukebox; import org.bukkit.craftbukkit.v1_16_R2.block.CraftJukebox;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftLectern; import org.bukkit.craftbukkit.v1_16_R2.block.CraftLectern;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftShulkerBox; import org.bukkit.craftbukkit.v1_16_R2.block.CraftShulkerBox;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftSign; import org.bukkit.craftbukkit.v1_16_R2.block.CraftSign;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftSkull; import org.bukkit.craftbukkit.v1_16_R2.block.CraftSkull;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftSmoker; import org.bukkit.craftbukkit.v1_16_R2.block.CraftSmoker;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftStructureBlock; import org.bukkit.craftbukkit.v1_16_R2.block.CraftStructureBlock;
import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_16_R2.block.data.CraftBlockData;
import net.minecraft.server.v1_16_R1.BlockPosition; import net.minecraft.server.v1_16_R2.BlockPosition;
import net.minecraft.server.v1_16_R1.BlockPosition.MutableBlockPosition; import net.minecraft.server.v1_16_R2.BlockPosition.MutableBlockPosition;
import net.minecraft.server.v1_16_R1.IBlockData; import net.minecraft.server.v1_16_R2.IBlockData;
import net.minecraft.server.v1_16_R1.IChunkAccess; import net.minecraft.server.v1_16_R2.IChunkAccess;
import net.minecraft.server.v1_16_R1.NBTTagCompound; import net.minecraft.server.v1_16_R2.NBTTagCompound;
import net.minecraft.server.v1_16_R1.RegionLimitedWorldAccess; import net.minecraft.server.v1_16_R2.RegionLimitedWorldAccess;
import net.minecraft.server.v1_16_R1.TileEntity; import net.minecraft.server.v1_16_R2.RegistryGeneration;
import net.minecraft.server.v1_16_R1.TileEntityBanner; import net.minecraft.server.v1_16_R2.TileEntity;
import net.minecraft.server.v1_16_R1.TileEntityBarrel; import net.minecraft.server.v1_16_R2.TileEntityBanner;
import net.minecraft.server.v1_16_R1.TileEntityBeacon; import net.minecraft.server.v1_16_R2.TileEntityBarrel;
import net.minecraft.server.v1_16_R1.TileEntityBeehive; import net.minecraft.server.v1_16_R2.TileEntityBeacon;
import net.minecraft.server.v1_16_R1.TileEntityBell; import net.minecraft.server.v1_16_R2.TileEntityBeehive;
import net.minecraft.server.v1_16_R1.TileEntityBlastFurnace; import net.minecraft.server.v1_16_R2.TileEntityBell;
import net.minecraft.server.v1_16_R1.TileEntityBrewingStand; import net.minecraft.server.v1_16_R2.TileEntityBlastFurnace;
import net.minecraft.server.v1_16_R1.TileEntityCampfire; import net.minecraft.server.v1_16_R2.TileEntityBrewingStand;
import net.minecraft.server.v1_16_R1.TileEntityChest; import net.minecraft.server.v1_16_R2.TileEntityCampfire;
import net.minecraft.server.v1_16_R1.TileEntityCommand; import net.minecraft.server.v1_16_R2.TileEntityChest;
import net.minecraft.server.v1_16_R1.TileEntityComparator; import net.minecraft.server.v1_16_R2.TileEntityCommand;
import net.minecraft.server.v1_16_R1.TileEntityDispenser; import net.minecraft.server.v1_16_R2.TileEntityComparator;
import net.minecraft.server.v1_16_R1.TileEntityDropper; import net.minecraft.server.v1_16_R2.TileEntityDispenser;
import net.minecraft.server.v1_16_R1.TileEntityEnchantTable; import net.minecraft.server.v1_16_R2.TileEntityDropper;
import net.minecraft.server.v1_16_R1.TileEntityEndGateway; import net.minecraft.server.v1_16_R2.TileEntityEnchantTable;
import net.minecraft.server.v1_16_R1.TileEntityEnderChest; import net.minecraft.server.v1_16_R2.TileEntityEndGateway;
import net.minecraft.server.v1_16_R1.TileEntityFurnaceFurnace; import net.minecraft.server.v1_16_R2.TileEntityEnderChest;
import net.minecraft.server.v1_16_R1.TileEntityHopper; import net.minecraft.server.v1_16_R2.TileEntityFurnaceFurnace;
import net.minecraft.server.v1_16_R1.TileEntityJigsaw; import net.minecraft.server.v1_16_R2.TileEntityHopper;
import net.minecraft.server.v1_16_R1.TileEntityJukeBox; import net.minecraft.server.v1_16_R2.TileEntityJigsaw;
import net.minecraft.server.v1_16_R1.TileEntityLectern; import net.minecraft.server.v1_16_R2.TileEntityJukeBox;
import net.minecraft.server.v1_16_R1.TileEntityLightDetector; import net.minecraft.server.v1_16_R2.TileEntityLectern;
import net.minecraft.server.v1_16_R1.TileEntityMobSpawner; import net.minecraft.server.v1_16_R2.TileEntityLightDetector;
import net.minecraft.server.v1_16_R1.TileEntityShulkerBox; import net.minecraft.server.v1_16_R2.TileEntityMobSpawner;
import net.minecraft.server.v1_16_R1.TileEntitySign; import net.minecraft.server.v1_16_R2.TileEntityShulkerBox;
import net.minecraft.server.v1_16_R1.TileEntitySkull; import net.minecraft.server.v1_16_R2.TileEntitySign;
import net.minecraft.server.v1_16_R1.TileEntitySmoker; import net.minecraft.server.v1_16_R2.TileEntitySkull;
import net.minecraft.server.v1_16_R1.TileEntityStructure; import net.minecraft.server.v1_16_R2.TileEntitySmoker;
import net.minecraft.server.v1_16_R2.TileEntityStructure;
import nl.rutgerkok.worldgeneratorapi.decoration.DecorationArea; import nl.rutgerkok.worldgeneratorapi.decoration.DecorationArea;
class DecorationAreaImpl implements DecorationArea { class DecorationAreaImpl implements DecorationArea {
@ -93,7 +94,7 @@ class DecorationAreaImpl implements DecorationArea {
@Override @Override
public Biome getBiome(int x, int z) { public Biome getBiome(int x, int z) {
reusableBlockPos.c(x, 0, z); reusableBlockPos.c(x, 0, z);
return CraftBlock.biomeBaseToBiome(internal.getBiome(reusableBlockPos)); return CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME, internal.getBiome(reusableBlockPos));
} }
@Override @Override

View File

@ -7,14 +7,14 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import net.minecraft.server.v1_16_R1.BiomeBase; import net.minecraft.server.v1_16_R2.BiomeBase;
import net.minecraft.server.v1_16_R1.Biomes; import net.minecraft.server.v1_16_R2.Biomes;
import net.minecraft.server.v1_16_R1.IRegistry; import net.minecraft.server.v1_16_R2.RegistryGeneration;
import net.minecraft.server.v1_16_R1.WorldChunkManager; import net.minecraft.server.v1_16_R2.WorldChunkManager;
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator; import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi; import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi;
@ -26,17 +26,19 @@ public class InjectedBiomeGenerator extends WorldChunkManager {
* generators.) Instead, we serialize as if we are a biome generator that * generators.) Instead, we serialize as if we are a biome generator that
* generates only oceans. * generates only oceans.
*/ */
private static final Codec<InjectedBiomeGenerator> DUMMY_CODEC = IRegistry.BIOME.fieldOf( private static final Codec<InjectedBiomeGenerator> DUMMY_CODEC = RegistryGeneration.WORLDGEN_BIOME.fieldOf(
"[" + WorldGeneratorApi.class.getSimpleName() "[" + WorldGeneratorApi.class.getSimpleName()
+ "] Custom biome generators cannot be stored in the level.dat, please ignore this error") + "] Custom biome generators cannot be stored in the level.dat, please ignore this error")
.xmap(biome -> new InjectedBiomeGenerator(), biomeGenToSerialize -> { .xmap(biome -> new InjectedBiomeGenerator(), biomeGenToSerialize -> {
// Serializes as a single-biome generator // Serializes as a single-biome generator
return Biomes.OCEAN; return RegistryGeneration.WORLDGEN_BIOME.a(Biomes.OCEAN);
}) })
.stable().codec(); .stable().codec();
private static List<BiomeBase> toBiomeBase(Set<Biome> biomes) { private static List<BiomeBase> toBiomeBase(Set<Biome> biomes) {
return biomes.stream().map(CraftBlock::biomeToBiomeBase).collect(toList()); return biomes.stream()
.map(biome -> CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME, biome))
.collect(toList());
} }
/** /**
@ -63,7 +65,7 @@ public class InjectedBiomeGenerator extends WorldChunkManager {
* generator. * generator.
*/ */
private InjectedBiomeGenerator() { private InjectedBiomeGenerator() {
super(Arrays.asList(Biomes.OCEAN)); super(Arrays.asList(RegistryGeneration.WORLDGEN_BIOME.a(Biomes.OCEAN)));
this.biomeGenerator = (x, y, z) -> Biome.OCEAN; this.biomeGenerator = (x, y, z) -> Biome.OCEAN;
} }
@ -84,6 +86,7 @@ public class InjectedBiomeGenerator extends WorldChunkManager {
@Override @Override
public BiomeBase getBiome(int x, int y, int z) { public BiomeBase getBiome(int x, int y, int z) {
return CraftBlock.biomeToBiomeBase(biomeGenerator.getZoomedOutBiome(x, y, z)); return CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME,
biomeGenerator.getZoomedOutBiome(x, y, z));
} }
} }

View File

@ -13,10 +13,11 @@ import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
import net.minecraft.server.v1_16_R1.BiomeBase; import net.minecraft.server.v1_16_R2.BiomeBase;
import net.minecraft.server.v1_16_R1.Biomes; import net.minecraft.server.v1_16_R2.Biomes;
import net.minecraft.server.v1_16_R2.RegistryGeneration;
import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi; import nl.rutgerkok.worldgeneratorapi.WorldGeneratorApi;
import nl.rutgerkok.worldgeneratorapi.WorldRef; import nl.rutgerkok.worldgeneratorapi.WorldRef;
import nl.rutgerkok.worldgeneratorapi.property.AbstractProperty; import nl.rutgerkok.worldgeneratorapi.property.AbstractProperty;
@ -56,20 +57,21 @@ public final class PropertyRegistryImpl implements PropertyRegistry {
private final Map<NamespacedKey, AbstractProperty> properties = new ConcurrentHashMap<>(); private final Map<NamespacedKey, AbstractProperty> properties = new ConcurrentHashMap<>();
public PropertyRegistryImpl() { public PropertyRegistryImpl() {
addMinecraftBiomeFloatProperty(TEMPERATURE, BiomeBase::getTemperature); addMinecraftBiomeFloatProperty(TEMPERATURE, BiomeBase::k);
addMinecraftBiomeFloatProperty(WETNESS, BiomeBase::getHumidity); addMinecraftBiomeFloatProperty(WETNESS, BiomeBase::getHumidity);
addMinecraftBiomeFloatProperty(BASE_HEIGHT, BiomeBase::k); addMinecraftBiomeFloatProperty(BASE_HEIGHT, BiomeBase::h);
addMinecraftBiomeFloatProperty(HEIGHT_VARIATION, BiomeBase::o); addMinecraftBiomeFloatProperty(HEIGHT_VARIATION, BiomeBase::j);
addMinecraftWorldProperty(WORLD_SEED, world -> (Long) world.getSeed(), -1L); addMinecraftWorldProperty(WORLD_SEED, world -> (Long) world.getSeed(), -1L);
addSeaLevelProperty(SEA_LEVEL, world -> (float) world.getSeaLevel()); addSeaLevelProperty(SEA_LEVEL, world -> (float) world.getSeaLevel());
} }
private void addMinecraftBiomeFloatProperty(NamespacedKey name, Function<BiomeBase, Float> value) { private void addMinecraftBiomeFloatProperty(NamespacedKey name, Function<BiomeBase, Float> value) {
FloatProperty property = new FloatProperty(name, value.apply(Biomes.b)) { FloatProperty property = new FloatProperty(name,
value.apply(RegistryGeneration.WORLDGEN_BIOME.a(Biomes.PLAINS))) {
@Override @Override
public float getBiomeDefault(Biome biome) { public float getBiomeDefault(Biome biome) {
BiomeBase base = CraftBlock.biomeToBiomeBase(biome); BiomeBase base = CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME, biome);
return value.apply(base); return value.apply(base);
} }

View File

@ -10,22 +10,23 @@ import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.Supplier;
import net.minecraft.server.v1_16_R1.BiomeBase; import net.minecraft.server.v1_16_R2.BiomeBase;
import net.minecraft.server.v1_16_R1.BiomeManager; import net.minecraft.server.v1_16_R2.BiomeManager;
import net.minecraft.server.v1_16_R1.BlockPosition; import net.minecraft.server.v1_16_R2.BiomeSettingsGeneration;
import net.minecraft.server.v1_16_R1.ChunkCoordIntPair; import net.minecraft.server.v1_16_R2.BlockPosition;
import net.minecraft.server.v1_16_R1.ChunkGenerator; import net.minecraft.server.v1_16_R2.ChunkCoordIntPair;
import net.minecraft.server.v1_16_R1.CrashReport; import net.minecraft.server.v1_16_R2.ChunkGenerator;
import net.minecraft.server.v1_16_R1.IChunkAccess; import net.minecraft.server.v1_16_R2.CrashReport;
import net.minecraft.server.v1_16_R1.IRegistry; import net.minecraft.server.v1_16_R2.IChunkAccess;
import net.minecraft.server.v1_16_R1.ProtoChunk; import net.minecraft.server.v1_16_R2.ProtoChunk;
import net.minecraft.server.v1_16_R1.RegionLimitedWorldAccess; import net.minecraft.server.v1_16_R2.RegionLimitedWorldAccess;
import net.minecraft.server.v1_16_R1.ReportedException; import net.minecraft.server.v1_16_R2.ReportedException;
import net.minecraft.server.v1_16_R1.SeededRandom; import net.minecraft.server.v1_16_R2.SeededRandom;
import net.minecraft.server.v1_16_R1.StructureManager; import net.minecraft.server.v1_16_R2.StructureManager;
import net.minecraft.server.v1_16_R1.WorldGenCarverWrapper; import net.minecraft.server.v1_16_R2.WorldGenCarverWrapper;
import net.minecraft.server.v1_16_R1.WorldGenStage; import net.minecraft.server.v1_16_R2.WorldGenStage;
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator; import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk; import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk;
import nl.rutgerkok.worldgeneratorapi.decoration.BaseDecorationType; import nl.rutgerkok.worldgeneratorapi.decoration.BaseDecorationType;
@ -62,7 +63,6 @@ public final class WorldDecoratorImpl implements WorldDecorator {
return biomeManager.a(blockPosition); return biomeManager.a(blockPosition);
} }
@Override @Override
public List<BaseChunkGenerator> getCustomBaseDecorations(BaseDecorationType type) { public List<BaseChunkGenerator> getCustomBaseDecorations(BaseDecorationType type) {
Objects.requireNonNull(type, "type"); Objects.requireNonNull(type, "type");
@ -109,25 +109,25 @@ public final class WorldDecoratorImpl implements WorldDecorator {
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos(); ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
int i = chunkcoordintpair.x; int i = chunkcoordintpair.x;
int j = chunkcoordintpair.z; int j = chunkcoordintpair.z;
BiomeBase biomeBase = this.getBiome(biomeManager, chunkcoordintpair.l()); BiomeSettingsGeneration biomeConfig = this.getBiome(biomeManager, chunkcoordintpair.l()).e();
BitSet bitset = ((ProtoChunk) ichunkaccess).b(stage); BitSet bitset = ((ProtoChunk) ichunkaccess).b(stage);
for(int k = i - 8; k <= i + 8; ++k) { for (int k = i - 8; k <= i + 8; ++k) {
for(int l = j - 8; l <= j + 8; ++l) { for (int l = j - 8; l <= j + 8; ++l) {
List<WorldGenCarverWrapper<?>> list = biomeBase.a(stage); List<Supplier<WorldGenCarverWrapper<?>>> list = biomeConfig.a(stage);
ListIterator<WorldGenCarverWrapper<?>> listiterator = list.listIterator(); ListIterator<Supplier<WorldGenCarverWrapper<?>>> listiterator = list.listIterator();
while(listiterator.hasNext()) { while (listiterator.hasNext()) {
int i1 = listiterator.nextIndex(); int i1 = listiterator.nextIndex();
WorldGenCarverWrapper<?> worldgencarverwrapper = listiterator.next(); WorldGenCarverWrapper<?> worldgencarverwrapper = listiterator.next().get();
seededrandom.c(seed + i1, k, l); seededrandom.c(seed + i1, k, l);
if (worldgencarverwrapper.a(seededrandom, k, l)) { if (worldgencarverwrapper.a(seededrandom, k, l)) {
worldgencarverwrapper.a(ichunkaccess, (blockposition) -> { worldgencarverwrapper.a(ichunkaccess, (blockposition) -> {
return this.getBiome(biomeManager, blockposition); return this.getBiome(biomeManager, blockposition);
}, seededrandom, seaLevel, k, l, i, j, bitset); }, seededrandom, seaLevel, k, l, i, j, bitset);
} }
} }
} }
} }
} }
@ -171,12 +171,12 @@ public final class WorldDecoratorImpl implements WorldDecorator {
// Spawn default decorations // Spawn default decorations
if (!this.disabledDecorations.contains(type)) { if (!this.disabledDecorations.contains(type)) {
try { try {
biomebase.a(decorationStage, structureManager, chunkGenerator, populationArea, chunkSeed, biomebase.a(structureManager, chunkGenerator, populationArea, chunkSeed, seededrandom,
seededrandom, blockposition); blockposition);
} catch (Exception var18) { } catch (Exception var18) {
CrashReport crashreport = CrashReport.a(var18, "Biome decoration"); CrashReport crashreport = CrashReport.a(var18, "Biome decoration");
crashreport.a("Generation").a("CenterX", i).a("CenterZ", j).a("Step", decorationStage) crashreport.a("Generation").a("CenterX", i).a("CenterZ", j).a("Seed", chunkSeed).a("Biome",
.a("Seed", chunkSeed).a("Biome", IRegistry.BIOME.getKey(biomebase)); biomebase);
throw new ReportedException(crashreport); throw new ReportedException(crashreport);
} }
} }

View File

@ -10,7 +10,7 @@ import org.bukkit.Server;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.command.TabExecutor; import org.bukkit.command.TabExecutor;
import org.bukkit.craftbukkit.v1_16_R1.CraftServer; import org.bukkit.craftbukkit.v1_16_R2.CraftServer;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldUnloadEvent; import org.bukkit.event.world.WorldUnloadEvent;

View File

@ -7,16 +7,14 @@ import java.util.Objects;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R1.CraftWorld; import org.bukkit.craftbukkit.v1_16_R2.CraftWorld;
import org.bukkit.craftbukkit.v1_16_R1.generator.CustomChunkGenerator; import org.bukkit.craftbukkit.v1_16_R2.generator.CustomChunkGenerator;
import net.minecraft.server.v1_16_R1.ChunkGenerator; import net.minecraft.server.v1_16_R2.ChunkGenerator;
import net.minecraft.server.v1_16_R1.ChunkGeneratorAbstract; import net.minecraft.server.v1_16_R2.ChunkProviderServer;
import net.minecraft.server.v1_16_R1.ChunkProviderServer; import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
import net.minecraft.server.v1_16_R1.GeneratorSettingBase; import net.minecraft.server.v1_16_R2.WorldChunkManager;
import net.minecraft.server.v1_16_R1.GeneratorSettings; import net.minecraft.server.v1_16_R2.WorldServer;
import net.minecraft.server.v1_16_R1.WorldChunkManager;
import net.minecraft.server.v1_16_R1.WorldServer;
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator; import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator;
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator; import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator;
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator; import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
@ -29,6 +27,10 @@ import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.NoiseToTerrainGen
final class WorldGeneratorImpl implements WorldGenerator { final class WorldGeneratorImpl implements WorldGenerator {
private static GeneratorSettingBase createDefaultSettings() {
return GeneratorSettingBase.i();
}
private static GeneratorSettingBase extractSettings(ChunkGenerator chunkGenerator, long seed) { private static GeneratorSettingBase extractSettings(ChunkGenerator chunkGenerator, long seed) {
try { try {
// First, unwrap Bukkit generator if necessary // First, unwrap Bukkit generator if necessary
@ -38,16 +40,11 @@ final class WorldGeneratorImpl implements WorldGenerator {
} }
// Then, extract the settings // Then, extract the settings
return (GeneratorSettingBase) ReflectionUtil.getFieldOfType(chunkGenerator, GeneratorSettingBase.class).get(chunkGenerator); return (GeneratorSettingBase) ReflectionUtil.getFieldOfType(chunkGenerator, GeneratorSettingBase.class)
.get(chunkGenerator);
} catch (IllegalAccessException | IllegalArgumentException | NoSuchElementException e) { } catch (IllegalAccessException | IllegalArgumentException | NoSuchElementException e) {
// Get default settings // Get default settings
ChunkGeneratorAbstract standardGenerator = GeneratorSettings.a(seed); return createDefaultSettings();
try {
return (GeneratorSettingBase) ReflectionUtil
.getFieldOfType(standardGenerator, GeneratorSettingBase.class).get(chunkGenerator);
} catch (IllegalAccessException e1) {
throw new RuntimeException("Failed to extract settings", e1);
}
} }
} }

View File

@ -3,10 +3,11 @@ package nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides;
import java.util.Objects; import java.util.Objects;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
import org.bukkit.generator.ChunkGenerator.BiomeGrid; import org.bukkit.generator.ChunkGenerator.BiomeGrid;
import net.minecraft.server.v1_16_R1.BiomeStorage; import net.minecraft.server.v1_16_R2.BiomeStorage;
import net.minecraft.server.v1_16_R2.RegistryGeneration;
public final class BiomeGridImpl implements BiomeGrid { public final class BiomeGridImpl implements BiomeGrid {
private final BiomeStorage biomeStorage; private final BiomeStorage biomeStorage;
@ -17,12 +18,14 @@ public final class BiomeGridImpl implements BiomeGrid {
@Override @Override
public Biome getBiome(final int x, final int z) { public Biome getBiome(final int x, final int z) {
return CraftBlock.biomeBaseToBiome(this.biomeStorage.getBiome(x >> 2, 0, z >> 2)); return CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME,
this.biomeStorage.getBiome(x >> 2, 0, z >> 2));
} }
@Override @Override
public Biome getBiome(int x, int y, int z) { public Biome getBiome(int x, int y, int z) {
return CraftBlock.biomeBaseToBiome(this.biomeStorage.getBiome(x >> 2, y >> 2, z >> 2)); return CraftBlock.biomeBaseToBiome(RegistryGeneration.WORLDGEN_BIOME,
this.biomeStorage.getBiome(x >> 2, y >> 2, z >> 2));
} }
/** /**
@ -36,11 +39,13 @@ public final class BiomeGridImpl implements BiomeGrid {
@Override @Override
public void setBiome(int x, int z, Biome biome) { public void setBiome(int x, int z, Biome biome) {
this.biomeStorage.setBiome(x >> 2, 0, z >> 2, CraftBlock.biomeToBiomeBase(biome)); this.biomeStorage.setBiome(x >> 2, 0, z >> 2,
CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME, biome));
} }
@Override @Override
public void setBiome(int x, int y, int z, Biome biome) { public void setBiome(int x, int y, int z, Biome biome) {
this.biomeStorage.setBiome(x >> 2, y >> 2, z >> 2, CraftBlock.biomeToBiomeBase(biome)); this.biomeStorage.setBiome(x >> 2, y >> 2, z >> 2,
CraftBlock.biomeToBiomeBase(RegistryGeneration.WORLDGEN_BIOME, biome));
} }
} }

View File

@ -2,12 +2,12 @@ package nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_16_R2.block.data.CraftBlockData;
import org.bukkit.generator.ChunkGenerator.ChunkData; import org.bukkit.generator.ChunkGenerator.ChunkData;
import net.minecraft.server.v1_16_R1.BlockPosition.MutableBlockPosition; import net.minecraft.server.v1_16_R2.BlockPosition.MutableBlockPosition;
import net.minecraft.server.v1_16_R1.IBlockData; import net.minecraft.server.v1_16_R2.IBlockData;
import net.minecraft.server.v1_16_R1.IChunkAccess; import net.minecraft.server.v1_16_R2.IChunkAccess;
public final class ChunkDataImpl implements ChunkData { public final class ChunkDataImpl implements ChunkData {
private final IChunkAccess internal; private final IChunkAccess internal;

View File

@ -13,35 +13,35 @@ import org.bukkit.generator.ChunkGenerator.ChunkData;
import com.mojang.serialization.Codec; import com.mojang.serialization.Codec;
import net.minecraft.server.v1_16_R1.BiomeBase; import net.minecraft.server.v1_16_R2.BiomeBase;
import net.minecraft.server.v1_16_R1.BiomeBase.BiomeMeta; import net.minecraft.server.v1_16_R2.BiomeManager;
import net.minecraft.server.v1_16_R1.BiomeManager; import net.minecraft.server.v1_16_R2.BiomeSettingsMobs;
import net.minecraft.server.v1_16_R1.BlockColumn; import net.minecraft.server.v1_16_R2.BlockColumn;
import net.minecraft.server.v1_16_R1.BlockPosition; import net.minecraft.server.v1_16_R2.BlockPosition;
import net.minecraft.server.v1_16_R1.BlockPosition.MutableBlockPosition; import net.minecraft.server.v1_16_R2.BlockPosition.MutableBlockPosition;
import net.minecraft.server.v1_16_R1.Blocks; import net.minecraft.server.v1_16_R2.Blocks;
import net.minecraft.server.v1_16_R1.ChunkCoordIntPair; import net.minecraft.server.v1_16_R2.ChunkCoordIntPair;
import net.minecraft.server.v1_16_R1.ChunkGenerator; import net.minecraft.server.v1_16_R2.ChunkGenerator;
import net.minecraft.server.v1_16_R1.ChunkGeneratorAbstract; import net.minecraft.server.v1_16_R2.ChunkGeneratorAbstract;
import net.minecraft.server.v1_16_R1.EnumCreatureType; import net.minecraft.server.v1_16_R2.EnumCreatureType;
import net.minecraft.server.v1_16_R1.GeneratorAccess; import net.minecraft.server.v1_16_R2.GeneratorAccess;
import net.minecraft.server.v1_16_R1.GeneratorSettingBase; import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
import net.minecraft.server.v1_16_R1.HeightMap; import net.minecraft.server.v1_16_R2.HeightMap;
import net.minecraft.server.v1_16_R1.HeightMap.Type; import net.minecraft.server.v1_16_R2.HeightMap.Type;
import net.minecraft.server.v1_16_R1.IBlockAccess; import net.minecraft.server.v1_16_R2.IBlockAccess;
import net.minecraft.server.v1_16_R1.IBlockData; import net.minecraft.server.v1_16_R2.IBlockData;
import net.minecraft.server.v1_16_R1.IChunkAccess; import net.minecraft.server.v1_16_R2.IChunkAccess;
import net.minecraft.server.v1_16_R1.NoiseGenerator; import net.minecraft.server.v1_16_R2.NoiseGenerator;
import net.minecraft.server.v1_16_R1.NoiseGenerator3; import net.minecraft.server.v1_16_R2.NoiseGenerator3;
import net.minecraft.server.v1_16_R1.NoiseGeneratorOctaves; import net.minecraft.server.v1_16_R2.NoiseGeneratorOctaves;
import net.minecraft.server.v1_16_R1.NoiseSettings; import net.minecraft.server.v1_16_R2.NoiseSettings;
import net.minecraft.server.v1_16_R1.RegionLimitedWorldAccess; import net.minecraft.server.v1_16_R2.RegionLimitedWorldAccess;
import net.minecraft.server.v1_16_R1.SeededRandom; import net.minecraft.server.v1_16_R2.SeededRandom;
import net.minecraft.server.v1_16_R1.SpawnerCreature; import net.minecraft.server.v1_16_R2.SpawnerCreature;
import net.minecraft.server.v1_16_R1.StructureGenerator; import net.minecraft.server.v1_16_R2.StructureGenerator;
import net.minecraft.server.v1_16_R1.StructureManager; import net.minecraft.server.v1_16_R2.StructureManager;
import net.minecraft.server.v1_16_R1.WorldChunkManager; import net.minecraft.server.v1_16_R2.WorldChunkManager;
import net.minecraft.server.v1_16_R1.WorldGenStage.Features; import net.minecraft.server.v1_16_R2.WorldGenStage.Features;
import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk; import nl.rutgerkok.worldgeneratorapi.BaseChunkGenerator.GeneratingChunk;
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator; import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator.HeightType; import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator.HeightType;
@ -346,7 +346,7 @@ public final class InjectedChunkGenerator extends ChunkGenerator {
} }
@Override @Override
public List<BiomeMeta> getMobsFor(BiomeBase biomebase, StructureManager structuremanager, public List<BiomeSettingsMobs.c> getMobsFor(BiomeBase biomebase, StructureManager structuremanager,
EnumCreatureType enumcreaturetype, BlockPosition blockposition) { EnumCreatureType enumcreaturetype, BlockPosition blockposition) {
if (structuremanager.a(blockposition, true, StructureGenerator.SWAMP_HUT).e()) { if (structuremanager.a(blockposition, true, StructureGenerator.SWAMP_HUT).e()) {
if (enumcreaturetype == EnumCreatureType.MONSTER) { if (enumcreaturetype == EnumCreatureType.MONSTER) {

View File

@ -9,39 +9,36 @@ import java.util.function.Predicate;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_16_R2.block.data.CraftBlockData;
import net.minecraft.server.v1_16_R1.BlockColumn; import net.minecraft.server.v1_16_R2.BlockColumn;
import net.minecraft.server.v1_16_R1.BlockPosition.MutableBlockPosition; import net.minecraft.server.v1_16_R2.BlockPosition.MutableBlockPosition;
import net.minecraft.server.v1_16_R1.Blocks; import net.minecraft.server.v1_16_R2.Blocks;
import net.minecraft.server.v1_16_R1.ChunkCoordIntPair; import net.minecraft.server.v1_16_R2.ChunkCoordIntPair;
import net.minecraft.server.v1_16_R1.ChunkGeneratorAbstract; import net.minecraft.server.v1_16_R2.ChunkSection;
import net.minecraft.server.v1_16_R1.ChunkSection; import net.minecraft.server.v1_16_R2.GeneratorAccess;
import net.minecraft.server.v1_16_R1.GeneratorAccess; import net.minecraft.server.v1_16_R2.GeneratorSettingBase;
import net.minecraft.server.v1_16_R1.GeneratorSettingBase; import net.minecraft.server.v1_16_R2.HeightMap;
import net.minecraft.server.v1_16_R1.GeneratorSettings; import net.minecraft.server.v1_16_R2.HeightMap.Type;
import net.minecraft.server.v1_16_R1.HeightMap; import net.minecraft.server.v1_16_R2.IBlockAccess;
import net.minecraft.server.v1_16_R1.HeightMap.Type; import net.minecraft.server.v1_16_R2.IBlockData;
import net.minecraft.server.v1_16_R1.IBlockAccess; import net.minecraft.server.v1_16_R2.IChunkAccess;
import net.minecraft.server.v1_16_R1.IBlockData; import net.minecraft.server.v1_16_R2.MathHelper;
import net.minecraft.server.v1_16_R1.IChunkAccess; import net.minecraft.server.v1_16_R2.NoiseSettings;
import net.minecraft.server.v1_16_R1.MathHelper; import net.minecraft.server.v1_16_R2.ProtoChunk;
import net.minecraft.server.v1_16_R1.NoiseSettings; import net.minecraft.server.v1_16_R2.SectionPosition;
import net.minecraft.server.v1_16_R1.ProtoChunk; import net.minecraft.server.v1_16_R2.StructureBoundingBox;
import net.minecraft.server.v1_16_R1.SectionPosition; import net.minecraft.server.v1_16_R2.StructureGenerator;
import net.minecraft.server.v1_16_R1.StructureBoundingBox; import net.minecraft.server.v1_16_R2.StructureManager;
import net.minecraft.server.v1_16_R1.StructureGenerator; import net.minecraft.server.v1_16_R2.StructurePiece;
import net.minecraft.server.v1_16_R1.StructureManager; import net.minecraft.server.v1_16_R2.SystemUtils;
import net.minecraft.server.v1_16_R1.StructurePiece; import net.minecraft.server.v1_16_R2.WorldGenFeatureDefinedStructureJigsawJunction;
import net.minecraft.server.v1_16_R1.SystemUtils; import net.minecraft.server.v1_16_R2.WorldGenFeatureDefinedStructurePoolTemplate.Matching;
import net.minecraft.server.v1_16_R1.WorldGenFeatureDefinedStructureJigsawJunction; import net.minecraft.server.v1_16_R2.WorldGenFeaturePillagerOutpostPoolPiece;
import net.minecraft.server.v1_16_R1.WorldGenFeatureDefinedStructurePoolTemplate.Matching;
import net.minecraft.server.v1_16_R1.WorldGenFeaturePillagerOutpostPoolPiece;
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator; import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator;
import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator.TerrainSettings; import nl.rutgerkok.worldgeneratorapi.BaseNoiseGenerator.TerrainSettings;
import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator; import nl.rutgerkok.worldgeneratorapi.BaseTerrainGenerator;
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator; import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
import nl.rutgerkok.worldgeneratorapi.internal.ReflectionUtil;
import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.InjectedChunkGenerator.GeneratingChunkImpl; import nl.rutgerkok.worldgeneratorapi.internal.bukkitoverrides.InjectedChunkGenerator.GeneratingChunkImpl;
public final class NoiseToTerrainGenerator implements BaseTerrainGenerator { public final class NoiseToTerrainGenerator implements BaseTerrainGenerator {
@ -82,15 +79,9 @@ public final class NoiseToTerrainGenerator implements BaseTerrainGenerator {
} }
private static NoiseSettings defaultNoiseSettings() { private static NoiseSettings defaultNoiseSettings() {
// I don't know how to properly construct the default settings, so I'm using this for now return GeneratorSettingBase.i().b();
ChunkGeneratorAbstract defaultGenerator = GeneratorSettings.a(0);
try {
GeneratorSettingBase settings = (GeneratorSettingBase) ReflectionUtil.getFieldOfType(defaultGenerator, GeneratorSettingBase.class).get(defaultGenerator);
return settings.b();
} catch (IllegalAccessException e) {
throw new RuntimeException("Failed to create default noise settings", e);
}
} }
private final int l; private final int l;
private final int m; private final int m;
private final int n; private final int n;

View File

@ -7,8 +7,9 @@ import org.bukkit.block.Biome;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import net.minecraft.server.v1_16_R1.WorldChunkManager; import net.minecraft.server.v1_16_R2.RegistryGeneration;
import net.minecraft.server.v1_16_R1.WorldChunkManagerOverworld; import net.minecraft.server.v1_16_R2.WorldChunkManager;
import net.minecraft.server.v1_16_R2.WorldChunkManagerOverworld;
import nl.rutgerkok.worldgeneratorapi.BiomeGenerator; import nl.rutgerkok.worldgeneratorapi.BiomeGenerator;
import nl.rutgerkok.worldgeneratorapi.internal.BiomeGeneratorImpl; import nl.rutgerkok.worldgeneratorapi.internal.BiomeGeneratorImpl;
import nl.rutgerkok.worldgeneratorapi.internal.InjectedBiomeGenerator; import nl.rutgerkok.worldgeneratorapi.internal.InjectedBiomeGenerator;
@ -23,7 +24,8 @@ public class BiomeGeneratorImplTest {
@Test @Test
public void isGetStructureBiomesInSync() { public void isGetStructureBiomesInSync() {
// Create vanilla biome generator // Create vanilla biome generator
WorldChunkManager worldChunkManager = new WorldChunkManagerOverworld(10, false, false); WorldChunkManager worldChunkManager = new WorldChunkManagerOverworld(10, false, false,
RegistryGeneration.WORLDGEN_BIOME);
// Check the structures // Check the structures
BiomeGeneratorImpl biomeGenerator = new BiomeGeneratorImpl(worldChunkManager); BiomeGeneratorImpl biomeGenerator = new BiomeGeneratorImpl(worldChunkManager);

View File

@ -8,7 +8,7 @@ import org.bukkit.World;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.mockito.Mockito; import org.mockito.Mockito;
import net.minecraft.server.v1_16_R1.DispenserRegistry; import net.minecraft.server.v1_16_R2.DispenserRegistry;
public class TestFactory { public class TestFactory {

View File

@ -65,7 +65,7 @@
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId> <artifactId>spigot-api</artifactId>
<version>1.16.1-R0.1-SNAPSHOT</version> <version>1.16.2-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
<exclusions> <exclusions>
<exclusion> <!-- Let's not put the outdated JUnit 4 on our build path --> <exclusion> <!-- Let's not put the outdated JUnit 4 on our build path -->