Expected behavior
The expected behavior is that serverCache is not null.
Observed/Actual behavior
net.minecraft.server.level.ChunkProviderServer.g() cannot be called because serverCache is null
Steps/models to reproduce
Code:
package wtf.casper.nobiomegenerator;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public final class NoBiomeGeneratorPlugin extends JavaPlugin {
@Override
public @NotNull ChunkGenerator getDefaultWorldGenerator(@NotNull String worldName, @Nullable String id) {
return new NoBiomeGenerator();
}
}
package wtf.casper.nobiomegenerator;
import org.bukkit.generator.BiomeProvider;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.generator.WorldInfo;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class NoBiomeGenerator extends ChunkGenerator {
@Override
public @Nullable BiomeProvider getDefaultBiomeProvider(@NotNull WorldInfo worldInfo) {
return new NoBiomeProvider();
}
}
package wtf.casper.nobiomegenerator;
import org.bukkit.block.Biome;
import org.bukkit.generator.BiomeProvider;
import org.bukkit.generator.WorldInfo;
import org.jetbrains.annotations.NotNull;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class NoBiomeProvider extends BiomeProvider {
private final Set<Biome> disabledBiomes = new HashSet<>();
public NoBiomeProvider() {
disabledBiomes.add(Biome.OCEAN);
}
@Override
public @NotNull Biome getBiome(@NotNull WorldInfo worldInfo, int x, int y, int z) {
if (disabledBiomes.contains(this.worldInfo.vanillaBiomeProvider().getBiome(worldInfo, x, y, z))) {
return Biome.PLAINS;
}
return worldInfo.vanillaBiomeProvider().getBiome(worldInfo, x, y, z);
}
@Override
public @NotNull List<Biome> getBiomes(@NotNull WorldInfo worldInfo) {
return worldInfo.vanillaBiomeProvider().getBiomes(worldInfo);
}
}
To create in new project...
- Create a class that extends ChunkGenerator and a class that extends a BiomeProvider. Override the getDefaultWorldGenerator function in your main class to load a new instance of that class. In your chunk generator class. In your chunk generator class, override your getDefaultBiomeProvider function to give your BiomeProvider instance.
- In your BiomeProvider class, use the worldInfo variable to call vanillaBiomeProvider.
Plugin and Datapack List
Plugins: NoBiomeGenerator
Paper version
This server is running Paper version git-Paper-48 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) (Git: b34d4ec)
Also tested in 1.19.3's final build and it was broken.
Tested with 1.18.2's final build and it worked.
Other
No response
Expected behavior
The expected behavior is that serverCache is not null.
Observed/Actual behavior
net.minecraft.server.level.ChunkProviderServer.g() cannot be called because serverCache is null
Steps/models to reproduce
Code:
To create in new project...
Plugin and Datapack List
Plugins: NoBiomeGenerator
Paper version
This server is running Paper version git-Paper-48 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) (Git: b34d4ec)
Also tested in 1.19.3's final build and it was broken.
Tested with 1.18.2's final build and it worked.
Other
No response