mirror of
https://github.com/BentoBoxWorld/AcidIsland.git
synced 2024-11-26 04:36:00 +01:00
Added world-specific spawn limit settings to config.yml
This commit is contained in:
parent
be58e2a666
commit
941e331727
@ -141,6 +141,25 @@ public class AISettings implements WorldSettings {
|
|||||||
@ConfigEntry(path = "world.difficulty")
|
@ConfigEntry(path = "world.difficulty")
|
||||||
private Difficulty difficulty;
|
private Difficulty difficulty;
|
||||||
|
|
||||||
|
@ConfigComment("Spawn limits. These override the limits set in bukkit.yml")
|
||||||
|
@ConfigComment("If set to a negative number, the server defaults will be used")
|
||||||
|
@ConfigEntry(path = "world.spawn-limits.monsters", since = "1.11.2")
|
||||||
|
private int spawnLimitMonsters = -1;
|
||||||
|
@ConfigEntry(path = "world.spawn-limits.animals", since = "1.11.2")
|
||||||
|
private int spawnLimitAnimals = -1;
|
||||||
|
@ConfigEntry(path = "world.spawn-limits.water-animals", since = "1.11.2")
|
||||||
|
private int spawnLimitWaterAnimals = -1;
|
||||||
|
@ConfigEntry(path = "world.spawn-limits.ambient", since = "1.11.2")
|
||||||
|
private int spawnLimitAmbient = -1;
|
||||||
|
@ConfigComment("Setting to 0 will disable animal spawns, but this is not recommended. Minecraft default is 400.")
|
||||||
|
@ConfigComment("A negative value uses the server default")
|
||||||
|
@ConfigEntry(path = "world.spawn-limits.ticks-per-animal-spawns", since = "1.11.2")
|
||||||
|
private int ticksPerAnimalSpawns = -1;
|
||||||
|
@ConfigComment("Setting to 0 will disable monster spawns, but this is not recommended. Minecraft default is 400.")
|
||||||
|
@ConfigComment("A negative value uses the server default")
|
||||||
|
@ConfigEntry(path = "world.spawn-limits.ticks-per-monster-spawns", since = "1.11.2")
|
||||||
|
private int ticksPerMonsterSpawns = -1;
|
||||||
|
|
||||||
@ConfigComment("Radius of island in blocks. (So distance between islands is twice this)")
|
@ConfigComment("Radius of island in blocks. (So distance between islands is twice this)")
|
||||||
@ConfigComment("Will be rounded up to the nearest 16 blocks.")
|
@ConfigComment("Will be rounded up to the nearest 16 blocks.")
|
||||||
@ConfigComment("It is the same for every dimension : Overworld, Nether and End.")
|
@ConfigComment("It is the same for every dimension : Overworld, Nether and End.")
|
||||||
@ -1602,4 +1621,76 @@ public class AISettings implements WorldSettings {
|
|||||||
public void setAcidEffectDuation(int acidEffectDuation) {
|
public void setAcidEffectDuation(int acidEffectDuation) {
|
||||||
this.acidEffectDuation = acidEffectDuation;
|
this.acidEffectDuation = acidEffectDuation;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @return the spawnLimitMonsters
|
||||||
|
*/
|
||||||
|
public int getSpawnLimitMonsters() {
|
||||||
|
return spawnLimitMonsters;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param spawnLimitMonsters the spawnLimitMonsters to set
|
||||||
|
*/
|
||||||
|
public void setSpawnLimitMonsters(int spawnLimitMonsters) {
|
||||||
|
this.spawnLimitMonsters = spawnLimitMonsters;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @return the spawnLimitAnimals
|
||||||
|
*/
|
||||||
|
public int getSpawnLimitAnimals() {
|
||||||
|
return spawnLimitAnimals;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param spawnLimitAnimals the spawnLimitAnimals to set
|
||||||
|
*/
|
||||||
|
public void setSpawnLimitAnimals(int spawnLimitAnimals) {
|
||||||
|
this.spawnLimitAnimals = spawnLimitAnimals;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @return the spawnLimitWaterAnimals
|
||||||
|
*/
|
||||||
|
public int getSpawnLimitWaterAnimals() {
|
||||||
|
return spawnLimitWaterAnimals;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param spawnLimitWaterAnimals the spawnLimitWaterAnimals to set
|
||||||
|
*/
|
||||||
|
public void setSpawnLimitWaterAnimals(int spawnLimitWaterAnimals) {
|
||||||
|
this.spawnLimitWaterAnimals = spawnLimitWaterAnimals;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @return the spawnLimitAmbient
|
||||||
|
*/
|
||||||
|
public int getSpawnLimitAmbient() {
|
||||||
|
return spawnLimitAmbient;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param spawnLimitAmbient the spawnLimitAmbient to set
|
||||||
|
*/
|
||||||
|
public void setSpawnLimitAmbient(int spawnLimitAmbient) {
|
||||||
|
this.spawnLimitAmbient = spawnLimitAmbient;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @return the ticksPerAnimalSpawns
|
||||||
|
*/
|
||||||
|
public int getTicksPerAnimalSpawns() {
|
||||||
|
return ticksPerAnimalSpawns;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param ticksPerAnimalSpawns the ticksPerAnimalSpawns to set
|
||||||
|
*/
|
||||||
|
public void setTicksPerAnimalSpawns(int ticksPerAnimalSpawns) {
|
||||||
|
this.ticksPerAnimalSpawns = ticksPerAnimalSpawns;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @return the ticksPerMonsterSpawns
|
||||||
|
*/
|
||||||
|
public int getTicksPerMonsterSpawns() {
|
||||||
|
return ticksPerMonsterSpawns;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param ticksPerMonsterSpawns the ticksPerMonsterSpawns to set
|
||||||
|
*/
|
||||||
|
public void setTicksPerMonsterSpawns(int ticksPerMonsterSpawns) {
|
||||||
|
this.ticksPerMonsterSpawns = ticksPerMonsterSpawns;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package world.bentobox.acidisland;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.WorldCreator;
|
import org.bukkit.WorldCreator;
|
||||||
import org.bukkit.WorldType;
|
import org.bukkit.WorldType;
|
||||||
|
import org.bukkit.World.Environment;
|
||||||
import org.bukkit.generator.ChunkGenerator;
|
import org.bukkit.generator.ChunkGenerator;
|
||||||
import org.eclipse.jdt.annotation.NonNull;
|
import org.eclipse.jdt.annotation.NonNull;
|
||||||
import org.eclipse.jdt.annotation.Nullable;
|
import org.eclipse.jdt.annotation.Nullable;
|
||||||
@ -104,35 +105,49 @@ public class AcidIsland extends GameModeAddon {
|
|||||||
}
|
}
|
||||||
// Create the world if it does not exist
|
// Create the world if it does not exist
|
||||||
chunkGenerator = new ChunkGeneratorWorld(this);
|
chunkGenerator = new ChunkGeneratorWorld(this);
|
||||||
islandWorld = WorldCreator.name(worldName).type(WorldType.FLAT).environment(World.Environment.NORMAL).generator(chunkGenerator)
|
islandWorld = getWorld(worldName, World.Environment.NORMAL, chunkGenerator);
|
||||||
.createWorld();
|
|
||||||
// Make the nether if it does not exist
|
// Make the nether if it does not exist
|
||||||
if (settings.isNetherGenerate()) {
|
if (settings.isNetherGenerate()) {
|
||||||
if (getServer().getWorld(worldName + NETHER) == null) {
|
if (getServer().getWorld(worldName + NETHER) == null) {
|
||||||
log("Creating AcidIsland's Nether...");
|
log("Creating AcidIsland's Nether...");
|
||||||
}
|
}
|
||||||
if (!settings.isNetherIslands()) {
|
netherWorld = settings.isNetherIslands() ? getWorld(worldName, World.Environment.NETHER, chunkGenerator) : getWorld(worldName, World.Environment.NETHER, null);
|
||||||
netherWorld = WorldCreator.name(worldName + NETHER).type(WorldType.NORMAL).environment(World.Environment.NETHER).createWorld();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
netherWorld = WorldCreator.name(worldName + NETHER).type(WorldType.FLAT).generator(chunkGenerator)
|
|
||||||
.environment(World.Environment.NETHER).createWorld();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Make the end if it does not exist
|
// Make the end if it does not exist
|
||||||
if (settings.isEndGenerate()) {
|
if (settings.isEndGenerate()) {
|
||||||
if (getServer().getWorld(worldName + THE_END) == null) {
|
if (getServer().getWorld(worldName + THE_END) == null) {
|
||||||
log("Creating AcidIsland's End World...");
|
log("Creating AcidIsland's End World...");
|
||||||
}
|
}
|
||||||
if (!settings.isEndIslands()) {
|
endWorld = settings.isEndIslands() ? getWorld(worldName, World.Environment.THE_END, chunkGenerator) : getWorld(worldName, World.Environment.THE_END, null);
|
||||||
endWorld = WorldCreator.name(worldName + THE_END).type(WorldType.NORMAL).environment(World.Environment.THE_END).createWorld();
|
|
||||||
} else {
|
|
||||||
endWorld = WorldCreator.name(worldName + THE_END).type(WorldType.FLAT).generator(chunkGenerator)
|
|
||||||
.environment(World.Environment.THE_END).createWorld();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets a world or generates a new world if it does not exist
|
||||||
|
* @param worldName2 - the overworld name
|
||||||
|
* @param env - the environment
|
||||||
|
* @param chunkGenerator2 - the chunk generator. If <tt>null</tt> then the generator will not be specified
|
||||||
|
* @return world loaded or generated
|
||||||
|
*/
|
||||||
|
private World getWorld(String worldName2, Environment env, @Nullable ChunkGenerator chunkGenerator2) {
|
||||||
|
// Set world name
|
||||||
|
worldName2 = env.equals(World.Environment.NETHER) ? worldName2 + NETHER : worldName2;
|
||||||
|
worldName2 = env.equals(World.Environment.THE_END) ? worldName2 + THE_END : worldName2;
|
||||||
|
WorldCreator wc = WorldCreator.name(worldName2).type(WorldType.FLAT).environment(env);
|
||||||
|
World w = settings.isUseOwnGenerator() ? wc.createWorld() : wc.generator(chunkGenerator2).createWorld();
|
||||||
|
// Set spawn rates
|
||||||
|
if (w != null) {
|
||||||
|
w.setMonsterSpawnLimit(getSettings().getSpawnLimitMonsters());
|
||||||
|
w.setAmbientSpawnLimit(getSettings().getSpawnLimitAmbient());
|
||||||
|
w.setAnimalSpawnLimit(getSettings().getSpawnLimitAnimals());
|
||||||
|
w.setWaterAnimalSpawnLimit(getSettings().getSpawnLimitWaterAnimals());
|
||||||
|
w.setTicksPerAnimalSpawns(getSettings().getTicksPerAnimalSpawns());
|
||||||
|
w.setTicksPerMonsterSpawns(getSettings().getTicksPerMonsterSpawns());
|
||||||
|
}
|
||||||
|
return w;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WorldSettings getWorldSettings() {
|
public WorldSettings getWorldSettings() {
|
||||||
return settings;
|
return settings;
|
||||||
|
@ -40,7 +40,8 @@ acid:
|
|||||||
- CONFUSION
|
- CONFUSION
|
||||||
- BLINDNESS
|
- BLINDNESS
|
||||||
# Acid effect duration in seconds
|
# Acid effect duration in seconds
|
||||||
acid-effect-duation: 30
|
# Added since 1.11.2.
|
||||||
|
acid-effect-duration: 30
|
||||||
# Potion effects from going into acid rain and snow.
|
# Potion effects from going into acid rain and snow.
|
||||||
# You can list multiple effects.
|
# You can list multiple effects.
|
||||||
# Available effects are:
|
# Available effects are:
|
||||||
@ -54,7 +55,8 @@ acid:
|
|||||||
# Added since 1.9.1.
|
# Added since 1.9.1.
|
||||||
rain-effects: []
|
rain-effects: []
|
||||||
# Rain effect duration in seconds
|
# Rain effect duration in seconds
|
||||||
rain-effect-duation: 10
|
# Added since 1.11.2.
|
||||||
|
rain-effect-duration: 10
|
||||||
protection:
|
protection:
|
||||||
# If player wears a helmet then they will not suffer from acid rain
|
# If player wears a helmet then they will not suffer from acid rain
|
||||||
helmet: false
|
helmet: false
|
||||||
@ -71,6 +73,25 @@ world:
|
|||||||
# World difficulty setting - PEACEFUL, EASY, NORMAL, HARD
|
# World difficulty setting - PEACEFUL, EASY, NORMAL, HARD
|
||||||
# Other plugins may override this setting
|
# Other plugins may override this setting
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
|
spawn-limits:
|
||||||
|
# Spawn limits. These override the limits set in bukkit.yml
|
||||||
|
# If set to a negative number, the server defaults will be used
|
||||||
|
# Added since 1.11.2.
|
||||||
|
monsters: -1
|
||||||
|
# Added since 1.11.2.
|
||||||
|
animals: -1
|
||||||
|
# Added since 1.11.2.
|
||||||
|
water-animals: -1
|
||||||
|
# Added since 1.11.2.
|
||||||
|
ambient: -1
|
||||||
|
# Setting to 0 will disable animal spawns, but this is not recommended. Minecraft default is 400.
|
||||||
|
# A negative value uses the server default
|
||||||
|
# Added since 1.11.2.
|
||||||
|
ticks-per-animal-spawns: -1
|
||||||
|
# Setting to 0 will disable monster spawns, but this is not recommended. Minecraft default is 400.
|
||||||
|
# A negative value uses the server default
|
||||||
|
# Added since 1.11.2.
|
||||||
|
ticks-per-monster-spawns: -1
|
||||||
# Radius of island in blocks. (So distance between islands is twice this)
|
# Radius of island in blocks. (So distance between islands is twice this)
|
||||||
# Will be rounded up to the nearest 16 blocks.
|
# Will be rounded up to the nearest 16 blocks.
|
||||||
# It is the same for every dimension : Overworld, Nether and End.
|
# It is the same for every dimension : Overworld, Nether and End.
|
||||||
@ -155,10 +176,10 @@ world:
|
|||||||
# This setting is toggled in world flags and set by the settings GUI.
|
# This setting is toggled in world flags and set by the settings GUI.
|
||||||
# Mob white list - these mobs will NOT be removed when logging in or doing /island
|
# Mob white list - these mobs will NOT be removed when logging in or doing /island
|
||||||
remove-mobs-whitelist:
|
remove-mobs-whitelist:
|
||||||
- PIG_ZOMBIE
|
|
||||||
- WITHER
|
|
||||||
- ENDERMAN
|
- ENDERMAN
|
||||||
- ZOMBIE_VILLAGER
|
- ZOMBIE_VILLAGER
|
||||||
|
- PIG_ZOMBIE
|
||||||
|
- WITHER
|
||||||
# World flags. These are boolean settings for various flags for this world
|
# World flags. These are boolean settings for various flags for this world
|
||||||
flags:
|
flags:
|
||||||
CREEPER_DAMAGE: true
|
CREEPER_DAMAGE: true
|
||||||
@ -191,8 +212,8 @@ world:
|
|||||||
ENDER_PEARL: 500
|
ENDER_PEARL: 500
|
||||||
DOOR: 500
|
DOOR: 500
|
||||||
FURNACE: 500
|
FURNACE: 500
|
||||||
ANVIL: 500
|
|
||||||
MINECART: 500
|
MINECART: 500
|
||||||
|
ANVIL: 500
|
||||||
FISH_SCOOPING: 500
|
FISH_SCOOPING: 500
|
||||||
END_PORTAL: 500
|
END_PORTAL: 500
|
||||||
BREEDING: 500
|
BREEDING: 500
|
||||||
@ -203,20 +224,21 @@ world:
|
|||||||
LEVER: 500
|
LEVER: 500
|
||||||
ELYTRA: 0
|
ELYTRA: 0
|
||||||
HURT_MONSTERS: 0
|
HURT_MONSTERS: 0
|
||||||
CAKE: 500
|
|
||||||
RIDING: 500
|
RIDING: 500
|
||||||
ARMOR_STAND: 500
|
CAKE: 500
|
||||||
NAME_TAG: 500
|
NAME_TAG: 500
|
||||||
|
ARMOR_STAND: 500
|
||||||
TRADING: 0
|
TRADING: 0
|
||||||
EGGS: 500
|
EGGS: 500
|
||||||
ITEM_DROP: 0
|
ITEM_DROP: 0
|
||||||
NOTE_BLOCK: 0
|
NOTE_BLOCK: 0
|
||||||
FLINT_AND_STEEL: 500
|
FLINT_AND_STEEL: 500
|
||||||
NETHER_PORTAL: 500
|
NETHER_PORTAL: 500
|
||||||
|
LECTERN: 500
|
||||||
ITEM_PICKUP: 0
|
ITEM_PICKUP: 0
|
||||||
CROP_TRAMPLE: 500
|
CROP_TRAMPLE: 500
|
||||||
DROPPER: 500
|
|
||||||
BREWING: 500
|
BREWING: 500
|
||||||
|
DROPPER: 500
|
||||||
TNT_PRIMING: 500
|
TNT_PRIMING: 500
|
||||||
COLLECT_WATER: 500
|
COLLECT_WATER: 500
|
||||||
BUTTON: 500
|
BUTTON: 500
|
||||||
@ -224,14 +246,14 @@ world:
|
|||||||
COMMAND_RANKS: 500
|
COMMAND_RANKS: 500
|
||||||
BEACON: 500
|
BEACON: 500
|
||||||
TRAPDOOR: 500
|
TRAPDOOR: 500
|
||||||
EXPERIENCE_BOTTLE_THROWING: 500
|
|
||||||
PRESSURE_PLATE: 0
|
PRESSURE_PLATE: 0
|
||||||
|
EXPERIENCE_BOTTLE_THROWING: 500
|
||||||
DYE: 500
|
DYE: 500
|
||||||
PLACE_BLOCKS: 500
|
PLACE_BLOCKS: 500
|
||||||
ITEM_FRAME: 500
|
ITEM_FRAME: 500
|
||||||
CRAFTING: 0
|
CRAFTING: 0
|
||||||
ENCHANTING: 0
|
|
||||||
SHEARING: 500
|
SHEARING: 500
|
||||||
|
ENCHANTING: 0
|
||||||
BOAT: 500
|
BOAT: 500
|
||||||
SPAWN_EGGS: 500
|
SPAWN_EGGS: 500
|
||||||
BED: 500
|
BED: 500
|
||||||
@ -241,8 +263,8 @@ world:
|
|||||||
EXPERIENCE_PICKUP: 500
|
EXPERIENCE_PICKUP: 500
|
||||||
HOPPER: 500
|
HOPPER: 500
|
||||||
LEASH: 500
|
LEASH: 500
|
||||||
MOUNT_INVENTORY: 500
|
|
||||||
BREAK_BLOCKS: 500
|
BREAK_BLOCKS: 500
|
||||||
|
MOUNT_INVENTORY: 500
|
||||||
CHORUS_FRUIT: 500
|
CHORUS_FRUIT: 500
|
||||||
CONTAINER: 500
|
CONTAINER: 500
|
||||||
POTION_THROWING: 500
|
POTION_THROWING: 500
|
||||||
@ -254,8 +276,8 @@ world:
|
|||||||
PVP_NETHER: false
|
PVP_NETHER: false
|
||||||
LEAF_DECAY: true
|
LEAF_DECAY: true
|
||||||
TNT_DAMAGE: true
|
TNT_DAMAGE: true
|
||||||
MONSTER_SPAWN: true
|
|
||||||
FIRE_IGNITE: true
|
FIRE_IGNITE: true
|
||||||
|
MONSTER_SPAWN: true
|
||||||
FIRE_SPREAD: true
|
FIRE_SPREAD: true
|
||||||
FIRE_BURNING: true
|
FIRE_BURNING: true
|
||||||
PVP_OVERWORLD: false
|
PVP_OVERWORLD: false
|
||||||
|
Loading…
Reference in New Issue
Block a user