mirror of
https://github.com/BentoBoxWorld/AcidIsland.git
synced 2024-11-24 19:46:33 +01:00
commit
f7ae02f08f
4
pom.xml
4
pom.xml
@ -59,13 +59,13 @@
|
||||
<powermock.version>2.0.9</powermock.version>
|
||||
<!-- More visible way how to change dependency versions -->
|
||||
<spigot.version>1.20.4-R0.1-SNAPSHOT</spigot.version>
|
||||
<bentobox.version>2.0.0-SNAPSHOT</bentobox.version>
|
||||
<bentobox.version>2.5.0-SNAPSHOT</bentobox.version>
|
||||
<!-- Revision variable removes warning about dynamic version -->
|
||||
<revision>${build.version}-SNAPSHOT</revision>
|
||||
<!-- Do not change unless you want different name for local builds. -->
|
||||
<build.number>-LOCAL</build.number>
|
||||
<!-- This allows to change between versions. -->
|
||||
<build.version>1.18.2</build.version>
|
||||
<build.version>1.19.0</build.version>
|
||||
<!-- Sonar Cloud -->
|
||||
<sonar.projectKey>BentoBoxWorld_AcidIsland</sonar.projectKey>
|
||||
<sonar.organization>bentobox-world</sonar.organization>
|
||||
|
@ -11,6 +11,7 @@ import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.google.common.base.Enums;
|
||||
|
||||
import world.bentobox.bentobox.BentoBox;
|
||||
import world.bentobox.bentobox.api.configuration.ConfigComment;
|
||||
import world.bentobox.bentobox.api.configuration.ConfigEntry;
|
||||
import world.bentobox.bentobox.api.configuration.StoreAt;
|
||||
@ -201,6 +202,15 @@ public class AISettings implements WorldSettings {
|
||||
@ConfigEntry(path = "world.island-height")
|
||||
private int islandHeight = 50;
|
||||
|
||||
@ConfigComment("The number of concurrent islands a player can have in the world")
|
||||
@ConfigComment("A value of 0 will use the BentoBox config.yml default")
|
||||
@ConfigEntry(path = "world.concurrent-islands")
|
||||
private int concurrentIslands = 0;
|
||||
|
||||
@ConfigComment("Disallow players to have other islands if they are in a team.")
|
||||
@ConfigEntry(path = "world.disallow-team-member-islands")
|
||||
boolean disallowTeamMemberIslands = true;
|
||||
|
||||
@ConfigComment("Use your own world generator for this world.")
|
||||
@ConfigComment("In this case, the plugin will not generate anything.")
|
||||
@ConfigEntry(path = "world.use-own-generator", experimental = true)
|
||||
@ -220,6 +230,21 @@ public class AISettings implements WorldSettings {
|
||||
@ConfigEntry(path = "world.ocean-floor", needsReset = true)
|
||||
private boolean oceanFloor = false;
|
||||
|
||||
@ConfigComment("Structures")
|
||||
@ConfigComment("This creates an vanilla structures in the worlds.")
|
||||
@ConfigEntry(path = "world.make-structures", needsReset = true)
|
||||
private boolean makeStructures = false;
|
||||
|
||||
@ConfigComment("Caves")
|
||||
@ConfigComment("This creates an vanilla caves in the worlds.")
|
||||
@ConfigEntry(path = "world.make-caves", needsReset = true)
|
||||
private boolean makeCaves = false;
|
||||
|
||||
@ConfigComment("Decorations")
|
||||
@ConfigComment("This creates an vanilla decorations in the worlds.")
|
||||
@ConfigEntry(path = "world.make-decorations", needsReset = true)
|
||||
private boolean makeDecorations = true;
|
||||
|
||||
@ConfigComment("Maximum number of islands in the world. Set to -1 or 0 for unlimited. ")
|
||||
@ConfigComment("If the number of islands is greater than this number, no new island will be created.")
|
||||
@ConfigEntry(path = "world.max-islands")
|
||||
@ -2024,4 +2049,79 @@ public class AISettings implements WorldSettings {
|
||||
public void setOceanFloor(boolean oceanFloor) {
|
||||
this.oceanFloor = oceanFloor;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the makeStructures
|
||||
*/
|
||||
public boolean isMakeStructures() {
|
||||
return makeStructures;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param makeStructures the makeStructures to set
|
||||
*/
|
||||
public void setMakeStructures(boolean makeStructures) {
|
||||
this.makeStructures = makeStructures;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the makeCaves
|
||||
*/
|
||||
public boolean isMakeCaves() {
|
||||
return makeCaves;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param makeCaves the makeCaves to set
|
||||
*/
|
||||
public void setMakeCaves(boolean makeCaves) {
|
||||
this.makeCaves = makeCaves;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the makeDecorations
|
||||
*/
|
||||
public boolean isMakeDecorations() {
|
||||
return makeDecorations;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param makeDecorations the makeDecorations to set
|
||||
*/
|
||||
public void setMakeDecorations(boolean makeDecorations) {
|
||||
this.makeDecorations = makeDecorations;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the disallowTeamMemberIslands
|
||||
*/
|
||||
@Override
|
||||
public boolean isDisallowTeamMemberIslands() {
|
||||
return disallowTeamMemberIslands;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param disallowTeamMemberIslands the disallowTeamMemberIslands to set
|
||||
*/
|
||||
public void setDisallowTeamMemberIslands(boolean disallowTeamMemberIslands) {
|
||||
this.disallowTeamMemberIslands = disallowTeamMemberIslands;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the concurrentIslands
|
||||
*/
|
||||
@Override
|
||||
public int getConcurrentIslands() {
|
||||
if (concurrentIslands <= 0) {
|
||||
return BentoBox.getInstance().getSettings().getIslandNumber();
|
||||
}
|
||||
return concurrentIslands;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param concurrentIslands the concurrentIslands to set
|
||||
*/
|
||||
public void setConcurrentIslands(int concurrentIslands) {
|
||||
this.concurrentIslands = concurrentIslands;
|
||||
}
|
||||
}
|
||||
|
@ -2,12 +2,18 @@ package world.bentobox.acidisland;
|
||||
|
||||
|
||||
import world.bentobox.bentobox.api.addons.Addon;
|
||||
import world.bentobox.bentobox.api.addons.GameModeAddon;
|
||||
import world.bentobox.bentobox.api.addons.Pladdon;
|
||||
|
||||
public class AcidIslandPladdon extends Pladdon {
|
||||
|
||||
private GameModeAddon addon;
|
||||
|
||||
@Override
|
||||
public Addon getAddon() {
|
||||
return new AcidIsland();
|
||||
if (addon == null) {
|
||||
addon = new AcidIsland();
|
||||
}
|
||||
return addon;
|
||||
}
|
||||
}
|
||||
|
@ -1,21 +1,23 @@
|
||||
package world.bentobox.acidisland.events;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
/**
|
||||
* Fired when an entity (items excluded) receives damage from acid
|
||||
* @author Poslovitch
|
||||
* @author Poslovitch, tastybento
|
||||
* @since 1.0
|
||||
*/
|
||||
public class EntityDamageByAcidEvent extends Event {
|
||||
public class EntityDamageByAcidEvent extends Event implements Cancellable {
|
||||
|
||||
private final Entity entity;
|
||||
private double damage;
|
||||
|
||||
public enum Acid { RAIN, WATER }
|
||||
private final Acid cause;
|
||||
private boolean cancelled;
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
@Override
|
||||
@ -64,4 +66,15 @@ public class EntityDamageByAcidEvent extends Event {
|
||||
public Acid getCause() {
|
||||
return cause;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean cancel) {
|
||||
this.cancelled = cancel;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -178,7 +178,14 @@ public class AcidEffect implements Listener {
|
||||
// Check they are still in this world
|
||||
} else if (wetPlayers.containsKey(player) && wetPlayers.get(player) < System.currentTimeMillis()) {
|
||||
double protection = addon.getSettings().getAcidRainDamage() * getDamageReduced(player);
|
||||
double totalDamage = Math.max(0, addon.getSettings().getAcidRainDamage() - protection);
|
||||
|
||||
User user = User.getInstance(player);
|
||||
// Get the percentage reduction and ensure the value is between 0 and 100
|
||||
double percent = (100
|
||||
- Math.max(0, Math.min(100, user.getPermissionValue("acidisland.protection.rain", 0)))) / 100D;
|
||||
|
||||
double totalDamage = Math.max(0, addon.getSettings().getAcidRainDamage() - protection) * percent;
|
||||
|
||||
AcidRainEvent event = new AcidRainEvent(player, totalDamage, protection,
|
||||
addon.getSettings().getAcidRainEffects());
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
@ -187,11 +194,13 @@ public class AcidEffect implements Listener {
|
||||
.addPotionEffect(new PotionEffect(t, addon.getSettings().getRainEffectDuation() * 20, 1)));
|
||||
// Apply damage if there is any
|
||||
if (event.getRainDamage() > 0D) {
|
||||
player.damage(event.getRainDamage());
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ENTITY_CREEPER_PRIMED, 3F, 3F);
|
||||
EntityDamageByAcidEvent e = new EntityDamageByAcidEvent(player, event.getRainDamage(), Acid.RAIN);
|
||||
// Fire event
|
||||
Bukkit.getPluginManager().callEvent(e);
|
||||
if (!e.isCancelled()) {
|
||||
player.damage(event.getRainDamage());
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ENTITY_CREEPER_PRIMED, 3F, 3F);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -204,19 +213,28 @@ public class AcidEffect implements Listener {
|
||||
return true;
|
||||
} else if (burningPlayers.containsKey(player) && burningPlayers.get(player) < System.currentTimeMillis()) {
|
||||
double protection = addon.getSettings().getAcidDamage() * getDamageReduced(player);
|
||||
double totalDamage = Math.max(0, addon.getSettings().getAcidDamage() - protection);
|
||||
|
||||
User user = User.getInstance(player);
|
||||
// Get the percentage reduction and ensure the value is between 0 and 100
|
||||
double percent = (100
|
||||
- Math.max(0, Math.min(100, user.getPermissionValue("acidisland.protection.acid", 0)))) / 100D;
|
||||
|
||||
double totalDamage = Math.max(0, addon.getSettings().getAcidDamage() - protection) * percent;
|
||||
|
||||
AcidEvent event = new AcidEvent(player, totalDamage, protection, addon.getSettings().getAcidEffects());
|
||||
addon.getServer().getPluginManager().callEvent(event);
|
||||
if (!event.isCancelled()) {
|
||||
event.getPotionEffects().stream().filter(EFFECTS::contains).forEach(t -> player
|
||||
.addPotionEffect(new PotionEffect(t, addon.getSettings().getAcidEffectDuation() * 20, 1)));
|
||||
// Apply damage if there is any
|
||||
if (event.getTotalDamage() > 0D) {
|
||||
player.damage(event.getTotalDamage());
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ENTITY_CREEPER_PRIMED, 3F, 3F);
|
||||
if (event.getTotalDamage() > 0D) {
|
||||
EntityDamageByAcidEvent e = new EntityDamageByAcidEvent(player, event.getTotalDamage(), Acid.WATER);
|
||||
// Fire event
|
||||
Bukkit.getPluginManager().callEvent(e);
|
||||
if (!e.isCancelled()) {
|
||||
player.damage(event.getTotalDamage());
|
||||
player.getWorld().playSound(player.getLocation(), Sound.ENTITY_CREEPER_PRIMED, 3F, 3F);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -230,9 +248,10 @@ public class AcidEffect implements Listener {
|
||||
*/
|
||||
private boolean isSafeFromRain(Player player) {
|
||||
if (isEssentialsGodMode(player) || player.getWorld().getEnvironment().equals(Environment.NETHER)
|
||||
|| player.getGameMode() != GameMode.SURVIVAL
|
||||
|| player.getWorld().getEnvironment().equals(Environment.THE_END)
|
||||
|| (addon.getSettings().isHelmetProtection() && (player.getInventory().getHelmet() != null
|
||||
&& player.getInventory().getHelmet().getType().name().contains("HELMET")))
|
||||
&& player.getInventory().getHelmet().getType().name().contains("HELMET")))
|
||||
|| (!addon.getSettings().isAcidDamageSnow() && player.getLocation().getBlock().getTemperature() < 0.1) // snow falls
|
||||
|| player.getLocation().getBlock().getHumidity() == 0 // dry
|
||||
|| (player.getActivePotionEffects().stream().map(PotionEffect::getType)
|
||||
@ -260,7 +279,7 @@ public class AcidEffect implements Listener {
|
||||
*/
|
||||
boolean isSafeFromAcid(Player player) {
|
||||
// Check for GodMode
|
||||
if (isEssentialsGodMode(player)
|
||||
if (isEssentialsGodMode(player) || player.getGameMode() != GameMode.SURVIVAL
|
||||
// Protect visitors
|
||||
|| (addon.getPlugin().getIWM().getIvSettings(player.getWorld()).contains(DamageCause.CUSTOM.name())
|
||||
&& !addon.getIslands().userIsOnIsland(player.getWorld(), User.getInstance(player)))) {
|
||||
|
@ -37,6 +37,8 @@ public class AcidTask {
|
||||
i.add(EntityType.POLAR_BEAR);
|
||||
i.add(EntityType.TURTLE);
|
||||
i.add(EntityType.DROWNED);
|
||||
i.add(EntityType.GUARDIAN);
|
||||
i.add(EntityType.ELDER_GUARDIAN);
|
||||
Enums.getIfPresent(EntityType.class, "AXOLOTL").toJavaUtil().ifPresent(i::add);
|
||||
IMMUNE = Collections.unmodifiableList(i);
|
||||
}
|
||||
@ -86,10 +88,12 @@ public class AcidTask {
|
||||
void applyDamage(Entity e, long damage) {
|
||||
if (e instanceof LivingEntity) {
|
||||
double actualDamage = Math.max(0, damage - damage * AcidEffect.getDamageReduced((LivingEntity)e));
|
||||
((LivingEntity)e).damage(actualDamage);
|
||||
EntityDamageByAcidEvent event = new EntityDamageByAcidEvent(e, actualDamage, Acid.WATER);
|
||||
// Fire event
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
if (!event.isCancelled()) {
|
||||
((LivingEntity)e).damage(actualDamage);
|
||||
}
|
||||
} else if (addon.getSettings().getAcidDestroyItemTime() > 0 && e instanceof Item){
|
||||
// Item
|
||||
if (e.getLocation().getBlock().getType().equals(Material.WATER)) {
|
||||
|
@ -27,10 +27,17 @@ import world.bentobox.acidisland.AcidIsland;
|
||||
*/
|
||||
public class ChunkGeneratorWorld extends ChunkGenerator {
|
||||
|
||||
private record FloorMats(Material base, Material top) {
|
||||
}
|
||||
|
||||
private final AcidIsland addon;
|
||||
private final Random rand = new Random();
|
||||
private final Map<Environment, WorldConfig> seaHeight = new EnumMap<>(Environment.class);
|
||||
private final Map<Vector, Material> roofChunk = new HashMap<>();
|
||||
private static final Map<Environment, FloorMats> floorMats = Map.of(Environment.NETHER,
|
||||
new FloorMats(Material.NETHERRACK, Material.SOUL_SAND), Environment.NORMAL,
|
||||
new FloorMats(Material.SANDSTONE, Material.SAND), Environment.THE_END,
|
||||
new FloorMats(Material.END_STONE, Material.END_STONE));
|
||||
private PerlinOctaveGenerator gen;
|
||||
|
||||
private record WorldConfig(int seaHeight, Material waterBlock) {}
|
||||
@ -72,7 +79,8 @@ public class ChunkGeneratorWorld extends ChunkGenerator {
|
||||
for (int z = 0; z < 16; z++) {
|
||||
int n = (int)(25 * gen.noise((chunkX << 4) + (double)x, (chunkZ << 4) + (double)z, 0.5, 0.5, true));
|
||||
for (int y = worldInfo.getMinHeight(); y < 25 + n; y++) {
|
||||
chunkData.setBlock(x, y, z, rand.nextBoolean() ? Material.SAND : Material.SANDSTONE);
|
||||
chunkData.setBlock(x, y, z, rand.nextBoolean() ? floorMats.get(worldInfo.getEnvironment()).top()
|
||||
: floorMats.get(worldInfo.getEnvironment()).base());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -90,11 +98,11 @@ public class ChunkGeneratorWorld extends ChunkGenerator {
|
||||
}
|
||||
@Override
|
||||
public boolean shouldGenerateCaves() {
|
||||
return addon.getSettings().isOceanFloor();
|
||||
return addon.getSettings().isMakeCaves();
|
||||
}
|
||||
@Override
|
||||
public boolean shouldGenerateDecorations() {
|
||||
return addon.getSettings().isOceanFloor();
|
||||
return addon.getSettings().isMakeDecorations();
|
||||
}
|
||||
@Override
|
||||
public boolean shouldGenerateMobs() {
|
||||
@ -102,7 +110,7 @@ public class ChunkGeneratorWorld extends ChunkGenerator {
|
||||
}
|
||||
@Override
|
||||
public boolean shouldGenerateStructures() {
|
||||
return addon.getSettings().isOceanFloor();
|
||||
return addon.getSettings().isMakeStructures();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: AcidIsland
|
||||
main: world.bentobox.acidisland.AcidIsland
|
||||
version: ${version}${build.number}
|
||||
api-version: 1.22.1
|
||||
api-version: 2.4.0
|
||||
metrics: true
|
||||
repository: "BentoBoxWorld/AcidIsland"
|
||||
icon: "OAK_BOAT"
|
||||
|
@ -125,6 +125,11 @@ world:
|
||||
# Island height - Lowest is 5.
|
||||
# It is the y coordinate of the bedrock block in the schem.
|
||||
island-height: 60
|
||||
# The number of concurrent islands a player can have in the world
|
||||
# A value of 0 will use the BentoBox config.yml default
|
||||
concurrent-islands: 1
|
||||
# Disallow players to have other islands if they are in a team.
|
||||
disallow-team-member-islands: true
|
||||
# Use your own world generator for this world.
|
||||
# In this case, the plugin will not generate anything.
|
||||
# /!\ This feature is experimental and might not work as expected or might not work at all.
|
||||
@ -139,6 +144,18 @@ world:
|
||||
# This creates an ocean floor environment, with vanilla elements.
|
||||
# /!\ 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.
|
||||
ocean-floor: true
|
||||
# Structures
|
||||
# This creates an vanilla structures in the worlds.
|
||||
# /!\ 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.
|
||||
make-structures: false
|
||||
# Caves
|
||||
# This creates an vanilla caves in the worlds.
|
||||
# /!\ 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.
|
||||
make-caves: false
|
||||
# Decorations
|
||||
# This creates an vanilla decorations in the worlds.
|
||||
# /!\ 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.
|
||||
make-decorations: true
|
||||
# Maximum number of islands in the world. Set to -1 or 0 for unlimited.
|
||||
# If the number of islands is greater than this number, no new island will be created.
|
||||
max-islands: 0
|
||||
@ -211,10 +228,10 @@ world:
|
||||
# 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
|
||||
remove-mobs-whitelist:
|
||||
- ZOMBIE_VILLAGER
|
||||
- ENDERMAN
|
||||
- ZOMBIFIED_PIGLIN
|
||||
- ZOMBIE_VILLAGER
|
||||
- WITHER
|
||||
- ZOMBIFIED_PIGLIN
|
||||
# World flags. These are boolean settings for various flags for this world
|
||||
flags:
|
||||
CREEPER_DAMAGE: true
|
||||
@ -228,27 +245,33 @@ world:
|
||||
PREVENT_TELEPORT_WHEN_FALLING: false
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE: true
|
||||
ENTER_EXIT_MESSAGES: true
|
||||
ALLOW_MOVE_BOX: true
|
||||
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
|
||||
ITEM_FRAME_DAMAGE: false
|
||||
TREES_GROWING_OUTSIDE_RANGE: false
|
||||
BOAT: true
|
||||
# These are the default protection settings for new islands.
|
||||
# The value is the minimum island rank required allowed to do the action
|
||||
# Ranks are: Visitor = 0, Member = 900, Owner = 1000
|
||||
default-island-flags:
|
||||
HURT_ANIMALS: 500
|
||||
LOOM: 500
|
||||
DRAGON_EGG: 500
|
||||
REDSTONE: 500
|
||||
BUCKET: 500
|
||||
LOCK: 0
|
||||
ENDER_PEARL: 500
|
||||
BELL_RINGING: 500
|
||||
DOOR: 500
|
||||
BREAK_HOPPERS: 500
|
||||
FURNACE: 500
|
||||
HURT_TAMED_ANIMALS: 500
|
||||
ANVIL: 500
|
||||
MINECART: 500
|
||||
FISH_SCOOPING: 500
|
||||
@ -256,6 +279,8 @@ world:
|
||||
END_PORTAL: 500
|
||||
BREEDING: 500
|
||||
HURT_VILLAGERS: 500
|
||||
BOOKSHELF: 500
|
||||
HARVEST: 500
|
||||
TURTLE_EGGS: 500
|
||||
FROST_WALKER: 500
|
||||
COLLECT_LAVA: 500
|
||||
@ -268,6 +293,7 @@ world:
|
||||
NAME_TAG: 500
|
||||
ARMOR_STAND: 500
|
||||
CHANGE_SETTINGS: 1000
|
||||
SIGN_EDITING: 500
|
||||
TRADING: 0
|
||||
EGGS: 500
|
||||
ITEM_DROP: 0
|
||||
@ -278,15 +304,19 @@ world:
|
||||
SCULK_SENSOR: 500
|
||||
LECTERN: 500
|
||||
SHULKER_BOX: 500
|
||||
GRINDSTONE: 500
|
||||
ITEM_PICKUP: 0
|
||||
CROP_TRAMPLE: 500
|
||||
DROPPER: 500
|
||||
BREWING: 500
|
||||
MOVE_BOX: 1000
|
||||
TNT_PRIMING: 500
|
||||
PARKOUR_CREATIVE: 500
|
||||
COLLECT_WATER: 500
|
||||
AXOLOTL_SCOOPING: 500
|
||||
BUTTON: 500
|
||||
COMPOSTER: 500
|
||||
STONECUTTING: 500
|
||||
FIRE_EXTINGUISH: 500
|
||||
COMMAND_RANKS: 500
|
||||
BEACON: 500
|
||||
@ -298,6 +328,7 @@ world:
|
||||
HIVE: 500
|
||||
ITEM_FRAME: 500
|
||||
PLACE_BLOCKS: 500
|
||||
CROP_PLANTING: 500
|
||||
CRAFTING: 0
|
||||
SHEARING: 500
|
||||
ENCHANTING: 0
|
||||
@ -309,8 +340,10 @@ world:
|
||||
DISPENSER: 500
|
||||
SCULK_SHRIEKER: 500
|
||||
GATE: 0
|
||||
SMITHING: 500
|
||||
EXPERIENCE_PICKUP: 500
|
||||
HOPPER: 500
|
||||
CANDLES: 500
|
||||
LEASH: 500
|
||||
MOUNT_INVENTORY: 500
|
||||
BREAK_BLOCKS: 500
|
||||
@ -320,13 +353,16 @@ world:
|
||||
POTION_THROWING: 500
|
||||
BARREL: 500
|
||||
COLLECT_POWDERED_SNOW: 500
|
||||
CARTOGRAPHY: 500
|
||||
# These are the default settings for new islands
|
||||
default-island-settings:
|
||||
PVP_END: false
|
||||
PVP_NETHER: false
|
||||
LEAF_DECAY: true
|
||||
ENDERMAN_TELEPORT: true
|
||||
ANIMAL_NATURAL_SPAWN: true
|
||||
MONSTER_NATURAL_SPAWN: true
|
||||
SHULKER_TELEPORT: true
|
||||
FIRE_SPREAD: true
|
||||
FIRE_BURNING: true
|
||||
PVP_OVERWORLD: false
|
||||
@ -551,4 +587,3 @@ protection:
|
||||
do-not-edit-these-settings:
|
||||
# These settings should not be edited
|
||||
reset-epoch: 0
|
||||
|
||||
|
7
src/main/resources/locales/hr.yml
Normal file
7
src/main/resources/locales/hr.yml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
acidisland:
|
||||
sign:
|
||||
line0: "&1Otok kiseline"
|
||||
line1: "[Ime]"
|
||||
line2: Voda je kiselina!
|
||||
line3: Budi oprezan! &c<3
|
Loading…
Reference in New Issue
Block a user