Solved World generator not working?

Discussion in 'Plugin Development' started by thechrisanator, Nov 24, 2018.

Thread Status:
Not open for further replies.
  1. Offline

    thechrisanator

    when I delete the world folder, it recreates it, but with the vanilla world generator. I want my own generator to make the world. How do I do that?

    main:
    Code:
    package me.Darkolythe.MiningWorld;
    
    import org.bukkit.generator.ChunkGenerator;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class MiningWorld extends JavaPlugin {
       
        @Override
        public void onEnable() {
            // TODO Insert logic to be performed when the plugin is enabled
        }
       
        @Override
        public void onDisable() {
            // TODO Insert logic to be performed when the plugin is disabled
        }
       
        @Override
        public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
            return new GenerateWorld();
        }
       
    }
    Code:
    package me.Darkolythe.MiningWorld;
    
    import java.util.Random;
    
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.generator.ChunkGenerator;
    import org.bukkit.util.noise.SimplexOctaveGenerator;
    
    public class GenerateWorld extends ChunkGenerator {
        int currentHeight = 50;
    
        @Override
        public ChunkData generateChunkData(World world, Random random, int chunkX, int chunkZ, BiomeGrid biome) {
            System.out.println("gen");
            SimplexOctaveGenerator generator = new SimplexOctaveGenerator(new Random(world.getSeed()), 8);
            ChunkData chunk = createChunkData(world);
            generator.setScale(0.005D);
    
            for (int X = 0; X < 16; X++)
                for (int Z = 0; Z < 16; Z++) {
                    currentHeight = (int) (generator.noise(chunkX*16+X, chunkZ*16+Z, 0.5D, 0.5D)*15D+50D);
                    chunk.setBlock(X, currentHeight, Z, Material.GRASS);
                    chunk.setBlock(X, currentHeight-1, Z, Material.DIRT);
                    for (int i = currentHeight-2; i > 0; i--)
                        chunk.setBlock(X, i, Z, Material.STONE);
                    chunk.setBlock(X, 0, Z, Material.BEDROCK);
                }
            return chunk;
        }
    }
    
    plugin.yml:
    Code:
    name: MiningWorld
    version: 1.0.0
    author: Darkolythe
    main: me.Darkolythe.MiningWorld.MiningWorld
    api-version: 1.13
    load: startup
    description: This plugin generates a mining world
    worlds:
      world:
        generator: MiningWorld
     
  2. Online

    timtower Administrator Administrator Moderator

    @thechrisanator The part in the plugin.yml with worlds should be in the bukkit.yml I believe.
     
  3. Offline

    thechrisanator

    @timtower
    so I removed it from my plugin.yml, and now my bukkit.yml looks like this:
    Code:
    worlds:
      world:
        generator: MiningWorld
    nothing changed

    EDIT:
    never mind, Im just dumb. the bukkit.yml already exists in the server folder.

    all is good
     
    timtower likes this.
Thread Status:
Not open for further replies.

Share This Page