package com.plotsquared.nukkit.generator;
import cn.nukkit.event.EventHandler;
import cn.nukkit.event.Listener;
import cn.nukkit.event.level.ChunkLoadEvent;
import cn.nukkit.level.Level;
import cn.nukkit.level.format.FullChunk;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.generator.AugmentedUtils;
import com.plotsquared.nukkit.NukkitMain;
import java.util.concurrent.ConcurrentHashMap;
public class NukkitAugmentedGenerator implements Listener {
private static NukkitAugmentedGenerator generator;
private static ConcurrentHashMap<String, NukkitAugmentedGenerator> generators = new ConcurrentHashMap<>();
private NukkitAugmentedGenerator(NukkitMain plugin) {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
public static NukkitAugmentedGenerator get(Level level) {
NukkitAugmentedGenerator current = generators.get(level.getName());
if (current != null) {
return current;
}
if (generator == null) {
NukkitMain plugin = ((NukkitMain) PS.get().IMP);
generator = new NukkitAugmentedGenerator(plugin);
}
generators.put(level.getName(), generator);
return generator;
}
@EventHandler
private void onChunkLoad(ChunkLoadEvent event) {
Level level = event.getLevel();
generator = generators.get(level.getName());
if (generator != null) {
generator.populate(level, event.getChunk());
}
}
private void populate(Level world, FullChunk chunk) {
AugmentedUtils.generate(world.getName(), chunk.getX(), chunk.getZ(), null);
}
}