Java 类org.bukkit.event.world.ChunkPopulateEvent 实例源码

项目:MagicLoot3    文件:MLListener.java   
@EventHandler
public void onRuinGenerate(ChunkPopulateEvent e) {
    if (!main.cfg.getStringList("world-blacklist").contains(e.getWorld().getName())) {
        if (CSCoreLib.randomizer().nextInt(100) < main.cfg.getInt("chances.ruin")) {
            int x, z, y;
            x = e.getChunk().getX() * 16 + CSCoreLib.randomizer().nextInt(16);
            z = e.getChunk().getZ() * 16 + CSCoreLib.randomizer().nextInt(16);
            boolean flat = false;
            for (y = e.getWorld().getMaxHeight(); y > 30; y--) {
                Block current = e.getWorld().getBlockAt(x, y, z);
                if (!current.getType().isSolid()) {
                    flat = true;
                    for (int i = 0; i < 6; i++) {
                        for (int j = 0; j < 6; j++) {
                            for (int k = 0; k < 8; k++) {
                                if ((current.getRelative(i, k, j).getType().isSolid() || current.getRelative(i, k, j).getType().toString().contains("LEAVES")) || !current.getRelative(i, -1, j).getType().isSolid()) flat = false;
                            }
                        }
                    }
                    if (flat) {
                        RuinBuilder.buildRuin(current.getLocation());
                        break;
                    }
                }
            }
        }
    }
}
项目:GiantTreesRevived    文件:ChunkHandler.java   
/**
 * Watches for chunk population and if on a world set to spawn trees in the wild,
 * sends the chunk to be parsed
 * @param e Chunk Event
 */
@EventHandler
public void onChunkPopulate(ChunkPopulateEvent e){
    Chunk chunk = e.getChunk();
    int index = names.indexOf(chunk.getWorld().getName());
    if(index != -1){
        treePopulators.get(index).parseChunk(chunk);
    }
}
项目:Scapegoat    文件:GameState.java   
@EventHandler
    public void onChunkPopulate(ChunkPopulateEvent e)
    {
//      BlockState[] tileEnts = e.getChunk().getTileEntities();
//        for (BlockState state : tileEnts)
//        {
//            if (state.getType() != Material.CHEST)
//                continue;
//              Chest c = (Chest) state.getBlock();
//              c.getBlockInventory();
//        }
    }
项目:tregmine    文件:LightingFix.java   
@EventHandler
public void onLightingGlitchOccur(final ChunkPopulateEvent e) {

    if(e.getWorld().getName() != "Christmas"){
        return;
    }

    if(plugin.getConfig().getString("smartlighting") == null){
        return;
    }

    if(plugin.getConfig().getString("smartlighting") != "true"){
        return;
    }

    Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
        public void run() {
            World world = e.getWorld();
            Chunk chunk = e.getChunk();
            int x = chunk.getX();
            int z = chunk.getZ();
            world.refreshChunk(x-1, z-1);
            world.refreshChunk(x-1, z);
            world.refreshChunk(x-1, z+1);
            world.refreshChunk(x, z-1);
            world.refreshChunk(x, z);
            world.refreshChunk(x, z+1);
            world.refreshChunk(x+1, z-1);
            world.refreshChunk(x+1, z);
            world.refreshChunk(x+1, z+1);
        }
    },20 * 5);
}
项目:HiddenOre    文件:WorldGenerationListener.java   
/**
 * Reviews the chunk line by line and replaces all instances of toReplace with replaceWith.
 * This is configured world to world.
 * 
 * Note that by contract, this is called for a single chunk but the generation can occur
 * for surrounding chunks, if they are not yet populated.
 * 
 * @param event ChunkPopulateEvent covering the chunk 
 */
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void postGenerationOreClear(ChunkPopulateEvent event) {
    if (toReplace == null || replaceWith == null || worldName == null) {
        return;
    }

    Chunk chunk = event.getChunk();

    World world = chunk.getWorld();

    if (!world.getName().equalsIgnoreCase(worldName)) {
        return;
    }

    clear(chunk);

    int x = chunk.getX();
    int z = chunk.getZ();

    // check adjacent chunks, which by contract
    // might have been updated.
    if (world.isChunkLoaded(x - 1, z) ) {
        chunk = world.getChunkAt(x - 1, z);
        clear(chunk);
    }

    if (world.isChunkLoaded(x + 1, z) ) {
        chunk = world.getChunkAt(x + 1, z);
        clear(chunk);
    }

    if (world.isChunkLoaded(x, z - 1) ) {
        chunk = world.getChunkAt(x, z - 1);
        clear(chunk);
    }

    if (world.isChunkLoaded(x, z + 1) ) {
        chunk = world.getChunkAt(x, z + 1);
        clear(chunk);
    }
    if(Config.caveOres) {
        generateCaveOres(chunk);
    }
}
项目:parchment    文件:GlobalListenerHeavy.java   
@EventHandler
public void onChunkPopulate(ChunkPopulateEvent event) {
    plugin.handleEvent(event);
}