-
-
Notifications
You must be signed in to change notification settings - Fork 131
/
IslandsGeneratorImpl.java
76 lines (62 loc) · 2.47 KB
/
IslandsGeneratorImpl.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.bgsoftware.superiorskyblock.nms.v1_16_R3.generator;
import com.bgsoftware.superiorskyblock.SuperiorSkyblockPlugin;
import com.bgsoftware.superiorskyblock.world.generator.IslandsGenerator;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Biome;
import org.bukkit.generator.BlockPopulator;
import java.util.Collections;
import java.util.List;
import java.util.Random;
@SuppressWarnings({"unused", "NullableProblems"})
public final class IslandsGeneratorImpl extends IslandsGenerator {
private final SuperiorSkyblockPlugin plugin;
public IslandsGeneratorImpl(SuperiorSkyblockPlugin plugin) {
this.plugin = plugin;
}
@Override
public ChunkData generateChunkData(World world, Random random, int chunkX, int chunkZ, BiomeGrid biomeGrid) {
ChunkData chunkData = createChunkData(world);
Biome targetBiome;
switch (world.getEnvironment()) {
case NETHER: {
try {
targetBiome = Biome.valueOf(plugin.getSettings().getWorlds().getNether().getBiome().toUpperCase());
} catch (IllegalArgumentException error) {
targetBiome = Biome.NETHER_WASTES;
}
break;
}
case THE_END: {
try {
targetBiome = Biome.valueOf(plugin.getSettings().getWorlds().getEnd().getBiome().toUpperCase());
} catch (IllegalArgumentException error) {
targetBiome = Biome.THE_END;
}
break;
}
default: {
try {
targetBiome = Biome.valueOf(plugin.getSettings().getWorlds().getNormal().getBiome().toUpperCase());
} catch (IllegalArgumentException error) {
targetBiome = Biome.PLAINS;
}
break;
}
}
plugin.getNMSWorld().setBiome(biomeGrid, targetBiome);
if (chunkX == 0 && chunkZ == 0 && world.getEnvironment() == plugin.getSettings().getWorlds().getDefaultWorld()) {
chunkData.setBlock(0, 99, 0, Material.BEDROCK);
}
return chunkData;
}
@Override
public List<BlockPopulator> getDefaultPopulators(World world) {
return Collections.emptyList();
}
@Override
public Location getFixedSpawnLocation(World world, Random random) {
return new Location(world, 0, 100, 0);
}
}