diff --git a/pom.xml b/pom.xml
index a5f3780..d771c5f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,7 +50,7 @@
${build.version}-SNAPSHOT
- 1.15.0
+ 1.16.0
-LOCAL
bentobox-world
https://sonarcloud.io
diff --git a/src/main/java/world/bentobox/caveblock/CaveBlock.java b/src/main/java/world/bentobox/caveblock/CaveBlock.java
index bd5a261..712c783 100644
--- a/src/main/java/world/bentobox/caveblock/CaveBlock.java
+++ b/src/main/java/world/bentobox/caveblock/CaveBlock.java
@@ -34,7 +34,9 @@ public class CaveBlock extends GameModeAddon
this.saveDefaultConfig();
this.loadSettings();
- this.chunkGenerator = new ChunkGeneratorWorld(this);
+ this.chunkNormalGenerator = new ChunkGeneratorWorld(this, World.Environment.NORMAL);
+ this.chunkNetherGenerator = new ChunkGeneratorWorld(this, World.Environment.NETHER);
+ this.chunkEndGenerator = new ChunkGeneratorWorld(this, World.Environment.THE_END);
// Player Command
this.playerCommand = new DefaultPlayerCommand(this)
@@ -137,7 +139,7 @@ public class CaveBlock extends GameModeAddon
// Create the world if it does not exist
this.islandWorld = WorldCreator.name(worldName).
environment(World.Environment.NORMAL).
- generator(this.chunkGenerator).
+ generator(this.chunkNormalGenerator).
createWorld();
// Set spawn rates
setSpawnRates(islandWorld);
@@ -162,7 +164,7 @@ public class CaveBlock extends GameModeAddon
{
this.netherWorld = WorldCreator.name(worldName + NETHER).
type(WorldType.FLAT).
- generator(this.chunkGenerator).
+ generator(this.chunkNetherGenerator).
environment(World.Environment.NETHER).
createWorld();
}
@@ -187,7 +189,7 @@ public class CaveBlock extends GameModeAddon
{
this.endWorld = WorldCreator.name(worldName + THE_END).
type(WorldType.FLAT).
- generator(this.chunkGenerator).
+ generator(this.chunkEndGenerator).
environment(World.Environment.THE_END).
createWorld();
}
@@ -232,7 +234,18 @@ public class CaveBlock extends GameModeAddon
@Override
public @NonNull ChunkGenerator getDefaultWorldGenerator(String worldName, String id)
{
- return this.chunkGenerator;
+ if (worldName.endsWith("_nether"))
+ {
+ return this.chunkNetherGenerator;
+ }
+ else if (worldName.endsWith("_the_end"))
+ {
+ return this.chunkEndGenerator;
+ }
+ else
+ {
+ return this.chunkNormalGenerator;
+ }
}
// ---------------------------------------------------------------------
@@ -284,9 +297,19 @@ public class CaveBlock extends GameModeAddon
private Settings settings;
/**
- * This stores CaveBlock addon WorldGenerator.
+ * This stores CaveBlock addon WorldGenerator for overworld.
*/
- private ChunkGeneratorWorld chunkGenerator;
+ private ChunkGeneratorWorld chunkNormalGenerator;
+
+ /**
+ * This stores CaveBlock addon WorldGenerator for the nether.
+ */
+ private ChunkGeneratorWorld chunkNetherGenerator;
+
+ /**
+ * This stores CaveBlock addon WorldGenerator for the end.
+ */
+ private ChunkGeneratorWorld chunkEndGenerator;
// ---------------------------------------------------------------------
diff --git a/src/main/java/world/bentobox/caveblock/Settings.java b/src/main/java/world/bentobox/caveblock/Settings.java
index 5d7e9ee..64478e9 100644
--- a/src/main/java/world/bentobox/caveblock/Settings.java
+++ b/src/main/java/world/bentobox/caveblock/Settings.java
@@ -2077,6 +2077,72 @@ public class Settings implements WorldSettings
}
+ /**
+ * Is generate caves boolean.
+ *
+ * @return the boolean
+ */
+ public boolean isGenerateCaves()
+ {
+ return generateCaves;
+ }
+
+
+ /**
+ * Sets generate caves.
+ *
+ * @param generateCaves the generate caves
+ */
+ public void setGenerateCaves(boolean generateCaves)
+ {
+ this.generateCaves = generateCaves;
+ }
+
+
+ /**
+ * Is generate natural bedrock boolean.
+ *
+ * @return the boolean
+ */
+ public boolean isGenerateNaturalBedrock()
+ {
+ return generateNaturalBedrock;
+ }
+
+
+ /**
+ * Sets generate natural bedrock.
+ *
+ * @param generateNaturalBedrock the generate natural bedrock
+ */
+ public void setGenerateNaturalBedrock(boolean generateNaturalBedrock)
+ {
+ this.generateNaturalBedrock = generateNaturalBedrock;
+ }
+
+
+ /**
+ * Is generate natural surface boolean.
+ *
+ * @return the boolean
+ */
+ public boolean isGenerateNaturalSurface()
+ {
+ return generateNaturalSurface;
+ }
+
+
+ /**
+ * Sets generate natural surface.
+ *
+ * @param generateNaturalSurface the generate natural surface
+ */
+ public void setGenerateNaturalSurface(boolean generateNaturalSurface)
+ {
+ this.generateNaturalSurface = generateNaturalSurface;
+ }
+
+
// ---------------------------------------------------------------------
// Section: Variables
// ---------------------------------------------------------------------
@@ -2196,8 +2262,8 @@ public class Settings implements WorldSettings
private int banLimit = -1;
@ConfigComment("")
- @ConfigComment("This is cave.. no height... only depth. Max 256.")
- @ConfigComment("Should not be less then cave height.")
+ @ConfigComment("This is cave.. no height... only depth. If depth is set smaller than maximal world height, then area above will be empty.")
+ @ConfigComment("Should not be less than cave height.")
@ConfigEntry(path = "world.world-depth", needsReset = true)
private int worldDepth = 256;
@@ -2212,14 +2278,34 @@ public class Settings implements WorldSettings
private boolean newMaterialGenerator = false;
@ConfigComment("")
- @ConfigComment("Make over world roof of bedrock, if false, it will be made from stone")
+ @ConfigComment("Make over world roof of bedrock, if false, it will be made from stone.")
@ConfigEntry(path = "world.normal.roof", needsReset = true)
private boolean normalRoof = true;
- @ConfigComment("Make over world floor of bedrock, if false, it will be made from stone")
+ @ConfigComment("")
+ @ConfigComment("Option allows to toggle if world generator should generate natural(-ish) looking surface with dirt and grass blocks.")
+ @ConfigComment("Enabling this option will ignore roof setting.")
+ @ConfigComment("Default value is false.")
+ @ConfigEntry(path = "world.normal.natural-surface", needsReset = true, experimental = true)
+ private boolean generateNaturalSurface = false;
+
+ @ConfigComment("")
+ @ConfigComment("Option allows to toggle if world generator should generate natural looking caves.")
+ @ConfigComment("Default value is false.")
+ @ConfigEntry(path = "world.normal.natural-caves", needsReset = true)
+ private boolean generateCaves = false;
+
+ @ConfigComment("Make over world floor of bedrock, if false, it will be made from stone.")
@ConfigEntry(path = "world.normal.floor", needsReset = true)
private boolean normalFloor = true;
+ @ConfigComment("")
+ @ConfigComment("Option allows to toggle if world generator should generate natural looking bedrock block patterns.")
+ @ConfigComment("Enabling this option will ignore floor setting.")
+ @ConfigComment("Default value is false.")
+ @ConfigEntry(path = "world.normal.natural-bedrock", needsReset = true)
+ private boolean generateNaturalBedrock = false;
+
@ConfigComment("Main block of which world will be generated.")
@ConfigEntry(path = "world.normal.main-block", needsReset = true)
private Material normalMainBlock = Material.STONE;
diff --git a/src/main/java/world/bentobox/caveblock/generators/ChunkGeneratorWorld.java b/src/main/java/world/bentobox/caveblock/generators/ChunkGeneratorWorld.java
index 180277b..08648c9 100644
--- a/src/main/java/world/bentobox/caveblock/generators/ChunkGeneratorWorld.java
+++ b/src/main/java/world/bentobox/caveblock/generators/ChunkGeneratorWorld.java
@@ -6,12 +6,10 @@ import org.bukkit.generator.BiomeProvider;
import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.generator.WorldInfo;
+
import world.bentobox.caveblock.CaveBlock;
import world.bentobox.caveblock.Settings;
-import world.bentobox.caveblock.generators.populators.EntitiesPopulator;
-import world.bentobox.caveblock.generators.populators.FlatBiomeProvider;
-import world.bentobox.caveblock.generators.populators.MaterialPopulator;
-import world.bentobox.caveblock.generators.populators.NewMaterialPopulator;
+import world.bentobox.caveblock.generators.populators.*;
import java.util.ArrayList;
import java.util.List;
@@ -31,6 +29,7 @@ public class ChunkGeneratorWorld extends ChunkGenerator {
private final CaveBlock addon;
private final Settings settings;
private final List blockPopulators;
+ private final World.Environment environment;
private BiomeProvider biomeProvider;
private boolean isNewGenerator;
@@ -40,12 +39,14 @@ public class ChunkGeneratorWorld extends ChunkGenerator {
/**
* @param addon - CaveBlock object
+ * @param environment - World environment
*/
- public ChunkGeneratorWorld(CaveBlock addon) {
+ public ChunkGeneratorWorld(CaveBlock addon, World.Environment environment) {
this.addon = addon;
this.settings = addon.getSettings();
this.blockPopulators = new ArrayList<>(2);
+ this.environment = environment;
reload();
}
@@ -53,14 +54,24 @@ public class ChunkGeneratorWorld extends ChunkGenerator {
// Section: Methods
// ---------------------------------------------------------------------
- private Material getGroundCeilMaterial(World.Environment environment) {
+ private Material getGroundRoofMaterial(World.Environment environment) {
return switch (environment) {
case NETHER -> this.settings.isNetherRoof() ? Material.BEDROCK : this.settings.getNetherMainBlock();
+ case THE_END -> this.settings.isEndRoof() ? Material.BEDROCK : this.settings.getEndMainBlock();
+ default -> this.settings.isNormalRoof() ? Material.BEDROCK : this.settings.getNormalMainBlock();
+ };
+ }
+
+
+ private Material getGroundFloorMaterial(World.Environment environment) {
+ return switch (environment) {
+ case NETHER -> this.settings.isNetherFloor() ? Material.BEDROCK : this.settings.getNetherMainBlock();
case THE_END -> this.settings.isEndFloor() ? Material.BEDROCK : this.settings.getEndMainBlock();
default -> this.settings.isNormalFloor() ? Material.BEDROCK : this.settings.getNormalMainBlock();
};
}
+
private Material getBaseMaterial(World.Environment environment) {
return switch (environment) {
case NETHER -> this.settings.getNetherMainBlock();
@@ -70,19 +81,35 @@ public class ChunkGeneratorWorld extends ChunkGenerator {
}
@Override
- public void generateBedrock(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, ChunkData chunkData) {
- final int minHeight = worldInfo.getMinHeight();
- Material material = getGroundCeilMaterial(worldInfo.getEnvironment());
- chunkData.setRegion(0, minHeight, 0, 16, minHeight + 1, 16, material);
+ public void generateBedrock(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, ChunkData chunkData)
+ {
+ if (!this.shouldGenerateBedrock())
+ {
+ final int minHeight = worldInfo.getMinHeight();
+ Material material = this.getGroundFloorMaterial(worldInfo.getEnvironment());
+ chunkData.setRegion(0, minHeight, 0, 16, minHeight + 1, 16, material);
+ }
+ else
+ {
+ // Apparently default surface generation does not include 0 bedrock layer.
+ final int minHeight = worldInfo.getMinHeight();
+ chunkData.setRegion(0, minHeight, 0, 16, minHeight + 1, 16, Material.BEDROCK);
+ }
}
+
@Override
- public void generateSurface(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, ChunkData chunkData) {
- final int worldHeight = Math.min(worldInfo.getMaxHeight(), this.settings.getWorldDepth());
- Material material = getGroundCeilMaterial(worldInfo.getEnvironment());
- chunkData.setRegion(0, worldHeight - 1, 0, 16, worldHeight, 16, material);
+ public void generateSurface(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, ChunkData chunkData)
+ {
+ if (!this.shouldGenerateSurface())
+ {
+ final int worldHeight = Math.min(worldInfo.getMaxHeight(), this.settings.getWorldDepth());
+ Material material = this.getGroundRoofMaterial(worldInfo.getEnvironment());
+ chunkData.setRegion(0, worldHeight - 1, 0, 16, worldHeight, 16, material);
+ }
}
+
@Override
public void generateNoise(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, ChunkData chunkData) {
final int minHeight = worldInfo.getMinHeight();
@@ -127,18 +154,22 @@ public class ChunkGeneratorWorld extends ChunkGenerator {
}
@Override
- public boolean shouldGenerateSurface() {
- return true;
+ public boolean shouldGenerateSurface()
+ {
+ // Surface generation should happen only in overworld. Nether and end worlds does not have surface.
+ return this.environment.equals(World.Environment.NORMAL) && this.settings.isGenerateNaturalSurface();
}
@Override
public boolean shouldGenerateBedrock() {
- return true;
+ // Bedrock generation should happen only in overworld. Nether and end worlds does not have nice bedrock layers.
+ return this.environment.equals(World.Environment.NORMAL) && this.settings.isGenerateNaturalBedrock();
}
@Override
public boolean shouldGenerateCaves() {
- return this.isNewGenerator;
+ // Cave generation should happen only in overworld. Nether and end worlds does not have nice cave layers.
+ return this.environment.equals(World.Environment.NORMAL) && this.settings.isGenerateCaves();
}
/**
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index cae18c9..6dd742c 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1,4 +1,4 @@
-# CaveBlock Configuration {$version}
+# CaveBlock Configuration 1.15.0-SNAPSHOT-LOCAL
caveblock:
command:
# Cave Command. What command users will run to access their cave.
@@ -9,12 +9,12 @@ caveblock:
admin: cbadmin cba
# The default action for new player command call.
# Sub-command of main player command that will be run on first player command call.
- # By default, it is the sub-command 'create'.
+ # By default it is sub-command 'create'.
# Added since 1.13.0.
new-player-action: create
# The default action for player command.
# Sub-command of main player command that will be run on each player command call.
- # By default, it is the sub-command 'go'.
+ # By default it is sub-command 'go'.
# Added since 1.13.0.
default-action: go
world:
@@ -81,9 +81,9 @@ world:
# The permission caveblock.ban.maxlimit.X where X is a number can also be used per player
# -1 = unlimited
ban-limit: -1
- #
- # This is cave.. no height... only depth. Max 256.
- # Should not be less then cave height.
+ #
+ # This is cave.. no height... only depth. If depth is set smaller than maximal world height, then area above will be empty.
+ # Should not be less than cave height.
# /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
world-depth: 256
# This indicate how many times block should be tried to generate.
@@ -95,13 +95,31 @@ world:
# /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
use-new-material-generator: false
normal:
- #
- # Make over world roof of bedrock, if false, it will be made from stone
+ #
+ # Make over world roof of bedrock, if false, it will be made from stone.
# /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
roof: true
- # Make over world floor of bedrock, if false, it will be made from stone
+ #
+ # Option allows to toggle if world generator should generate natural(-ish) looking surface with dirt and grass blocks.
+ # Enabling this option will ignore roof setting.
+ # Default value is false.
+ # /!\ This feature is experimental and might not work as expected or might not work at all.
+ # /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
+ natural-surface: false
+ #
+ # Option allows to toggle if world generator should generate natural looking caves.
+ # Default value is false.
+ # /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
+ natural-caves: false
+ # Make over world floor of bedrock, if false, it will be made from stone.
# /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
floor: true
+ #
+ # Option allows to toggle if world generator should generate natural looking bedrock block patterns.
+ # Enabling this option will ignore floor setting.
+ # Default value is false.
+ # /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
+ natural-bedrock: false
# Main block of which world will be generated.
# /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
main-block: STONE
@@ -116,24 +134,24 @@ world:
# where max amount in pack are 5 per each subchunk!
# /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
blocks:
- - MATERIAL:DIAMOND_ORE:1:5
- - MATERIAL:GOLD_ORE:1:4
- - MATERIAL:IRON_ORE:5:4
- - MATERIAL:COAL_ORE:10:6
- - MATERIAL:EMERALD_ORE:1:1
- - MATERIAL:CLAY:10:6
- - MATERIAL:DIRT:20:10
- - MATERIAL:GRAVEL:40:6
- - MATERIAL:GRANITE:40:10
- - MATERIAL:ANDESITE:20:10
- - MATERIAL:DIORITE:30:8
- - ENTITY:ZOMBIE:10:1
- - ENTITY:ENDERMAN:10:1
- - ENTITY:SKELETON:10:1
- - ENTITY:CREEPER:1:1
- - ENTITY:DOLPHIN:1:1
- - ENTITY:BAT:10:1
- - ENTITY:CAVE_SPIDER:10:1
+ - MATERIAL:DIAMOND_ORE:1:5
+ - MATERIAL:GOLD_ORE:1:4
+ - MATERIAL:IRON_ORE:5:4
+ - MATERIAL:COAL_ORE:10:6
+ - MATERIAL:EMERALD_ORE:1:1
+ - MATERIAL:CLAY:10:6
+ - MATERIAL:DIRT:20:10
+ - MATERIAL:GRAVEL:40:6
+ - MATERIAL:GRANITE:40:10
+ - MATERIAL:ANDESITE:20:10
+ - MATERIAL:DIORITE:30:8
+ - ENTITY:ZOMBIE:10:1
+ - ENTITY:ENDERMAN:10:1
+ - ENTITY:SKELETON:10:1
+ - ENTITY:CREEPER:1:1
+ - ENTITY:DOLPHIN:1:1
+ - ENTITY:BAT:10:1
+ - ENTITY:CAVE_SPIDER:10:1
nether:
# Generate Nether - if this is false, the nether world will not be made and access to
# the nether will not occur. Other plugins may still enable portal usage.
@@ -172,18 +190,19 @@ world:
# where max amount in pack are 5 per each subchunk!
# /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
blocks:
- - MATERIAL:NETHER_QUARTZ_ORE:30:5
- - MATERIAL:SOUL_SAND:40:10
- - MATERIAL:MAGMA_BLOCK:10:3
- - MATERIAL:GLOWSTONE:20:8
- - MATERIAL:NETHER_BRICKS:10:5
- - MATERIAL:LAVA:10:1
- - ENTITY:MAGMA_CUBE:0.5:1
- - ENTITY:GHAST:0.1:1
- - ENTITY:WITHER_SKELETON:0.1:1
- - MATERIAL:FIRE:10:1
+ - MATERIAL:NETHER_QUARTZ_ORE:30:5
+ - MATERIAL:SOUL_SAND:40:10
+ - MATERIAL:MAGMA_BLOCK:10:3
+ - MATERIAL:GLOWSTONE:20:8
+ - MATERIAL:NETHER_BRICKS:10:5
+ - MATERIAL:LAVA:10:1
+ - ENTITY:MAGMA_CUBE:0.5:1
+ - ENTITY:GHAST:0.1:1
+ - ENTITY:WITHER_SKELETON:0.1:1
+ - MATERIAL:FIRE:10:1
# This option indicates if nether portals should be linked via dimensions.
- # Option will simulate vanilla portal mechanics that links portals together or creates a new portal, if there is not a portal in other dimension.
+ # Option will simulate vanilla portal mechanics that links portals together
+ # or creates a new portal, if there is not a portal in that dimension.
create-and-link-portals: false
end:
generate: true
@@ -214,16 +233,17 @@ world:
# where max amount in pack are 5 per each subchunk!
# /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds.
blocks:
- - ENTITY:SHULKER:0.2:1
- - MATERIAL:OBSIDIAN:1:1
- - MATERIAL:CHORUS_PLANT:1:3
- # This option indicates if obsidian platform in the end should be generated when player enters the end world.
+ - ENTITY:SHULKER:0.2:1
+ - MATERIAL:OBSIDIAN:1:1
+ - MATERIAL:CHORUS_PLANT:1:3
+ # This option indicates if obsidian platform in the end should be generated
+ # when player enters the end world.
create-obsidian-platform: false
# Mob white list - these mobs will NOT be removed when logging in or doing /cave
remove-mobs-whitelist:
- - WITHER
- - ENDERMAN
- - ZOMBIE_VILLAGER
+ - ZOMBIE_VILLAGER
+ - WITHER
+ - ENDERMAN
# World flags. These are boolean settings for various flags for this world
flags:
CREEPER_DAMAGE: true
@@ -232,6 +252,7 @@ world:
ISLAND_RESPAWN: true
CREEPER_GRIEFING: false
COARSE_DIRT_TILLING: true
+ PETS_STAY_AT_HOME: true
ENDERMAN_GRIEFING: true
CLEAN_SUPER_FLAT: false
CHEST_DAMAGE: false
@@ -241,6 +262,7 @@ world:
ENDERMAN_DEATH_DROP: true
LIQUIDS_FLOWING_OUT: false
OFFLINE_REDSTONE: true
+ REMOVE_END_EXIT_ISLAND: true
OFFLINE_GROWTH: true
REMOVE_MOBS: true
ENDER_CHEST: false
@@ -272,15 +294,15 @@ world:
END_PORTAL: 500
BREEDING: 500
HURT_VILLAGERS: 500
- TURTLE_EGGS: 500
FROST_WALKER: 500
+ TURTLE_EGGS: 500
COLLECT_LAVA: 500
BREAK_SPAWNERS: 500
LEVER: 500
ELYTRA: 0
CAKE: 500
- HURT_MONSTERS: 0
RIDING: 500
+ HURT_MONSTERS: 0
NAME_TAG: 500
ARMOR_STAND: 500
TRADING: 0
@@ -301,17 +323,17 @@ world:
COMMAND_RANKS: 500
BEACON: 500
TRAPDOOR: 500
- EXPERIENCE_BOTTLE_THROWING: 500
PRESSURE_PLATE: 0
+ EXPERIENCE_BOTTLE_THROWING: 500
DYE: 500
ITEM_FRAME: 500
PLACE_BLOCKS: 500
CRAFTING: 0
- ENCHANTING: 0
SHEARING: 500
+ ENCHANTING: 0
BOAT: 500
- BED: 500
SPAWN_EGGS: 500
+ BED: 500
MILKING: 0
DISPENSER: 500
GATE: 0
@@ -322,8 +344,8 @@ world:
BREAK_BLOCKS: 500
CHORUS_FRUIT: 500
CONTAINER: 500
- POTION_THROWING: 500
JUKEBOX: 500
+ POTION_THROWING: 500
# These are the default settings for new caves
default-cave-settings:
PVP_END: false
@@ -335,33 +357,33 @@ world:
MONSTER_NATURAL_SPAWN: true
FIRE_IGNITE: true
FIRE_SPREAD: true
- ANIMAL_SPAWNERS_SPAWN: true
FIRE_BURNING: true
+ ANIMAL_SPAWNERS_SPAWN: true
PVP_OVERWORLD: false
# These settings/flags are hidden from users
# Ops can toggle hiding in-game using SHIFT-LEFT-CLICK on flags in settings
hidden-flags: []
# Visitor banned commands - Visitors to caves cannot use these commands in this world
visitor-banned-commands:
- - spawner
- - spawnmob
+ - spawner
+ - spawnmob
# Falling banned commands - players cannot use these commands when falling
# if the PREVENT_TELEPORT_WHEN_FALLING world setting flag is active
falling-banned-commands:
- - warp
- - spawn
+ - warp
+ - spawn
cave:
# Default max team size
- # Permission size cannot be less than the default below.
+ # Permission size cannot be less than the default below.
max-team-size: 4
# Default maximum number of coop rank members per cave
# Players can have the caveblock.coop.maxsize. permission to be bigger but
- # permission size cannot be less than the default below.
+ # permission size cannot be less than the default below.
# Added since 1.13.0.
max-coop-size: 4
# Default maximum number of trusted rank members per cave
# Players can have the caveblock.trust.maxsize. permission to be bigger but
- # permission size cannot be less than the default below.
+ # permission size cannot be less than the default below.
# Added since 1.13.0.
max-trusted-size: 4
# Default maximum number of homes a player can have. Min = 1
@@ -461,10 +483,46 @@ cave:
create-missing-nether-end-caves: false
commands:
# List of commands to run when a player joins an cave or creates one.
+ # These commands are run by the console, unless otherwise stated using the [SUDO] prefix,
+ # in which case they are executed by the player.
+ #
+ # Available placeholders for the commands are the following:
+ # * [name]: name of the player
+ #
+ # Here are some examples of valid commands to execute:
+ # * '[SUDO] bbox version'
+ # * 'bsbadmin deaths set [player] 0'
+ #
+ # Note that player-executed commands might not work, as these commands can be run with said player being offline.
+ # Added since 1.8.0.
on-join: []
# List of commands to run when a player leaves a cave, resets his cave or gets kicked from it.
+ # These commands are run by the console, unless otherwise stated using the [SUDO] prefix,
+ # in which case they are executed by the player.
+ #
+ # Available placeholders for the commands are the following:
+ # * [name]: name of the player
+ #
+ # Here are some examples of valid commands to execute:
+ # * '[SUDO] bbox version'
+ # * 'bsbadmin deaths set [player] 0'
+ #
+ # Note that player-executed commands might not work, as these commands can be run with said player being offline.
+ # Added since 1.8.0.
on-leave: []
- # Returns a list of commands that should be executed when the player respawns after death if Flags.ISLAND_RESPAWN is true.
+ # List of commands that should be executed when the player respawns after death if Flags.ISLAND_RESPAWN is true.
+ # These commands are run by the console, unless otherwise stated using the [SUDO] prefix,
+ # in which case they are executed by the player.
+ #
+ # Available placeholders for the commands are the following:
+ # * [name]: name of the player
+ #
+ # Here are some examples of valid commands to execute:
+ # * '[SUDO] bbox version'
+ # * 'bsbadmin deaths set [player] 0'
+ #
+ # Note that player-executed commands might not work, as these commands can be run with said player being offline.
+ # Added since 1.14.0.
on-respawn: []
sethome:
nether:
@@ -488,9 +546,9 @@ protection:
# Geo restrict mobs.
# Mobs that exit the cave space where they were spawned will be removed.
geo-limit-settings:
- - GHAST
- - BAT
- - BLAZE
+ - GHAST
+ - BAT
+ - BLAZE
# CaveBlock blocked mobs.
# List of mobs that should not spawn in the CaveBlock.
# Added since 1.13.0.
@@ -498,30 +556,30 @@ protection:
# Invincible visitors. List of damages that will not affect visitors.
# Make list blank if visitors should receive all damages
invincible-visitors:
- - BLOCK_EXPLOSION
- - CONTACT
- - CUSTOM
- - DROWNING
- - ENTITY_ATTACK
- - ENTITY_EXPLOSION
- - FALL
- - FALLING_BLOCK
- - FIRE
- - FIRE_TICK
- - LAVA
- - LIGHTNING
- - MAGIC
- - POISON
- - PROJECTILE
- - STARVATION
- - SUFFOCATION
- - THORNS
- - WITHER
- - DRAGON_BREATH
- - FLY_INTO_WALL
- - HOT_FLOOR
- - CRAMMING
- - VOID
+ - BLOCK_EXPLOSION
+ - CONTACT
+ - CUSTOM
+ - DROWNING
+ - ENTITY_ATTACK
+ - ENTITY_EXPLOSION
+ - FALL
+ - FALLING_BLOCK
+ - FIRE
+ - FIRE_TICK
+ - LAVA
+ - LIGHTNING
+ - MAGIC
+ - POISON
+ - PROJECTILE
+ - STARVATION
+ - SUFFOCATION
+ - THORNS
+ - WITHER
+ - DRAGON_BREATH
+ - FLY_INTO_WALL
+ - HOT_FLOOR
+ - CRAMMING
+ - VOID
do-not-edit-these-settings:
# These settings should not be edited
reset-epoch: 0