diff --git a/pom.xml b/pom.xml
index 22e15c5..850e134 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,12 +45,12 @@
UTF-8
1.8
- 1.15.1-R0.1-SNAPSHOT
- 1.11.0
+ 1.15.2-R0.1-SNAPSHOT
+ 1.13.0
${build.version}-SNAPSHOT
- 1.11.0
+ 1.13.0
-LOCAL
diff --git a/src/main/java/world/bentobox/caveblock/CaveBlock.java b/src/main/java/world/bentobox/caveblock/CaveBlock.java
index b952f9e..4c553eb 100644
--- a/src/main/java/world/bentobox/caveblock/CaveBlock.java
+++ b/src/main/java/world/bentobox/caveblock/CaveBlock.java
@@ -9,11 +9,12 @@ import org.bukkit.generator.ChunkGenerator;
import org.eclipse.jdt.annotation.NonNull;
import world.bentobox.bentobox.api.addons.GameModeAddon;
+import world.bentobox.bentobox.api.commands.admin.DefaultAdminCommand;
+import world.bentobox.bentobox.api.commands.island.DefaultPlayerCommand;
import world.bentobox.bentobox.api.configuration.Config;
import world.bentobox.bentobox.api.configuration.WorldSettings;
import world.bentobox.bentobox.api.flags.Flag;
-import world.bentobox.caveblock.commands.AdminCommand;
-import world.bentobox.caveblock.commands.IslandCommand;
+import world.bentobox.caveblock.commands.IslandAboutCommand;
import world.bentobox.caveblock.generators.ChunkGeneratorWorld;
import world.bentobox.caveblock.listeners.CustomHeightLimitations;
@@ -35,9 +36,19 @@ public class CaveBlock extends GameModeAddon
this.chunkGenerator = new ChunkGeneratorWorld(this);
- this.playerCommand = new IslandCommand(this);
- this.adminCommand = new AdminCommand(this);
+ // Player Command
+ this.playerCommand = new DefaultPlayerCommand(this)
+ {
+ @Override
+ public void setup()
+ {
+ super.setup();
+ new IslandAboutCommand(this);
+ }
+ };
+ // Admin command.
+ this.adminCommand = new DefaultAdminCommand(this) {};
}
diff --git a/src/main/java/world/bentobox/caveblock/Settings.java b/src/main/java/world/bentobox/caveblock/Settings.java
index 6c9ba91..a52a1bf 100644
--- a/src/main/java/world/bentobox/caveblock/Settings.java
+++ b/src/main/java/world/bentobox/caveblock/Settings.java
@@ -36,6 +36,21 @@ public class Settings implements WorldSettings
// Section: Getters
// ---------------------------------------------------------------------
+ /**
+ * @return the maxCoopSize
+ */
+ @Override
+ public int getMaxCoopSize() {
+ return maxCoopSize;
+ }
+
+ /**
+ * @return the maxTrustSize
+ */
+ @Override
+ public int getMaxTrustSize() {
+ return maxTrustSize;
+ }
/**
* This method returns the friendlyName object.
@@ -796,22 +811,50 @@ public class Settings implements WorldSettings
/**
- * This method returns the islandCommand value.
- * @return the value of islandCommand.
+ * {@inheritDoc}
*/
- public String getIslandCommand()
+ @Override
+ public List getMobLimitSettings()
{
- return islandCommand;
+ return mobLimitSettings;
}
/**
- * This method returns the adminCommand value.
- * @return the value of adminCommand.
+ * {@inheritDoc}
*/
- public String getAdminCommand()
+ public String getPlayerCommandAliases()
{
- return adminCommand;
+ return playerCommandAliases;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getAdminCommandAliases()
+ {
+ return adminCommandAliases;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDefaultPlayerAction()
+ {
+ return defaultPlayerAction;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDefaultNewPlayerAction()
+ {
+ return defaultNewPlayerAction;
}
@@ -819,6 +862,19 @@ public class Settings implements WorldSettings
// Section: Setters
// ---------------------------------------------------------------------
+ /**
+ * @param maxCoopSize the maxCoopSize to set
+ */
+ public void setMaxCoopSize(int maxCoopSize) {
+ this.maxCoopSize = maxCoopSize;
+ }
+
+ /**
+ * @param maxTrustSize the maxTrustSize to set
+ */
+ public void setMaxTrustSize(int maxTrustSize) {
+ this.maxTrustSize = maxTrustSize;
+ }
/**
* This method sets the friendlyName object value.
@@ -1573,24 +1629,24 @@ public class Settings implements WorldSettings
/**
- * This method sets the islandCommand value.
- * @param islandCommand the islandCommand new value.
+ * This method sets the playerCommandAliases value.
+ * @param playerCommandAliases the playerCommandAliases new value.
*
*/
- public void setIslandCommand(String islandCommand)
+ public void setPlayerCommandAliases(String playerCommandAliases)
{
- this.islandCommand = islandCommand;
+ this.playerCommandAliases = playerCommandAliases;
}
/**
- * This method sets the adminCommand value.
- * @param adminCommand the adminCommand new value.
+ * This method sets the adminCommandAliases value.
+ * @param adminCommandAliases the adminCommandAliases new value.
*
*/
- public void setAdminCommand(String adminCommand)
+ public void setAdminCommandAliases(String adminCommandAliases)
{
- this.adminCommand = adminCommand;
+ this.adminCommandAliases = adminCommandAliases;
}
/**
@@ -1774,6 +1830,36 @@ public class Settings implements WorldSettings
}
+ /**
+ * Method Settings#setDefaultPlayerAction sets new value for the defaultPlayerAction of this object.
+ * @param defaultPlayerAction new value for this object.
+ */
+ public void setDefaultPlayerAction(String defaultPlayerAction)
+ {
+ this.defaultPlayerAction = defaultPlayerAction;
+ }
+
+
+ /**
+ * Method Settings#setDefaultNewPlayerAction sets new value for the defaultNewPlayerAction of this object.
+ * @param defaultNewPlayerAction new value for this object.
+ */
+ public void setDefaultNewPlayerAction(String defaultNewPlayerAction)
+ {
+ this.defaultNewPlayerAction = defaultNewPlayerAction;
+ }
+
+
+ /**
+ * Method Settings#setMobLimitSettings sets new value for the mobLimitSettings of this object.
+ * @param mobLimitSettings new value for this object.
+ */
+ public void setMobLimitSettings(List mobLimitSettings)
+ {
+ this.mobLimitSettings = mobLimitSettings;
+ }
+
+
// ---------------------------------------------------------------------
// Section: Variables
// ---------------------------------------------------------------------
@@ -1782,12 +1868,24 @@ public class Settings implements WorldSettings
@ConfigComment("Cave Command. What command users will run to access their cave.")
@ConfigComment("To define alias, just separate commands with white space.")
@ConfigEntry(path = "caveblock.command.cave")
- private String islandCommand = "cave cb";
+ private String playerCommandAliases = "cave cb";
@ConfigComment("The Cave admin command.")
@ConfigComment("To define alias, just separate commands with white space.")
@ConfigEntry(path = "caveblock.command.admin")
- private String adminCommand = "cbadmin cba";
+ private String adminCommandAliases = "cbadmin cba";
+
+ @ConfigComment("The default action for new player command call.")
+ @ConfigComment("Sub-command of main player command that will be run on first player command call.")
+ @ConfigComment("By default it is sub-command 'create'.")
+ @ConfigEntry(path = "caveblock.command.new-player-action", since = "1.13.0")
+ private String defaultNewPlayerAction = "create";
+
+ @ConfigComment("The default action for player command.")
+ @ConfigComment("Sub-command of main player command that will be run on each player command call.")
+ @ConfigComment("By default it is sub-command 'go'.")
+ @ConfigEntry(path = "caveblock.command.default-action", since = "1.13.0")
+ private String defaultPlayerAction = "go";
/* WORLD */
@ConfigComment("Friendly name for this world. Used in admin commands. Must be a single word")
@@ -2026,6 +2124,18 @@ public class Settings implements WorldSettings
@ConfigEntry(path = "cave.max-team-size")
private int maxTeamSize = 4;
+ @ConfigComment("Default maximum number of coop rank members per cave")
+ @ConfigComment("Players can have the caveblock.coop.maxsize. permission to be bigger but")
+ @ConfigComment("permission size cannot be less than the default below. ")
+ @ConfigEntry(path = "cave.max-coop-size", since = "1.13.0")
+ private int maxCoopSize = 4;
+
+ @ConfigComment("Default maximum number of trusted rank members per cave")
+ @ConfigComment("Players can have the caveblock.trust.maxsize. permission to be bigger but")
+ @ConfigComment("permission size cannot be less than the default below. ")
+ @ConfigEntry(path = "cave.max-trusted-size", since = "1.13.0")
+ private int maxTrustSize = 4;
+
@ConfigComment("Default maximum number of homes a player can have. Min = 1")
@ConfigComment("Accessed via /cave sethome or /cave go ")
@ConfigEntry(path = "cave.max-homes")
@@ -2205,6 +2315,11 @@ public class Settings implements WorldSettings
@ConfigEntry(path = "protection.geo-limit-settings")
private List geoLimitSettings = new ArrayList<>();
+ @ConfigComment("CaveBlock blocked mobs.")
+ @ConfigComment("List of mobs that should not spawn in the CaveBlock.")
+ @ConfigEntry(path = "protection.block-mobs", since = "1.13.0")
+ private List mobLimitSettings = new ArrayList<>();
+
// Invincible visitor settings
@ConfigComment("Invincible visitors. List of damages that will not affect visitors.")
@ConfigComment("Make list blank if visitors should receive all damages")
diff --git a/src/main/java/world/bentobox/caveblock/commands/AdminCommand.java b/src/main/java/world/bentobox/caveblock/commands/AdminCommand.java
deleted file mode 100644
index 6ca6583..0000000
--- a/src/main/java/world/bentobox/caveblock/commands/AdminCommand.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package world.bentobox.caveblock.commands;
-
-
-import java.util.List;
-
-import world.bentobox.bentobox.api.commands.CompositeCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminDeleteCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminEmptyTrashCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminGetrankCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminInfoCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminRegisterCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminReloadCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminResetFlagsCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminSetrankCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminSetspawnCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminSettingsCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminSwitchCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminSwitchtoCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminTeleportCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminTrashCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminUnregisterCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminVersionCommand;
-import world.bentobox.bentobox.api.commands.admin.AdminWhyCommand;
-import world.bentobox.bentobox.api.commands.admin.blueprints.AdminBlueprintCommand;
-import world.bentobox.bentobox.api.commands.admin.deaths.AdminDeathsCommand;
-import world.bentobox.bentobox.api.commands.admin.purge.AdminPurgeCommand;
-import world.bentobox.bentobox.api.commands.admin.range.AdminRangeCommand;
-import world.bentobox.bentobox.api.commands.admin.resets.AdminResetsResetCommand;
-import world.bentobox.bentobox.api.commands.admin.team.AdminTeamAddCommand;
-import world.bentobox.bentobox.api.commands.admin.team.AdminTeamDisbandCommand;
-import world.bentobox.bentobox.api.commands.admin.team.AdminTeamKickCommand;
-import world.bentobox.bentobox.api.commands.admin.team.AdminTeamSetownerCommand;
-import world.bentobox.bentobox.api.localization.TextVariables;
-import world.bentobox.bentobox.api.user.User;
-import world.bentobox.caveblock.CaveBlock;
-
-
-public class AdminCommand extends CompositeCommand {
-
- public AdminCommand(CaveBlock addon) {
- super(addon,
- addon.getSettings().getAdminCommand().split(" ")[0],
- addon.getSettings().getAdminCommand().split(" "));
- }
-
- @Override
- public void setup() {
- setPermission("admin.*");
- setOnlyPlayer(false);
- setParametersHelp("commands.admin.help.parameters");
- setDescription("commands.admin.help.description");
- new AdminVersionCommand(this);
- new AdminTeleportCommand(this, "tp");
- new AdminTeleportCommand(this, "tpnether");
- new AdminTeleportCommand(this, "tpend");
- new AdminGetrankCommand(this);
- new AdminSetrankCommand(this);
- new AdminInfoCommand(this);
- // Team commands
- new AdminTeamAddCommand(this);
- new AdminTeamKickCommand(this);
- new AdminTeamDisbandCommand(this);
- new AdminTeamSetownerCommand(this);
- // Schems
- new AdminBlueprintCommand(this);
- // Register/unregister islands
- new AdminRegisterCommand(this);
- new AdminUnregisterCommand(this);
- // Range
- new AdminRangeCommand(this);
- // Resets
- new AdminResetsResetCommand(this);
- // Delete
- new AdminDeleteCommand(this);
- // Why
- new AdminWhyCommand(this);
- // Deaths
- new AdminDeathsCommand(this);
- // Reload
- new AdminReloadCommand(this);
- // Spawn
- new AdminSetspawnCommand(this);
- // Reset flags
- new AdminResetFlagsCommand(this);
- // Trash
- new AdminTrashCommand(this);
- new AdminEmptyTrashCommand(this);
- new AdminSwitchtoCommand(this);
-
- // Switch
- new AdminSwitchCommand(this);
- // Purge
- new AdminPurgeCommand(this);
- // Settings
- new AdminSettingsCommand(this);
- }
-
- @Override
- public boolean execute(User user, String label, List args) {
- if (!args.isEmpty()) {
- user.sendMessage("general.errors.unknown-command", TextVariables.LABEL, getTopLabel());
- return false;
- }
- // By default run the attached help command, if it exists (it should)
- return showHelp(this, user);
- }
-
-}
diff --git a/src/main/java/world/bentobox/caveblock/commands/IslandAboutCommand.java b/src/main/java/world/bentobox/caveblock/commands/IslandAboutCommand.java
index 91f7442..25f7ea9 100644
--- a/src/main/java/world/bentobox/caveblock/commands/IslandAboutCommand.java
+++ b/src/main/java/world/bentobox/caveblock/commands/IslandAboutCommand.java
@@ -24,7 +24,7 @@ public class IslandAboutCommand extends CompositeCommand {
@Override
public boolean execute(User user, String label, List args) {
user.sendRawMessage("About " + getAddon().getDescription().getName() + " " + getAddon().getDescription().getVersion() + ":");
- user.sendRawMessage("Copyright (c) 2019 BONNe");
+ user.sendRawMessage("Copyright (c) 2020 BONNe");
user.sendRawMessage("See https://www.eclipse.org/legal/epl-2.0/");
user.sendRawMessage("for license information.");
return true;
diff --git a/src/main/java/world/bentobox/caveblock/commands/IslandCommand.java b/src/main/java/world/bentobox/caveblock/commands/IslandCommand.java
deleted file mode 100644
index 6e88365..0000000
--- a/src/main/java/world/bentobox/caveblock/commands/IslandCommand.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package world.bentobox.caveblock.commands;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import world.bentobox.bentobox.api.commands.CompositeCommand;
-import world.bentobox.bentobox.api.commands.island.*;
-import world.bentobox.bentobox.api.commands.island.team.IslandTeamCommand;
-import world.bentobox.bentobox.api.localization.TextVariables;
-import world.bentobox.bentobox.api.user.User;
-import world.bentobox.caveblock.CaveBlock;
-
-
-public class IslandCommand extends CompositeCommand {
-
- public IslandCommand(CaveBlock addon) {
- super(addon,
- addon.getSettings().getIslandCommand().split(" ")[0],
- addon.getSettings().getIslandCommand().split(" "));
- }
-
- /* (non-Javadoc)
- * @see us.tastybento.bskyblock.api.commands.CompositeCommand#setup()
- */
- @Override
- public void setup() {
- setDescription("commands.island.help.description");
- setOnlyPlayer(true);
- // Permission
- setPermission("island");
- // Set up subcommands
- new IslandAboutCommand(this);
- new IslandInfoCommand(this);
- new IslandCreateCommand(this);
- new IslandGoCommand(this);
- new IslandSpawnCommand(this);
- new IslandResetCommand(this);
- new IslandSetnameCommand(this);
- new IslandResetnameCommand(this);
- new IslandSethomeCommand(this);
- new IslandSettingsCommand(this);
- new IslandLanguageCommand(this);
- new IslandBanCommand(this);
- new IslandUnbanCommand(this);
- new IslandBanlistCommand(this);
- new IslandNearCommand(this);
-
- // Expel command
- new IslandExpelCommand(this);
-
- // Team commands
- new IslandTeamCommand(this);
- }
-
- /* (non-Javadoc)
- * @see us.tastybento.bskyblock.api.commands.CommandArgument#execute(org.bukkit.command.CommandSender, java.lang.String[])
- */
- @Override
- public boolean execute(User user, String label, List args) {
- if (user == null) {
- return false;
- }
- if (args.isEmpty()) {
- // If user has an island, go
- if (getPlugin().getIslands().getIsland(getWorld(), user.getUniqueId()) != null) {
- return getSubCommand("go").map(goCmd -> goCmd.call(user, goCmd.getLabel(), new ArrayList<>())).orElse(false);
- }
- // No islands currently
- return getSubCommand("create").map(createCmd -> createCmd.call(user, createCmd.getLabel(), new ArrayList<>())).orElse(false);
- }
- user.sendMessage("general.errors.unknown-command", TextVariables.LABEL, getTopLabel());
- return false;
- }
-}
diff --git a/src/main/resources/addon.yml b/src/main/resources/addon.yml
index 2a89eed..0efbc91 100644
--- a/src/main/resources/addon.yml
+++ b/src/main/resources/addon.yml
@@ -1,6 +1,7 @@
name: CaveBlock
main: world.bentobox.caveblock.CaveBlock
version: ${version}${build.number}
+api-version: 1.13.0
metrics: true
repository: "BentoBoxWorld/CaveBlock"
icon: "STONE_PICKAXE"
@@ -17,6 +18,9 @@ permissions:
caveblock.island.home:
description: Allow teleporting to player cave
default: true
+ caveblock.island.sethome:
+ description: Let the player use the sethome command
+ default: true
caveblock.island.info:
description: Let the player check other players info
default: true
@@ -48,7 +52,25 @@ permissions:
description: Player can use the cave reset or restart command
default: true
caveblock.island.team:
- description: Let a player use team commands
+ description: Let a player use team command
+ default: true
+ caveblock.island.team.setowner:
+ description: Let a player change the team owner
+ default: true
+ caveblock.island.team.invite:
+ description: Let a player invite others
+ default: true
+ caveblock.island.team.reject:
+ description: Let a player reject invites
+ default: true
+ caveblock.island.team.leave:
+ description: Let a player leave the team
+ default: true
+ caveblock.island.team.kick:
+ description: Let a player kick team members
+ default: true
+ caveblock.island.team.accept:
+ description: Let a player accept invitations
default: true
caveblock.island.team.trust:
description: Let a player use team trust commands
@@ -71,6 +93,9 @@ permissions:
caveblock.mod.bypasscooldowns:
description: Allow moderator to bypass cooldowns
default: op
+ caveblock.mod.bypassdelays:
+ description: Allow moderator to bypass delays
+ default: op
caveblock.mod.bypassprotect:
description: Allow moderator to bypass cave protection
default: op
@@ -113,6 +138,9 @@ permissions:
caveblock.admin.setspawn:
description: Allows use of spawn tools
default: op
+ caveblock.admin.setspawnpoint:
+ description: Allows to set spawn point of cave
+ default: op
caveblock.admin.setrange:
description: Allows setting of cave protection range
default: op
@@ -128,3 +156,9 @@ permissions:
caveblock.admin.setlanguage:
description: Resets all player languages and sets the default language
default: op
+ caveblock.admin.getrank:
+ description: Get a player's rank
+ default: op
+ caveblock.admin.setrank:
+ description: Set a player's rank
+ default: op
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 920128c..611f45f 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -1,4 +1,4 @@
-# CaveBlock Configuration ${version}
+# CaveBlock Configuration 1.13.0
caveblock:
command:
# Cave Command. What command users will run to access their cave.
@@ -7,6 +7,16 @@ caveblock:
# The Cave admin command.
# To define alias, just separate commands with white space.
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 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 sub-command 'go'.
+ # Added since 1.13.0.
+ default-action: go
world:
# Friendly name for this world. Used in admin commands. Must be a single word
friendly-name: CaveBlock
@@ -57,7 +67,7 @@ world:
# -1 = unlimited
ban-limit: -1
#
- # This is cave... no height... only depth. Max 256.
+ # This is cave.. no height... only depth. Max 256.
# Should not be less then 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
@@ -176,10 +186,10 @@ world:
- MATERIAL:CHORUS_PLANT:1:3
# Mob white list - these mobs will NOT be removed when logging in or doing /cave
remove-mobs-whitelist:
- - ZOMBIE_VILLAGER
- WITHER
- ENDERMAN
- PIG_ZOMBIE
+ - ZOMBIE_VILLAGER
# World flags. These are boolean settings for various flags for this world
flags:
CREEPER_DAMAGE: true
@@ -191,6 +201,7 @@ world:
CLEAN_SUPER_FLAT: false
CHEST_DAMAGE: false
PREVENT_TELEPORT_WHEN_FALLING: false
+ NATURAL_SPAWNING_OUTSIDE_RANGE: true
ENTER_EXIT_MESSAGES: true
ENDERMAN_DEATH_DROP: true
OFFLINE_REDSTONE: true
@@ -198,8 +209,14 @@ world:
ENDER_CHEST: false
ITEM_FRAME_DAMAGE: false
# These are the default protection settings for new caves.
- # The value is the minimum cave rank required allowed to do the action
- # Ranks are: Visitor = 0, Member = 900, Owner = 1000
+ # The value is the minimum cave rank required allowed to do the action.
+ # Ranks are the following:
+ # VISITOR = 0
+ # COOP = 200
+ # TRUSTED = 400
+ # MEMBER = 500
+ # SUB-OWNER = 900
+ # OWNER = 1000
default-cave-flags:
HURT_ANIMALS: 500
REDSTONE: 500
@@ -213,21 +230,21 @@ world:
END_PORTAL: 500
BREEDING: 500
HURT_VILLAGERS: 500
- FROST_WALKER: 500
TURTLE_EGGS: 500
+ FROST_WALKER: 500
COLLECT_LAVA: 500
LEVER: 500
RIDING: 500
HURT_MONSTERS: 0
- NAME_TAG: 500
ARMOR_STAND: 500
+ NAME_TAG: 500
TRADING: 0
EGGS: 500
ITEM_DROP: 0
NOTE_BLOCK: 0
NETHER_PORTAL: 500
- ITEM_PICKUP: 0
CROP_TRAMPLE: 500
+ ITEM_PICKUP: 0
DROPPER: 500
BREWING: 500
COLLECT_WATER: 500
@@ -239,10 +256,10 @@ world:
PLACE_BLOCKS: 500
ITEM_FRAME: 500
CRAFTING: 0
- ENCHANTING: 0
SHEARING: 500
- SPAWN_EGGS: 500
+ ENCHANTING: 0
BED: 500
+ SPAWN_EGGS: 500
MILKING: 0
DISPENSER: 500
GATE: 0
@@ -279,6 +296,16 @@ cave:
# Default max team size
# 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.
+ # 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.
+ # Added since 1.13.0.
+ max-trusted-size: 4
# Default maximum number of homes a player can have. Min = 1
# Accessed via /cave sethome or /cave go
max-homes: 1
@@ -297,7 +324,7 @@ cave:
# Overrides the on-leave inventory reset for kicked players.
kicked-keep-inventory: false
on-join:
- # What the addon should reset when the player joins or creates a cave
+ # What the plugin should reset when the player joins or creates a cave
# Reset Money - if this is true, will reset the player's money to the starting money
# Recommendation is that this is set to true, but if you run multi-worlds
# make sure your economy handles multi-worlds too.
@@ -335,7 +362,7 @@ cave:
create-cave-on-first-login:
# Toggles the automatic cave creation upon the player's first login on your server.
# If set to true,
- # * Upon connecting to your server for the first time, the player will be told that
+ # * Upon connecting to your server for the first time, the player will be told that
# a cave will be created for him.
# * Make sure you have a Blueprint Bundle called "default": this is the one that will
# be used to create the cave.
@@ -366,16 +393,18 @@ cave:
abort-on-logout: true
# Toggles whether the player should be teleported automatically to his cave when it is created.
# If set to false, the player will be told his cave is ready but will have to teleport to his cave using the command.
+ # Added since 1.10.0.
teleport-player-to-cave-when-created: true
# Create Nether or End cave if they are missing when a player goes through a portal.
# Nether and End cave are usually pasted when a player makes their cave, but if they are
# missing for some reason, you can switch this on.
# Note that bedrock removal glitches can exploit this option.
+ # Added since 1.10.0.
create-missing-nether-end-caves: false
commands:
# List of commands to run when a player joins.
on-join: []
- # List of commands to run when a player leaves.
+ # list of commands to run when a player leaves.
on-leave: []
sethome:
nether:
@@ -400,6 +429,10 @@ protection:
- GHAST
- BAT
- BLAZE
+ # CaveBlock blocked mobs.
+ # List of mobs that should not spawn in the CaveBlock.
+ # Added since 1.13.0.
+ block-mobs: []
# Invincible visitors. List of damages that will not affect visitors.
# Make list blank if visitors should receive all damages
invincible-visitors:
diff --git a/src/main/resources/locales/cs.yml b/src/main/resources/locales/cs.yml
new file mode 100644
index 0000000..db130a9
--- /dev/null
+++ b/src/main/resources/locales/cs.yml
@@ -0,0 +1,296 @@
+###########################################################################################
+# This is a YML file. Be careful when editing. Check your edits in a YAML checker like #
+# the one at http://yaml-online-parser.appspot.com #
+# #
+# Translation by: CZghost #
+###########################################################################################
+
+caveblock:
+ sign:
+ line0: "&cCaveBlock"
+ line1: "Vítej!"
+ line2: "[name]"
+ line3: "Začni kopat! &c<3"
+
+ informational:
+ to-nether: "Taková smůla, propadnout se do netheru."
+ to-the-end: "Dosáhl jsi Endu."
+ to-normal: "Zpět do své jeskyně."
+ # Override BentoBox default command strings
+ # General strings
+ general:
+ errors:
+ no-island: "&cNemáš jeskyni!"
+ player-has-island: "&cHráč již má jeskyni!"
+ player-has-no-island: "&cTento hráč nemá jeskyni!"
+ already-have-island: "&cJiž máš svou jeskyni!"
+ no-safe-location-found: "&cNelze najít bezpečné místo pro teleportaci do tvé jeskyně."
+ not-owner: "&cNejsi vlastník této jeskyně!"
+ commands:
+ # Parameters in <> are required, parameters in [] are optional
+ admin:
+ team:
+ add:
+ name-has-island: "&c[name] má jeskyni. Nejdříve ji odregistruj nebo smaž!"
+ success: "&b[name]&a byl přidán do jeskyně &b[owner]&a."
+ kick:
+ success: "&b[name] &abyl vykopnut z jeskyně &b[owner]&a."
+ setowner:
+ description: "přepíše vlastnictví jeskyně na hráče"
+ already-owner: "&c[name] již je vlastníkem této jeskyně!"
+ success: "&b[name]&a je nyní vlastník této jeskyně."
+ range:
+ description: "Administrátorský příkaz vzdálenosti jeskyně"
+ display:
+ description: "ukázat/schovat indikátory vzdálenosti jeskyně"
+ hint: |-
+ &cIkony červené bariéry &fukazují nynější limit chráněné oblasti jeskyně.
+ &7Šedé partikly &ukazují maximální limit jeskyně.
+ &aZelené partikly &fuzkazují výchozí chráněnou oblast jeskyně, pokud se nynější od ní odlišuje.
+ set:
+ description: "nastavuje chráněnou oblast jeskyně"
+ success: "&aChráněná oblast jeskyně nastavena na &b[number]&a."
+ reset:
+ description: "obnoví chráněnou oblast jeskyně na výchozí hodnotu světa"
+ success: "&aChráněná oblast jeskyně obnovena na &b[number]&a."
+ register:
+ description: "registrovat hráče do nevlastněné jeskyně, ve které jsi"
+ registered-island: "&aHráč registrován do jeskyně na [xyz]."
+ already-owned: "&cJeskyně je již vlastněna jiným hráčem!"
+ no-island-here: "&cZde není jeskyně. Potvrď její vytvoření."
+ in-deletion: "&cTato jeskyně bude smazána. Opakuj později."
+ cannot-make-island: "&c Pardon, sem nelze umístit jeskyni. Podívej se do konzole pro přípdné chyby."
+ unregister:
+ description: "odregistrovat vlastníka z jeskyně, ale zachovat bloky jeskyně"
+ unregistered-island: "&aHráč odregistrován z jeskyně na [xyz]."
+ info:
+ description: "získat info, kde se nacházíš ty nebo hráčova jeskyně"
+ no-island: "&cPrávě nejsi v žádné jeskyni..."
+ title: "========== Info o jeskyni ============"
+ islands-in-trash: "&dHráčova jeskyně je v koši."
+ is-spawn: "Jeskyně je spawn"
+ switchto:
+ description: "nastavit jeskyni hráče na pořadí v koši"
+ out-of-range: "&cČíslo musí být mezi 1 a [number]. Použij &l[label] trash [player] &r&cpro zobrazení čísel"
+ trash:
+ no-unowned-in-trash: "&cV koši nejsou žádné nevlastněné jeskyně"
+ no-islands-in-trash: "&cHráč nemá žádné jeskyně v koši"
+ description: "ukázat nevlastněné nebo hráčské jeskyně v koši"
+ title: "&d=========== Jeskyně v koši ==========="
+ count: "&l&dJeskyně [number]:"
+ use-switch: "&aPoužij &l[label] switchto &r&ak nastavení pořadí v koši"
+ emptytrash:
+ description: "Vysypat koš hráče, nebo všech nevlastněných jeskyní"
+ setrange:
+ description: "nastavit oblast jeskyně hráče"
+ range-updated: "Oblast jeskyně nastavena na [number]"
+ tp:
+ description: "teleportovat se do jeskyně hráče"
+ getrank:
+ description: "získat hodnost hráče v jejich jeskyni"
+ rank-is: "&aHodnost je [rank] v jejich jeskyni."
+ setrank:
+ description: "nastavit hodnot hráče v jejich jeskyni"
+ setspawn:
+ description: "nastavit jeskyni jako spawn pro tento svět"
+ already-spawn: "&cTato jeskyně již je spawn!"
+ no-island-here: "&cZde není jeskyně."
+ confirmation: "&cJsi si jistý, že chceš tuto jeskyni nastavit jako spawn pro tento svět?"
+ resetflags:
+ description: "Obnov vlaječky všech jeskyní na výchozí nastavení v souboru config.yml"
+ delete:
+ description: "odstraní jeskyni hráče"
+ cannot-delete-owner: "&cVšichni členové jeskyně musí být vykopnuti z jeskyně, než jej bude možné smazat."
+ deleted-island: "&aJeskyně na &e[xyz] &a byla úspěšně smazána."
+ island:
+ go:
+ description: "teleportuje tě do tvé jeskyně"
+ teleport: "&aTeleportuji tě do tvé jeskyně."
+ help:
+ description: "Hlavní příkaz jeskyně"
+ create:
+ description: "vytvořit jeskyni, s použitím volitelné předlohy (vyžaduje oprávnění)"
+ too-many-islands: "&cJe zde příliš mnoho jeskyní v tomto světě: není zde dostatek místa k vytvoření té tvé."
+ unable-create-island: "&cTvoji jeskyni se nepovedlo vygenerovat, prosím, kontaktuj administrátora."
+ creating-island: "&aVytvářím tvou jeskyni, počkej, prosím, chvíli..."
+ pick: "&aZvol si jeskyni"
+ info:
+ description: "ukázat info o tvé jeskyni nebo jeskyni hráče"
+ near:
+ description: "ukázat jména sousedících jeskyní okolo tebe"
+ the-following-islands: "&aNásledující jeskyně jsou poblíž:"
+ no-neighbors: "&cNemáš bezprostřední sousední jeskyně!"
+ reset:
+ description: "restartuj svou jeskyni a smaž svou předchozí"
+ must-remove-members: "&cMusíš odebrat všechny členy ze své jeskyně, než ji budeš moci restartovat (/island team kick )."
+ sethome:
+ must-be-on-your-island: "&cMusíš být ve své jeskyni k nastavení domova!"
+ home-set: "&6Domov tvé jeskyně byl nastaven na tvou nynější pozici."
+ setname:
+ description: "nastavit jméno tvé jeskyně"
+ resetname:
+ description: "obnovit jméno tvé jeskyně"
+ team:
+ coop:
+ description: "učinit hráče pomocníkem ve tvé jeskyni"
+ uncoop:
+ you-are-no-longer-a-coop-member: "&cNadále již nejsi pomocníkem v jeskyni [name]"
+ all-members-logged-off: "&cVšichni členové jeskyně se odhlásili, takže již nadále nejsi pomocníkem v jeskyni [name]"
+ trust:
+ description: "dát hráči hodnost důvěryhodného ve tvé jeskyni"
+ invite:
+ description: "pozvi hráče jako člena tvé jeskyně"
+ name-has-invited-you: "&a[name] tě pozval jako člena jeho jeskyně."
+ you-will-lose-your-island: "&cVAROVÁNÍ! Ztatíš svou jeskyni, když žádost přijmeš!"
+ errors:
+ island-is-full: "&cTvá jeskyně je plná, nemůžeš pozvat nikoho dalšího."
+ accept:
+ you-joined-island: "&aPřipojil ses do jeskyně! Použij /[label] team info pro zobrazení ostatních členů."
+ name-joined-your-island: "&a[name] se připojil do tvé jeskyně!"
+ confirmation: |-
+ &cJsi si jistý, že chceš přijmout tuto pozvánku?
+ &c&l&nZTRATÍŠ&r&c&l svou dosavadní jeskyni!
+ reject:
+ you-rejected-invite: "&aOdmítnul jsi pozvánku do týmu jeskyně."
+ name-rejected-your-invite: "&c[name] odmítnul tvou pozvánku!"
+ cancel:
+ description: "zrušit čekající pozvánku do tvé jeskyně"
+ leave:
+ description: "opustit svou jeskyni"
+ left-your-island: "&c[name] &copustil tvou jeskyni"
+ kick:
+ description: "odstranit člena tvé jeskyně"
+ owner-kicked: "&cVlastník tě vykopnul ze své jeskyně!"
+ success: "&b[name] &abyl vykopnut z tvé jeskyně."
+ demote:
+ description: "degradovat hráče ve tvé jeskyni"
+ promote:
+ description: "povýšit hráče ve tvé jeskyni"
+ setowner:
+ description: "přenést vlastnictví své jeskyně na člena"
+ errors:
+ target-is-not-member: "&cTento hráč není členem týmu ve tvé jeskyni!"
+ name-is-the-owner: "&a[name] je nyní vlastník jeskyně!"
+ you-are-the-owner: "&aNyní jsi vlastníkem jeskyně!"
+ ban:
+ description: "zakázat hráči přístup do tvé jeskyně"
+ cannot-ban-more-players: "&cDosáhl jsi limitu zákazů, nemůžeš zakázat přístup do tvé jeskyně dalším hráčům."
+ player-banned: "&b[name]&c má nyní přístup do tvé jeskyně zakázán."
+ owner-banned-you: "&b[name]&c ti zakázal přístup do své jeskyně!"
+ you-are-banned: "&bPřístup do této jeskyně ti byl zakázán!"
+ unban:
+ description: povolit hráči přístup do tvé jeskyně"
+ player-unbanned: "&b[name]&a má nyní přístup do tvé jeskyně povolen."
+ you-are-unbanned: "&b[name]&a ti povolil přístup do své jeskyně!"
+ banlist:
+ noone: "&aNikdo nemá zakázaný přístup do této jeskyně."
+ settings:
+ description: "ukázat nastavení jeskyně"
+ expel:
+ description: "vykázat hráče z tvé jeskyně"
+ not-on-island: "&cTento hráč není ve tvé jeskyni!"
+ player-expelled-you: "&b[name]&c tě vykázal ze své jeskyně!"
+
+ ranks:
+ owner: "Král Trpaslíků"
+ sub-owner: "Rytíř Trpaslíků"
+ member: "Trpaslík"
+ trusted: "Důvěryhodný"
+ coop: "Pomocník"
+ visitor: "Člověk"
+ banned: "Skřet"
+
+ protection:
+ flags:
+ ENDERMAN_GRIEFING:
+ description: |-
+ &aEndermeni mohou odstraňovat
+ &abloky z jeskyně
+ name: "Griefing endermanů"
+ ENTER_EXIT_MESSAGES:
+ island: "Jeskyně [name]"
+ GEO_LIMIT_MOBS:
+ description: |-
+ &aOdstranit moby, které
+ &ase zapletou mimo chráněný
+ &aprostor jeskyně
+ name: "&eOmezit moby do jeskyně"
+ ISLAND_RESPAWN:
+ description: |-
+ &aHráči se respawnují
+ &av jejich jeskyni
+ name: "Respawn v jeskyni"
+ LIQUIDS_FLOWING_OUT:
+ name: "Přetékání kapalin mimo jeskyni"
+ description: |-
+ &aPřepíná, zda mohou kapaliny přetékat
+ &amimo chráněné prostředí jeskyně.
+ LOCK:
+ description: "Přepnout zámek"
+ name: "Zamknout jeskyni"
+ NATURAL_SPAWNING_OUTSIDE_RANGE:
+ name: "Přirozené spawnování tvorů mimo prostor jeskyně"
+ description: |-
+ &aPřepnout, zda se mohou tvorové (zvířata
+ &aa příšery) přirozeně spawnovat mimo
+ &achráněný prostor jeskyně.
+
+ &cMěj na paměti, že to nezabrání spawnování
+ &ctvorů pomocí spawneru nebo spawnovacích
+ &cvajíček.
+ OFFLINE_GROWTH:
+ description: |-
+ &aJe-li zakázáno, rostliny
+ &anebudou růst v jeskyních, jejichž
+ &ačlenové jsou všichni offline.
+ &aMůže pomoci snížit lagy.
+ name: "Offline růst"
+ OFFLINE_REDSTONE:
+ description: |-
+ &a&a Je-li zakázáno, rudit
+ &anebude funkční v jeskyních, jejichž
+ &ačlenové jsou všichni offline.
+ &aMůže pomoci snížit lagy.
+ name: "Offline Rudit"
+ PISTON_PUSH:
+ description: |-
+ &aPovolit pístům vytlačit
+ &ablok mimo jeskyni
+ name: "Vytlačení pístem"
+ REMOVE_MOBS:
+ description: |-
+ &aOdstranit příšery při
+ &ateleportu do jeskyně
+ name: "Odstranit příšery"
+ TREES_GROWING_OUTSIDE_RANGE:
+ name: "Růst stromů mimo prostor jeskyně"
+ description: |-
+ &aPřepíná, zda mohou stromy růst mimo
+ &achráněný prostor jeskyně nebo ne.
+ PREVENT_TELEPORT_WHEN_FALLING:
+ name: "Zabránit teleportu při padání"
+ description: |-
+ &aZabránit hráčům v teleportaci zpět
+ &ado jejich jeskyně použitím příkazu,
+ &apokud padají.
+ hint: "&cNemůžeš se teleportovat zpět do své jeskyně, když padáš."
+ locked: "&cTato jeskyně je zamčená!"
+ protected: "&cJeskyně chráněna: [description]"
+ spawn-protected: "&cSpawn chráněn: [description]"
+
+ panel:
+ PROTECTION:
+ description: |-
+ &aNastavení protekce
+ &atéto jeskyně
+ SETTING:
+ description: |-
+ &aObecné nastavení
+ &atéto jeskyně
+
+protection:
+ flags:
+ SKY_WALKER_FLAG:
+ description: "&5&oToto umožní zapnout/vypnout\n&5&omožnost chodit\n&5&opo vrchu světa jeskyní\n&5&obez extra oprávnění."
+ name: "Nebeský chodec"
+ hint: "Umožňuje chodit pozastřešení jeskyň."
\ No newline at end of file
diff --git a/src/main/resources/locales/zh-CN.yml b/src/main/resources/locales/zh-CN.yml
new file mode 100644
index 0000000..dabc0a1
--- /dev/null
+++ b/src/main/resources/locales/zh-CN.yml
@@ -0,0 +1,286 @@
+---
+caveblock:
+ sign:
+ line0: "&c方块洞穴"
+ line1: 欢迎!
+ line3: 开始挖掘! &c <3
+ line2: "[name]"
+ informational:
+ to-nether: 真倒霉到地狱了。
+ to-the-end: 您已经到了末地。
+ to-normal: 回到你的洞穴。
+ general:
+ errors:
+ no-island: "&c您没有洞穴!"
+ player-has-island: "&c玩家已经有一个山洞了!"
+ player-has-no-island: "&c该玩家没有洞穴!"
+ already-have-island: "&c您已经有一个山洞!"
+ no-safe-location-found: "&c在山洞找不到传送您的安全地点。"
+ not-owner: "&c您不是洞穴的所有者!"
+ commands:
+ admin:
+ team:
+ add:
+ name-has-island: "&c [name]有一个山洞。首先注销或删除它们!"
+ success: "&b [name]&a已添加到&b [owner]&a的洞穴中。"
+ kick:
+ success: "&b [name]&ahas被踢出了&b [owner]&a的山洞。"
+ setowner:
+ description: 将洞穴所有权转移给玩家
+ already-owner: "&c [name]已经是该洞穴的所有者!"
+ success: "&b [name]&a现在是这个洞穴的所有者。"
+ range:
+ description: 管理员洞穴范围命令
+ display:
+ description: 显示/隐藏洞穴范围指示器
+ hint: |-
+ &c红色屏障图标&f显示当前的洞穴保护范围限制。
+ &7灰色粒子&f显示最大洞穴极限。
+ &a绿色粒子&f如果洞穴保护范围不同于默认保护范围,则显示默认保护范围。
+ set:
+ description: 设置洞穴保护范围
+ success: "&a将洞穴保护范围设置为&b [number]&a。"
+ reset:
+ description: 将洞穴保护范围重置为世界默认值
+ success: "&a将洞穴保护范围重置为&b [number]&a。"
+ register:
+ description: 注册玩家到您所在的无人洞
+ registered-island: "&a注册玩家到[xyz]洞穴。"
+ already-owned: "&c洞穴已被另一位玩家拥有!"
+ no-island-here: "&c这里没有洞穴。确认做一个。"
+ in-deletion: "&c该洞穴空间当前正在被删除。等会再试。"
+ cannot-make-island: "&c抱歉,不能在此处放置洞穴。请参阅控制台以获取可能的错误。"
+ unregister:
+ description: 从山洞中注销所有者,但保留山洞块
+ unregistered-island: "&a来自[xyz]洞穴的未注册玩家。"
+ info:
+ description: 获取有关您所在位置或玩家洞穴的信息
+ no-island: "&c您现在不在山洞里..."
+ title: "==========洞穴信息============"
+ islands-in-trash: "&d玩家在垃圾桶中有洞穴。"
+ is-spawn: 岛是出生点
+ switchto:
+ description: 将玩家的洞穴切换到垃圾桶中的第一洞
+ out-of-range: "&c数字必须介于1到[number]之间。使用&l [label]垃圾[player]&r&c查看洞穴编号"
+ trash:
+ no-unowned-in-trash: "&c垃圾桶中没有无人认领的洞穴"
+ no-islands-in-trash: "&c玩家没有洞穴在垃圾桶中"
+ description: 在垃圾桶中显示无人洞穴或玩家的洞穴
+ title: "&d ============垃圾洞==========="
+ count: "&l&d洞穴 [number]:"
+ use-switch: "&a使用&l [label]切换到 &r&a将玩家洞穴切换到垃圾桶"
+ emptytrash:
+ description: 清除玩家的垃圾桶,或垃圾桶中所有未拥有的洞穴
+ setrange:
+ description: 设定玩家洞穴的范围
+ range-updated: 洞穴范围更新为[数字]
+ tp:
+ description: 传送到玩家的洞穴
+ getrank:
+ description: 在他们的洞穴中获得玩家的排名
+ rank-is: "&aRank在他们的洞穴中[排名]。"
+ setrank:
+ description: 设定玩家在洞穴中的等级
+ setspawn:
+ description: 为这个世界设置一个洞穴
+ already-spawn: "&c这个洞穴已经是产卵了!"
+ no-island-here: "&c这里没有洞穴。"
+ confirmation: "&c您确定要将此洞穴设置为这个世界的生成物吗?"
+ resetflags:
+ description: 将所有洞穴重置为config.yml中的默认标志设置
+ delete:
+ description: 删除玩家的洞穴
+ cannot-delete-owner: "&c删除所有洞穴成员之前,必须将其踢出洞穴。"
+ deleted-island: "&e [xyz]&ahas中的&aIsland已成功删除。"
+ island:
+ go:
+ description: 传送你到你的洞穴
+ teleport: "&a将您传送到山洞。"
+ help:
+ description: 主要洞穴命令
+ create:
+ description: 使用可选的蓝图创建一个洞穴(需要许可)
+ too-many-islands: "&c这个世界上有太多的洞穴:没有足够的空间来创建您的洞穴。"
+ unable-create-island: "&c您的洞穴无法生成,请与管理员联系。"
+ creating-island: "&a创建您的洞穴,请稍等..."
+ pick: "&a选择一个山洞"
+ info:
+ description: 显示有关您的洞穴或玩家洞穴的信息
+ near:
+ description: 显示您周围的洞穴名称
+ the-following-islands: "&a附近有以下洞穴:"
+ no-neighbors: "&c您没有紧邻的洞穴!"
+ reset:
+ description: 重新启动您的洞穴并删除旧的
+ must-remove-members: "&c您必须先从洞穴中删除所有成员,然后才能重新启动洞穴(/岛国队踢<player>)。"
+ sethome:
+ must-be-on-your-island: "&c您必须在洞穴里才能回家!"
+ home-set: "&6您的洞穴之家已设置为您当前的位置。"
+ setname:
+ description: 为你的洞穴命名
+ resetname:
+ description: 重设您的洞穴名称
+ team:
+ coop:
+ description: 让玩家在你的洞穴中进行排名
+ uncoop:
+ you-are-no-longer-a-coop-member: "&c您不再是[name]的洞穴的鸡舍成员"
+ all-members-logged-off: "&c所有洞穴成员都已注销,因此您不再是[name]洞穴的合作伙伴"
+ trust:
+ description: 给玩家一个值得信赖的等级
+ invite:
+ description: 邀请玩家加入你的洞穴
+ name-has-invited-you: "&a [name]邀请您加入他们的洞穴。"
+ you-will-lose-your-island: "&c警告!如果您接受,您将迷路!"
+ errors:
+ island-is-full: "&c您的洞穴已满,您不能邀请其他任何人。"
+ accept:
+ you-joined-island: "&a您加入了一个山洞!使用/ [标签]小组信息来查看其他成员。"
+ name-joined-your-island: "&a [name]加入了您的洞穴!"
+ confirmation: |-
+ &c确定要接受此邀请吗?
+ &c&l您会&nLOSE&r&c&ly您当前的洞穴!
+ reject:
+ you-rejected-invite: "&a您拒绝了加入洞穴的邀请。"
+ name-rejected-your-invite: "&c [name]拒绝了您的洞穴邀请!"
+ cancel:
+ description: 取消待处理的邀请,加入你的洞穴
+ leave:
+ description: 离开你的洞穴
+ left-your-island: "&c [name]&cleft your cave"
+ kick:
+ description: 从您的洞穴中删除一个成员
+ owner-kicked: "&c主人将您踢出山洞!"
+ success: "&b [name]&ahas被踢出您的山洞。"
+ demote:
+ description: 将您的玩家降级
+ promote:
+ description: 提升您的玩家排名
+ setowner:
+ description: 将您的洞穴所有权转让给成员
+ errors:
+ target-is-not-member: 该球员不属于您的洞穴团队!
+ name-is-the-owner: "&a [name]现在是洞穴所有者!"
+ you-are-the-owner: "&a您现在是洞穴主人!"
+ ban:
+ description: 禁止玩家进入您的洞穴
+ cannot-ban-more-players: "&c您已达到禁令限制,您不能再从您的洞穴禁赛。"
+ player-banned: "&b [name]&c现在被禁止进入您的洞穴。"
+ owner-banned-you: "&b [name]&c禁止您进入他们的洞穴!"
+ you-are-banned: "&b您被禁止进入这个洞穴!"
+ unban:
+ description: 禁止玩家进入您的洞穴
+ player-unbanned: "&b [name]&a现在不受您的洞穴限制。"
+ you-are-unbanned: "&b [name]&a禁止您进入他们的洞穴!"
+ banlist:
+ noone: "&a没有人被禁止进入这个洞穴。"
+ settings:
+ description: 显示洞穴设置
+ expel:
+ description: 将玩家驱逐出您的洞穴
+ not-on-island: "&c那个玩家不在你的洞穴里!"
+ player-expelled-you: "&b [name]&c将您赶出了山洞!"
+ ranks:
+ owner: 矮人王
+ sub-owner: 矮人骑士
+ member: 侏儒
+ trusted: 值得信赖
+ coop: 鸡舍
+ visitor: 人的
+ banned: 兽人
+ protection:
+ flags:
+ ENDERMAN_GRIEFING:
+ description: |-
+ &aEndermen可以删除
+ &a洞穴
+ name: 恩德曼悲痛
+ ENTER_EXIT_MESSAGES:
+ island: "[名字]的洞穴"
+ GEO_LIMIT_MOBS:
+ description: |-
+ &a删除小怪
+ &外部保护
+ &占用空间
+ name: "&e限制小怪进入山洞"
+ ISLAND_RESPAWN:
+ description: |-
+ &a玩家重生
+ 和他们的洞穴
+ name: 洞穴重生
+ LIQUIDS_FLOWING_OUT:
+ name: 液体在洞穴外流动
+ description: |-
+ &a切换液体是否可以流出
+ &a洞穴的保护范围。
+ LOCK:
+ description: 拨动锁
+ name: 锁洞
+ NATURAL_SPAWNING_OUTSIDE_RANGE:
+ name: 自然生物产生范围外
+ description: |-
+ &a切换是否生物(动物和
+ &amonsters)可以在外面自然产卵
+ &aa洞穴的保护范围。
+
+ &c请注意,这不会阻止生物
+ &cto通过暴民生成器或生成器生成
+ &cegg。
+ OFFLINE_GROWTH:
+ description: |-
+ &a禁用时,植物
+ &a不会在洞穴中生长
+ &awhen所有成员均处于离线状态。
+ &a可以帮助减少延迟。
+ name: 离线增长
+ OFFLINE_REDSTONE:
+ description: |-
+ &a禁用时,红石
+ &a不会在山洞中运作
+ &a所有成员均处于离线状态。
+ &a可以帮助减少延迟。
+ name: 离线红石
+ PISTON_PUSH:
+ description: |-
+ &a允许活塞推动
+ &在洞穴外面
+ name: 活塞推
+ REMOVE_MOBS:
+ description: |-
+ &a移除怪物
+ &前往洞穴
+ name: 移除怪物
+ TREES_GROWING_OUTSIDE_RANGE:
+ name: 树木生长范围外
+ description: |-
+ &a切换树木是否可以在
+ 是否使用&acave的保护范围。
+ PREVENT_TELEPORT_WHEN_FALLING:
+ name: 跌倒时防止传送
+ description: |-
+ &a防止玩家被传送
+ 使用命令返回他们的洞穴
+ &aif他们跌倒了。
+ hint: "&c跌倒时无法传送回洞穴。"
+ locked: "&c这个洞穴被锁了!"
+ protected: "&cCave保护:[说明]"
+ spawn-protected: "&cSpawn受保护:[描述]"
+ panel:
+ PROTECTION:
+ description: |-
+ &a保护设置
+ &a这个洞
+ SETTING:
+ description: |-
+ &a常规设置
+ &a这个洞
+protection:
+ flags:
+ SKY_WALKER_FLAG:
+ hint: 允许在洞穴顶上行走。
+ name: 天空行者
+ description: |-
+ &5&o这允许启用/禁用
+ &5&o能力继续前进
+ &5&otop洞穴世界
+ &5&o没有额外的权限。