1// Paper 1.18 – Java 17 · TerrainGenerator
2package at.walterproduktions.worldgen;
3
4public final class DungeongeneratorHandler extends JavaPlugin implements Listener {
5 private final TerrainGenerator terrain = new TerrainGenerator(seed);
6 private final NoiseSampler noise = NoiseSampler.simplex(4, 0.5);
7
8 @Override
9 public void onEnable() {
10 saveDefaultConfig();
11 getServer().getPluginManager().registerEvents(this, this);
12 getServer().getAsyncScheduler().runAtFixedRate(this, t -> tick(), 1, 80, SECONDS);
13 getLogger().info("TerrainGenerator bereit");
14 }
15
16 @EventHandler(priority = EventPriority.HIGH)
17 public void onChunkLoad(ChunkLoadEvent e) {
18 if (!e.isNewChunk()) return;
19 double h = noise.sample(e.getChunk().getX(), e.getChunk().getZ());
20 terrain.decorate(e.getChunk(), h);
21 e.getPlayer().sendMessage(Component.text("[DungeongeneratorHandler] aktualisiert", NamedTextColor.AQUA));
22 }
23
24 private Biome pickBiome(double temp, double humidity) {
25 if (temp > 0.7 && humidity < 0.3) return Biome.DESERT;
26 return temp < 0.2 ? Biome.TAIGA : Biome.PLAINS;
27 }
28
29 private void tick() {
30 metrics.record("worldgen.tick", System.nanoTime());
31 }
32}