Compare commits
128 Commits
Author | SHA1 | Date |
---|---|---|
tastybento | aa6bd08027 | |
tastybento | 9e51156f87 | |
tastybento | 772ece5916 | |
tastybento | 1b4c4f86a8 | |
tastybento | 4d8b1c6649 | |
tastybento | 77c058b7fd | |
tastybento | 3bf71e1b98 | |
tastybento | 6e7b235e74 | |
BONNe | c21423accf | |
BONNe | e1121d3dce | |
BONNe | 75148c5e00 | |
tastybento | 4490c4a32d | |
tastybento | 6601875109 | |
BONNe | 276b9cea40 | |
BONNe | d3e3984bc0 | |
BONNe | 9e245431ac | |
gitlocalize-app[bot] | a155eb9600 | |
BONNe | 8ae4fac517 | |
BONNe | 42a9cf9c7e | |
gitlocalize-app[bot] | aab7f8eb7c | |
gitlocalize-app[bot] | 1c04f41257 | |
BONNe | 69b6bc9111 | |
BONNe | 0cbb775db7 | |
BONNe | 3478c0352a | |
BONNe | 28f1a57838 | |
BONNe | e6e3c97f80 | |
BONNe | 7bbcd40df2 | |
BONNe | 18e4694129 | |
BONNe | 7caa688aa0 | |
BONNe | 486e95c316 | |
gitlocalize-app[bot] | 710243c420 | |
gitlocalize-app[bot] | ca625a5971 | |
gitlocalize-app[bot] | 138c8f9cfb | |
tastybento | 3889975319 | |
tastybento | 4702ad1b96 | |
tastybento | cdc0d10914 | |
tastybento | c5d29eb1c9 | |
tastybento | 57e71ca20d | |
tastybento | 6d21deaa1e | |
tastybento | 124b4e8c0c | |
Huynh Tien | 4a2e08c228 | |
tastybento | 03a5f9bc6c | |
Huynh Tien | 7824c7bf71 | |
Huynh Tien | 30f59d2a31 | |
gitlocalize-app[bot] | cdbb629760 | |
tastybento | b41a6e2137 | |
tastybento | 1fdc07e0a8 | |
tastybento | b71288d151 | |
Katorly | 665b68aa2f | |
tastybento | 1fdf5eb26e | |
tastybento | 45955df990 | |
tastybento | 08aef3daa4 | |
tastybento | 4af68cd933 | |
tastybento | 6b18aedf75 | |
tastybento | c18ff90e5f | |
tastybento | 8bda6b8849 | |
BONNe | 4ce4f1fc70 | |
BONNe | 8af21d7401 | |
BONNe | 982725c737 | |
BONNe | c12310a627 | |
BONNe | 9006a5f4d4 | |
tastybento | c61a2deaac | |
tastybento | cbc3832a8c | |
tastybento | d9ca6689e1 | |
tastybento | 010f94a571 | |
tastybento | fd7bf1c078 | |
tastybento | 71371576af | |
tastybento | c0c2970168 | |
tastybento | 5e610f5fd8 | |
tastybento | 6d37df1f2d | |
tastybento | 4c587d7a74 | |
tastybento | 1c5ed92b25 | |
gitlocalize-app[bot] | 3c4cabacc2 | |
tastybento | 4ecc4c5203 | |
gitlocalize-app[bot] | 908c2681a4 | |
tastybento | cb38e67e36 | |
tastybento | ad41651747 | |
tastybento | aaea6fd6fe | |
BONNe | c12ab7eb5a | |
BONNe | a594f5edd5 | |
BONNe | cf8e29b562 | |
BONNe | 93ee3cdd33 | |
BONNe | dd59556dc0 | |
BONNe | 3d254af4d6 | |
BONNe | f2a060afee | |
tastybento | 053c181ecd | |
tastybento | b52ceeb5ea | |
tastybento | 2ce36de0bf | |
tastybento | 56782510fd | |
gitlocalize-app[bot] | 8726fa8411 | |
tastybento | 4ad4a8359d | |
tastybento | d39bcba139 | |
tastybento | e4480fba3f | |
gitlocalize-app[bot] | 6dc69201e2 | |
BONNe | 4f18becd01 | |
BONNe | bf75385263 | |
Florian CUNY | f1591de51e | |
tastybento | 4dd56c13a2 | |
tastybento | 80bfafcdd2 | |
tastybento | 500126de37 | |
BONNe | 11a5d73a20 | |
BONNe | f895853bbb | |
BONNe | 97514187a8 | |
tastybento | bffc8af7ff | |
tastybento | 614eec5c26 | |
tastybento | bc193dbc6b | |
tastybento | 5fd194d01f | |
tastybento | e61627c71b | |
tastybento | 73dd812d3a | |
BONNe | 5a1a747d26 | |
BONNe | f5e2b20a9b | |
BONNe | 9ef60d4b62 | |
BONNe | 04a44082a3 | |
tastybento | a578a1643f | |
BONNe | 70f78ad926 | |
BONNe | f3d345f30c | |
tastybento | 18727540e0 | |
tastybento | 1bd6fde45c | |
tastybento | 6b51620028 | |
BONNe1704 | 5f8c35309d | |
BONNe1704 | ade3460def | |
BONNe1704 | 65ed00185e | |
BONNe1704 | ce40efe420 | |
BONNe1704 | 07574dadfd | |
tastybento | de134e54f7 | |
BONNe1704 | f07ca3e1c7 | |
tastybento | 20e4786f08 | |
BONNe1704 | fdd4bc795b |
|
@ -1,37 +0,0 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: "Bug \U0001F4A5"
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Bug Report
|
||||
|
||||
#### Description
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
#### Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
#### Expected behavior
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
#### Screenshots or video
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
#### Server Information:
|
||||
[Please complete the following information:]
|
||||
- Database being used (YAML, JSON, MySQL, MongoDB): []
|
||||
- OS: [e.g. iOS]
|
||||
- Java Version: [e.g. Java 8]
|
||||
- BentoBox version: [e.g. 1.7.2.21]
|
||||
- Addons installed? [Do '/bentobox version' and copy/paste from the console]
|
||||
- Other plugins? [Do '/plugins' and copy/paste from the console]
|
||||
|
||||
#### Additional context
|
||||
Add any other context about the problem here.
|
|
@ -1,18 +0,0 @@
|
|||
---
|
||||
name: Contributor request
|
||||
about: Describe this issue template's purpose here.
|
||||
title: ''
|
||||
labels: "Need help \U0001F198"
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Contributor Request
|
||||
#### Description
|
||||
Describe your request.
|
||||
|
||||
#### Tasks
|
||||
Describe task that should be performed
|
||||
|
||||
#### Additional information
|
||||
Any additional information?
|
|
@ -1,21 +0,0 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: Feature request ✨
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Feature Request
|
||||
#### Is your feature request related to a problem? Please describe.
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
#### Describe the solution you'd like
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
#### Describe alternatives you've considered
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
#### Additional context
|
||||
Add any other context or screenshots about the feature request here.
|
|
@ -0,0 +1,38 @@
|
|||
name: Build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
- master
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: 17
|
||||
- name: Cache SonarCloud packages
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.sonar/cache
|
||||
key: ${{ runner.os }}-sonar
|
||||
restore-keys: ${{ runner.os }}-sonar
|
||||
- name: Cache Maven packages
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.m2
|
||||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
||||
restore-keys: ${{ runner.os }}-m2
|
||||
- name: Build and analyze
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=BentoBoxWorld_CaveBlock
|
|
@ -25,3 +25,6 @@ hs_err_pid*
|
|||
/.DS_Store
|
||||
/.classpath
|
||||
/.project
|
||||
/.settings/
|
||||
/.idea/
|
||||
/CaveBlock.iml
|
||||
|
|
57
README.md
57
README.md
|
@ -1,16 +1,62 @@
|
|||
# CaveBlock
|
||||
|
||||
[![Discord](https://img.shields.io/discord/272499714048524288.svg?logo=discord)](https://discord.bentobox.world)
|
||||
[![Build Status](https://ci.codemc.org/buildStatus/icon?job=BentoBoxWorld/CaveBlock)](https://ci.codemc.org/job/BentoBoxWorld/job/CaveBlock/)
|
||||
|
||||
CaveBlock is an addon for BentoBox, so to run CaveBlock, you must have BentoBox installed. It is not a Bukkit plugin and trying to use it as one will not work.
|
||||
# Welcome to CaveBlock for BentoBox!
|
||||
|
||||
## Installation
|
||||
🌌 **Embark on a Subterranean Adventure!**
|
||||
|
||||
CaveBlock is an enthralling GameMode addon for BentoBox, designed to take your Minecraft experience to new depths. In this unique underground world, every adventure, challenge, and mystery lies beneath the surface.
|
||||
|
||||
<img src=https://github.com/BentoBoxWorld/CaveBlock/assets/4407265/af407f94-1943-4e27-96e1-d3e2ed33330f width="400">
|
||||
|
||||
## What is CaveBlock?
|
||||
|
||||
CaveBlock transforms the familiar Minecraft landscape into a vast underground realm. As a player, you begin your journey in a modest cave, equipped with only essential items. Your mission is to mine, explore, and expand your subterranean domain.
|
||||
|
||||
### Key Features:
|
||||
|
||||
- **Start Small, Dream Big:** Begin in a small cave and use your mining skills to expand your territory.
|
||||
- **Treasure Hunting:** Delve deeper to discover hidden treasures and rare resources.
|
||||
- **Beware of the Dark:** Monsters lurk in the shadows. Prepare for encounters with creatures of the deep.
|
||||
- **Build and Craft:** Utilize your resources to craft tools, build structures, and create your own underground empire.
|
||||
|
||||
## Getting Started with CaveBlock
|
||||
|
||||
CaveBlock is an addon for BentoBox, a Bukkit plugin for Minecraft. To dive into this underground adventure, you'll need to have BentoBox installed on your Minecraft server.
|
||||
|
||||
### Installation:
|
||||
|
||||
1. **Install BentoBox:** Make sure BentoBox is installed and running on your server.
|
||||
2. **Download CaveBlock:** Get the CaveBlock addon from the [official download site](https://download.bentobox.world). Or download from the releases in this repo.
|
||||
3. **Add to BentoBox:** Place the CaveBlock file in your BentoBox addons folder.
|
||||
4. **Restart Your Server:** Once installed, restart your server to activate CaveBlock.
|
||||
|
||||
### Dive Into the Depths!
|
||||
|
||||
Are you ready to explore the unknown and carve out your own piece of the underground world? Download CaveBlock now and start your subterranean adventure!
|
||||
|
||||
🔍 **Stay Updated:** For the latest updates, follow our [Discord](https://discord.gg/tqQbNA5X9A).
|
||||
|
||||
---
|
||||
|
||||
*Note: CaveBlock is constantly being updated with new features and improvements. Keep an eye on our release notes for the latest enhancements.*
|
||||
|
||||
**Happy Mining!** 🌐🛠️👾
|
||||
|
||||
## Translations
|
||||
|
||||
Like most BentoBox projects, the CaveBlock Addon is translatable into any language. Everyone can contribute, and translate some parts of the addon into their language via [GitLocalize](https://gitlocalize.com/repo/2968).
|
||||
If your language is not in the list, please contact the developers via Discord, and it will be added.
|
||||
|
||||
## Full Installation Instructions
|
||||
|
||||
0. Install BentoBox and run it on the server at least once to create its data folders.
|
||||
1. Place this jar in the addons folder of the BentoBox plugin.
|
||||
2. Restart the server.
|
||||
3. The addon will create worlds and a data folder and inside the folder will be a config.yml.
|
||||
4. Stop the server .
|
||||
4. Stop the server.
|
||||
5. Edit the config.yml how you want.
|
||||
6. Delete any worlds that were created by default if you made changes that would affect them.
|
||||
7. Restart the server.
|
||||
|
@ -18,10 +64,7 @@ CaveBlock is an addon for BentoBox, so to run CaveBlock, you must have BentoBox
|
|||
## Config.yml
|
||||
|
||||
The config.yml is similar to BSkyblock and AcidIsalnd but *not the same*. It has some additional or changed parameters, like,
|
||||
instead of wrold-height it has world-depth.
|
||||
It also has option to choose main block for each world, and blocks that will be occasionally replace main block, f.e. diamond ore or shulker.
|
||||
It also allows to specifiy if roof and floor for each world must be generated from bedrock.
|
||||
|
||||
instead of world-height it has world-depth.
|
||||
|
||||
### Other Add-ons
|
||||
|
||||
|
|
455
pom.xml
455
pom.xml
|
@ -1,227 +1,258 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>world.bentobox</groupId>
|
||||
<artifactId>caveblock</artifactId>
|
||||
<version>${revision}</version>
|
||||
<groupId>world.bentobox</groupId>
|
||||
<artifactId>caveblock</artifactId>
|
||||
<version>${revision}</version>
|
||||
|
||||
<name>CaveBlock</name>
|
||||
<description>CaveBlock is an add-on for BentoBox, an expandable Minecraft Bukkit plugin for island-type games like SkyBlock or AcidIsland.</description>
|
||||
<url>https://github.com/BentoBoxWorld/CaveBlock</url>
|
||||
<inceptionYear>2019</inceptionYear>
|
||||
<name>CaveBlock</name>
|
||||
<description>CaveBlock is an add-on for BentoBox, an expandable Minecraft Bukkit plugin for island-type games like SkyBlock or AcidIsland.</description>
|
||||
<url>https://github.com/BentoBoxWorld/CaveBlock</url>
|
||||
<inceptionYear>2019</inceptionYear>
|
||||
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/BentoBoxWorld/CaveBlock.git</connection>
|
||||
<developerConnection>scm:git:git@github.com:BentoBoxWorld/CaveBlock.git</developerConnection>
|
||||
<url>https://github.com/BentoBoxWorld/CaveBlock</url>
|
||||
</scm>
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/BentoBoxWorld/CaveBlock.git</connection>
|
||||
<developerConnection>scm:git:git@github.com:BentoBoxWorld/CaveBlock.git</developerConnection>
|
||||
<url>https://github.com/BentoBoxWorld/CaveBlock</url>
|
||||
</scm>
|
||||
|
||||
<ciManagement>
|
||||
<system>jenkins</system>
|
||||
<url>http://ci.codemc.org/job/BentoBoxWorld/job/CaveBlock</url>
|
||||
</ciManagement>
|
||||
<ciManagement>
|
||||
<system>jenkins</system>
|
||||
<url>http://ci.codemc.org/job/BentoBoxWorld/job/CaveBlock</url>
|
||||
</ciManagement>
|
||||
|
||||
<issueManagement>
|
||||
<system>GitHub</system>
|
||||
<url>https://github.com/BentoBoxWorld/CaveBlock/issues</url>
|
||||
</issueManagement>
|
||||
<issueManagement>
|
||||
<system>GitHub</system>
|
||||
<url>https://github.com/BentoBoxWorld/CaveBlock/issues</url>
|
||||
</issueManagement>
|
||||
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>codemc-snapshots</id>
|
||||
<url>https://repo.codemc.org/repository/maven-snapshots</url>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>codemc-releases</id>
|
||||
<url>https://repo.codemc.org/repository/maven-releases</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>codemc-snapshots</id>
|
||||
<url>https://repo.codemc.org/repository/maven-snapshots</url>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>codemc-releases</id>
|
||||
<url>https://repo.codemc.org/repository/maven-releases</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>1.8</java.version>
|
||||
<!-- More visible way how to change dependency versions -->
|
||||
<spigot.version>1.13.2-R0.1-SNAPSHOT</spigot.version>
|
||||
<bentobox.version>1.5.0</bentobox.version>
|
||||
<!-- Revision variable removes warning about dynamic version -->
|
||||
<revision>${build.version}-SNAPSHOT</revision>
|
||||
<!-- This allows to change between versions and snapshots. -->
|
||||
<build.version>1.5.0</build.version>
|
||||
<build.number>-LOCAL</build.number>
|
||||
</properties>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>17</java.version>
|
||||
<!-- More visible way how to change dependency versions -->
|
||||
<spigot.version>1.20.2-R0.1-SNAPSHOT</spigot.version>
|
||||
<bentobox.version>2.0.0-SNAPSHOT</bentobox.version>
|
||||
<!-- Revision variable removes warning about dynamic version -->
|
||||
<revision>${build.version}-SNAPSHOT</revision>
|
||||
<!-- This allows to change between versions and snapshots. -->
|
||||
<build.version>1.19.0</build.version>
|
||||
<build.number>-LOCAL</build.number>
|
||||
<sonar.organization>bentobox-world</sonar.organization>
|
||||
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
|
||||
</properties>
|
||||
|
||||
<profiles>
|
||||
<!-- Build profile is activated by BUILD_NUMBER variable. It replaces 0 with correct build number. -->
|
||||
<!-- This profile will be used only if BUILD_NUMBER environment variable exists. -->
|
||||
<profile>
|
||||
<id>ci</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>env.BUILD_NUMBER</name>
|
||||
</property>
|
||||
</activation>
|
||||
<properties>
|
||||
<!-- Override only if necessary -->
|
||||
<build.number>-b${env.BUILD_NUMBER}</build.number>
|
||||
<!-- GIT_BRANCH -->
|
||||
</properties>
|
||||
</profile>
|
||||
<!-- master profile is activated by GIT_BRANCH variable. It removes '-SNAPSHOT' at the end of -->
|
||||
<!-- ${build.version} -->
|
||||
<!-- This profile will be used only if environment variable GIT_BRANCH is origin/master. -->
|
||||
<profile>
|
||||
<id>master</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>env.GIT_BRANCH</name>
|
||||
<value>origin/master</value>
|
||||
</property>
|
||||
</activation>
|
||||
<properties>
|
||||
<!-- Override only if necessary -->
|
||||
<revision>${build.version}</revision>
|
||||
<build.number></build.number>
|
||||
<!-- GIT_BRANCH -->
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
<profiles>
|
||||
<!-- Build profile is activated by BUILD_NUMBER variable. It replaces
|
||||
0 with correct build number. -->
|
||||
<!-- This profile will be used only if BUILD_NUMBER environment variable
|
||||
exists. -->
|
||||
<profile>
|
||||
<id>ci</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>env.BUILD_NUMBER</name>
|
||||
</property>
|
||||
</activation>
|
||||
<properties>
|
||||
<!-- Override only if necessary -->
|
||||
<build.number>-b${env.BUILD_NUMBER}</build.number>
|
||||
<!-- GIT_BRANCH -->
|
||||
</properties>
|
||||
</profile>
|
||||
<!-- master profile is activated by GIT_BRANCH variable. It removes
|
||||
'-SNAPSHOT' at the end of -->
|
||||
<!-- ${build.version} -->
|
||||
<!-- This profile will be used only if environment variable GIT_BRANCH
|
||||
is origin/master. -->
|
||||
<profile>
|
||||
<id>master</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>env.GIT_BRANCH</name>
|
||||
<value>origin/master</value>
|
||||
</property>
|
||||
</activation>
|
||||
<properties>
|
||||
<!-- Override only if necessary -->
|
||||
<revision>${build.version}</revision>
|
||||
<build.number></build.number>
|
||||
<!-- GIT_BRANCH -->
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>codemc-repo</id>
|
||||
<url>https://repo.codemc.org/repository/maven-public</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>codemc-repo</id>
|
||||
<url>https://repo.codemc.org/repository/maven-public</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>${spigot.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>world.bentobox</groupId>
|
||||
<artifactId>bentobox</artifactId>
|
||||
<version>${bentobox.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>${spigot.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>world.bentobox</groupId>
|
||||
<artifactId>bentobox</artifactId>
|
||||
<version>${bentobox.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.name}-${revision}${build.number}</finalName>
|
||||
<build>
|
||||
<finalName>${project.name}-${revision}${build.number}</finalName>
|
||||
|
||||
<defaultGoal>clean package</defaultGoal>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>*</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources/locales</directory>
|
||||
<targetPath>./locales</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>*.yml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources/blueprints</directory>
|
||||
<targetPath>./blueprints</targetPath>
|
||||
<filtering>true</filtering>
|
||||
<includes>
|
||||
<include>*.json</include>
|
||||
<include>*.blu</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<configuration>
|
||||
<nonFilteredFileExtensions>
|
||||
<nonFilteredFileExtension>blu</nonFilteredFileExtension>
|
||||
</nonFilteredFileExtensions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<configuration>
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<configuration>
|
||||
<show>public</show>
|
||||
<failOnError>false</failOnError>
|
||||
<additionalJOption>-Xdoclint:none</additionalJOption>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-javadocs</id>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<goals>
|
||||
<goal>jar-no-fork</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>2.5.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.8.2</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<defaultGoal>clean package</defaultGoal>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources/locales</directory>
|
||||
<targetPath>./locales</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>*.yml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources/blueprints</directory>
|
||||
<targetPath>./blueprints</targetPath>
|
||||
<filtering>true</filtering>
|
||||
<includes>
|
||||
<include>*.json</include>
|
||||
<include>*.blu</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<configuration>
|
||||
<nonFilteredFileExtensions>
|
||||
<nonFilteredFileExtension>blu</nonFilteredFileExtension>
|
||||
</nonFilteredFileExtensions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.7.0</version>
|
||||
<configuration>
|
||||
<release>${java.version}</release>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>3.3.0</version>
|
||||
<configuration>
|
||||
<failOnError>false</failOnError>
|
||||
<additionalJOption>-Xdoclint:none</additionalJOption>
|
||||
<!-- To compile with Java 11, this tag may be required -->
|
||||
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-javadocs</id>
|
||||
<phase>install</phase>
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<goals>
|
||||
<goal>jar-no-fork</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>2.5.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.8.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.jacoco</groupId>
|
||||
<artifactId>jacoco-maven-plugin</artifactId>
|
||||
<version>0.8.10</version>
|
||||
<configuration>
|
||||
<append>true</append>
|
||||
<excludes>
|
||||
<!-- This is required to prevent Jacoco from adding
|
||||
synthetic fields to a JavaBean class (causes errors in testing) -->
|
||||
<exclude>**/*Names*</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>pre-unit-test</id>
|
||||
<goals>
|
||||
<goal>prepare-agent</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>post-unit-test</id>
|
||||
<goals>
|
||||
<goal>report</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
|
@ -9,20 +9,22 @@ 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;
|
||||
|
||||
|
||||
public class CaveBlock extends GameModeAddon
|
||||
{
|
||||
|
||||
/**
|
||||
* Executes code when loading the addon. This is called before {@link #onEnable()}. This should preferably
|
||||
* be used to setup configuration and worlds.
|
||||
* be used to set up configuration and worlds.
|
||||
*/
|
||||
@Override
|
||||
public void onLoad()
|
||||
|
@ -31,13 +33,24 @@ public class CaveBlock extends GameModeAddon
|
|||
|
||||
this.saveDefaultConfig();
|
||||
this.loadSettings();
|
||||
this.saveWorldSettings();
|
||||
|
||||
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);
|
||||
|
||||
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) {};
|
||||
}
|
||||
|
||||
|
||||
|
@ -65,7 +78,6 @@ public class CaveBlock extends GameModeAddon
|
|||
{
|
||||
super.onReload();
|
||||
this.loadSettings();
|
||||
this.chunkGenerator.reload();
|
||||
}
|
||||
|
||||
|
||||
|
@ -84,7 +96,7 @@ public class CaveBlock extends GameModeAddon
|
|||
*/
|
||||
private void loadSettings()
|
||||
{
|
||||
this.settings = new Config<>(this, Settings.class).loadConfigObject();
|
||||
this.settings = settingsConfig.loadConfigObject();
|
||||
|
||||
if (this.settings == null)
|
||||
{
|
||||
|
@ -94,6 +106,16 @@ public class CaveBlock extends GameModeAddon
|
|||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see world.bentobox.bentobox.api.addons.Addon#allLoaded()
|
||||
*/
|
||||
@Override
|
||||
public void allLoaded() {
|
||||
// Reload settings and save them. This will occur after all addons have loaded
|
||||
this.loadSettings();
|
||||
this.saveWorldSettings();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: World generators
|
||||
// ---------------------------------------------------------------------
|
||||
|
@ -101,8 +123,8 @@ public class CaveBlock extends GameModeAddon
|
|||
|
||||
/**
|
||||
* Make the worlds for this GameMode in this method. BentoBox will call it after onLoad() and before
|
||||
* onEnable(). {@link #islandWorld} must be created and assigned, {@link #netherWorld} and {@link
|
||||
* #endWorld} are optional and may be null.
|
||||
* onEnable(). {@code islandWorld} must be created and assigned, {@code netherWorld} and {@code
|
||||
* endWorld} are optional and may be null.
|
||||
*/
|
||||
@Override
|
||||
public void createWorlds()
|
||||
|
@ -116,11 +138,11 @@ public class CaveBlock extends GameModeAddon
|
|||
|
||||
// Create the world if it does not exist
|
||||
this.islandWorld = WorldCreator.name(worldName).
|
||||
type(WorldType.FLAT).
|
||||
environment(World.Environment.NORMAL).
|
||||
generator(this.chunkGenerator).
|
||||
generator(this.chunkNormalGenerator).
|
||||
createWorld();
|
||||
|
||||
// Set spawn rates
|
||||
setSpawnRates(islandWorld);
|
||||
|
||||
|
||||
// Make the nether if it does not exist
|
||||
|
@ -142,10 +164,11 @@ 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();
|
||||
}
|
||||
setSpawnRates(netherWorld);
|
||||
}
|
||||
|
||||
// Make the end if it does not exist
|
||||
|
@ -166,14 +189,40 @@ 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();
|
||||
}
|
||||
setSpawnRates(endWorld);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void setSpawnRates(World w) {
|
||||
if (w != null) {
|
||||
if (getSettings().getSpawnLimitMonsters() > 0) {
|
||||
w.setMonsterSpawnLimit(getSettings().getSpawnLimitMonsters());
|
||||
}
|
||||
if (getSettings().getSpawnLimitAmbient() > 0) {
|
||||
w.setAmbientSpawnLimit(getSettings().getSpawnLimitAmbient());
|
||||
}
|
||||
if (getSettings().getSpawnLimitAnimals() > 0) {
|
||||
w.setAnimalSpawnLimit(getSettings().getSpawnLimitAnimals());
|
||||
}
|
||||
if (getSettings().getSpawnLimitWaterAnimals() > 0) {
|
||||
w.setWaterAnimalSpawnLimit(getSettings().getSpawnLimitWaterAnimals());
|
||||
}
|
||||
if (getSettings().getTicksPerAnimalSpawns() > 0) {
|
||||
w.setTicksPerAnimalSpawns(getSettings().getTicksPerAnimalSpawns());
|
||||
}
|
||||
if (getSettings().getTicksPerMonsterSpawns() > 0) {
|
||||
w.setTicksPerMonsterSpawns(getSettings().getTicksPerMonsterSpawns());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Defines the world generator for this game mode
|
||||
*
|
||||
|
@ -185,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;
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
|
@ -217,15 +277,29 @@ public class CaveBlock extends GameModeAddon
|
|||
{
|
||||
if (this.settings != null)
|
||||
{
|
||||
new Config<>(this, Settings.class).saveConfigObject(this.settings);
|
||||
settingsConfig.saveConfigObject(this.settings);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This addon uses the new chunk generation API for the sea bottom
|
||||
*/
|
||||
@Override
|
||||
public boolean isUsesNewChunkGeneration()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Variables
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Config object
|
||||
*/
|
||||
private final Config<Settings> settingsConfig = new Config<>(this, Settings.class);
|
||||
|
||||
/**
|
||||
* This stores CaveBlock addon settings.
|
||||
|
@ -233,9 +307,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;
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
|
@ -263,5 +347,4 @@ public class CaveBlock extends GameModeAddon
|
|||
* String for the end world.
|
||||
*/
|
||||
private static final String THE_END = "_the_end";
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package world.bentobox.caveblock;
|
||||
|
||||
|
||||
import world.bentobox.bentobox.api.addons.Addon;
|
||||
import world.bentobox.bentobox.api.addons.Pladdon;
|
||||
|
||||
|
||||
public class CaveBlockPladdon extends Pladdon {
|
||||
|
||||
@Override
|
||||
public Addon getAddon() {
|
||||
return new CaveBlock();
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,20 @@
|
|||
package world.bentobox.caveblock;
|
||||
|
||||
import org.bukkit.Location;
|
||||
|
||||
public class Utils {
|
||||
|
||||
/**
|
||||
* Convert chunk location to world location
|
||||
*
|
||||
* @param x the x coordinate of the chunk location
|
||||
* @param y the y coordinate
|
||||
* @param z the z coordinate of the chunk location
|
||||
* @param chunkX the x coordinate of the chunk
|
||||
* @param chunkZ the z coordinate of the chunk
|
||||
* @return the world location
|
||||
*/
|
||||
public static Location getLocationFromChunkLocation(int x, int y, int z, int chunkX, int chunkZ) {
|
||||
return new Location(null, x + (chunkX * 16D), y, z + (chunkZ * 16D));
|
||||
}
|
||||
}
|
|
@ -1,88 +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.*;
|
||||
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.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);
|
||||
// TODO new AdminClearresetsallCommand(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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(User user, String label, List<String> 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);
|
||||
}
|
||||
|
||||
}
|
|
@ -24,7 +24,7 @@ public class IslandAboutCommand extends CompositeCommand {
|
|||
@Override
|
||||
public boolean execute(User user, String label, List<String> 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;
|
||||
|
|
|
@ -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<String> 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.execute(user, goCmd.getLabel(), new ArrayList<>())).orElse(false);
|
||||
}
|
||||
// No islands currently
|
||||
return getSubCommand("create").map(createCmd -> createCmd.execute(user, createCmd.getLabel(), new ArrayList<>())).orElse(false);
|
||||
}
|
||||
user.sendMessage("general.errors.unknown-command", TextVariables.LABEL, getTopLabel());
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,219 +1,191 @@
|
|||
package world.bentobox.caveblock.generators;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
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.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
|
||||
import world.bentobox.caveblock.CaveBlock;
|
||||
import world.bentobox.caveblock.Settings;
|
||||
import world.bentobox.caveblock.generators.populators.EntitiesPopulator;
|
||||
import world.bentobox.caveblock.generators.populators.MaterialPopulator;
|
||||
|
||||
|
||||
/**
|
||||
* Class ChunkGeneratorWorld ...
|
||||
*
|
||||
* @author BONNe
|
||||
* Created on 27.01.2019
|
||||
*/
|
||||
public class ChunkGeneratorWorld extends ChunkGenerator
|
||||
{
|
||||
public class ChunkGeneratorWorld extends ChunkGenerator {
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Variables
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
private final CaveBlock addon;
|
||||
private final Settings settings;
|
||||
private final List<BlockPopulator> blockPopulators;
|
||||
private final World.Environment environment;
|
||||
private BiomeProvider biomeProvider;
|
||||
private boolean isNewGenerator;
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Constructor
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* @param addon - CaveBlock object
|
||||
* @param environment - World environment
|
||||
*/
|
||||
public ChunkGeneratorWorld(CaveBlock addon)
|
||||
{
|
||||
super();
|
||||
public ChunkGeneratorWorld(CaveBlock addon, World.Environment environment) {
|
||||
this.addon = addon;
|
||||
this.settings = addon.getSettings();
|
||||
this.blockPopulators = new ArrayList<>(2);
|
||||
|
||||
this.environment = environment;
|
||||
reload();
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Methods
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* This method sets if given coordinates can be set as spawn location
|
||||
*/
|
||||
@Override
|
||||
public boolean canSpawn(World world, int x, int z)
|
||||
{
|
||||
return true;
|
||||
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();
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method generates given chunk.
|
||||
* @param world World where chunk must be generated.
|
||||
* @param random Random that allows define object randomness.
|
||||
* @param chunkX Chunk X coordinate.
|
||||
* @param chunkZ Chunk Z coordinate.
|
||||
* @param biomeGrid BiomeGrid that contains biomes.
|
||||
* @return new ChunkData for given chunk.
|
||||
*/
|
||||
@Override
|
||||
public ChunkData generateChunkData(World world,
|
||||
Random random,
|
||||
int chunkX,
|
||||
int chunkZ,
|
||||
ChunkGenerator.BiomeGrid biomeGrid)
|
||||
{
|
||||
ChunkData result = this.createChunkData(world);
|
||||
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();
|
||||
};
|
||||
}
|
||||
|
||||
// Populate chunk with necessary information
|
||||
if (world.getEnvironment().equals(World.Environment.NETHER))
|
||||
|
||||
private Material getBaseMaterial(World.Environment environment) {
|
||||
return switch (environment) {
|
||||
case NETHER -> this.settings.getNetherMainBlock();
|
||||
case THE_END -> this.settings.getEndMainBlock();
|
||||
default -> this.settings.getNormalMainBlock();
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateBedrock(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, ChunkData chunkData)
|
||||
{
|
||||
if (!this.shouldGenerateBedrock())
|
||||
{
|
||||
this.populateNetherChunk(result);
|
||||
}
|
||||
else if (world.getEnvironment().equals(World.Environment.THE_END))
|
||||
{
|
||||
this.populateTheEndChunk(result);
|
||||
final int minHeight = worldInfo.getMinHeight();
|
||||
Material material = this.getGroundFloorMaterial(worldInfo.getEnvironment());
|
||||
chunkData.setRegion(0, minHeight, 0, 16, minHeight + 1, 16, material);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.populateOverWorldChunk(result, biomeGrid);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method populates The End world chunk data.
|
||||
* @param chunkData ChunkData that must be populated.
|
||||
*/
|
||||
private void populateTheEndChunk(ChunkData chunkData)
|
||||
{
|
||||
// because everything starts at 0 and ends at 255
|
||||
final int worldHeight = this.settings.getWorldDepth();
|
||||
|
||||
// Fill all blocks
|
||||
chunkData.setRegion(0, 1, 0,
|
||||
16, worldHeight - 1, 16,
|
||||
this.settings.getEndMainBlock());
|
||||
|
||||
// Generate ground and ceiling.
|
||||
chunkData.setRegion(0, 0, 0,
|
||||
16, 1, 16,
|
||||
this.settings.isEndFloor() ? Material.BEDROCK : this.settings.getEndMainBlock());
|
||||
chunkData.setRegion(0, worldHeight - 1, 0,
|
||||
16, worldHeight, 16,
|
||||
this.settings.isEndRoof() ? Material.BEDROCK : this.settings.getEndMainBlock());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method populates nether world chunk data.
|
||||
* @param chunkData ChunkData that must be populated.
|
||||
*/
|
||||
private void populateNetherChunk(ChunkData chunkData)
|
||||
{
|
||||
// because everything starts at 0 and ends at 255
|
||||
final int worldHeight = this.settings.getWorldDepth();
|
||||
|
||||
// Fill all blocks
|
||||
chunkData.setRegion(0, 1, 0,
|
||||
16, worldHeight - 1, 16,
|
||||
this.settings.getNetherMainBlock());
|
||||
|
||||
// Generate ground and ceiling.
|
||||
chunkData.setRegion(0, 0, 0,
|
||||
16, 1, 16,
|
||||
this.settings.isNetherFloor() ? Material.BEDROCK : this.settings.getNetherMainBlock());
|
||||
chunkData.setRegion(0, worldHeight - 1, 0,
|
||||
16, worldHeight, 16,
|
||||
this.settings.isNetherRoof() ? Material.BEDROCK : this.settings.getNetherMainBlock());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method populates Over world chunk data.
|
||||
* @param chunkData ChunkData that must be populated.
|
||||
* @param biomeGrid BiomeGrid for this chunk.
|
||||
*/
|
||||
private void populateOverWorldChunk(ChunkData chunkData, BiomeGrid biomeGrid)
|
||||
{
|
||||
// because everything starts at 0 and ends at 255
|
||||
final int worldHeight = this.settings.getWorldDepth();
|
||||
|
||||
// Fill all blocks
|
||||
chunkData.setRegion(0, 1, 0,
|
||||
16, worldHeight - 1, 16,
|
||||
this.settings.getNormalMainBlock());
|
||||
|
||||
// Generate ground and ceiling.
|
||||
chunkData.setRegion(0, 0, 0,
|
||||
16, 1, 16,
|
||||
this.settings.isNormalFloor() ? Material.BEDROCK : this.settings.getNormalMainBlock());
|
||||
chunkData.setRegion(0, worldHeight - 1, 0,
|
||||
16, worldHeight, 16,
|
||||
this.settings.isNormalRoof() ? Material.BEDROCK : this.settings.getNormalMainBlock());
|
||||
|
||||
// Set biome
|
||||
for (int x = 0; x < 16; x++)
|
||||
{
|
||||
for (int z = 0; z < 16; z++)
|
||||
{
|
||||
biomeGrid.setBiome(x, z, this.settings.getDefaultBiome());
|
||||
}
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method set world block populators.
|
||||
* @param world World where this must apply.
|
||||
* @return List with block populators.
|
||||
*/
|
||||
@Override
|
||||
public List<BlockPopulator> getDefaultPopulators(final World world)
|
||||
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();
|
||||
final int worldHeight = Math.min(worldInfo.getMaxHeight(), this.settings.getWorldDepth());
|
||||
final World.Environment environment = worldInfo.getEnvironment();
|
||||
if (isNewGenerator) {
|
||||
switch (environment) {
|
||||
case NETHER:
|
||||
if (worldHeight + 1 > 34) {
|
||||
chunkData.setRegion(0, minHeight + 1, 0, 16, 34, 16, Material.SOUL_SAND);
|
||||
chunkData.setRegion(0, 34, 0, 16, worldHeight - 1, 16, Material.NETHERRACK);
|
||||
} else {
|
||||
chunkData.setRegion(0, minHeight + 1, 0, 16, worldHeight - 1, 16, Material.NETHERRACK);
|
||||
}
|
||||
break;
|
||||
case THE_END:
|
||||
chunkData.setRegion(0, minHeight + 1, 0, 16, worldHeight - 1, 16, Material.END_STONE);
|
||||
break;
|
||||
default:
|
||||
if (worldHeight + 1 > 7) {
|
||||
chunkData.setRegion(0, minHeight + 1, 0, 16, 7, 16, Material.DEEPSLATE);
|
||||
chunkData.setRegion(0, 7, 0, 16, worldHeight - 1, 16, Material.STONE);
|
||||
} else {
|
||||
chunkData.setRegion(0, minHeight + 1, 0, 16, worldHeight - 1, 16, Material.STONE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
Material material = getBaseMaterial(environment);
|
||||
chunkData.setRegion(0, minHeight + 1, 0, 16, worldHeight - 1, 16, material);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BlockPopulator> getDefaultPopulators(final World world) {
|
||||
return this.blockPopulators;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiomeProvider getDefaultBiomeProvider(WorldInfo worldInfo) {
|
||||
return biomeProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
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() {
|
||||
// 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() {
|
||||
// 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();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when config is reloaded
|
||||
*/
|
||||
public void reload() {
|
||||
this.blockPopulators = new ArrayList<>(2);
|
||||
|
||||
this.blockPopulators.add(new MaterialPopulator(this.addon));
|
||||
this.blockPopulators.add(new EntitiesPopulator(this.addon));
|
||||
this.blockPopulators.clear();
|
||||
this.isNewGenerator = this.settings.isNewMaterialGenerator();
|
||||
|
||||
if (this.isNewGenerator) {
|
||||
this.blockPopulators.add(new NewMaterialPopulator(this.settings.getWorldDepth()));
|
||||
this.biomeProvider = null;
|
||||
} else {
|
||||
this.blockPopulators.add(new MaterialPopulator(this.addon));
|
||||
this.blockPopulators.add(new EntitiesPopulator(this.addon));
|
||||
this.biomeProvider = new FlatBiomeProvider(this.addon);
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Variables
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* CaveBlock addon.
|
||||
*/
|
||||
private CaveBlock addon;
|
||||
|
||||
/**
|
||||
* Addon settings.
|
||||
*/
|
||||
private Settings settings;
|
||||
|
||||
/**
|
||||
* This list contains block populators that will be applied after chunk is generated.
|
||||
*/
|
||||
private List<BlockPopulator> blockPopulators;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package world.bentobox.caveblock.generators;
|
||||
|
||||
import org.bukkit.Material;
|
||||
|
||||
/**
|
||||
* @author tastybento
|
||||
* @param minY minimum Y level this ore should appear
|
||||
* @param material Material
|
||||
* @param chance chance
|
||||
* @param blob maximum size of blob to generate
|
||||
* @param cont whether the generator should continue to try to make other ores at this level after making this one
|
||||
*/
|
||||
public record Ore (int minY, int maxY, Material material, int chance, int blob, boolean cont){
|
||||
|
||||
}
|
|
@ -1,52 +1,82 @@
|
|||
package world.bentobox.caveblock.generators.populators;
|
||||
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.World.Environment;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.bukkit.generator.LimitedRegion;
|
||||
import org.bukkit.generator.WorldInfo;
|
||||
import org.bukkit.util.BoundingBox;
|
||||
import org.eclipse.jdt.annotation.NonNull;
|
||||
|
||||
import world.bentobox.bentobox.util.Pair;
|
||||
import world.bentobox.caveblock.CaveBlock;
|
||||
import world.bentobox.caveblock.Utils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* This class populates generated chunk with entites by random chance.
|
||||
* This class populates generated chunk with entities by random chance.
|
||||
*/
|
||||
public class EntitiesPopulator extends BlockPopulator
|
||||
{
|
||||
public class EntitiesPopulator extends BlockPopulator {
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Variables
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Water entities
|
||||
*/
|
||||
private static final List<EntityType> WATER_ENTITIES = Arrays.asList(EntityType.GUARDIAN,
|
||||
EntityType.SQUID,
|
||||
EntityType.COD,
|
||||
EntityType.SALMON,
|
||||
EntityType.PUFFERFISH,
|
||||
EntityType.TROPICAL_FISH,
|
||||
EntityType.DROWNED,
|
||||
EntityType.DOLPHIN);
|
||||
/**
|
||||
* CaveBlock addon.
|
||||
*/
|
||||
private final CaveBlock addon;
|
||||
/**
|
||||
* Map that contains chances for spawning per environment.
|
||||
*/
|
||||
private Map<Environment, Chances> chances;
|
||||
/**
|
||||
* World height
|
||||
*/
|
||||
private int worldHeight;
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Constructor
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* This is default constructor
|
||||
*
|
||||
* @param addon CaveBlock addon.
|
||||
*/
|
||||
public EntitiesPopulator(CaveBlock addon)
|
||||
{
|
||||
public EntitiesPopulator(CaveBlock addon) {
|
||||
this.addon = addon;
|
||||
this.loadSettings();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Methods
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* This method load chances per environment.
|
||||
*/
|
||||
private void loadSettings() {
|
||||
// Set up chances
|
||||
chances = new HashMap<>();
|
||||
chances = new EnumMap<>(Environment.class);
|
||||
// Normal
|
||||
chances.put(Environment.NORMAL, new Chances(this.getEntityMap(addon.getSettings().getNormalBlocks()), addon.getSettings().getNormalMainBlock()));
|
||||
// Nether
|
||||
|
@ -54,43 +84,49 @@ public class EntitiesPopulator extends BlockPopulator
|
|||
// End
|
||||
chances.put(Environment.THE_END, new Chances(this.getEntityMap(addon.getSettings().getEndBlocks()), addon.getSettings().getEndMainBlock()));
|
||||
// Other settings
|
||||
worldHeight = addon.getSettings().getWorldDepth() - 1;
|
||||
worldHeight = addon.getSettings().getWorldDepth();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method populates chunk with entities.
|
||||
* @param world World where population must be.
|
||||
* @param random Randomness
|
||||
* @param chunk Chunk were populator operates.
|
||||
*
|
||||
* @param worldInfo World where population must be.
|
||||
* @param random Randomness
|
||||
* @param chunkX X coordinate of chunk
|
||||
* @param chunkZ Z coordinate of chunk
|
||||
* @param limitedRegion Region where population operates.
|
||||
*/
|
||||
@Override
|
||||
public void populate(World world, Random random, Chunk chunk)
|
||||
{
|
||||
for (Map.Entry<EntityType, Pair<Double, Integer>> entry : chances.get(world.getEnvironment()).entityChanceMap.entrySet())
|
||||
{
|
||||
for (int subY = 0; subY < worldHeight; subY += 16)
|
||||
{
|
||||
public void populate(WorldInfo worldInfo, @NonNull Random random, int chunkX, int chunkZ, @NonNull LimitedRegion limitedRegion) {
|
||||
int minHeight = worldInfo.getMinHeight();
|
||||
int height = Math.min(worldInfo.getMaxHeight(), worldHeight) - 1;
|
||||
|
||||
for (Map.Entry<EntityType, Pair<Pair<Double, Integer>, Boolean>> entry : chances.get(worldInfo.getEnvironment()).entityChanceMap.entrySet()) {
|
||||
Pair<Double, Integer> value = entry.getValue().x;
|
||||
boolean hasAI = entry.getValue().z;
|
||||
for (int subY = minHeight; subY < height; subY += 16) {
|
||||
// Use double so chance can be < 1
|
||||
if (random.nextDouble() * 100 < entry.getValue().x)
|
||||
{
|
||||
int y = Math.min(worldHeight - 2, subY + random.nextInt(15));
|
||||
if (random.nextDouble() * 100 < value.x) {
|
||||
int y = Math.min(height - 2, subY + random.nextInt(15));
|
||||
// Spawn only in middle of chunk because bounding box will grow out from here
|
||||
this.tryToPlaceEntity(world, chunk.getBlock(7, y, 7), entry.getKey(), chances.get(world.getEnvironment()).mainMaterial);
|
||||
this.tryToPlaceEntity(
|
||||
worldInfo, Utils.getLocationFromChunkLocation(7, y, 7, chunkX, chunkZ), limitedRegion,
|
||||
entry.getKey(), hasAI,
|
||||
chances.get(worldInfo.getEnvironment()).mainMaterial
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method returns Entity frequently and pack size map.
|
||||
*
|
||||
* @param objectList List with objects that contains data.
|
||||
* @return Map that contains entity, its rarity and pack size.
|
||||
*/
|
||||
private Map<EntityType, Pair<Double, Integer>> getEntityMap(List<String> objectList)
|
||||
{
|
||||
Map<EntityType, Pair<Double, Integer>> entityMap = new HashMap<>(objectList.size());
|
||||
private Map<EntityType, Pair<Pair<Double, Integer>, Boolean>> getEntityMap(List<String> objectList) {
|
||||
Map<EntityType, Pair<Pair<Double, Integer>, Boolean>> entityMap = new EnumMap<>(EntityType.class);
|
||||
|
||||
Map<String, EntityType> entityTypeMap = Arrays.stream(EntityType.values()).
|
||||
collect(Collectors.toMap(Enum::name,
|
||||
|
@ -100,63 +136,143 @@ public class EntitiesPopulator extends BlockPopulator
|
|||
|
||||
// wrong material object.
|
||||
objectList.stream().
|
||||
filter(object -> object.startsWith("ENTITY")).
|
||||
map(object -> object.split(":")).
|
||||
filter(splitString -> splitString.length == 4).
|
||||
forEach(splitString -> {
|
||||
EntityType entity = entityTypeMap.getOrDefault(splitString[1], null);
|
||||
filter(object -> object.startsWith("ENTITY")).
|
||||
map(object -> object.split(":")).
|
||||
filter(splitString -> splitString.length >= 4).
|
||||
forEach(splitString -> {
|
||||
EntityType entity = entityTypeMap.getOrDefault(splitString[1], null);
|
||||
boolean hasAI = splitString.length <= 4 || Boolean.parseBoolean(splitString[4]);
|
||||
|
||||
if (entity != null)
|
||||
{
|
||||
entityMap.put(entity,
|
||||
new Pair<>(Double.parseDouble(splitString[2]), Integer.parseInt(splitString[3])));
|
||||
}
|
||||
});
|
||||
if (entity != null) {
|
||||
entityMap.put(entity,
|
||||
new Pair<>(
|
||||
new Pair<>(Double.parseDouble(splitString[2]), Integer.parseInt(splitString[3])),
|
||||
hasAI
|
||||
)
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
return entityMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Places entities if there is room for them.
|
||||
* @param world - World were mob must be spawned.
|
||||
* @param block - Block that was chosen by random.
|
||||
* @param entity - Entity that must be spawned.
|
||||
*
|
||||
* @param worldInfo - World were mob must be spawned.
|
||||
* @param location - Location that was chosen by random.
|
||||
* @param limitedRegion - Region where entity must be spawned.
|
||||
* @param entityType - Entity that must be spawned.
|
||||
* @param hasAI - If entity has AI.
|
||||
* @param originalMaterial - replacement material.
|
||||
*/
|
||||
private void tryToPlaceEntity(World world, Block block, EntityType entity, Material originalMaterial)
|
||||
{
|
||||
if (block.getType().equals(originalMaterial)) {
|
||||
// Spawn entity
|
||||
Entity e = world.spawnEntity(block.getLocation().add(0.5, 0, 0.5), entity);
|
||||
if (e instanceof LivingEntity) {
|
||||
// Do not despawn
|
||||
((LivingEntity)e).setRemoveWhenFarAway(false);
|
||||
}
|
||||
// Make space for entity based on the entity's size
|
||||
BoundingBox bb = e.getBoundingBox();
|
||||
for (int x = (int) bb.getMinX(); x < bb.getMaxX(); x++) {
|
||||
for (int z = (int) bb.getMinZ(); z < bb.getMaxZ(); z++) {
|
||||
int y = (int) bb.getMinY();
|
||||
Block b = world.getBlockAt(x, y, z);
|
||||
for (; y < bb.getMaxY(); y++) {
|
||||
if (addon.getSettings().isDebug()) {
|
||||
addon.log("DEBUG: Entity spawn: " + world.getName() + " " + x + " " + y + " " + z + " " + e.getType());
|
||||
}
|
||||
b = world.getBlockAt(x, y, z);
|
||||
if (!b.getType().equals(originalMaterial)) {
|
||||
// Cannot place entity
|
||||
e.remove();
|
||||
return;
|
||||
}
|
||||
b.setType(WATER_ENTITIES.contains(entity) ? Material.WATER : Material.CAVE_AIR);
|
||||
private void tryToPlaceEntity(WorldInfo worldInfo, Location location, LimitedRegion limitedRegion, EntityType entityType, boolean hasAI, Material originalMaterial) {
|
||||
if (!limitedRegion.isInRegion(location)) return;
|
||||
if (!limitedRegion.getType(location).equals(originalMaterial)) return;
|
||||
|
||||
BoundingBox bb = this.getEntityBoundingBox(entityType, location);
|
||||
|
||||
for (int x = (int) Math.floor(bb.getMinX()); x < bb.getMaxX(); x++) {
|
||||
for (int z = (int) Math.floor(bb.getMinZ()); z < bb.getMaxZ(); z++) {
|
||||
int y = (int) Math.floor(bb.getMinY());
|
||||
if (!limitedRegion.isInRegion(x, y, z)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (; y <= bb.getMaxY(); y++) {
|
||||
if (addon.getSettings().isDebug()) {
|
||||
addon.log("DEBUG: Entity spawn: " + worldInfo.getName() + " " + x + " " + y + " " + z + " " + entityType);
|
||||
}
|
||||
// Add air block on top for all water entities (required for dolphin, okay for others)
|
||||
if (WATER_ENTITIES.contains(entity) && b.getRelative(BlockFace.UP).getType().equals(originalMaterial)) {
|
||||
b.getRelative(BlockFace.UP).setType(Material.CAVE_AIR);
|
||||
|
||||
if (!limitedRegion.isInRegion(x, y, z) || !limitedRegion.getType(x, y, z).equals(originalMaterial)) {
|
||||
// Cannot place entity
|
||||
return;
|
||||
}
|
||||
limitedRegion.setType(x, y, z, WATER_ENTITIES.contains(entityType) ? Material.WATER : Material.AIR);
|
||||
}
|
||||
// Add air block on top for all water entities (required for dolphin, okay for others)
|
||||
if (WATER_ENTITIES.contains(entityType) && limitedRegion.isInRegion(x, y, z) && limitedRegion.getType(x, y, z).equals(originalMaterial)) {
|
||||
limitedRegion.setType(x, y, z, Material.CAVE_AIR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Entity entity = limitedRegion.spawnEntity(location, entityType);
|
||||
|
||||
if (entity instanceof LivingEntity livingEntity)
|
||||
{
|
||||
livingEntity.setAI(hasAI);
|
||||
livingEntity.setRemoveWhenFarAway(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This is manual bounding box calculation base on entity type.
|
||||
* @param entityType Entity type which bounding box should be created.
|
||||
* @param location Location of the bounding box.
|
||||
* @return Approximate bounding box of the entity type.
|
||||
*/
|
||||
private BoundingBox getEntityBoundingBox(EntityType entityType, Location location)
|
||||
{
|
||||
BoundingBox boundingBox = new BoundingBox();
|
||||
// Set bounding box to 1 for all entities
|
||||
boundingBox.expand(1);
|
||||
// Shift to correct location.
|
||||
boundingBox.shift(location);
|
||||
|
||||
switch (entityType)
|
||||
{
|
||||
// Turtles base size is 1.1
|
||||
case TURTLE -> boundingBox.expand(-0.05, 0, -0.05, 0.05, 0, 0.05);
|
||||
// Panda base size is 1.3 and height is 1.25
|
||||
case PANDA -> boundingBox.expand(-0.15, 0, -0.15, 0.15, 0.25, 0.15);
|
||||
// Sheep height is 1.3
|
||||
case SHEEP -> boundingBox.expand(0, 0, 0, 0, 0.3, 0);
|
||||
// Cow height is 1.4
|
||||
case COW, MUSHROOM_COW -> boundingBox.expand(0, 0, 0, 0, 0.4, 0);
|
||||
// Polar Bear base size is 1.3 and height is 1.4
|
||||
case POLAR_BEAR -> boundingBox.expand(-0.15, 0, -0.15, 0.15, 0.4, 0.15);
|
||||
// Horse base size is 1.3964
|
||||
case HORSE, ZOMBIE_HORSE, SKELETON_HORSE -> boundingBox.expand(-0.2, 0, -0.2, 0.2, 0.6, 0.2);
|
||||
// Llama height is 1.875
|
||||
case LLAMA -> boundingBox.expand(0, 0, 0, 0, 0.875, 0);
|
||||
// Ravager base size is 1.95 and height is 2.2
|
||||
case RAVAGER -> boundingBox.expand(-0.48, 0, -0.48, 0.48, 1.2, 0.48);
|
||||
// Spider base size is 1.4
|
||||
case SPIDER -> boundingBox.expand(-0.2, 0, -0.2, 0.2, 0, 0.2);
|
||||
// Creeper height 1.7
|
||||
case CREEPER -> boundingBox.expand(0, 0, 0, 0, 0.7, 0);
|
||||
// Blaze height 1.8
|
||||
case BLAZE -> boundingBox.expand(0, 0, 0, 0, 0.8, 0);
|
||||
// Zombie, evoker, villager, husk, witch, vindicator, illusioner, drowned, pigman, villager and pillager height is 1.95
|
||||
case ZOMBIE, EVOKER, VILLAGER, HUSK, WITCH, VINDICATOR, ILLUSIONER, DROWNED, PIGLIN, PIGLIN_BRUTE, ZOMBIFIED_PIGLIN, ZOMBIE_VILLAGER, PILLAGER, WANDERING_TRADER ->
|
||||
boundingBox.expand(0, 0, 0, 0, 0.95, 0);
|
||||
// Skeletons height is 1.99
|
||||
case SKELETON, STRAY -> boundingBox.expand(0, 0, 0, 0, 0.99, 0);
|
||||
// Elder Guardians base height is 2
|
||||
case ELDER_GUARDIAN -> boundingBox.expand(-0.5, 0, -0.5, 0.5, 1, 0.5);
|
||||
// Slimes are up to 2.04
|
||||
case SLIME -> boundingBox.expand(-0.5, 0, -0.5, 0.5, 1, 0.5);
|
||||
// Wither skeletons height is 2.4
|
||||
case WITHER_SKELETON -> boundingBox.expand(0, 0, 0, 0, 1.4, 0);
|
||||
// Wither height is 3.5
|
||||
case WITHER -> boundingBox.expand(0, 0, 0, 0, 2.5, 0);
|
||||
// Enderman height is 2.9
|
||||
case ENDERMAN -> boundingBox.expand(0, 0, 0, 0, 1.9, 0);
|
||||
// Ghast base size is 4
|
||||
case GHAST -> boundingBox.expand(-2, 0, -2, 2, 3, 2);
|
||||
// Iron Golem base size is 1.4 and height is 2.7
|
||||
case IRON_GOLEM -> boundingBox.expand(-0.2, 0, -0.2, 0.2, 1.7, 0.2);
|
||||
// Snowman height is 1.9
|
||||
case SNOWMAN -> boundingBox.expand(0, 0, 0, 0, 0.9, 0);
|
||||
// Hoglin base size is 1.4 and height is 1.3965
|
||||
case HOGLIN, ZOGLIN -> boundingBox.expand(-0.2, 0, -0.2, 0.2, 0.4, 0.2);
|
||||
// Warden height is 2.9
|
||||
case WARDEN -> boundingBox.expand(0, 0, 0, 0, 1.9, 0);
|
||||
}
|
||||
|
||||
return boundingBox;
|
||||
}
|
||||
|
||||
|
||||
|
@ -164,63 +280,13 @@ public class EntitiesPopulator extends BlockPopulator
|
|||
// Section: Private Classes
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* Chances class to store chances for environments and main material
|
||||
*
|
||||
* @param entityChanceMap - contains chances for each entity, and the boolean indicates that entity should have AI.
|
||||
* @param mainMaterial - material on which entity can replace.
|
||||
*/
|
||||
private class Chances
|
||||
{
|
||||
/**
|
||||
* @param entityChanceMap - contains chances for each entity.
|
||||
* @param mainMaterial - material on which entity can replace.
|
||||
*/
|
||||
Chances(Map<EntityType, Pair<Double, Integer>> entityChanceMap, Material mainMaterial)
|
||||
{
|
||||
this.entityChanceMap = entityChanceMap;
|
||||
this.mainMaterial = mainMaterial;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Map that contains chances for entity to spawn.
|
||||
*/
|
||||
final Map<EntityType, Pair<Double, Integer>> entityChanceMap;
|
||||
|
||||
/**
|
||||
* Main material that can be replaced.
|
||||
*/
|
||||
final Material mainMaterial;
|
||||
private record Chances(Map<EntityType, Pair<Pair<Double, Integer>, Boolean>> entityChanceMap,
|
||||
Material mainMaterial) {
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Variables
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* CaveBlock addon.
|
||||
*/
|
||||
private CaveBlock addon;
|
||||
|
||||
/**
|
||||
* Map that contains chances for spawning per environment.
|
||||
*/
|
||||
private Map<Environment, Chances> chances;
|
||||
|
||||
/**
|
||||
* World height
|
||||
*/
|
||||
private int worldHeight;
|
||||
|
||||
/**
|
||||
* Water entities
|
||||
*/
|
||||
private final static List<EntityType> WATER_ENTITIES = Arrays.asList(EntityType.GUARDIAN,
|
||||
EntityType.SQUID,
|
||||
EntityType.COD,
|
||||
EntityType.SALMON,
|
||||
EntityType.PUFFERFISH,
|
||||
EntityType.TROPICAL_FISH,
|
||||
EntityType.DROWNED,
|
||||
EntityType.DOLPHIN);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
package world.bentobox.caveblock.generators.populators;
|
||||
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.generator.BiomeProvider;
|
||||
import org.bukkit.generator.WorldInfo;
|
||||
import world.bentobox.caveblock.CaveBlock;
|
||||
import world.bentobox.caveblock.Settings;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class FlatBiomeProvider extends BiomeProvider {
|
||||
private final Settings settings;
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Constructor
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @param addon - CaveBlock object
|
||||
*/
|
||||
public FlatBiomeProvider(CaveBlock addon) {
|
||||
this.settings = addon.getSettings();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Methods
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
private Biome getBiome(World.Environment environment) {
|
||||
return switch (environment) {
|
||||
case NETHER -> this.settings.getDefaultNetherBiome();
|
||||
case THE_END -> this.settings.getDefaultTheEndBiome();
|
||||
default -> this.settings.getDefaultBiome();
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public Biome getBiome(WorldInfo worldInfo, int x, int y, int z) {
|
||||
return getBiome(worldInfo.getEnvironment());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Biome> getBiomes(WorldInfo worldInfo) {
|
||||
return Collections.singletonList(getBiome(worldInfo.getEnvironment()));
|
||||
}
|
||||
}
|
|
@ -1,47 +1,67 @@
|
|||
|
||||
package world.bentobox.caveblock.generators.populators;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World.Environment;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.bukkit.generator.LimitedRegion;
|
||||
import org.bukkit.generator.WorldInfo;
|
||||
import world.bentobox.bentobox.util.Pair;
|
||||
import world.bentobox.caveblock.CaveBlock;
|
||||
import world.bentobox.caveblock.Utils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.EnumMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.World.Environment;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
|
||||
import world.bentobox.bentobox.util.Pair;
|
||||
import world.bentobox.caveblock.CaveBlock;
|
||||
|
||||
|
||||
/**
|
||||
* This class allows to fill given chunk with necessary blocks.
|
||||
* This class allows filling given chunk with necessary blocks.
|
||||
*/
|
||||
public class MaterialPopulator extends BlockPopulator
|
||||
{
|
||||
public class MaterialPopulator extends BlockPopulator {
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Variables
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* CaveBlock addon.
|
||||
*/
|
||||
private final CaveBlock addon;
|
||||
/**
|
||||
* Map that contains chances for spawning per environment.
|
||||
*/
|
||||
private Map<Environment, Chances> chances;
|
||||
/**
|
||||
* World height
|
||||
*/
|
||||
private int worldHeight;
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Constructor
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* This is default constructor
|
||||
*
|
||||
* @param addon CaveBlock addon.
|
||||
*/
|
||||
public MaterialPopulator(CaveBlock addon)
|
||||
{
|
||||
public MaterialPopulator(CaveBlock addon) {
|
||||
this.addon = addon;
|
||||
// Load settings
|
||||
this.loadSettings();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Methods
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Loads chances for Material Populator
|
||||
*/
|
||||
private void loadSettings() {
|
||||
// Set up chances
|
||||
chances = new HashMap<>();
|
||||
chances = new EnumMap<>(Environment.class);
|
||||
// Normal
|
||||
chances.put(Environment.NORMAL, new Chances(this.getMaterialMap(addon.getSettings().getNormalBlocks()), addon.getSettings().getNormalMainBlock()));
|
||||
// Nether
|
||||
|
@ -49,84 +69,71 @@ public class MaterialPopulator extends BlockPopulator
|
|||
// End
|
||||
chances.put(Environment.THE_END, new Chances(this.getMaterialMap(addon.getSettings().getEndBlocks()), addon.getSettings().getEndMainBlock()));
|
||||
// Other settings
|
||||
worldHeight = addon.getSettings().getWorldDepth() - 1;
|
||||
worldHeight = addon.getSettings().getWorldDepth();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method populates chunk with blocks.
|
||||
* @param world World where population must be.
|
||||
* @param random Randomness
|
||||
* @param chunk Chunk were populator operates.
|
||||
*
|
||||
* @param worldInfo World where population must be.
|
||||
* @param random Randomness
|
||||
* @param chunkX X coordinate of chunk
|
||||
* @param chunkZ Z coordinate of chunk
|
||||
* @param limitedRegion Region were populator operates.
|
||||
*/
|
||||
@Override
|
||||
public void populate(World world, Random random, Chunk chunk)
|
||||
{
|
||||
Chances chances = this.chances.get(world.getEnvironment());
|
||||
public void populate(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, LimitedRegion limitedRegion) {
|
||||
int minHeight = worldInfo.getMinHeight();
|
||||
int height = Math.min(worldInfo.getMaxHeight(), worldHeight) - 1;
|
||||
Chances envChances = this.chances.get(worldInfo.getEnvironment());
|
||||
for (Map.Entry<Material, Pair<Double, Integer>> entry : envChances.materialChanceMap.entrySet()) {
|
||||
for (int subY = minHeight + 1; subY < height; subY += 16) {
|
||||
if (random.nextDouble() * 100 >= entry.getValue().x) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (Map.Entry<Material, Pair<Double, Integer>> entry : chances.materialChanceMap.entrySet())
|
||||
{
|
||||
for (int subY = 1; subY < worldHeight; subY += 16)
|
||||
{
|
||||
if (random.nextDouble() * 100 < entry.getValue().x)
|
||||
{
|
||||
// Blocks must be 1 away from edge to avoid adjacent chunk loading
|
||||
Location location = Utils.getLocationFromChunkLocation(
|
||||
random.nextInt(13) + 1,
|
||||
Math.min(height - 2, subY + random.nextInt(15)),
|
||||
random.nextInt(13) + 1,
|
||||
chunkX, chunkZ);
|
||||
|
||||
// Blocks must be 1 away from edge to avoid adjacent chunk loading
|
||||
int x = random.nextInt(13) + 1;
|
||||
int z = random.nextInt(13) + 1;
|
||||
int y = Math.min(worldHeight - 2, subY + random.nextInt(15));
|
||||
/*
|
||||
* TODO: remove
|
||||
if (addon.getSettings().isDebug()) {
|
||||
addon.log("DEBUG: Material: " + world.getName() + " " + x + " " + y + " " + z + " " + entry.getKey());
|
||||
if (!limitedRegion.isInRegion(location)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Material material = limitedRegion.getType(location);
|
||||
if (!material.equals(envChances.mainMaterial)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int packSize = random.nextInt(entry.getValue().z);
|
||||
boolean continuePlacing = true;
|
||||
while (continuePlacing) {
|
||||
if (!material.equals(entry.getKey())) {
|
||||
limitedRegion.setType(location, entry.getKey());
|
||||
packSize--;
|
||||
}
|
||||
*/
|
||||
Block block = chunk.getBlock(x, y, z);
|
||||
|
||||
if (block.getType().equals(chances.mainMaterial))
|
||||
{
|
||||
int packSize = random.nextInt(entry.getValue().z);
|
||||
|
||||
boolean continuePlacing = true;
|
||||
|
||||
while (continuePlacing)
|
||||
{
|
||||
if (!block.getType().equals(entry.getKey()))
|
||||
{
|
||||
// Set type without physics is required otherwise server goes into an infinite loop
|
||||
block.setType(entry.getKey(), false);
|
||||
packSize--;
|
||||
}
|
||||
|
||||
// The direction chooser
|
||||
switch (random.nextInt(5))
|
||||
{
|
||||
case 0:
|
||||
x = Math.min(15, x + 1);
|
||||
break;
|
||||
case 1:
|
||||
y = Math.min(worldHeight - 2, y + 1);
|
||||
break;
|
||||
case 2:
|
||||
z = Math.min(15, z + 1);
|
||||
break;
|
||||
case 3:
|
||||
x = Math.max(0, x - 1);
|
||||
break;
|
||||
case 4:
|
||||
y = Math.max(1, y - 1);
|
||||
break;
|
||||
case 5:
|
||||
z = Math.max(0, z - 1);
|
||||
break;
|
||||
}
|
||||
|
||||
block = chunk.getBlock(x, y, z);
|
||||
|
||||
continuePlacing = packSize > 0 && (block.getType().equals(chances.mainMaterial) ||
|
||||
block.getType().equals(entry.getKey()));
|
||||
switch (random.nextInt(6)) {
|
||||
case 0 -> location.setX(location.getX() + 1);
|
||||
case 1 -> location.setY(location.getY() + 1);
|
||||
case 2 -> location.setZ(location.getZ() + 1);
|
||||
case 3 -> location.setX(location.getX() - 1);
|
||||
case 4 -> location.setY(location.getY() - 1);
|
||||
case 5 -> location.setZ(location.getZ() - 1);
|
||||
default -> {
|
||||
continuePlacing = false;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
continuePlacing = packSize > 0 && limitedRegion.isInRegion(location) && location.getY() > minHeight;
|
||||
if (continuePlacing) {
|
||||
material = limitedRegion.getType(location);
|
||||
continuePlacing = material.equals(envChances.mainMaterial) || material.equals(entry.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -134,84 +141,42 @@ public class MaterialPopulator extends BlockPopulator
|
|||
|
||||
/**
|
||||
* This method returns material frequently and pack size map.
|
||||
*
|
||||
* @param objectList List with objects that contains data.
|
||||
* @return Map that contains material, its rarity and pack size.
|
||||
*/
|
||||
private Map<Material, Pair<Double, Integer>> getMaterialMap(List<String> objectList)
|
||||
{
|
||||
Map<Material, Pair<Double, Integer>> materialMap = new HashMap<>(objectList.size());
|
||||
private Map<Material, Pair<Double, Integer>> getMaterialMap(List<String> objectList) {
|
||||
Map<Material, Pair<Double, Integer>> materialMap = new EnumMap<>(Material.class);
|
||||
|
||||
// wrong material object.
|
||||
objectList.stream().
|
||||
filter(object -> object.startsWith("MATERIAL")).
|
||||
map(object -> object.split(":")).
|
||||
filter(splitString -> splitString.length == 4).
|
||||
forEach(splitString -> {
|
||||
Material material = Material.getMaterial(splitString[1]);
|
||||
// Material must be a block otherwise the chunk cannot be populated
|
||||
if (material != null && material.isBlock())
|
||||
{
|
||||
materialMap.put(material,
|
||||
new Pair<>(Double.parseDouble(splitString[2]), Integer.parseInt(splitString[3])));
|
||||
} else {
|
||||
addon.logError("Could not parse MATERIAL in config.yml: " + splitString[1] + " is not a valid block.");
|
||||
}
|
||||
});
|
||||
filter(object -> object.startsWith("MATERIAL")).
|
||||
map(object -> object.split(":")).
|
||||
filter(splitString -> splitString.length == 4).
|
||||
forEach(splitString -> {
|
||||
Material material = Material.getMaterial(splitString[1]);
|
||||
// Material must be a block otherwise the chunk cannot be populated
|
||||
if (material != null && material.isBlock()) {
|
||||
materialMap.put(material,
|
||||
new Pair<>(Double.parseDouble(splitString[2]), Integer.parseInt(splitString[3])));
|
||||
} else {
|
||||
addon.logError("Could not parse MATERIAL in config.yml: " + splitString[1] + " is not a valid block.");
|
||||
}
|
||||
});
|
||||
|
||||
return materialMap;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Private Classes
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* Chances class to store chances for environments and main material
|
||||
*
|
||||
* @param materialChanceMap - contains chances for each material.
|
||||
* @param mainMaterial - material on which material can replace.
|
||||
*/
|
||||
private class Chances
|
||||
{
|
||||
/**
|
||||
* @param materialChanceMap - contains chances for each material.
|
||||
* @param mainMaterial - material on which material can replace.
|
||||
*/
|
||||
Chances(Map<Material, Pair<Double, Integer>> materialChanceMap, Material mainMaterial)
|
||||
{
|
||||
this.materialChanceMap = materialChanceMap;
|
||||
this.mainMaterial = mainMaterial;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Map that contains chances for entity to spawn.
|
||||
*/
|
||||
final Map<Material, Pair<Double, Integer>> materialChanceMap;
|
||||
|
||||
/**
|
||||
* Main material that can be replaced.
|
||||
*/
|
||||
final Material mainMaterial;
|
||||
private record Chances(Map<Material, Pair<Double, Integer>> materialChanceMap, Material mainMaterial) {
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Section: Variables
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* CaveBlock addon.
|
||||
*/
|
||||
private CaveBlock addon;
|
||||
|
||||
/**
|
||||
* Map that contains chances for spawning per environment.
|
||||
*/
|
||||
private Map<Environment, Chances> chances;
|
||||
|
||||
/**
|
||||
* World height
|
||||
*/
|
||||
private int worldHeight;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,126 @@
|
|||
package world.bentobox.caveblock.generators.populators;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.EnumMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.bukkit.generator.LimitedRegion;
|
||||
import org.bukkit.generator.WorldInfo;
|
||||
|
||||
import world.bentobox.caveblock.Utils;
|
||||
import world.bentobox.caveblock.generators.Ore;
|
||||
|
||||
/**
|
||||
* @author tastybento
|
||||
*/
|
||||
public class NewMaterialPopulator extends BlockPopulator {
|
||||
private static final int BLOB_SIZE = 1;
|
||||
private static final Map<World.Environment, List<Ore>> ORES;
|
||||
|
||||
static {
|
||||
Map<World.Environment, List<Ore>> ores = new EnumMap<>(World.Environment.class);
|
||||
// Source https://minecraft.fandom.com/wiki/Blob
|
||||
List<Ore> worldOres = new ArrayList<>();
|
||||
worldOres.add(new Ore(-64, 7, Material.DEEPSLATE_DIAMOND_ORE, 1, 10, true));
|
||||
worldOres.add(new Ore(7, 16, Material.DIAMOND_ORE, 1, 10, true));
|
||||
worldOres.add(new Ore(-64, 7, Material.DEEPSLATE_LAPIS_ORE, 1, 7, true));
|
||||
worldOres.add(new Ore(7, 64, Material.LAPIS_ORE, 1, 7, true));
|
||||
worldOres.add(new Ore(-64, 7, Material.DEEPSLATE_GOLD_ORE, 2, 9, true));
|
||||
worldOres.add(new Ore(7, 30, Material.GOLD_ORE, 2, 9, true));
|
||||
worldOres.add(new Ore(0, 16, Material.TUFF, 2, 33, false));
|
||||
worldOres.add(new Ore(-64, 7, Material.DEEPSLATE_REDSTONE_ORE, 8, 8, true));
|
||||
worldOres.add(new Ore(7, 16, Material.REDSTONE_ORE, 8, 8, true));
|
||||
worldOres.add(new Ore(0, 16, Material.GRAVEL, 8, 33, false));
|
||||
worldOres.add(new Ore(0, 79, Material.GRANITE, 5, 33, false));
|
||||
worldOres.add(new Ore(0, 79, Material.ANDESITE, 5, 33, false));
|
||||
worldOres.add(new Ore(0, 79, Material.DIORITE, 5, 33, false));
|
||||
worldOres.add(new Ore(32, 320, Material.EMERALD_ORE, 11, 1, true));
|
||||
worldOres.add(new Ore(95, 136, Material.COAL_ORE, 20, 17, false));
|
||||
worldOres.add(new Ore(0, 7, Material.DEEPSLATE_COPPER_ORE, 20, 9, true));
|
||||
worldOres.add(new Ore(7, 96, Material.COPPER_ORE, 20, 9, true));
|
||||
worldOres.add(new Ore(-64, 7, Material.DEEPSLATE_IRON_ORE, 20, 9, true));
|
||||
worldOres.add(new Ore(7, 320, Material.IRON_ORE, 20, 9, true));
|
||||
worldOres.add(new Ore(-64, 320, Material.CAVE_AIR, 8, 33, false));
|
||||
ores.put(World.Environment.NORMAL, worldOres);
|
||||
List<Ore> netherOres = new ArrayList<>();
|
||||
netherOres.add(new Ore(1, 22, Material.ANCIENT_DEBRIS, 1, 5, true));
|
||||
netherOres.add(new Ore(-64, 30, Material.NETHER_GOLD_ORE, 2, 9, true));
|
||||
netherOres.add(new Ore(0, 16, Material.GRAVEL, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.BASALT, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.BLACKSTONE, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.FIRE, 8, 33, false));
|
||||
netherOres.add(new Ore(200, 320, Material.GLOWSTONE, 8, 33, false));
|
||||
netherOres.add(new Ore(-64, 320, Material.CAVE_AIR, 8, 33, false));
|
||||
netherOres.add(new Ore(-64, 320, Material.LAVA, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 16, Material.MAGMA_BLOCK, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.CRIMSON_FUNGUS, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.WARPED_FUNGUS, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.CRIMSON_NYLIUM, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.WARPED_NYLIUM, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.SHROOMLIGHT, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.CRIMSON_STEM, 8, 33, false));
|
||||
netherOres.add(new Ore(0, 320, Material.WARPED_STEM, 8, 33, false));
|
||||
netherOres.add(new Ore(-64, 34, Material.SOUL_SOIL, 20, 17, false));
|
||||
netherOres.add(new Ore(0, 96, Material.NETHER_QUARTZ_ORE, 20, 9, true));
|
||||
netherOres.add(new Ore(-64, 320, Material.BONE_BLOCK, 20, 9, true));
|
||||
ores.put(World.Environment.NETHER, netherOres);
|
||||
List<Ore> endOres = new ArrayList<>();
|
||||
endOres.add(new Ore(32, 320, Material.PURPUR_BLOCK, 11, 1, true));
|
||||
endOres.add(new Ore(95, 136, Material.OBSIDIAN, 20, 17, false));
|
||||
endOres.add(new Ore(-64, 320, Material.CAVE_AIR, 8, 33, false));
|
||||
ores.put(World.Environment.THE_END, endOres);
|
||||
ORES = Collections.unmodifiableMap(ores);
|
||||
}
|
||||
|
||||
private final int worldDepth;
|
||||
|
||||
/**
|
||||
* @param worldDepth - Depth. If depth is set smaller than the world height,
|
||||
* then the area above will be empty. Should not be less than
|
||||
* cave height.
|
||||
*/
|
||||
public NewMaterialPopulator(int worldDepth) {
|
||||
this.worldDepth = worldDepth;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void populate(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, LimitedRegion limitedRegion) {
|
||||
final int worldHeight = Math.min(worldInfo.getMaxHeight(), this.worldDepth);
|
||||
for (int y = worldInfo.getMinHeight() + 1; y < worldHeight - 1; y++) {
|
||||
for (Ore o : ORES.get(worldInfo.getEnvironment())) {
|
||||
if (y > o.minY() && y < o.maxY() && random.nextInt(100) <= o.chance()) {
|
||||
pasteBlob(worldInfo, random, chunkX, chunkZ, limitedRegion, y, o);
|
||||
if (o.cont()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void pasteBlob(WorldInfo worldInfo, Random random, int chunkX, int chunkZ, LimitedRegion limitedRegion,
|
||||
int y, Ore o) {
|
||||
int offset = random.nextInt(16);
|
||||
for (int x = Math.max(0, offset - BLOB_SIZE); x < Math.min(16, offset + BLOB_SIZE); x++) {
|
||||
for (int z = Math.max(0, offset - BLOB_SIZE); z < Math.min(16, offset + BLOB_SIZE); z++) {
|
||||
for (int yy = Math.max(worldInfo.getMinHeight() + 1, y - BLOB_SIZE); yy < Math
|
||||
.min(worldInfo.getMaxHeight() - 1, y + BLOB_SIZE); yy++) {
|
||||
Location location = Utils.getLocationFromChunkLocation(x, yy, z, chunkX, chunkZ);
|
||||
if (!limitedRegion.isInRegion(location)) {
|
||||
continue;
|
||||
}
|
||||
if (limitedRegion.getType(location).isSolid() && random.nextBoolean()) {
|
||||
limitedRegion.setType(location, o.material());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -16,14 +16,14 @@ import world.bentobox.caveblock.CaveBlock;
|
|||
|
||||
|
||||
/**
|
||||
* This listener checks player movement. If enabled, players will be deny to get over world depth limit and
|
||||
* This listener checks player movement. If enabled, players will be denied to get over world depth limit and
|
||||
* if alternative teleports is enabled, then falling in void also will be processed.
|
||||
*/
|
||||
public class CustomHeightLimitations implements Listener
|
||||
{
|
||||
/**
|
||||
* Simple constructor
|
||||
* @param addon
|
||||
* @param addon Addon
|
||||
*/
|
||||
public CustomHeightLimitations(CaveBlock addon)
|
||||
{
|
||||
|
@ -86,7 +86,7 @@ public class CustomHeightLimitations implements Listener
|
|||
|
||||
|
||||
/**
|
||||
* This method checks and returns if current player movement from location to to location should be
|
||||
* This method checks and returns if current player movement from location to location should be
|
||||
* managed by current addon.
|
||||
* @param nextY NextY location for player.
|
||||
* @param player Player who makes movement
|
||||
|
@ -120,10 +120,10 @@ public class CustomHeightLimitations implements Listener
|
|||
/**
|
||||
* CaveBlock addon
|
||||
*/
|
||||
private CaveBlock addon;
|
||||
private final CaveBlock addon;
|
||||
|
||||
/**
|
||||
* This variable store world height.
|
||||
*/
|
||||
private int worldHeight;
|
||||
private final int worldHeight;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
name: CaveBlock
|
||||
main: world.bentobox.caveblock.CaveBlock
|
||||
version: ${version}${build.number}
|
||||
api-version: 1.23.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
|
||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1,17 +1,15 @@
|
|||
{
|
||||
"uniqueId": "default",
|
||||
"icon": "STONE",
|
||||
"displayName": "§eThe Default CaveBlock",
|
||||
"displayName": "&eThe Default CaveBlock",
|
||||
"description": [
|
||||
"§bStandard cave, with a cow - moo!",
|
||||
"§aIncludes an Overworld cave",
|
||||
"§cIncludes a Nether cave",
|
||||
"§6Includes an End cave"
|
||||
"Default Cave"
|
||||
],
|
||||
"requirePermission": false,
|
||||
"blueprints": {
|
||||
"NORMAL": "cave",
|
||||
"NETHER": "nether-cave",
|
||||
"THE_END": "end-cave"
|
||||
}
|
||||
},
|
||||
"slot": 0
|
||||
}
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"uniqueId": "miner-cave",
|
||||
"icon": "MOSSY_STONE_BRICKS",
|
||||
"displayName": "&eThe Miner's Cave",
|
||||
"description": [
|
||||
"The Miner's Cave"
|
||||
],
|
||||
"requirePermission": false,
|
||||
"blueprints": {
|
||||
"NORMAL": "miners-cave",
|
||||
"NETHER": "nether-cave",
|
||||
"THE_END": "end-cave"
|
||||
},
|
||||
"slot": 1
|
||||
}
|
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1,12 +1,22 @@
|
|||
# CaveBlock Configuration ${version}
|
||||
# CaveBlock Configuration 1.15.0-SNAPSHOT-LOCAL
|
||||
caveblock:
|
||||
command:
|
||||
# Cave Command. What command users will run to access their cave.
|
||||
# To define alias, just separate commands with white space.
|
||||
island: cave cb
|
||||
cave: cave cb
|
||||
# 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
|
||||
|
@ -16,56 +26,102 @@ world:
|
|||
# World difficulty setting - PEACEFUL, EASY, NORMAL, HARD
|
||||
# Other plugins may override this setting
|
||||
difficulty: HARD
|
||||
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.15.1.
|
||||
monsters: -1
|
||||
# Added since 1.15.1.
|
||||
animals: -1
|
||||
# Added since 1.15.1.
|
||||
water-animals: -1
|
||||
# Added since 1.15.1.
|
||||
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.15.1.
|
||||
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.15.1.
|
||||
ticks-per-monster-spawns: -1
|
||||
# Radius of cave in blocks. (So distance between caves is twice this)
|
||||
# Will be rounded up to the nearest 16 blocks.
|
||||
# It is the same for every dimension : Overworld, Nether and End.
|
||||
# This value cannot be changed mid-game and the plugin will not start if it is different.
|
||||
# /!\ 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.
|
||||
distance-between-caves: 64
|
||||
# Default protection range radius in blocks. Cannot be larger than distance.
|
||||
# Admins can change protection sizes for players individually using /cbadmin range set <player> <new range>
|
||||
# or set this permission: caveblock.island.range.<number>
|
||||
protection-range: 50
|
||||
# Start islands at these coordinates. This is where new islands will start in the
|
||||
# world. These must be a factor of your island distance, but the plugin will auto
|
||||
# calculate the closest location on the grid. Islands develop around this location
|
||||
# Start caves at these coordinates. This is where new caves will start in the
|
||||
# world. These must be a factor of your cave distance, but the plugin will auto
|
||||
# calculate the closest location on the grid. Caves develop around this location
|
||||
# both positively and negatively in a square grid.
|
||||
# If none of this makes sense, leave it at 0,0.
|
||||
# /!\ 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.
|
||||
start-x: 0
|
||||
# /!\ 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.
|
||||
start-z: 0
|
||||
offset-x: 0
|
||||
offset-z: 0
|
||||
# Cave height - Lowest is 5.
|
||||
# It is the y coordinate of the bedrock block in the schem.
|
||||
cave-height: 60
|
||||
# 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.
|
||||
use-own-generator: 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, it will stop players from creating islands.
|
||||
max-islands: 0
|
||||
# Maximum number of caves in the world. Set to -1 or 0 for unlimited.
|
||||
# If the number of caves is greater than this number, it will stop players from creating caves.
|
||||
max-caves: 0
|
||||
# The default game mode for this world. Players will be set to this mode when they create
|
||||
# a new island for example. Options are SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR
|
||||
# a new cave for example. Options are SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR
|
||||
default-game-mode: SURVIVAL
|
||||
# The default biome for the overworld
|
||||
default-biome: MOUNTAINS
|
||||
default-biome: PLAINS
|
||||
# The maximum number of players a player can ban at any one time in this game mode.
|
||||
# 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 island 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.
|
||||
# /!\ 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.
|
||||
generation-tries: 2
|
||||
# Should we use the new material generator ?
|
||||
# This will generate ores and blocks similar to how vanilla does,
|
||||
# but it will override the blocks settings of each 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
|
||||
# Blocks that will occasionally replace main block by random chance.
|
||||
# Blocks will replace only main-block and will try to create packs that
|
||||
|
@ -76,43 +132,52 @@ world:
|
|||
# Example:
|
||||
# MATERIAL:DIAMOND_ORE:100:5 - means there is 100% chace of spawing diamonds
|
||||
# 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:10:10
|
||||
- MATERIAL:GRAVEL:20:6
|
||||
- MATERIAL:GRANITE:20:10
|
||||
- MATERIAL:ANDESITE:20:10
|
||||
- MATERIAL:DIORITE:30:8
|
||||
- ENTITY:ZOMBIE:1:1
|
||||
- ENTITY:DOLPHIN:0.1:1
|
||||
- ENTITY:CAVE_SPIDER:1: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.
|
||||
# Note: Some default challenges will not be possible if there is no nether.
|
||||
# Note that with a standard nether all players arrive at the same portal and entering a
|
||||
# portal will return them back to their islands.
|
||||
# portal will return them back to their caves.
|
||||
generate: true
|
||||
# Islands in Nether. Change to false for standard vanilla nether.
|
||||
islands: true
|
||||
# Nether trees are made if a player grows a tree in the nether (gravel and glowstone)
|
||||
# Applies to both vanilla and islands Nether
|
||||
trees: true
|
||||
# Caves in Nether. Change to false for standard vanilla nether.
|
||||
# /!\ 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.
|
||||
caves: true
|
||||
# The default biome for the nether world (this may affect what mobs can spawn)
|
||||
# Added since 1.14.0.
|
||||
biome: NETHER_WASTES
|
||||
# Nether spawn protection radius - this is the distance around the nether spawn
|
||||
# that will be protected from player interaction (breaking blocks, pouring lava etc.)
|
||||
# Minimum is 0 (not recommended), maximum is 100. Default is 25.
|
||||
# Only applies to vanilla nether
|
||||
spawn-radius: 25
|
||||
# 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
|
||||
# /!\ 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
|
||||
# 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: NETHERRACK
|
||||
# Blocks that will occasionally replace main block by random chance.
|
||||
# Blocks will replace only main-block and will try to create packs that
|
||||
|
@ -123,27 +188,39 @@ world:
|
|||
# Example:
|
||||
# MATERIAL:DIAMOND_ORE:100:5 - means there is 100% chace of spawing diamonds
|
||||
# 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 that dimension.
|
||||
create-and-link-portals: false
|
||||
end:
|
||||
generate: true
|
||||
islands: true
|
||||
# /!\ 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.
|
||||
caves: true
|
||||
# The default biome for the end world (this may affect what mobs can spawn)
|
||||
# Added since 1.14.0.
|
||||
biome: THE_END
|
||||
# /!\ This feature is experimental and might not work as expected or might not work at all.
|
||||
dragon-spawn: false
|
||||
# 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
|
||||
# /!\ 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
|
||||
# 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: END_STONE
|
||||
# Blocks that will occasionally replace main block by random chance.
|
||||
# Blocks will replace only main-block and will try to create packs that
|
||||
|
@ -154,16 +231,19 @@ world:
|
|||
# Example:
|
||||
# MATERIAL:DIAMOND_ORE:100:5 - means there is 100% chace of spawing diamonds
|
||||
# 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
|
||||
- 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
|
||||
- ZOMBIE_VILLAGER
|
||||
- PIG_ZOMBIE
|
||||
- ENDERMAN
|
||||
- ZOMBIE_VILLAGER
|
||||
- WITHER
|
||||
- ENDERMAN
|
||||
# World flags. These are boolean settings for various flags for this world
|
||||
flags:
|
||||
CREEPER_DAMAGE: true
|
||||
|
@ -171,38 +251,56 @@ world:
|
|||
PISTON_PUSH: false
|
||||
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
|
||||
PREVENT_TELEPORT_WHEN_FALLING: false
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE: true
|
||||
ENTER_EXIT_MESSAGES: 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
|
||||
# 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:
|
||||
TREES_GROWING_OUTSIDE_RANGE: false
|
||||
WITHER_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 the following:
|
||||
# VISITOR = 0
|
||||
# COOP = 200
|
||||
# TRUSTED = 400
|
||||
# MEMBER = 500
|
||||
# SUB-OWNER = 900
|
||||
# OWNER = 1000
|
||||
default-cave-flags:
|
||||
HURT_ANIMALS: 500
|
||||
DRAGON_EGG: 500
|
||||
REDSTONE: 500
|
||||
BUCKET: 500
|
||||
LOCK: 0
|
||||
ENDER_PEARL: 500
|
||||
DOOR: 500
|
||||
BREAK_HOPPERS: 500
|
||||
FURNACE: 500
|
||||
ANVIL: 500
|
||||
MINECART: 500
|
||||
FISH_SCOOPING: 500
|
||||
FIRE: 500
|
||||
END_PORTAL: 500
|
||||
BREEDING: 500
|
||||
HURT_VILLAGERS: 500
|
||||
TNT: 500
|
||||
TURTLE_EGGS: 500
|
||||
FROST_WALKER: 500
|
||||
TURTLE_EGGS: 500
|
||||
COLLECT_LAVA: 500
|
||||
BREAK_SPAWNERS: 500
|
||||
LEVER: 500
|
||||
ELYTRA: 0
|
||||
CAKE: 500
|
||||
RIDING: 500
|
||||
HURT_MONSTERS: 0
|
||||
NAME_TAG: 500
|
||||
|
@ -211,74 +309,102 @@ world:
|
|||
EGGS: 500
|
||||
ITEM_DROP: 0
|
||||
NOTE_BLOCK: 0
|
||||
FLINT_AND_STEEL: 500
|
||||
NETHER_PORTAL: 500
|
||||
LECTERN: 500
|
||||
CROP_TRAMPLE: 500
|
||||
ITEM_PICKUP: 0
|
||||
BREWING: 500
|
||||
DROPPER: 500
|
||||
TNT_PRIMING: 500
|
||||
COLLECT_WATER: 500
|
||||
BUTTON: 500
|
||||
FIRE_EXTINGUISH: 500
|
||||
COMMAND_RANKS: 500
|
||||
BEACON: 500
|
||||
TRAPDOOR: 500
|
||||
PRESSURE_PLATE: 0
|
||||
PLACE_BLOCKS: 500
|
||||
EXPERIENCE_BOTTLE_THROWING: 500
|
||||
DYE: 500
|
||||
ITEM_FRAME: 500
|
||||
PLACE_BLOCKS: 500
|
||||
CRAFTING: 0
|
||||
ENCHANTING: 0
|
||||
SHEARING: 500
|
||||
BED: 500
|
||||
ENCHANTING: 0
|
||||
BOAT: 500
|
||||
SPAWN_EGGS: 500
|
||||
BED: 500
|
||||
MILKING: 0
|
||||
DISPENSER: 500
|
||||
GATE: 0
|
||||
EXPERIENCE_PICKUP: 500
|
||||
HOPPER: 500
|
||||
LEASH: 500
|
||||
BREAK_BLOCKS: 500
|
||||
MOUNT_INVENTORY: 500
|
||||
BREAK_BLOCKS: 500
|
||||
CHORUS_FRUIT: 500
|
||||
CONTAINER: 500
|
||||
POTION_THROWING: 500
|
||||
JUKEBOX: 500
|
||||
# These are the default settings for new islands
|
||||
default-island-settings:
|
||||
POTION_THROWING: 500
|
||||
# These are the default settings for new caves
|
||||
default-cave-settings:
|
||||
PVP_END: false
|
||||
PVP_NETHER: false
|
||||
ANIMAL_SPAWN: true
|
||||
MONSTER_SPAWN: true
|
||||
LEAF_DECAY: true
|
||||
MONSTER_SPAWNERS_SPAWN: true
|
||||
TNT_DAMAGE: true
|
||||
ANIMAL_NATURAL_SPAWN: true
|
||||
MONSTER_NATURAL_SPAWN: true
|
||||
FIRE_IGNITE: true
|
||||
FIRE_SPREAD: 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 islands cannot use these commands in this world
|
||||
# Visitor banned commands - Visitors to caves cannot use these commands in this world
|
||||
visitor-banned-commands:
|
||||
- spawner
|
||||
- spawnmob
|
||||
island:
|
||||
- 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
|
||||
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.<number> 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.<number> 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 <number> or /cave go <number>
|
||||
max-homes: 1
|
||||
reset:
|
||||
# How many resets a player is allowed (override with /cbadmin clearresets <player>)
|
||||
# Value of -1 means unlimited, 0 means hardcore - no resets.
|
||||
# Example, 2 resets means they get 2 resets or 3 islands lifetime
|
||||
# Example, 2 resets means they get 2 resets or 3 caves lifetime
|
||||
reset-limit: -1
|
||||
# Kicked or leaving players lose resets
|
||||
# Players who leave a team will lose an island reset chance
|
||||
# Players who leave a team will lose a cave reset chance
|
||||
# If a player has zero resets left and leaves a team, they cannot make a new
|
||||
# island by themselves and can only join a team.
|
||||
# Leave this true to avoid players exploiting free islands
|
||||
# cave by themselves and can only join a team.
|
||||
# Leave this true to avoid players exploiting free caves
|
||||
leavers-lose-reset: false
|
||||
# Allow kicked players to keep their inventory.
|
||||
# Overrides the on-leave inventory reset for kicked players.
|
||||
kicked-keep-inventory: false
|
||||
on-join:
|
||||
# What the plugin should reset when the player joins or creates an island
|
||||
# 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.
|
||||
|
@ -287,10 +413,16 @@ island:
|
|||
# Note: if you have MultiInv running or a similar inventory control plugin, that
|
||||
# plugin may still reset the inventory when the world changes.
|
||||
inventory: false
|
||||
# Reset health - if true, the player's health will be reset.
|
||||
health: true
|
||||
# Reset hunger - if true, the player's hunger will be reset.
|
||||
hunger: true
|
||||
# Reset experience points - if true, the player's experience will be reset.
|
||||
exp: false
|
||||
# Reset Ender Chest - if true, the player's Ender Chest will be cleared.
|
||||
ender-chest: false
|
||||
on-leave:
|
||||
# What the plugin should reset when the player leaves or is kicked from an island
|
||||
# What the plugin should reset when the player leaves or is kicked from 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.
|
||||
|
@ -299,13 +431,106 @@ island:
|
|||
# Note: if you have MultiInv running or a similar inventory control plugin, that
|
||||
# plugin may still reset the inventory when the world changes.
|
||||
inventory: false
|
||||
# Reset health - if true, the player's health will be reset.
|
||||
health: false
|
||||
# Reset hunger - if true, the player's hunger will be reset.
|
||||
hunger: false
|
||||
# Reset experience - if true, the player's experience will be reset.
|
||||
exp: false
|
||||
# Reset Ender Chest - if true, the player's Ender Chest will be cleared.
|
||||
ender-chest: false
|
||||
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
|
||||
# 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.
|
||||
# * A cave will be created for the player without needing him to run the create command.
|
||||
# If set to false, this will disable this feature entirely.
|
||||
# Warning:
|
||||
# * If you are running multiple gamemodes on your server, and all of them have
|
||||
# this feature enabled, a cave in all the gamemodes will be created simultaneously.
|
||||
# However, it is impossible to know on which cave the player will be teleported to afterwards.
|
||||
# * Cave creation can be resource-intensive, please consider the options below to help mitigate
|
||||
# the potential issues, especially if you expect a lot of players to connect to your server
|
||||
# in a limited period of time.
|
||||
enable: false
|
||||
# Time in seconds after the player logged in, before his cave gets created.
|
||||
# If set to 0 or less, the cave will be created directly upon the player's login.
|
||||
# It is recommended to keep this value under a minute's time.
|
||||
delay: 5
|
||||
# Toggles whether the cave creation should be aborted if the player logged off while the
|
||||
# delay (see the option above) has not worn off yet.
|
||||
# If set to true,
|
||||
# * If the player has logged off the server while the delay (see the option above) has not
|
||||
# worn off yet, this will cancel the cave creation.
|
||||
# * If the player relogs afterward, since he will not be recognized as a new player, no cave
|
||||
# would be created for him.
|
||||
# * If the cave creation started before the player logged off, it will continue.
|
||||
# If set to false, the player's cave will be created even if he went offline in the meantime.
|
||||
# Note this option has no effect if the delay (see the option above) is set to 0 or less.
|
||||
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 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: []
|
||||
# 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:
|
||||
# Allow setting home in the nether. Only available on nether islands, not vanilla nether.
|
||||
allow: true
|
||||
require-confirmation: true
|
||||
the-end:
|
||||
# Allow setting home in the end. Only available on end islands, not vanilla end.
|
||||
allow: true
|
||||
require-confirmation: true
|
||||
deaths:
|
||||
|
@ -313,44 +538,49 @@ island:
|
|||
counted: true
|
||||
# Maximum number of deaths to count. The death count can be used by add-ons.
|
||||
max: 10
|
||||
# Reset player death count when they start a new cave or reset a cave
|
||||
reset-on-new: true
|
||||
# When a player joins a team, reset their death count
|
||||
team-join-reset: true
|
||||
protection:
|
||||
# Geo restrict mobs.
|
||||
# Mobs that exit the island space where they were spawned will be removed.
|
||||
# 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.
|
||||
block-mobs: []
|
||||
# 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
|
||||
debug: false
|
||||
uniqueId: config
|
||||
|
|
|
@ -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 <player> <number>&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 <player>)."
|
||||
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ň."
|
|
@ -0,0 +1,312 @@
|
|||
---
|
||||
caveblock:
|
||||
sign:
|
||||
line0: "&cCaveBlock"
|
||||
line1: Herzlich willkommen!
|
||||
line2: "[name]"
|
||||
line3: Fang an zu graben! & c <3
|
||||
informational:
|
||||
to-nether: Unglücklicherweise in den Nether gefallen.
|
||||
to-the-end: Du hast das Ende erreicht.
|
||||
to-normal: Zurück zu deiner Höhle.
|
||||
general:
|
||||
errors:
|
||||
no-island: "&cDu hast keine Höhle!"
|
||||
player-has-island: "&cSpieler hat bereits eine Höhle!"
|
||||
player-has-no-island: "&cDieser Spieler hat keine Höhle!"
|
||||
already-have-island: "&cDu hast bereits eine Höhle!"
|
||||
no-safe-location-found: "&cKann keinen sicheren Ort finden, an den du dich in
|
||||
der Höhle teleportieren kannst."
|
||||
not-owner: "&cDu bist nicht der Besitzer deiner Höhle!"
|
||||
cave-limit-reached: "&c Du hast die Spitze deiner Höhle erreicht. Höher geht
|
||||
nicht!"
|
||||
commands:
|
||||
admin:
|
||||
team:
|
||||
add:
|
||||
name-has-island: "&c[name] hat eine Höhle. Entferne ihn von seiner Höhle
|
||||
oder lösche sie!"
|
||||
success: "&b[name] &awurde zu &b[owner]&as Höhle hinzugefügt."
|
||||
kick:
|
||||
success: "&b[name] &awurde aus der Höhle von &b[owner] &ageworfen."
|
||||
setowner:
|
||||
description: überträgt den Höhlenbesitz auf den Spieler
|
||||
already-owner: "&c[name] ist bereits der Besitzer dieser Höhle!"
|
||||
success: "&b[name] &aist jetzt der Besitzer dieser Höhle."
|
||||
range:
|
||||
description: Admin Cave Range Befehl
|
||||
display:
|
||||
description: Höhlenreichweite anzeigen/ausblenden
|
||||
hint: |-
|
||||
&cRote Barrier-Symbole &fzeigen die aktuelle höhlengeschützte Bereichsgrenze an.
|
||||
&7Graue Partikel &fzeigen das maximale Höhlenlimit an.
|
||||
&aGrüne Partikel &fzeigen den standardmäßig geschützten Bereich an, wenn der Höhlenschutzbereich davon abweicht.
|
||||
set:
|
||||
description: Legt den höhlengeschützten Bereich fest
|
||||
success: "&aSetze den Höhlenschutzbereich auf &b[number]&a."
|
||||
reset:
|
||||
description: Setzt den Höhlenschutzbereich auf die Standardeinstellung
|
||||
zurück
|
||||
success: "&aHöhlenschutzbereich auf &b[number] &azurücksetzen."
|
||||
register:
|
||||
description: Registrieren Sie den Spieler für die Höhle, in der Sie sich befinden
|
||||
registered-island: "&aSpieler zur Höhle bei [xyz] hinzugefügt."
|
||||
already-owned: "&cHöhle gehört bereits einem anderen Spieler!"
|
||||
no-island-here: "&cEs gibt hier keine Höhle. Bestätige, um eine zu erstellen."
|
||||
in-deletion: "&cDieser Höhlenbereich wird derzeit gelöscht. Versuche es später."
|
||||
cannot-make-island: "&cEine Höhle kann hier leider nicht platziert werden.
|
||||
Gucke in die Console für mögliche Fehler."
|
||||
unregister:
|
||||
description: Besitzer von der Höhle abmelden, aber Höhlenblöcke behalten
|
||||
unregistered-island: "&aSpieler aus der Höhle bei [xyz] entfernt."
|
||||
info:
|
||||
description: Erhalten Sie Informationen darüber, wo Sie sich befinden oder
|
||||
in der Höhle des Spielers
|
||||
no-island: "&cDu bist gerade nicht in einer Höhle..."
|
||||
title: "========== Höhleninfo ============"
|
||||
islands-in-trash: "&dPlayer hat Höhlen im Müll."
|
||||
is-spawn: Insel ist eine Spawnhöhle
|
||||
switchto:
|
||||
description: Wechsle die Höhle des Spielers zu ersten im Müll
|
||||
out-of-range: "&cNummer muss zwischen 1 und [number] liegen. Verwenden Sie
|
||||
&l[label] trash [player] &c, um Höhlennummern anzuzeigen"
|
||||
trash:
|
||||
no-unowned-in-trash: "&cKeine nicht besessenen Höhlen im Müll"
|
||||
no-islands-in-trash: "&cPlayer hat keine Höhlen im Müll"
|
||||
description: Zeigen Sie nicht besessene Höhlen oder Spielerhöhlen im Müll
|
||||
title: "&d=========== Höhlen im Müll ==========="
|
||||
count: "&d&lCave [number]:"
|
||||
use-switch: "& aVerwenden Sie & l [label] und wechseln Sie zu <player> <number>
|
||||
& r & a, um den Spieler so zu wechseln, dass er in den Papierkorb fällt"
|
||||
emptytrash:
|
||||
description: Löschen Sie den Müll für den Spieler oder alle nicht besessenen
|
||||
Höhlen im Müll
|
||||
setrange:
|
||||
description: Stellen Sie die Reichweite der Spielerhöhle ein
|
||||
range-updated: Höhlenbereich auf [number] aktualisiert
|
||||
tp:
|
||||
description: teleportiere zur Höhle eines Spielers
|
||||
getrank:
|
||||
description: Holen Sie sich den Rang eines Spielers in seiner Höhle
|
||||
rank-is: "&aRang ist [rank] in ihrer Höhle."
|
||||
setrank:
|
||||
description: Setze den Rang eines Spielers auf seine Höhle
|
||||
setspawn:
|
||||
description: Setze eine Höhle als Brut für diese Welt
|
||||
already-spawn: "&cDiese Höhle ist bereits ein Spawn!"
|
||||
no-island-here: "&cEs gibt hier keine Höhle."
|
||||
confirmation: "&cBist du sicher, dass du diese Höhle als Spawn für diese Welt
|
||||
setzen willst?"
|
||||
resetflags:
|
||||
description: Setzen Sie alle Höhlen auf die Standard-Flag-Einstellungen in
|
||||
config.yml zurück
|
||||
delete:
|
||||
description: löscht die Höhle eines Spielers
|
||||
cannot-delete-owner: "&cAlle Höhlenmitglieder müssen vor dem Löschen aus der
|
||||
Höhle geworfen werden."
|
||||
deleted-island: "&aHöhle bei &e[xyz] &awurde erfolgreich gelöscht."
|
||||
island:
|
||||
go:
|
||||
description: teleportiere dich zu deiner Höhle
|
||||
teleport: "&aTeleportiere dich zu deiner Höhle."
|
||||
help:
|
||||
description: Der Haupthöhlenbefehl
|
||||
create:
|
||||
description: Erstellen Sie eine Höhle mit optionalem Entwurf (erfordert Erlaubnis)
|
||||
too-many-islands: "&cEs gibt zu viele Höhlen auf dieser Welt: Es gibt nicht
|
||||
genug Platz, um deine zu erschaffen."
|
||||
unable-create-island: "&cIhre Höhle konnte nicht generiert werden. Bitte wenden
|
||||
Sie sich an einen Administrator."
|
||||
creating-island: "&aErstellen Sie Ihre Höhle, bitte warten Sie einen Moment..."
|
||||
pick: "&aWähle eine Höhle aus"
|
||||
info:
|
||||
description: Zeige Informationen über deine Höhle oder die Höhle des Spielers
|
||||
an
|
||||
near:
|
||||
description: Zeigen Sie den Namen der benachbarten Höhlen um Sie herum
|
||||
the-following-islands: "&aDie folgenden Höhlen befinden sich in der Nähe:"
|
||||
no-neighbors: "&cSie haben keine unmittelbaren Nachbarhöhlen!"
|
||||
reset:
|
||||
description: Starten Sie Ihre Höhle neu und entfernen Sie die alte
|
||||
must-remove-members: "&cDu musst alle Mitglieder aus deiner Höhle entfernen,
|
||||
bevor du sie neu starten erstellen (/island team kick <player>)."
|
||||
sethome:
|
||||
must-be-on-your-island: "&cSie müssen in Ihrer Höhle sein, um nach Hause zu
|
||||
gehen!"
|
||||
home-set: "&6Ihr Home wurde auf Ihren aktuellen Standort gesetzt."
|
||||
setname:
|
||||
description: Setze einen Namen für deine Höhle
|
||||
resetname:
|
||||
description: Setzen Sie Ihren Höhlennamen zurück
|
||||
team:
|
||||
coop:
|
||||
description: Lass einen Spieler in deiner Höhle ranken
|
||||
uncoop:
|
||||
you-are-no-longer-a-coop-member: "&cSie sind kein Coop-Mitglied mehr in
|
||||
der Höhle von [name]"
|
||||
all-members-logged-off: "& cAlle Höhlenmitglieder haben sich abgemeldet,
|
||||
sodass Sie nicht länger ein Coop-Mitglied der Höhle von [name] sind "
|
||||
trust:
|
||||
description: Gib einem Spieler einen vertrauenswürdigen Rang in deiner Höhle
|
||||
invite:
|
||||
description: Lade einen Spieler ein, sich deiner Höhle anzuschließen
|
||||
name-has-invited-you: "& a [name] hat dich eingeladen, dich ihrer Höhle
|
||||
anzuschließen. "
|
||||
you-will-lose-your-island: "& WARNUNG! Sie werden Ihre Höhle verlieren,
|
||||
wenn Sie akzeptieren!"
|
||||
errors:
|
||||
island-is-full: "& cIhre Höhle ist voll, Sie können niemanden einladen."
|
||||
accept:
|
||||
you-joined-island: "& aSie sind einer Höhle beigetreten! Verwenden Sie
|
||||
/ [label] team info, um die anderen Mitglieder anzuzeigen."
|
||||
name-joined-your-island: "& ein [Name] hat sich deiner Höhle angeschlossen!"
|
||||
confirmation: |-
|
||||
& Sind Sie sicher, dass Sie diese Einladung annehmen möchten?
|
||||
& c & lSie werden & r & c & Ihre aktuelle Höhle verlieren!
|
||||
reject:
|
||||
you-rejected-invite: "& aSie lehnten die Einladung ab, sich einer Höhle
|
||||
anzuschließen."
|
||||
name-rejected-your-invite: "& c [name] hat deine Höhleneinladung abgelehnt!"
|
||||
cancel:
|
||||
description: storniere die ausstehende Einladung, dich deiner Höhle anzuschließen
|
||||
leave:
|
||||
description: Verlasse deine Höhle
|
||||
left-your-island: "& c [name] & spalte deine Höhle"
|
||||
kick:
|
||||
description: Entferne ein Mitglied aus deiner Höhle
|
||||
owner-kicked: "& cDer Besitzer hat dich aus der Höhle geworfen!"
|
||||
success: "& b [name] & wurde aus deiner Höhle geworfen."
|
||||
demote:
|
||||
description: Herabstufen eines Spielers in Ihrer Höhle um einen Rang
|
||||
promote:
|
||||
description: Befördere einen Spieler in deiner Höhle um einen Rang
|
||||
setowner:
|
||||
description: Übertragen Sie Ihren Höhlenbesitz auf ein Mitglied
|
||||
errors:
|
||||
target-is-not-member: "& cDieser Spieler ist nicht Teil Ihres Höhlenteams!"
|
||||
name-is-the-owner: "& a [name] ist jetzt der Höhlenbesitzer!"
|
||||
you-are-the-owner: "& aSie sind jetzt der Höhlenbesitzer!"
|
||||
ban:
|
||||
description: verbanne einen Spieler aus deiner Höhle
|
||||
cannot-ban-more-players: "& cSie haben das Sperrlimit erreicht, können Sie
|
||||
keine Spieler mehr aus Ihrer Höhle verbannen."
|
||||
player-banned: "& b [name] & c ist jetzt aus deiner Höhle verbannt."
|
||||
owner-banned-you: "& b [name] & c hat dich aus ihrer Höhle verbannt!"
|
||||
you-are-banned: "& bSie sind aus dieser Höhle verbannt!"
|
||||
unban:
|
||||
description: Entbinde einen Spieler aus deiner Höhle
|
||||
player-unbanned: "& b [name] & a ist jetzt nicht mehr in deiner Höhle verboten."
|
||||
you-are-unbanned: "& b [name] & a verbannt dich aus ihrer Höhle!"
|
||||
banlist:
|
||||
noone: "& aKeine Höhle ist in dieser Höhle verboten."
|
||||
settings:
|
||||
description: Höhleneinstellungen anzeigen
|
||||
expel:
|
||||
description: Vertreibe einen Spieler aus deiner Höhle
|
||||
not-on-island: "& cDieser Spieler ist nicht in deiner Höhle!"
|
||||
player-expelled-you: "& b [name] & c hat dich aus der Höhle vertrieben!"
|
||||
ranks:
|
||||
owner: Zwergenkönig
|
||||
sub-owner: Zwergenritter
|
||||
member: Zwerg
|
||||
trusted: Vertrauenswürdige
|
||||
coop: Coop
|
||||
visitor: Mensch
|
||||
banned: Ork
|
||||
protection:
|
||||
flags:
|
||||
ENDERMAN_GRIEFING:
|
||||
description: |-
|
||||
& aEndermen können entfernen
|
||||
& Ablocks aus Höhlen
|
||||
name: Enderman trauert
|
||||
ENTER_EXIT_MESSAGES:
|
||||
island: "[name] Höhle"
|
||||
GEO_LIMIT_MOBS:
|
||||
description: |-
|
||||
& aEntferne Mobs, die gehen
|
||||
& aoutside geschützt
|
||||
& Acave Raum
|
||||
name: "& eLimit Mobs zur Höhle"
|
||||
ISLAND_RESPAWN:
|
||||
description: |-
|
||||
& aPlayers respawn
|
||||
& ain ihrer Höhle
|
||||
name: Höhlen-Respawn
|
||||
LIQUIDS_FLOWING_OUT:
|
||||
name: Flüssigkeiten fließen außerhalb von Höhlen
|
||||
description: |-
|
||||
& aStellen Sie fest, ob Flüssigkeiten nach außen fließen können
|
||||
& a der Schutzreichweite der Höhle.
|
||||
LOCK:
|
||||
description: Schloss umschalten
|
||||
name: Höhle verschließen
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE:
|
||||
name: Natürliche Kreatur, die außerhalb der Reichweite laicht
|
||||
description: |-
|
||||
& aToggle ob Kreaturen (Tiere und
|
||||
& Amonster) können natürlich draußen laichen
|
||||
& aa Höhlenschutzbereich.
|
||||
|
||||
& cBeachten Sie, dass es Kreaturen nicht verhindert
|
||||
& cto Spawn über einen Mob Spawner oder einen Spawn
|
||||
& cegg.
|
||||
OFFLINE_GROWTH:
|
||||
description: |-
|
||||
& aWenn behindert, Pflanzen
|
||||
& werde nicht in Höhlen wachsen
|
||||
& wenn alle Mitglieder offline sind.
|
||||
& aKann helfen, Verzögerungen zu reduzieren.
|
||||
name: Offline-Wachstum
|
||||
OFFLINE_REDSTONE:
|
||||
description: |-
|
||||
& aWenn deaktiviert, Redstone
|
||||
Ich werde nicht in Höhlen arbeiten
|
||||
& wo alle Mitglieder offline sind.
|
||||
& aKann helfen, Verzögerungen zu reduzieren.
|
||||
name: Offline Redstone
|
||||
PISTON_PUSH:
|
||||
description: |-
|
||||
& aKolben schieben lassen
|
||||
& Ablocks außerhalb der Höhle
|
||||
name: Kolben drücken
|
||||
REMOVE_MOBS:
|
||||
description: |-
|
||||
& aEntferne Monster, wenn
|
||||
& ateleporting zur Höhle
|
||||
name: Entferne Monster
|
||||
TREES_GROWING_OUTSIDE_RANGE:
|
||||
name: Bäume wachsen außerhalb der Reichweite
|
||||
description: |-
|
||||
& aToggle, ob Bäume außerhalb eines wachsen können
|
||||
& acaves Schutzbereich oder nicht.
|
||||
PREVENT_TELEPORT_WHEN_FALLING:
|
||||
name: Verhindern Sie Teleport beim Fallen
|
||||
description: |-
|
||||
& aVermeide das Teleportieren von Spielern
|
||||
& mit Befehlen in ihre Höhle staunen
|
||||
& aif sie fallen.
|
||||
hint: "& cSie können sich nicht in Ihre Höhle zurück teleportieren, während
|
||||
Sie fallen."
|
||||
locked: "& cDiese Höhle ist verschlossen!"
|
||||
protected: "& cCave protected: [description]"
|
||||
spawn-protected: "& cSpawn protected: [description]"
|
||||
panel:
|
||||
PROTECTION:
|
||||
description: |-
|
||||
& aSchutzeinstellungen
|
||||
& vor dieser Höhle
|
||||
SETTING:
|
||||
description: |-
|
||||
& aAllgemeine Einstellungen
|
||||
& vor dieser Höhle
|
||||
protection:
|
||||
flags:
|
||||
SKY_WALKER_FLAG:
|
||||
description: |-
|
||||
& 5 & oDies ermöglicht das Aktivieren / Deaktivieren
|
||||
& 5 & Fähigkeit, auf dem zu gehen
|
||||
& 5 & otop der Höhlenwelt
|
||||
& 5 & ohne zusätzliche Berechtigungen.
|
||||
name: Sky Walker
|
||||
hint: Ermöglicht das Gehen auf der Höhlendecke.
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,301 @@
|
|||
---
|
||||
caveblock:
|
||||
sign:
|
||||
line0: "&cCaveBlock"
|
||||
line1: "¡Bienvenido!"
|
||||
line2: "[name]"
|
||||
line3: "¡Cava! &c<3"
|
||||
informational:
|
||||
to-nether: Tan desafortunado en caer al infierno.
|
||||
to-the-end: Haz alcanzado el fin.
|
||||
to-normal: Volver a tu cueva.
|
||||
general:
|
||||
errors:
|
||||
no-island: "&c¡No tienes una cueva!"
|
||||
player-has-island: "&c¡Ese jugador ya tiene una cueva!"
|
||||
player-has-no-island: "&c¡Ese jugador no tiene una cueva!"
|
||||
already-have-island: "&c¡Ya tienes una cueva!"
|
||||
no-safe-location-found: "&cNo encontramos un lugar seguro para teletransportarte
|
||||
a la cueva."
|
||||
not-owner: "&c¡No eres el propietario de la cueva!"
|
||||
commands:
|
||||
admin:
|
||||
team:
|
||||
add:
|
||||
name-has-island: "&c[name] tiene una cueva. ¡Deshazte de ella primero!"
|
||||
success: "&b[name]&a ha sido agregado a la cueva de &b[owner]&a."
|
||||
kick:
|
||||
success: "&b[name] &aha sido expulsado de la cueva de &b[owner]&a."
|
||||
setowner:
|
||||
description: transfiere la propiedad de la cueva al jugador
|
||||
already-owner: "&c¡[name] ya es el propietario de esta cueva!"
|
||||
success: "&b[name]&a es ahora el propietario de esta cueva."
|
||||
range:
|
||||
description: Comando de cuevas para administradores
|
||||
display:
|
||||
description: muestra/oculta los indicadores del rango de la cueva
|
||||
hint: |-
|
||||
&fLos &ciconos de barrera roja &fmuestran el límite de protección de la cueva.
|
||||
&fLas &7partículas grises &fmuestran el limite máximo de la cueva.
|
||||
&fLas &aparticulas verdes &fmuestran el rango predeterminado de protección si el actual es diferente.
|
||||
set:
|
||||
description: establece el rango de protección de la cueva
|
||||
success: "&aHaz establecido el rango de protección de la cueva a &b[number]&a."
|
||||
reset:
|
||||
description: restablece el rango de protección de la cueva al predeterminado
|
||||
del mundo
|
||||
success: "&aHaz restablecido el rango de protección de la cueva a &b[number]&a."
|
||||
register:
|
||||
description: registra a un jugador a la cueva sin propietario en la que estás
|
||||
registered-island: "&aJugador registrado en la cueva de [xyz]."
|
||||
already-owned: "&c¡Esta cueva ya tiene propietario!"
|
||||
no-island-here: "&cNo hay una cueva aquí. Confirmar para crear una."
|
||||
in-deletion: "&cEsta cueva se está eliminando actualmente. Intenta más tarde."
|
||||
cannot-make-island: "&c No se puede colocar una cueva aquí, lo sentimos. Revisa
|
||||
la consola para posibles errores."
|
||||
unregister:
|
||||
description: elimina el propietario de la cueva, pero mantiene los bloques
|
||||
unregistered-island: "&aEliminado el jugador de la cueva de [xyz]."
|
||||
info:
|
||||
description: obtener info. sobre donde estás o de la cueva
|
||||
no-island: "&cNo estás en una cueva ahora mismo..."
|
||||
title: "======== Info. de la cueva =========="
|
||||
islands-in-trash: "&dEl jugador tiene cuevas en la basura."
|
||||
is-spawn: La isla es una cueva de spawneo
|
||||
switchto:
|
||||
description: cambia la cueva del jugador a la numerada de la basura
|
||||
out-of-range: "&cEl número debe estar entre 1 y [number]. Usa &l[label] trash
|
||||
[player] &r&cpara ver el número de la cueva."
|
||||
trash:
|
||||
no-unowned-in-trash: "&cNo hay cuevas sin propietario en la basura."
|
||||
no-islands-in-trash: "&cEl jugador no tiene cuevas en la basura"
|
||||
description: muestra cuevas sin propietario o las cuevas del jugador en la
|
||||
basura
|
||||
title: "&d========== Cuevas en la basura =========="
|
||||
count: "&l&dCueva [number]:"
|
||||
use-switch: "&aUsa &l[label] switch <jugador> <número>&r&a para cambiar la
|
||||
cueva del jugador a una de la basura."
|
||||
emptytrash:
|
||||
description: Limpiar la basura del jugador, o todas las cuevas sin propietario
|
||||
en la basura
|
||||
setrange:
|
||||
description: establece el rango de la cueva del jugador
|
||||
range-updated: Rango de cueva actualizado a [number]
|
||||
tp:
|
||||
description: teletransportarse a una cueva
|
||||
getrank:
|
||||
description: ver el rango de un jugador en su cueva
|
||||
rank-is: "&aEl rango del jugador es [rank] en su cueva."
|
||||
setrank:
|
||||
description: establecer el rango del jugador en su cueva
|
||||
setspawn:
|
||||
description: establecer una cueva como spawn para este mundo
|
||||
already-spawn: "&c¡Esta cueva ya es el spawn!"
|
||||
no-island-here: "&cNo hay una cueva aquí."
|
||||
confirmation: "&c¿Estás seguro que quieres establecer esta cueva como spawn
|
||||
de este mundo?"
|
||||
resetflags:
|
||||
description: Restablecer todas las cuevas a los ajustes predeterminados en
|
||||
config.yml
|
||||
delete:
|
||||
description: eliminar la cueva de un jugador
|
||||
cannot-delete-owner: "&cTodos los miembros de la cueva deben ser expulsados
|
||||
antes de eliminarla."
|
||||
deleted-island: "&aCueva de &e[xyz] &aeliminada correctamente."
|
||||
island:
|
||||
go:
|
||||
description: teletransportar a tu cueva
|
||||
teleport: "&aTeletransportandote a tu cueva."
|
||||
help:
|
||||
description: El comando principal de las cuevas
|
||||
create:
|
||||
description: crear una cueva, usando un plano opcional (requiere permiso)
|
||||
too-many-islands: "&cHay demasiadas cuevas en este mundo: no hay suficiente
|
||||
espacio para crear una para ti."
|
||||
unable-create-island: "&cTu cueva no pudo ser generada, por favor contacta
|
||||
a un administrador."
|
||||
creating-island: "&aCreando tu cueva, por favor espera un momento..."
|
||||
pick: "&aElige una cueva"
|
||||
info:
|
||||
description: muestra info. de tu/otra cueva
|
||||
near:
|
||||
description: muestra el nombre de las cuevas vecinas
|
||||
the-following-islands: "&aLas cuevas cercanas son:"
|
||||
no-neighbors: "&c¡No hay cuevas vecinas!"
|
||||
reset:
|
||||
description: reinicia tu cueva y elimina la anterior
|
||||
must-remove-members: "&cDebes eliminar a todos los miembros de tu cueva antes
|
||||
de poder reiniciarla (/island team kick <jugador>)."
|
||||
sethome:
|
||||
must-be-on-your-island: "&c¡Debes estar en tu cueva para establecer el hogar!"
|
||||
home-set: "&6El hogar de tu cueva ha sido establecido a tu posición actual."
|
||||
setname:
|
||||
description: establece un nombre a tu cueva
|
||||
resetname:
|
||||
description: reinicia el nombre de tu cueva
|
||||
team:
|
||||
coop:
|
||||
description: dar rango coop. a un jugador en tu cueva
|
||||
uncoop:
|
||||
you-are-no-longer-a-coop-member: "&cYa no eres un miembro coop en la cueva
|
||||
de [name]"
|
||||
all-members-logged-off: "&cTodos los miembros de la cueva de [name] se desconectaron
|
||||
así que ya no eres un miembro coop."
|
||||
trust:
|
||||
description: dar rango aliado a un jugador en tu cueva
|
||||
invite:
|
||||
description: invita a un jugador a tu cueva
|
||||
name-has-invited-you: "&a[name] te ha invitado a su cueva."
|
||||
you-will-lose-your-island: "&c¡ADVERTENCIA! ¡Perderás tu cueva si aceptas!"
|
||||
errors:
|
||||
island-is-full: "&cTu cueva está llena, no puedes invitar a nadie más."
|
||||
accept:
|
||||
you-joined-island: "&a¡Te uniste a una cueva! Usa /[label] team info para
|
||||
ver a los otros miembros."
|
||||
name-joined-your-island: "&a¡[name] se unió a tu cueva!"
|
||||
confirmation: |-
|
||||
&c¿Estás seguro que quieres aceptar la invitación?
|
||||
&c&l¡&nPERDERAS&c&l tu cueva actual!
|
||||
reject:
|
||||
you-rejected-invite: "&aHaz rechazado la invitación."
|
||||
name-rejected-your-invite: "&c¡[name] rechazo la invitación!"
|
||||
cancel:
|
||||
description: cancela invitaciones pendientes para unirse a tu cueva
|
||||
leave:
|
||||
description: salir de tu cueva
|
||||
left-your-island: "&c[name] &csalió de la cueva"
|
||||
kick:
|
||||
description: elimina un miembro de tu cueva
|
||||
owner-kicked: "&c¡El propietario te ha expulsado de la cueva!"
|
||||
success: "&b[name] &aha sido expulsado de tu cueva."
|
||||
demote:
|
||||
description: desciende un rango a un jugador de tu cueva
|
||||
promote:
|
||||
description: asciende un rango a un jugador de tu cueva
|
||||
setowner:
|
||||
description: transfiere la propiedad de tu cueva a otro jugador
|
||||
errors:
|
||||
target-is-not-member: "&c¡Este jugador no pertenece a tu cueva!"
|
||||
name-is-the-owner: "&a¡[name] ahora es el propietario de la cueva!"
|
||||
you-are-the-owner: "&a¡No eres el propietario de la cueva!"
|
||||
ban:
|
||||
description: banear un jugador de tu cueva
|
||||
cannot-ban-more-players: "&cHaz alcanzado el limite de baneos, no puedes banear
|
||||
más jugadores de tu cueva."
|
||||
player-banned: "&b[name]&c ahora está baneado de tu cueva."
|
||||
owner-banned-you: "&c¡&b[name]&c te ha baneado de su cueva!"
|
||||
you-are-banned: "&b¡Estás baneado de esta cueva!"
|
||||
unban:
|
||||
description: desbanear un jugador de tu cueva
|
||||
player-unbanned: "&b[name]&a ha sido desbaneado de tu cueva."
|
||||
you-are-unbanned: "&a¡&b[name]&a te ha desbaneado de su cueva!"
|
||||
banlist:
|
||||
noone: "&aNadie está baneado en esta cueva."
|
||||
settings:
|
||||
description: muestra los ajustes de la cueva
|
||||
expel:
|
||||
description: expulsa a un jugador de tu cueva
|
||||
not-on-island: "&c¡Ese jugador no está en tu cueva!"
|
||||
player-expelled-you: "&c¡&b[name]&c te expulsó de la cueva!"
|
||||
ranks:
|
||||
owner: Rey enano
|
||||
sub-owner: Caballero enano
|
||||
member: Enano
|
||||
trusted: Aliado
|
||||
coop: Coop
|
||||
visitor: Humano
|
||||
banned: Orco
|
||||
protection:
|
||||
flags:
|
||||
ENDERMAN_GRIEFING:
|
||||
description: |-
|
||||
&aLos Endermans pueden quitar
|
||||
&abloques de las cuevas
|
||||
name: Grifeo de Endermans
|
||||
ENTER_EXIT_MESSAGES:
|
||||
island: Cueva de [name]
|
||||
GEO_LIMIT_MOBS:
|
||||
description: |-
|
||||
&aEliminar las criaturas que salgan
|
||||
&adel espacio protegido de la cueva
|
||||
name: "&eLimitar criaturas a la cueva"
|
||||
ISLAND_RESPAWN:
|
||||
description: |-
|
||||
&aLos jugadores reaparecen
|
||||
&aen sus cuevas
|
||||
name: Reaparición en cuevas
|
||||
LIQUIDS_FLOWING_OUT:
|
||||
name: Flujo de líquidos por fuera
|
||||
description: |-
|
||||
&aAlternar si los líquidos pueden fluir por
|
||||
&afuera del rango de protección de la cueva.
|
||||
LOCK:
|
||||
description: Alternar bloqueo
|
||||
name: Bloquear cueva
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE:
|
||||
name: Aparición natural de criaturas por fuera
|
||||
description: |-
|
||||
&aAlternar si las criaturas (animales y
|
||||
&amonstruos) pueden aparecer naturalmente por fuera
|
||||
&adel rango de protección de la cueva.
|
||||
|
||||
&cTen en cuenta que esto no previene la aparición
|
||||
&cde criaturas mediante un spawner o huevo.
|
||||
OFFLINE_GROWTH:
|
||||
description: |-
|
||||
&aAl desactivarse, las plantas no
|
||||
&acrecerán en cuevas con todos
|
||||
&asus miembros desconectados.
|
||||
&aPuede ayudar a reducir el lag.
|
||||
name: Crecimiento fuera de línea
|
||||
OFFLINE_REDSTONE:
|
||||
description: |-
|
||||
&aAl desactivarse, la redstone no
|
||||
&afuncionará en cuevas con todos
|
||||
&asus miembros desconectados.
|
||||
&aPuede ayudar a reducir el lag.
|
||||
name: Redstone fuera de línea
|
||||
PISTON_PUSH:
|
||||
description: |-
|
||||
&aPermitir que los pistones empujen
|
||||
&abloques fuera de la cueva
|
||||
name: Empuje de pistones
|
||||
REMOVE_MOBS:
|
||||
description: |-
|
||||
&aEliminar monstruos cuando te
|
||||
&ateletransportas a la cueva
|
||||
name: Eliminar monstruos
|
||||
TREES_GROWING_OUTSIDE_RANGE:
|
||||
name: Crecimiento de arboles por fuera
|
||||
description: |-
|
||||
&aAlternar si los arboles pueden crecer por fuera
|
||||
&adel rango de protección de la cueva o no.
|
||||
PREVENT_TELEPORT_WHEN_FALLING:
|
||||
name: Evitar el teletransporte al caer
|
||||
description: |-
|
||||
&aEvitar que los jugadores se teletransporten
|
||||
&aa sus cuevas usando comandos
|
||||
&amientras están cayendo.
|
||||
hint: "&cNo puedes teletransportarte a tu cueva mientras estás cayendo."
|
||||
locked: "&c¡Esta cueva está bloqueada!"
|
||||
protected: "&cCueva protegida: [description]"
|
||||
spawn-protected: "&cSpawn protegido: [description]"
|
||||
panel:
|
||||
PROTECTION:
|
||||
description: |-
|
||||
&aAjustes de protección
|
||||
&apara esta cueva
|
||||
SETTING:
|
||||
description: |-
|
||||
&aAjustes generales
|
||||
&apara esta cueva
|
||||
protection:
|
||||
flags:
|
||||
SKY_WALKER_FLAG:
|
||||
description: |-
|
||||
&5&oEsto permite activar/desactivar
|
||||
&5&ola habilidad para caminar en el
|
||||
&5&otecho del mundo de cuevas
|
||||
&5&osin permisos extra.
|
||||
name: Caminante aéreo
|
||||
hint: Permite caminar en el techo de la cueva
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,272 @@
|
|||
---
|
||||
caveblock:
|
||||
sign:
|
||||
line0: "&cCaveBlock"
|
||||
line1: ようこそ!
|
||||
line2: "[名]"
|
||||
line3: 掘り始めましょう! &c <3
|
||||
informational:
|
||||
to-nether: 地獄に落ちるのは不運です。
|
||||
to-the-end: あなたは終わりに達しました。
|
||||
to-normal: 洞窟に戻ります。
|
||||
general:
|
||||
errors:
|
||||
no-island: "&c洞窟がありません!"
|
||||
player-has-island: "&cPlayerにはすでに洞窟があります!"
|
||||
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]&aは&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: "==========洞窟情報============"
|
||||
is-spawn: 島はスポーン洞窟です
|
||||
islands-in-trash: "&dプレーヤーにはゴミ箱があります。"
|
||||
switchto:
|
||||
description: プレイヤーの洞窟をゴミ箱にある番号付きの洞窟に切り替える
|
||||
out-of-range: 数値は1〜[number]の間でなければなりません。 洞窟番号を見るには&l[label] trash [player]&r&cを使用してください
|
||||
trash:
|
||||
no-unowned-in-trash: "&cゴミ箱に所有されていない洞窟がない"
|
||||
description: 所有していない洞窟またはプレイヤーの洞窟をゴミ箱に入れる
|
||||
title: "&d ===========ゴミ箱の洞窟==========="
|
||||
no-islands-in-trash: "&cプレーヤーにはゴミ箱がありません"
|
||||
count: "&l&d洞窟 [number]:"
|
||||
use-switch: "&a&l[label] switchto <player><number> を使用&r&aプレーヤーをゴミ箱に切り替える"
|
||||
emptytrash:
|
||||
description: プレイヤーのゴミ箱をクリアするか、所有していないすべての洞窟をゴミ箱に入れます
|
||||
setrange:
|
||||
description: プレイヤーの洞窟の範囲を設定します
|
||||
range-updated: 洞窟の範囲が[number]に更新されました
|
||||
tp:
|
||||
description: プレイヤーの洞窟にテレポートする
|
||||
getrank:
|
||||
description: 洞窟でプレイヤーのランクを取得する
|
||||
rank-is: "&aランクは洞窟内で[rank]です。"
|
||||
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: "&a [xyz]の&a洞窟は正常に削除されました。"
|
||||
island:
|
||||
go:
|
||||
description: 洞窟にテレポートする
|
||||
teleport: 洞窟に移動します。
|
||||
help:
|
||||
description: メインの洞窟コマンド
|
||||
create:
|
||||
description: オプションのブループリントを使用して洞窟を作成します(許可が必要です)
|
||||
too-many-islands: "&cこの世界にはあまりにも多くの洞窟があります。あなたの洞窟を作成するのに十分なスペースがありません。"
|
||||
unable-create-island: "&cあなたの洞窟を生成できませんでした。管理者に連絡してください。"
|
||||
creating-island: 洞窟を作成しています。しばらくお待ちください...
|
||||
pick: 洞窟を選ぶ
|
||||
info:
|
||||
description: 洞窟またはプレイヤーの洞窟に関する情報を表示する
|
||||
near:
|
||||
description: 周囲の洞窟の名前を表示する
|
||||
the-following-islands: "&a次の洞窟が近くにあります。"
|
||||
no-neighbors: "&cすぐ近くにある洞窟はありません!"
|
||||
reset:
|
||||
description: 洞窟を再起動して古いものを削除します
|
||||
must-remove-members: "&c洞窟を再開するには、すべてのメンバーを洞窟から削除する必要があります(/[label] team kick
|
||||
<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]はあなたを洞窟に招待しました。"
|
||||
errors:
|
||||
island-is-full: "&cあなたの洞窟はいっぱいです。他の人を招待することはできません。"
|
||||
accept:
|
||||
name-joined-your-island: "&a[name]が洞窟に加わりました!"
|
||||
you-joined-island: "&a洞窟に参加しました! /[label] team info を使用して、他のメンバーを表示します。"
|
||||
confirmation: "&cこの招待を受け入れてもよろしいですか? \n &c&lあなたは現在の洞窟を壊します!"
|
||||
reject:
|
||||
you-rejected-invite: "&a洞窟への招待を拒否しました。"
|
||||
name-rejected-your-invite: "&c[name]は洞窟への招待を拒否しました!"
|
||||
cancel:
|
||||
description: 保留中の招待をキャンセルして洞窟に参加する
|
||||
you-will-lose-your-island: "&c警告!受け入れると洞窟を失います!"
|
||||
leave:
|
||||
description: 洞窟を出る
|
||||
left-your-island: "&c[name]&cはあなたの洞窟を去った。"
|
||||
kick:
|
||||
description: 洞窟からメンバーを削除する
|
||||
owner-kicked: "&c所有者があなたを洞窟から追い出した!"
|
||||
success: "&b[name]&aはあなたの洞窟から追い出されました。"
|
||||
demote:
|
||||
description: 洞窟のプレイヤーをランクダウンする
|
||||
promote:
|
||||
description: 洞窟のプレイヤーを昇進させる
|
||||
setowner:
|
||||
description: 洞窟の所有権をメンバーに譲渡する
|
||||
errors:
|
||||
target-is-not-member: "&cそのプレイヤーは洞窟チームの一員ではありません!"
|
||||
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:
|
||||
name: エンダーマンの悲嘆
|
||||
description: |-
|
||||
&aエンダーマンは削除できます
|
||||
洞窟からのブロック
|
||||
GEO_LIMIT_MOBS:
|
||||
name: モーブを洞窟に限定
|
||||
description: |-
|
||||
&a保護されたスペースに
|
||||
&a移動するMobを削除
|
||||
ISLAND_RESPAWN:
|
||||
name: 洞窟の復活
|
||||
description: |-
|
||||
&aプレイヤーは洞窟を
|
||||
&a再出現します
|
||||
LIQUIDS_FLOWING_OUT:
|
||||
name: 洞窟の外を流れる液体
|
||||
description: |-
|
||||
&a液体が外部に流れることができるかどうかを切り替えます
|
||||
洞窟の保護範囲。
|
||||
LOCK:
|
||||
description: ロックの切り替え
|
||||
name: ロック洞窟
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE:
|
||||
name: 範囲外に産卵する自然生物
|
||||
description: |-
|
||||
&aクリーチャー(動物とモンスター)が
|
||||
&a洞窟の保護範囲外で自然に出現
|
||||
&aできるかどうかを切り替えます。
|
||||
&aクリーチャーがMob Spawnerまたは
|
||||
&aSpawn Eggを介してスポーンすることを
|
||||
&a妨げないことに注意してください。
|
||||
OFFLINE_GROWTH:
|
||||
name: オフライン成長
|
||||
description: "&a無効にすると、植物\n&a洞窟では成長しない\n&aすべてのメンバーがオフラインの場合。 \n "
|
||||
OFFLINE_REDSTONE:
|
||||
name: オフラインレッドストーン
|
||||
description: "&a無効にすると、レッドストーン\n&a洞窟では動作しません\n&aすべてのメンバーがオフラインです。\n "
|
||||
PISTON_PUSH:
|
||||
description: |-
|
||||
&aピストンが押すことを許可する
|
||||
洞窟の外でブロック
|
||||
name: ピストンプッシュ
|
||||
REMOVE_MOBS:
|
||||
description: |-
|
||||
&aモンスターを削除するとき
|
||||
洞窟への移動
|
||||
name: モンスターを取り除く
|
||||
TREES_GROWING_OUTSIDE_RANGE:
|
||||
name: 範囲外に成長する木
|
||||
description: |-
|
||||
&a木が洞窟の保護範囲外に成長
|
||||
&aできるかどうかを切り替えます。
|
||||
PREVENT_TELEPORT_WHEN_FALLING:
|
||||
name: 落下時のテレポートを防ぐ
|
||||
description: |-
|
||||
&aプレイヤーのテレポートを防ぐ
|
||||
コマンドを使用して洞窟に戻る
|
||||
落下している場合。
|
||||
hint: "&c落下中に洞窟にテレポートすることはできません。"
|
||||
ENTER_EXIT_MESSAGES:
|
||||
island: "[name]の洞窟"
|
||||
locked: "&cこの洞窟はロックされています!"
|
||||
spawn-protected: "&c保護されたスポーン:[description]"
|
||||
panel:
|
||||
SETTING:
|
||||
description: |-
|
||||
&a一般設定
|
||||
この洞窟について
|
||||
PROTECTION:
|
||||
description: |-
|
||||
&aこの洞窟の
|
||||
&a保護設定
|
||||
protected: "&c洞窟は保護されています:[description]"
|
||||
protection:
|
||||
flags:
|
||||
SKY_WALKER_FLAG:
|
||||
name: スカイウォーカー
|
||||
hint: 洞窟の天井を歩くことができます。
|
||||
description: |-
|
||||
&5&o追加の許可なしに世界の
|
||||
&5&oトップを歩く機能を
|
||||
&5&o有効/無効にします。
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,301 @@
|
|||
---
|
||||
caveblock:
|
||||
sign:
|
||||
line0: "&cCaveBlock"
|
||||
line1: Witaj!
|
||||
line2: "[name]"
|
||||
line3: Zacznij kopać! &c<3
|
||||
informational:
|
||||
to-nether: Uuu... Pech, wpadłes do Netheru.
|
||||
to-the-end: To już jest koniec.
|
||||
to-normal: Powrót do jaskini.
|
||||
general:
|
||||
errors:
|
||||
no-island: "&cNie masz jaskini!"
|
||||
player-has-island: "&cGracz już posiada jaskinie!"
|
||||
player-has-no-island: "&cTen gracz nie posiada jaskini!"
|
||||
already-have-island: "&cJuż masz jaskinie!"
|
||||
no-safe-location-found: "&cNie można znaleźć bezpiecznego miejsca dla teleportu
|
||||
do jaskini."
|
||||
not-owner: "&cTo nie twoja jaskinia!"
|
||||
commands:
|
||||
admin:
|
||||
team:
|
||||
add:
|
||||
name-has-island: "&c[name] posiada jaskinie. Pierw wyrejestruj lub usuń!"
|
||||
success: "&b[name]&a został dodany do jaskini gracza &b[owner]."
|
||||
kick:
|
||||
success: "&b[name] &azostał wyrzucony z jaskini gracza &b[owner]."
|
||||
setowner:
|
||||
description: przenosi własności jaskini do gracza
|
||||
already-owner: "&c[name] jest już właścicielem tej jaskini!"
|
||||
success: "&b name]&a jest teraz właścicielem tej jaskini."
|
||||
range:
|
||||
description: Zasięg komendy Jaskinii Admina
|
||||
display:
|
||||
description: pokaż/ukryj wskaźniki zasięgu jaskiń
|
||||
hint: |-
|
||||
&cCzerwone ikony bariery &fpokazują aktualny limit zasięgu chronionego jaskini.
|
||||
&7Szare cząsteczki &fpokazują maksymalny limit jaskini.
|
||||
&aZielone cząsteczki &fpokazują domyślny zasięg ochrony, jeśli zasięg ochrony jaskini różni się od niego.
|
||||
set:
|
||||
description: ustawia zasięg ochrony jaskini
|
||||
success: "&aUstaw zasięg ochrony jaskini na &b[liczba]&a."
|
||||
reset:
|
||||
description: resetuje zasięg chroniony jaskini do wartości domyślnych świata
|
||||
success: "&aZresetuj zasięg ochrony jaskini na &b[numer]&a."
|
||||
register:
|
||||
description: zarejestruj gracza w niezarejestrowanej jaskini, w której się
|
||||
znajdujesz
|
||||
registered-island: "&aZarejestrowano gracza do jaskini w [xyz]."
|
||||
already-owned: "&cJaskinia jest już własnością innego gracza!"
|
||||
no-island-here: "&cTutaj nie ma jaskini. Potwierdź, aby utworzyć."
|
||||
in-deletion: "&cTo miejsce jaskini jest obecnie usuwane. Spróbuj później."
|
||||
cannot-make-island: "&cPrzepraszamy, nie można tu umieścić jaskini. Zobacz
|
||||
konsolę, aby poznać możliwe błędy."
|
||||
unregister:
|
||||
description: wyrejestruj właściciela z jaskini, ale zachowaj bloki jaskiniowe
|
||||
unregistered-island: "&aNiezarejestrowany gracz z jaskini w [xyz]."
|
||||
info:
|
||||
description: uzyskaj informacje o tym, gdzie jesteś lub o jaskini gracza
|
||||
no-island: "&cNie jesteś teraz w jaskini ..."
|
||||
title: "======== Informacje o jaskini ========"
|
||||
islands-in-trash: "&dGracz ma jaskinie w koszu."
|
||||
is-spawn: Wyspa jest jaskinią spawnu
|
||||
switchto:
|
||||
description: zmień jaskinię gracza na ponumerowaną znajdującą się w koszu
|
||||
out-of-range: "&cNumer musi mieścić się w przedziale od 1 do [number]. Użyj
|
||||
&l[label] trash [player], &r&caby zobaczyć numery jaskiń"
|
||||
trash:
|
||||
no-unowned-in-trash: "&cŻadnych bezpańskich jaskiń w śmieciach"
|
||||
no-islands-in-trash: "&cGracz nie ma jaskiń w koszu"
|
||||
description: pokaż bezpańskie jaskinie lub jaskinie graczy w śmieciach
|
||||
title: "&d=========== Jaskinie w koszu ==========="
|
||||
count: "&l&dJaskinia [number]:"
|
||||
use-switch: "&aUżyj &l[label] switchto <player> <number>&r&a aby przełączyć
|
||||
gracza do jaskini w koszu"
|
||||
emptytrash:
|
||||
description: Usuń śmieci dla gracza lub wszystkie bezpańskie jaskinie w koszu
|
||||
setrange:
|
||||
description: ustaw zasięg jaskini gracza
|
||||
range-updated: Zasięg jaskiń został zaktualizowany do [number]
|
||||
tp:
|
||||
description: teleportuj się do jaskini gracza
|
||||
getrank:
|
||||
description: zdobądź rangę gracza w swojej jaskini
|
||||
rank-is: "&aRank to [range] w ich jaskini."
|
||||
setrank:
|
||||
description: ustaw rangę gracza w jego jaskini
|
||||
setspawn:
|
||||
description: ustaw jaskinię jako spawn dla tego świata
|
||||
already-spawn: "&cTa jaskinia już się odradza!"
|
||||
no-island-here: "&cNie ma tu jaskini."
|
||||
confirmation: "&cCzy na pewno chcesz ustawić tę jaskinię jako miejsce odrodzenia
|
||||
tego świata?"
|
||||
resetflags:
|
||||
description: Zresetuj wszystkie jaskinie do domyślnych ustawień flag w config.yml
|
||||
delete:
|
||||
description: usuwa jaskinię gracza
|
||||
cannot-delete-owner: "&cWszyscy członkowie jaskini muszą zostać wyrzuceni
|
||||
z jaskini przed jej usunięciem."
|
||||
deleted-island: "&aWyspa w &e[xyz] &azostała pomyślnie usunięta."
|
||||
island:
|
||||
go:
|
||||
description: teleportować cię do swojej jaskini
|
||||
teleport: "&aTeleportuję Cię do Twojej jaskini."
|
||||
help:
|
||||
description: Główne dowództwo jaskini
|
||||
create:
|
||||
description: stwórz jaskinię, korzystając z opcjonalnego planu (wymaga pozwolenia)
|
||||
too-many-islands: "&cNa tym świecie jest zbyt wiele jaskiń: nie ma wystarczająco
|
||||
dużo miejsca, aby stworzyć twoją."
|
||||
unable-create-island: "&cTwoja jaskinia nie może zostać wygenerowana, skontaktuj
|
||||
się z administratorem."
|
||||
creating-island: "&aTworzenie jaskini, proszę chwilę poczekać..."
|
||||
pick: "&aWybierz jaskinię"
|
||||
info:
|
||||
description: wyświetlaj informacje o swojej jaskini lub jaskini gracza
|
||||
near:
|
||||
description: pokaż nazwy sąsiednich jaskiń wokół ciebie
|
||||
the-following-islands: "&aW pobliżu znajdują się następujące jaskinie:"
|
||||
no-neighbors: "&cNie masz bezpośrednio sąsiadujących jaskiń!"
|
||||
reset:
|
||||
description: uruchom ponownie jaskinię i usuń starą
|
||||
must-remove-members: "&cMusisz usunąć wszystkich członków ze swojej jaskini,
|
||||
zanim będziesz mógł ją ponownie uruchomić (/island team kick <gracz>)."
|
||||
sethome:
|
||||
must-be-on-your-island: "&cMusisz być w swojej jaskini, aby wrócić do domu!"
|
||||
home-set: "&6Twój dom w jaskini został ustawiony na bieżącą lokalizację."
|
||||
setname:
|
||||
description: ustaw nazwę dla swojej jaskini
|
||||
resetname:
|
||||
description: zresetuj nazwę jaskini
|
||||
team:
|
||||
coop:
|
||||
description: zrób ranking kooperacyjny gracza w swojej jaskini
|
||||
uncoop:
|
||||
you-are-no-longer-a-coop-member: "&cNie jesteś już członkiem współpracy
|
||||
w jaskini [name]"
|
||||
all-members-logged-off: "&cWszyscy członkowie jaskini wylogowali się, więc
|
||||
nie jesteś już członkiem kooperacji w jaskini [name]"
|
||||
trust:
|
||||
description: dać graczowi zaufaną rangę w swojej jaskini
|
||||
invite:
|
||||
description: zaproś gracza do swojej jaskini
|
||||
name-has-invited-you: "&a[name] zaprasza Cię do swojej jaskini."
|
||||
you-will-lose-your-island: "&cOSTRZEŻENIE! Stracisz swoją jaskinię, jeśli
|
||||
się zgodzisz!"
|
||||
errors:
|
||||
island-is-full: "&cTwoja jaskinia jest pełna, nie możesz nikogo zaprosić."
|
||||
accept:
|
||||
you-joined-island: "&aDołączyłeś do jaskini! Użyj /[etykieta] informacji
|
||||
o zespole, aby zobaczyć innych członków."
|
||||
name-joined-your-island: "&a[name] dołączył do Twojej jaskini!"
|
||||
confirmation: |-
|
||||
&cCzy na pewno chcesz przyjąć to zaproszenie?
|
||||
&c&lZgubisz&n&r &c&lyswoją obecną jaskinię!
|
||||
reject:
|
||||
you-rejected-invite: "&aOdrzuciłeś zaproszenie do jaskini."
|
||||
name-rejected-your-invite: "&c[name] odrzucił Twoje zaproszenie do jaskini!"
|
||||
cancel:
|
||||
description: anuluj oczekujące zaproszenie do swojej jaskini
|
||||
leave:
|
||||
description: opuść swoją jaskinię
|
||||
left-your-island: "&c[name] &rozszczep swoją jaskinię"
|
||||
kick:
|
||||
description: usuń członka ze swojej jaskini
|
||||
owner-kicked: "&cWłaściciel wykopał cię z jaskini!"
|
||||
success: "&b[name] &został wyrzucony z Twojej jaskini."
|
||||
demote:
|
||||
description: zdegraduj gracza w swojej jaskini w dół o rangę
|
||||
promote:
|
||||
description: awansować gracza w swojej jaskini na wyższą rangę
|
||||
setowner:
|
||||
description: przenieść własność jaskini na członka
|
||||
errors:
|
||||
target-is-not-member: "&cTen gracz nie jest częścią twojej drużyny jaskiniowej!"
|
||||
name-is-the-owner: "&a[name] jest teraz właścicielem jaskini!"
|
||||
you-are-the-owner: "&aJesteś teraz właścicielem jaskini!"
|
||||
ban:
|
||||
description: zbanuj gracza ze swojej jaskini
|
||||
cannot-ban-more-players: "&c Osiągnąłeś limit banów, nie możesz zbanować więcej
|
||||
graczy ze swojej jaskini."
|
||||
player-banned: "&b[name]&c jest teraz zablokowany w Twojej jaskini."
|
||||
owner-banned-you: "&b[name]&c zabronił Ci wstępu do swojej jaskini!"
|
||||
you-are-banned: "&bNie masz dostępu do tej jaskini!"
|
||||
unban:
|
||||
description: odbanuj gracza z twojej jaskini
|
||||
player-unbanned: "&b[name]&a jest teraz odblokowany w Twojej jaskini."
|
||||
you-are-unbanned: "&b[name]&a odblokował cię w swojej jaskini!"
|
||||
banlist:
|
||||
noone: "&aNikt nie jest zabroniony w tej jaskini."
|
||||
settings:
|
||||
description: wyświetl ustawienia jaskini
|
||||
expel:
|
||||
description: wyrzuć gracza ze swojej jaskini
|
||||
not-on-island: "&cTego gracza nie ma w twojej jaskini!"
|
||||
player-expelled-you: "&b[name]&c wyrzucił cię z jaskini!"
|
||||
ranks:
|
||||
owner: Król krasnoludów
|
||||
sub-owner: Krasnoludzki Rycerz
|
||||
member: Krasnolud
|
||||
trusted: Zaufane
|
||||
coop: Kooperacja
|
||||
visitor: Człowiek
|
||||
banned: Ork
|
||||
protection:
|
||||
flags:
|
||||
ENDERMAN_GRIEFING:
|
||||
description: |-
|
||||
&aEndermen może usunąć
|
||||
&blokady z jaskiń
|
||||
name: Rozpacz Endermana
|
||||
ENTER_EXIT_MESSAGES:
|
||||
island: Jaskinia [name]
|
||||
GEO_LIMIT_MOBS:
|
||||
description: |-
|
||||
&aUsuń moby, które idą
|
||||
&poza chronionym
|
||||
&ostań w przestrzeni
|
||||
name: "&eOgranicz moby do jaskini"
|
||||
ISLAND_RESPAWN:
|
||||
description: |-
|
||||
&aGracze odradzają się
|
||||
&w ich jaskini
|
||||
name: Odrodzenie w jaskini
|
||||
LIQUIDS_FLOWING_OUT:
|
||||
name: Płyny wypływające poza jaskinie
|
||||
description: |-
|
||||
&aPrzełącz, czy płyny mogą wypływać na zewnątrz
|
||||
&a zasięgu ochrony jaskini.
|
||||
LOCK:
|
||||
description: Przełącz blokadę
|
||||
name: Zablokuj jaskinię
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE:
|
||||
name: Naturalne stworzenie odradzające się poza zasięgiem
|
||||
description: |-
|
||||
&aPrzełącz czy stworzenia (zwierzęta i
|
||||
i potwory) mogą naturalnie odradzać się na zewnątrz
|
||||
&aa zasięg ochrony jaskini.
|
||||
|
||||
&cPamiętaj, że nie zapobiega to stworzeniom
|
||||
&cby odradzać się za pomocą generatora mobów lub spawnu
|
||||
&ceg.
|
||||
OFFLINE_GROWTH:
|
||||
description: |-
|
||||
&aPo wyłączeniu rośliny
|
||||
&nie będzie rosnąć w jaskiniach
|
||||
&kiedy wszyscy członkowie są offline.
|
||||
&aMoże pomóc zmniejszyć opóźnienia.
|
||||
name: Rozwój offline
|
||||
OFFLINE_REDSTONE:
|
||||
description: |-
|
||||
&aKiedy wyłączone, czerwony kamień
|
||||
&nie będzie działać w jaskiniach
|
||||
&gdzie wszyscy członkowie są offline.
|
||||
&aMoże pomóc zmniejszyć opóźnienia.
|
||||
name: Offline Redstone
|
||||
PISTON_PUSH:
|
||||
description: |-
|
||||
&aZezwalaj tłokom na pchanie
|
||||
&blokuje na zewnątrz jaskini
|
||||
name: Popychanie tłoka
|
||||
REMOVE_MOBS:
|
||||
description: |-
|
||||
&aUsuń potwory, gdy
|
||||
&ateleport do jaskini
|
||||
name: Usuń potwory
|
||||
TREES_GROWING_OUTSIDE_RANGE:
|
||||
name: Drzewa rosnące poza zasięgiem
|
||||
description: |-
|
||||
&aPrzełącz, czy drzewa mogą rosnąć na zewnątrz i
|
||||
zakres ochrony &acave, czy nie.
|
||||
PREVENT_TELEPORT_WHEN_FALLING:
|
||||
name: Zapobiegaj teleportacji podczas upadku
|
||||
description: |-
|
||||
&aZapobiegaj teleportacji graczy
|
||||
&z powrotem do swojej jaskini za pomocą poleceń
|
||||
i jeśli spadają.
|
||||
hint: "&cNie możesz teleportować się z powrotem do swojej jaskini, gdy spadasz."
|
||||
locked: "&cTa jaskinia jest zamknięta!"
|
||||
protected: "&cJaskinia chroniona: [description]"
|
||||
spawn-protected: "&cSpawn chroniony: [description]"
|
||||
panel:
|
||||
PROTECTION:
|
||||
description: |-
|
||||
&aUstawienia ochrony
|
||||
&dla tej jaskini
|
||||
SETTING:
|
||||
description: |-
|
||||
&aUstawienia ogólne
|
||||
&dla tej jaskini
|
||||
protection:
|
||||
flags:
|
||||
SKY_WALKER_FLAG:
|
||||
description: |-
|
||||
&5&oPozwala to włączyć/wyłączyć
|
||||
&5&możliwość chodzenia po
|
||||
&5&otop świata jaskiń
|
||||
&5&obez dodatkowych uprawnień.
|
||||
name: Sky Walker
|
||||
hint: Pozwala chodzić po suficie jaskini.
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,306 @@
|
|||
---
|
||||
caveblock:
|
||||
sign:
|
||||
line0: "&cCaveBlock"
|
||||
line1: Добро пожаловать!
|
||||
line2: "[name]"
|
||||
line3: Начни копать! &c<3
|
||||
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Вы не владелец этой пещеры!"
|
||||
cave-limit-reached: "&c Вы достигли вершины своей пещеры. Вы не можете стать
|
||||
выше!"
|
||||
commands:
|
||||
admin:
|
||||
team:
|
||||
add:
|
||||
name-has-island: "&c[name] имеет пещеру. Сначала отмените регистрацию или
|
||||
удалите её!"
|
||||
success: "&b[name]&a был добавлен в пещеру игрока&b [owner]&a."
|
||||
kick:
|
||||
success: "&b[name]&a был выгнан из пещеры &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: Пещерный диапазон обновлен до [number]
|
||||
tp:
|
||||
description: телепортироваться в пещеру игрока
|
||||
getrank:
|
||||
description: получить звание игрока в своей пещере
|
||||
rank-is: "&aРанг - [rank] в этой пещере."
|
||||
setrank:
|
||||
description: установить ранг игрока в своей пещере
|
||||
setspawn:
|
||||
description: установить пещеру как спавн для этого мира
|
||||
already-spawn: "&cЭта пещера уже спавн!"
|
||||
no-island-here: "&cЗдесь нет пещеры."
|
||||
confirmation: "&сВы уверены, что хотите установить эту пещеру в качестве спавна
|
||||
для этого мира?"
|
||||
resetflags:
|
||||
description: Сброс всех пещер к настройкам флага по умолчанию в config.yml
|
||||
delete:
|
||||
description: удаляет пещеру игрока
|
||||
cannot-delete-owner: "&cВсе члены пещеры должны быть выгнаны из пещеры перед
|
||||
удалением."
|
||||
deleted-island: "&aОстров на &e[xyz] &aбыл успешно удален."
|
||||
island:
|
||||
go:
|
||||
description: телепортировать вас в вашу пещеру
|
||||
teleport: "&aТелепортируем вас в вашу пещеру."
|
||||
help:
|
||||
description: Основная пещерная команда
|
||||
create:
|
||||
description: создать пещеру, используя необязательный проект (требуется разрешение)
|
||||
too-many-islands: "&cВ этом мире слишком много пещер: недостаточно места для
|
||||
создания вашей."
|
||||
unable-create-island: "&cВашу пещеру не удалось создать, обратитесь к администратору."
|
||||
creating-island: "&aСоздавается ваша пещера, пожалуйста, подождите..."
|
||||
pick: "&cВыберите пещеру"
|
||||
info:
|
||||
description: отображать информацию о вашей пещере или пещере игрока
|
||||
near:
|
||||
description: показать названия соседних пещер вокруг вас
|
||||
the-following-islands: "&aСледующие пещеры находятся поблизости:"
|
||||
no-neighbors: "&cУ вас нет ближайших соседних пещер!"
|
||||
reset:
|
||||
description: перезапустите свою пещеру и удалите старую
|
||||
must-remove-members: "&cВы должны удалить всех участников из своей пещеры,
|
||||
прежде чем сможете ее перезапустить (/ island team kick <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: "&сВНИМАНИЕ! Вы потеряете свою пещеру, если вы
|
||||
примете!"
|
||||
errors:
|
||||
island-is-full: "&сВаша пещера заполнена, вы не можете пригласить кого-либо
|
||||
еще."
|
||||
accept:
|
||||
you-joined-island: "&aВы присоединились к пещере! Используйте /[label]
|
||||
информацию о команде, чтобы увидеть других участников."
|
||||
name-joined-your-island: "&a[name] присоединилось к вашей пещере!"
|
||||
confirmation: |-
|
||||
&cВы уверены, что хотите принять это приглашение?
|
||||
&c&lВы будете &nУДАЛЕНЫ &r&c с вашей пещеры!
|
||||
reject:
|
||||
you-rejected-invite: "&aВы отклонили приглашение присоединиться к пещере."
|
||||
name-rejected-your-invite: "&c[name] отклонил ваше приглашение в пещеру!"
|
||||
cancel:
|
||||
description: отменить ожидающее приглашение присоединиться к вашей пещере
|
||||
leave:
|
||||
description: покинуть свою пещеру
|
||||
left-your-island: "&c[name] вышел с вашей пещеры"
|
||||
kick:
|
||||
description: удалить члена из вашей пещеры
|
||||
owner-kicked: "&cВладелец выгнал вас из пещеры!"
|
||||
success: "&b[name]&a был изгнан из вашей пещеры."
|
||||
demote:
|
||||
description: понизить игрока в вашей пещере по рангу
|
||||
promote:
|
||||
description: повысить игрока в вашей пещере до более высокого звания
|
||||
setowner:
|
||||
description: передать право собственности на пещеру участнику
|
||||
errors:
|
||||
target-is-not-member: "&cЭтот игрок не является частью вашей пещерной
|
||||
команды!"
|
||||
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: |-
|
||||
&aЭндермен может удалить
|
||||
&aблоки из пещер
|
||||
name: Гриферство эндермена
|
||||
ENTER_EXIT_MESSAGES:
|
||||
island: пещера [name]
|
||||
GEO_LIMIT_MOBS:
|
||||
description: |-
|
||||
&aУдалиет мобов, которые уходят
|
||||
&aвне защиты
|
||||
&aв пещеру
|
||||
name: "&eЛимит мобов в пещере"
|
||||
ISLAND_RESPAWN:
|
||||
description: |-
|
||||
&aреспаун игрока
|
||||
&aв его пещере
|
||||
name: Респавн пещеры
|
||||
LIQUIDS_FLOWING_OUT:
|
||||
name: Жидкости текут вне пещер
|
||||
description: |-
|
||||
&aВключить, могут ли жидкости вытекать наружу
|
||||
&aиз диапазона защиты пещеры.
|
||||
LOCK:
|
||||
description: Включить/Выключить жидкости
|
||||
name: Замок пещеры
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE:
|
||||
name: Естественное существо появляется вне пределов досягаемости
|
||||
description: |-
|
||||
&aПереключить ли существа (животных и
|
||||
&aмонстров) могут порождаться естественным путем снаружи
|
||||
&aДиапазон защиты пещеры.
|
||||
|
||||
&cОтметьте, что это не мешает существам
|
||||
&c порождение через порождения моба или спавна
|
||||
&cяйца.
|
||||
OFFLINE_GROWTH:
|
||||
description: |-
|
||||
&aКогда выключено, растения
|
||||
&aне будет расти в пещерах
|
||||
&aкогда все участники не в сети.
|
||||
&aМожет помочь уменьшить отставание.
|
||||
name: Оффлайн Рост
|
||||
OFFLINE_REDSTONE:
|
||||
description: |-
|
||||
&aКогда отключено, Редстоун
|
||||
&aне будет работать в пещерах
|
||||
&aкогда все участники не в сети.
|
||||
&aМожет помочь уменьшить отставание.
|
||||
name: Оффлайн Редстоун
|
||||
PISTON_PUSH:
|
||||
description: |-
|
||||
&aРазрешить толкать поршни
|
||||
&aи за пределами пещеры
|
||||
name: Поршневой толчок
|
||||
REMOVE_MOBS:
|
||||
description: |-
|
||||
&aУдалить монстров, при
|
||||
&aтелепортации в пещеру
|
||||
name: Удалить монстров
|
||||
TREES_GROWING_OUTSIDE_RANGE:
|
||||
name: Деревья, растущие вне диапазона
|
||||
description: |-
|
||||
&aВключить, могут ли деревья расти вне
|
||||
&aДиапазона защиты пещеры или нет.
|
||||
PREVENT_TELEPORT_WHEN_FALLING:
|
||||
name: Предотвратить телепорт при падении
|
||||
description: |-
|
||||
&aПредотвращение игроков от &aтелепортации
|
||||
&aснова в свою пещеру, используя команды
|
||||
&aесли они падают.
|
||||
hint: "&cВы не можете телепортироваться обратно в свою пещеру, пока падаете."
|
||||
locked: "&cЭта пещера заперта!"
|
||||
protected: "&cПещера защищена: [description]"
|
||||
spawn-protected: "&cСпавн защищен: [description]"
|
||||
panel:
|
||||
PROTECTION:
|
||||
description: |-
|
||||
&aнастройки защиты
|
||||
&aдля этой пещеры
|
||||
SETTING:
|
||||
description: |-
|
||||
&aОбщие настройки
|
||||
&aдля этой пещеры
|
||||
protection:
|
||||
flags:
|
||||
SKY_WALKER_FLAG:
|
||||
description: |-
|
||||
&5&oЭто позволяет включить / отключить
|
||||
&5&oвозможность ходить по
|
||||
&5&oверхности из пещерного мира
|
||||
&5&oбез дополнительных разрешений.
|
||||
name: Ходящий по небу
|
||||
hint: Позволяет ходить по пещерному потолку.
|
|
@ -0,0 +1,302 @@
|
|||
---
|
||||
caveblock:
|
||||
sign:
|
||||
line0: "&cCaveBlock"
|
||||
line1: Hoş geldin!
|
||||
line2: "[isim]"
|
||||
line3: Kazmaya başlayın! &c<3
|
||||
informational:
|
||||
to-nether: Şansızca nethere düştün.
|
||||
to-the-end: Sona ulaştınız.
|
||||
to-normal: Mağarana geri dön
|
||||
general:
|
||||
errors:
|
||||
no-island: "&cMağaraya sahip değilsin!"
|
||||
player-has-island: "&cOyuncu bir mağaraya sahip!"
|
||||
player-has-no-island: "&cBu oyuncunun mağarası yok!"
|
||||
already-have-island: "&cZaten bir mağaraya sahipsin!"
|
||||
no-safe-location-found: "&cMağarada sizi ışınlayacak güvenli bir yer bulunamadı."
|
||||
not-owner: "&cMağaranın sahibi sen değilsin!"
|
||||
cave-limit-reached: "&c Mağaranızın tepesine ulaştınız. Daha yükseğe çıkamazsın!"
|
||||
commands:
|
||||
admin:
|
||||
team:
|
||||
add:
|
||||
name-has-island: "&c[name] bir mağaraya sahip, tekrar kayıt olmalı ya da
|
||||
silmeli!"
|
||||
success: "&b[name]&a Başarıyla &b[owner]&a'nın mağarasına katıldı."
|
||||
kick:
|
||||
success: "&b[name] , &b[owner]&a'nın mağarasından atıldı."
|
||||
setowner:
|
||||
description: Mağara sahipliğini oyuncuya verir
|
||||
already-owner: "&c[name] zaten bu mağaranın sahibi!"
|
||||
success: "&b[name]&a artık mağaranın sahibi."
|
||||
range:
|
||||
description: Yönetici mağara Alanı komutu
|
||||
display:
|
||||
description: mağara alanı göstergeleri show/hide
|
||||
hint: |-
|
||||
&cKırmızı Bariyer simgeleri &fmevcut mağara korumalı menzil sınırını gösterir.
|
||||
&7Gri Parçacıklar &fmaksimum mağara sınırını gösterir.
|
||||
&aYeşil Parçacıklar &fmağara koruma aralığı bundan farklıysa, varsayılan korumalı aralığı gösterir.
|
||||
set:
|
||||
description: mağara korumalı alanı ayarlar
|
||||
success: "&aMağara koruma aralığını &b[number]'a ayarla."
|
||||
reset:
|
||||
description: mağara korumalı aralığı dünya varsayılanına sıfırlar
|
||||
success: "&aMağara koruma aralığını &b[number]'a sıfırla."
|
||||
register:
|
||||
description: Oyuncuyu bulunduğunuz sahipsiz mağaraya kaydedin
|
||||
registered-island: "&aKayıtlı oyuncu [xyz]'de mağaraya kayıt oldu"
|
||||
already-owned: "&cMağara zaten başka bir oyuncuya ait!"
|
||||
no-island-here: "&cBurada mağara yok. Bir tane yapmayı onaylayın."
|
||||
in-deletion: "&cBu mağara alanı şu anda siliniyor. Daha sonra tekrar deneyin."
|
||||
cannot-make-island: "&c Buraya bir mağara yerleştirilemez, üzgünüm. Olası
|
||||
hatalar için konsola bakın."
|
||||
unregister:
|
||||
description: sahibinin kaydını mağaradan sil, ancak mağara bloklarını sakla
|
||||
unregistered-island: "&a[xyz]'deki mağaradan kayıtlı olmayan oyuncu."
|
||||
info:
|
||||
description: nerde olduğunuz veya oyuncunun mağarası hakkında bilgi al
|
||||
no-island: "&cŞu anda bir mağarada değilsiniz..."
|
||||
title: "========== Mağara Bilgisi ============"
|
||||
islands-in-trash: "&dPlayer'ın çöp kutusunda mağaraları var."
|
||||
is-spawn: Başlangıç mağarasıdır.
|
||||
switchto:
|
||||
description: oyuncunun mağarasını çöp kutusundaki bir numaraya değiştir
|
||||
out-of-range: "&cSayı 1 ile [sayı] arasında olmalıdır. Mağara numaralarını
|
||||
görmek için &l[label] çöp kutusu [player] &r&kullanın"
|
||||
trash:
|
||||
no-unowned-in-trash: "&cÇöp kutusunda sahipsiz mağara yok"
|
||||
no-islands-in-trash: "&cPlayer'ın çöp kutusunda mağarası yok"
|
||||
description: sahipsiz mağaraları veya oyuncunun mağaralarını çöp kutusunda
|
||||
göster
|
||||
title: "&d=========== Çöpteki Mağaralar ==========="
|
||||
count: "&l&dMağara [number]:"
|
||||
use-switch: "&aOyuncuyu çöp kutusunda mağaraya geçirmek için &l[label] switchto
|
||||
<player> <number>&r&a kullanın"
|
||||
emptytrash:
|
||||
description: Oyuncu için çöp kutusunu veya sahip olunmayan tüm mağaraları
|
||||
çöp kutusundan temizleyin
|
||||
setrange:
|
||||
description: oyuncunun mağara aralığını ayarla
|
||||
range-updated: Mağara aralığı [sayı] olarak güncellendi
|
||||
tp:
|
||||
description: oyuncunun mağarasına ışınlanma
|
||||
getrank:
|
||||
description: bir oyuncunun rütbesini mağarasında almak
|
||||
rank-is: "&aRank onların mağarasında [rütbe]."
|
||||
setrank:
|
||||
description: bir oyuncunun sıralamasını mağarasında belirle
|
||||
setspawn:
|
||||
description: bu dünya için bir mağara belirle
|
||||
already-spawn: "&cBu mağara zaten bir oluşum!"
|
||||
no-island-here: "&cBurada mağara yok."
|
||||
confirmation: "&cBu mağarayı bu dünyanın doğuşu olarak ayarlamak istediğinizden
|
||||
emin misiniz?"
|
||||
resetflags:
|
||||
description: config.yml'deki tüm mağaraları varsayılan bayrak ayarlarına sıfırlayın
|
||||
delete:
|
||||
description: bir oyuncunun mağarasını siler
|
||||
cannot-delete-owner: "&cMağara silinmeden önce tüm mağara üyelerinin mağaradan
|
||||
atılması gerekir."
|
||||
deleted-island: "&e[xyz] &akoordinatlı mağara başarıyla silindi."
|
||||
island:
|
||||
go:
|
||||
description: Mağarana ışınlan
|
||||
teleport: "&aSizi mağaranıza ışınlıyorum."
|
||||
help:
|
||||
description: Ana mağara komutu
|
||||
create:
|
||||
description: Bir mağara oluştur, isteğe bağlı blueprint kullanımı (izin gerekli)
|
||||
too-many-islands: "&cBu dünyada çok fazla mağara var: seninkinin yaratılması
|
||||
için yeterli yer yok."
|
||||
unable-create-island: "&cMağaranız oluşturulamadı, lütfen bir yönetici ile
|
||||
iletişime geçin."
|
||||
creating-island: "&aMağaranız oluşturuluyor, lütfen biraz bekleyin..."
|
||||
pick: "&aBir mağara seçin"
|
||||
info:
|
||||
description: mağaranız veya oyuncunun mağarası hakkında bilgi görüntüleyin
|
||||
near:
|
||||
description: Çevredeki mağaraları göster
|
||||
the-following-islands: "&aAşağıdaki mağaralar yakındadır:"
|
||||
no-neighbors: "&cYakın komşu mağaranız yok!"
|
||||
reset:
|
||||
description: mağaranızı yeniden başlatın ve eskisini kaldırın
|
||||
must-remove-members: "&cMağaranızı yeniden başlatmadan önce tüm üyeleri çıkarmalısınız
|
||||
(/island team kick <player>)."
|
||||
sethome:
|
||||
must-be-on-your-island: "&cEve gitmek için mağaranızda olmalısınız!"
|
||||
home-set: "&6Mağara eviniz mevcut konumunuza ayarlandı."
|
||||
setname:
|
||||
description: Mağaran için isim belirle
|
||||
resetname:
|
||||
description: mağara adını sıfırla
|
||||
team:
|
||||
coop:
|
||||
description: Bir oyuncuyu mağaranda işçi yap
|
||||
uncoop:
|
||||
you-are-no-longer-a-coop-member: "&cArtık [isim] adlı kişinin mağarasının
|
||||
kooperatif üyesi değilsin"
|
||||
all-members-logged-off: "&cTüm mağara üyeleri oturumu kapattı, böylece artık
|
||||
[ad] adlı kişinin mağarasının bir kooperatif üyesi değilsiniz"
|
||||
trust:
|
||||
description: mağaranızda bir oyuncuya güvenilir rütbe verin
|
||||
invite:
|
||||
description: bir oyuncuyu mağaranıza katılmaya davet edin
|
||||
name-has-invited-you: "&a[name] sizi mağarasına davet etti."
|
||||
you-will-lose-your-island: "&cUYARI! Kabul edersen mağaranı kaybedersin!"
|
||||
errors:
|
||||
island-is-full: "&cMağaranız dolu, başkasını davet edemezsiniz."
|
||||
accept:
|
||||
you-joined-island: "&aBir mağaraya katıldınız! Diğer üyeleri görmek için
|
||||
/[label] takım bilgisini kullanın."
|
||||
name-joined-your-island: "&a[name] Mağarana katıldı!"
|
||||
confirmation: |-
|
||||
&cBu daveti kabul etmek istediğinizden emin misiniz?
|
||||
&c&lMevcut mağaranızı &n&c&l&nkaybedeceksiniz!
|
||||
reject:
|
||||
you-rejected-invite: "&aBir mağaraya katılma davetini reddettiniz."
|
||||
name-rejected-your-invite: "&c[isim] mağara davetinizi reddetti!"
|
||||
cancel:
|
||||
description: mağaranıza katılmak için bekleyen daveti iptal edin
|
||||
leave:
|
||||
description: mağaranı terk et
|
||||
left-your-island: "&c[name] &cMağarandan ayrıldı"
|
||||
kick:
|
||||
description: mağaranızdan bir üyeyi çıkarın
|
||||
owner-kicked: "&cSahibi seni mağaradan attı!"
|
||||
success: "&b[name] &aMağaradan atıldı."
|
||||
demote:
|
||||
description: Mağaranızdaki bir oyuncuyu bir rütbe aşağı indirin
|
||||
promote:
|
||||
description: mağaranızdaki bir oyuncuyu bir üst rütbeye terfi ettirin
|
||||
setowner:
|
||||
description: mağara sahipliğini bir üyeye devret
|
||||
errors:
|
||||
target-is-not-member: "&cBu oyuncu mağara ekibinizin bir parçası değil!"
|
||||
name-is-the-owner: "&a[isim] artık mağaranın sahibi!"
|
||||
you-are-the-owner: "&aArtık mağara sahibi sizsiniz!"
|
||||
ban:
|
||||
description: mağaranızdan bir oyuncuyu yasaklayın
|
||||
cannot-ban-more-players: "&cYasak sınırına ulaştınız, mağaranızdan daha fazla
|
||||
oyuncu yasaklayamazsınız."
|
||||
player-banned: "&b[name]&c artık mağaranıza girmesi yasaklandı."
|
||||
owner-banned-you: "&b[name]&c Mağarasından banlandın!"
|
||||
you-are-banned: "&bBu mağaraya girmeniz yasaklandı!"
|
||||
unban:
|
||||
description: mağaranızdaki bir oyuncunun yasağını kaldırın
|
||||
player-unbanned: "&b[name]&a artık mağaranızdan çıkar."
|
||||
you-are-unbanned: "&b[name] sizi mağaralarından çıkardı!"
|
||||
banlist:
|
||||
noone: "&aKimse bu mağarada yasaklı değil."
|
||||
settings:
|
||||
description: mağara ayarlarını göster
|
||||
expel:
|
||||
description: bir oyuncuyu mağarandan kov
|
||||
not-on-island: "&cOyuncu mağaranızda değil!"
|
||||
player-expelled-you: "&b[name]&c seni mağaradan kovdu!"
|
||||
ranks:
|
||||
owner: Cüce Kral
|
||||
sub-owner: Cüce Şövalye
|
||||
member: Cüce
|
||||
trusted: güvenilir
|
||||
coop: Kümes
|
||||
visitor: İnsan
|
||||
banned: Orc
|
||||
protection:
|
||||
flags:
|
||||
ENDERMAN_GRIEFING:
|
||||
description: |-
|
||||
&aEndermen kaldırabilir
|
||||
&mağaralardan birkaç blok ötede
|
||||
name: Enderman kederli
|
||||
ENTER_EXIT_MESSAGES:
|
||||
island: "[isim] mağarası"
|
||||
GEO_LIMIT_MOBS:
|
||||
description: |-
|
||||
&aGidip gelen çeteleri kaldır
|
||||
&dış korumalı
|
||||
&akave alanı
|
||||
name: "&eÇeteleri mağaraya sınırlayın"
|
||||
ISLAND_RESPAWN:
|
||||
description: |-
|
||||
&aOyuncular mağarada
|
||||
&atekrar doğar.
|
||||
name: Mağara yeniden doğuşu
|
||||
LIQUIDS_FLOWING_OUT:
|
||||
name: Mağaraların dışında akan sıvılar
|
||||
description: |-
|
||||
&aSıvıların dışarıya akıp akmayacağını değiştir
|
||||
&a mağaranın koruma aralığında.
|
||||
LOCK:
|
||||
description: Kilidi değiştir
|
||||
name: Mağarayı kilitle
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE:
|
||||
name: Menzil dışında yumurtlayan doğal yaratık
|
||||
description: |-
|
||||
&aYaratıklar (hayvanlar ve
|
||||
&amonsters) dışarıda doğal olarak ortaya çıkabilir
|
||||
&aa mağarasının koruma alanı.
|
||||
|
||||
&cYaratıkları engellemediğini unutmayın
|
||||
&cto bir mafya oluşturucu veya bir yumurtlama aracıyla yumurtlar
|
||||
&cig.
|
||||
OFFLINE_GROWTH:
|
||||
description: |-
|
||||
&aDevre dışı bırakıldığında bitkiler
|
||||
&a mağaralarda büyümeyecek
|
||||
&atüm üyeler çevrimdışı olduğunda.
|
||||
&aGecikmeyi azaltmaya yardımcı olabilir.
|
||||
name: Çevrimdışı Büyüme
|
||||
OFFLINE_REDSTONE:
|
||||
description: |-
|
||||
&aDevre dışı bırakıldığında, redstone
|
||||
&a mağaralarda çalışmayacaktır
|
||||
&tüm üyelerin çevrimdışı olduğu bir yer.
|
||||
&aGecikmeyi azaltmaya yardımcı olabilir.
|
||||
name: Kapalı Kızıltaş
|
||||
PISTON_PUSH:
|
||||
description: |-
|
||||
&aPistonların itmesine izin ver
|
||||
&mağaranın dışındaki bloklar
|
||||
name: Piston itme
|
||||
REMOVE_MOBS:
|
||||
description: |-
|
||||
&aCanavarları kaldır
|
||||
&mağaraya ışınlanma
|
||||
name: Canavarları kaldır
|
||||
TREES_GROWING_OUTSIDE_RANGE:
|
||||
name: Menzil dışında büyüyen ağaçlar
|
||||
description: |-
|
||||
&aAğaçların bir alanın dışında büyüyüp büyüyemeyeceğini değiştir
|
||||
&aMağaranın koruma menzili içinde olup olmadığı.
|
||||
PREVENT_TELEPORT_WHEN_FALLING:
|
||||
name: Düşerken ışınlanmayı engelle
|
||||
description: |-
|
||||
&aOyuncuların ışınlanmasını engelle
|
||||
&komutları kullanarak mağaralarına geri dönün
|
||||
Düşüyorlarsa.
|
||||
hint: "&cDüştüğün için mağaraya ışınlanamazsın."
|
||||
locked: "&cBu mağara kilitli!"
|
||||
protected: "&cCave korumalı: [açıklama]"
|
||||
spawn-protected: "&cSpawn korumalı: [açıklama]"
|
||||
panel:
|
||||
PROTECTION:
|
||||
description: |-
|
||||
&aKoruma ayarları
|
||||
&bu mağara için
|
||||
SETTING:
|
||||
description: |-
|
||||
&aGenel ayarlar
|
||||
&bu mağara için
|
||||
protection:
|
||||
flags:
|
||||
SKY_WALKER_FLAG:
|
||||
description: |-
|
||||
&5&oEtkinleştir/devre dışı bırak
|
||||
&5&o üzerinde yürüme yeteneği
|
||||
&5&o mağara dünyasının zirvesi
|
||||
Ekstra izinler olmadan &5&o.
|
||||
name: Gökyüzü Yürüteç
|
||||
hint: Mağara çatısında yürümeyi sağlar.
|
|
@ -0,0 +1,292 @@
|
|||
###########################################################################################
|
||||
# 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 #
|
||||
###########################################################################################
|
||||
|
||||
caveblock:
|
||||
sign:
|
||||
line0: "&cCaveBlock"
|
||||
line1: "Chào mừng!"
|
||||
line2: "[name]"
|
||||
line3: "Đào đi! &c<3"
|
||||
|
||||
informational:
|
||||
to-nether: "Rất tệ khi vào địa ngục."
|
||||
to-the-end: "Kết thúc rồi."
|
||||
to-normal: "Về hang của bạn."
|
||||
# Override BentoBox default command strings
|
||||
# General strings
|
||||
general:
|
||||
errors:
|
||||
no-island: "&cBạn không có hang!"
|
||||
player-has-island: "&cNgười chơi đã có hang!"
|
||||
player-has-no-island: "&cNgười chơi không có hang!"
|
||||
already-have-island: "&cBạn đã có hang!"
|
||||
no-safe-location-found: "&cKhông thể tìm thấy vị trí an toàn trong hang."
|
||||
not-owner: "&cBạn không phải chủ hang!"
|
||||
commands:
|
||||
# Parameters in <> are required, parameters in [] are optional
|
||||
admin:
|
||||
team:
|
||||
add:
|
||||
name-has-island: "&c[name] đã có hang. Huỷ hoặc xoá nó trước!"
|
||||
success: "&b[name]&a đã được thêm vào hang của &b[owner]&a."
|
||||
kick:
|
||||
success: "&b[name] &ađã bị đuổi từ hang của &b[owner]&a."
|
||||
setowner:
|
||||
description: "chuyển quyền chủ hang cho người chơi"
|
||||
already-owner: "&c[name] đã là chủ hang!"
|
||||
success: "&b[name]&a giờ là chủ hang."
|
||||
range:
|
||||
description: "lệnh độ rộng hang của Admin"
|
||||
display:
|
||||
description: "hiện/ẩn đánh dấu độ rộng hang"
|
||||
hint: |-
|
||||
&cKí tự Rào chặn đỏ &fthể hiện độ rộng vùng bảo vệ của hang.
|
||||
&7Hạt Xám &fthể hiện giới hạn của hang.
|
||||
&aHạt Xanh &fthể hiện vùng bảo vệ mặc định nếu vùng bảo vệ của hang khác mặc định.
|
||||
set:
|
||||
description: "chỉnh vùng bảo vệ hang"
|
||||
success: "&aĐã chỉnh vùng bảo vệ hang thành &b[number]&a."
|
||||
reset:
|
||||
description: "chỉnh vùng bảo vệ hang về mặc định"
|
||||
success: "&aĐã chỉnh vùng bảo vệ hang thành &b[number]&a."
|
||||
register:
|
||||
description: "đăng kí người chơi vào hang không chủ ở vị trí của bạn"
|
||||
registered-island: "&aĐã đăng kí người chơi ở hang [xyz]."
|
||||
already-owned: "&cHang đã có chủ!"
|
||||
no-island-here: "&cKhông có hang ở đây. Xác nhận để tạo."
|
||||
in-deletion: "&cHang đang được xoá. Thử lại sau."
|
||||
cannot-make-island: "&c Hang không thể đặt ở đây. Xem lỗi trên bảng điều khiển."
|
||||
unregister:
|
||||
description: "huỷ quyền chủ hang, nhưng giữ lại các khối trong hang"
|
||||
unregistered-island: "&aĐã huỷ đăng kí người chơi ở hang [xyz]."
|
||||
info:
|
||||
description: "lấy thông về nơi bạn ở hoặc hang của người chơi"
|
||||
no-island: "&cBạn không ở một hang..."
|
||||
title: "========== Thông tin Hang ============"
|
||||
islands-in-trash: "&dNgười chơi có hang trong thùng rác."
|
||||
is-spawn: "Đảo là hang triệu hồi"
|
||||
switchto:
|
||||
description: "chuyển hang của người chơi thành một số trong thùng rác"
|
||||
out-of-range: "&cSố phải từ 1 đến [number]. Dùng &l[label] trash [player] &r&cđể xem số hang"
|
||||
trash:
|
||||
no-unowned-in-trash: "&cKhông có hang không chủ trong thùng rác"
|
||||
no-islands-in-trash: "&cNgười chơi không có hang trong thùng rác"
|
||||
description: "xem hang không chủ hoặc của người chơi trong thùng rác"
|
||||
title: "&d=========== Hang trong Thùng Rác ==========="
|
||||
count: "&l&dHang [number]:"
|
||||
use-switch: "&aDùng &l[label] switchto <player> <number>&r&a để chuyển người chơi vào hang trong thùng rác"
|
||||
emptytrash:
|
||||
description: "Dọn rác cho người chơi, hoặc toàn bộ hang không chủ trong thùng rác"
|
||||
setrange:
|
||||
description: "chỉnh độ rộng hang của người chơi"
|
||||
range-updated: "Đã chỉnh độ rộng của hang thành [number]"
|
||||
tp:
|
||||
description: "dịch chuyển đến hang của người chơi"
|
||||
getrank:
|
||||
description: "xem cấp độ của người chơi trong hang"
|
||||
rank-is: "&aCấp độ là [rank] ở hang của họ."
|
||||
setrank:
|
||||
description: "chỉnh cấp độ của người chơi ở hang của họ"
|
||||
setspawn:
|
||||
description: "chỉnh một hang thành nơi bắt đầu ở thế giới này"
|
||||
already-spawn: "&cHang này đã là nơi bắt đầu!"
|
||||
no-island-here: "&cKhông có hang ở đây."
|
||||
confirmation: "&cBạn có chắc là chọn hang này làm nơi bắt đầu ở thế giới này?"
|
||||
resetflags:
|
||||
description: "Đặt lại cờ của các hang về mặc định trong config.yml"
|
||||
delete:
|
||||
description: "xoá hang của người chơi"
|
||||
cannot-delete-owner: "&cThành viên của hang phải bị đuổi trước khi xoá."
|
||||
deleted-island: "&aĐảo &e[xyz] &ađã được xoá thành công."
|
||||
island:
|
||||
go:
|
||||
description: "dịch chuyển đến hang của bạn"
|
||||
teleport: "&aĐang dịch chuyển đến hang của bạn."
|
||||
help:
|
||||
description: "Lệnh hang chính"
|
||||
create:
|
||||
description: "tạo hang, dùng bản vẽ nếu có (cần quyền)"
|
||||
too-many-islands: "&cQuá nhiều hang ở thế giới này: không đủ khoảng trống cho khu của bạn."
|
||||
unable-create-island: "&cHang của bạn không được tạo, hãy liên hệ quản trị viên."
|
||||
creating-island: "&aĐang tạo hang, chờ một chút..."
|
||||
pick: "&aChọn hang"
|
||||
info:
|
||||
description: "xem thông tin hang của bạn hoặc của người chơi"
|
||||
near:
|
||||
description: "xem tên của hang kế bên bạn"
|
||||
the-following-islands: "&aHang kế bên bạn:"
|
||||
no-neighbors: "&cKhông có hang kế bên bạn!"
|
||||
reset:
|
||||
description: "tạo lại hang và xoá hang cũ"
|
||||
must-remove-members: "&cBạn phải xoá thành viên khỏi hang trước khi xoá (/[label] team kick <player>)."
|
||||
sethome:
|
||||
must-be-on-your-island: "&cBạn phải ở hang của bạn để đặt nhà!"
|
||||
home-set: "&6Nhà của hang đã đặt ở vị trí của bạn."
|
||||
setname:
|
||||
description: "đặt tên cho hang"
|
||||
resetname:
|
||||
description: "đặt lại tên của hang"
|
||||
team:
|
||||
coop:
|
||||
description: "cho người chơi cấp chơi cùng với hang của bạn"
|
||||
uncoop:
|
||||
you-are-no-longer-a-coop-member: '&cBạn không còn chơi cùng với hang của [name].'
|
||||
all-members-logged-off: '&c Người chơi ở hang đã thoát hết nên bạn không còn chơi cùng với hang của [name].'
|
||||
trust:
|
||||
description: "cho người chơi cấp tin tưởng với hang bạn"
|
||||
invite:
|
||||
description: "mời người chơi vào hang của bạn"
|
||||
name-has-invited-you: "&a[name] đã mời bạn vào hang của họ."
|
||||
you-will-lose-your-island: "&cCHÚ Ý! Bạn sẽ mất hang của bạn nếu chấp nhận lời mời"
|
||||
errors:
|
||||
island-is-full: "&cHang đã đầy, bạn không thể mời thêm."
|
||||
accept:
|
||||
you-joined-island: "&aBạn đã vào hang! Dùng /[label] team info để xem thành viên khác."
|
||||
name-joined-your-island: "&a[name] đã vào hang của bạn!"
|
||||
confirmation: |-
|
||||
&cBạn có chắc muón chấp nhận lời mời này?
|
||||
&c&lBạn sẽ &nMẤT&r &c&lhang hiện tại của bạn!
|
||||
reject:
|
||||
you-rejected-invite: "&aBạn đã từ chối lời mời vào hang."
|
||||
name-rejected-your-invite: "&c[name] đã từ chối lời mời của bạn!"
|
||||
cancel:
|
||||
description: "huỷ lời mời đang chờ vào hang của bạn"
|
||||
leave:
|
||||
description: "rời hang của bạn"
|
||||
left-your-island: "&c[name] &cđã rời hang của bạn"
|
||||
kick:
|
||||
description: "xoá thành viên khỏi hang của bạn"
|
||||
owner-kicked: "&cChủ hang đã đuổi bạn!"
|
||||
success: "&b[name] &ađã bị đuổi khỏi hang của bạn."
|
||||
demote:
|
||||
description: "hạ cấp của người chơi trong hang"
|
||||
promote:
|
||||
description: "nâng cấp của người chơi trong hang"
|
||||
setowner:
|
||||
description: "chuyển quyền chủ hang cho người chơi"
|
||||
errors:
|
||||
target-is-not-member: "&cNgười chơi đó không ở trong đội của bạn!"
|
||||
name-is-the-owner: "&a[name] giờ là chủ hang!"
|
||||
you-are-the-owner: "&aBạn giờ là chủ hang!"
|
||||
ban:
|
||||
description: "cấm người chơi khỏi hang của bạn"
|
||||
cannot-ban-more-players: "&cĐã đạt giới hạn cấm, bạn không thể cấm thêm người."
|
||||
player-banned: "&b[name]&c đã bị cấm khỏi hang của bạn."
|
||||
owner-banned-you: "&b[name]&c đã cấm bạn khỏi hang của họ!"
|
||||
you-are-banned: "&bBạn đã bị cấm ở hang này!"
|
||||
unban:
|
||||
description: "bỏ cấm người chơi khỏi hang của bạn"
|
||||
player-unbanned: "&b[name]&a không còn bị cấm khỏi hang của bạn."
|
||||
you-are-unbanned: "&b[name]&a huỷ cấm bạn khỏi hang của họ!"
|
||||
banlist:
|
||||
noone: "&aKhông ai bị cấm ở hang này."
|
||||
settings:
|
||||
description: "xem tuỳ chọn hang"
|
||||
expel:
|
||||
description: "trục xuất người chơi khỏi hang của bạn"
|
||||
not-on-island: "&cNgười chơi đó không ở hang của bạn!"
|
||||
player-expelled-you: "&b[name]&c đã trục xuất bạn khỏi hang của họ!"
|
||||
|
||||
ranks:
|
||||
owner: "Vua Người Lùn"
|
||||
sub-owner: "Hiệp Sĩ Người Lùn"
|
||||
member: "Người Lùn"
|
||||
trusted: "Tin Tưởng"
|
||||
coop: "Chơi Cùng"
|
||||
visitor: "Con Người"
|
||||
banned: "Orc"
|
||||
|
||||
protection:
|
||||
flags:
|
||||
ENDERMAN_GRIEFING:
|
||||
description: |-
|
||||
&aNgười Ender có thể cướp
|
||||
&akhối khỏi hang
|
||||
name: "Trộm bởi Người Ender"
|
||||
ENTER_EXIT_MESSAGES:
|
||||
island: "hang của [name]"
|
||||
GEO_LIMIT_MOBS:
|
||||
description: |-
|
||||
&a Xóa các quái đã rời khỏi
|
||||
&a khu vực bảo vệ trong hang
|
||||
name: "&eGiới hạn quái trong đảo"
|
||||
ISLAND_RESPAWN:
|
||||
description: |-
|
||||
&aNgười chơi hồi sinh
|
||||
&aở hang của họ
|
||||
name: "Hồi sinh tại hang"
|
||||
LIQUIDS_FLOWING_OUT:
|
||||
name: "Chất lỏng tràn ra khỏi hang"
|
||||
description: |-
|
||||
&aBật/Tắt việc chất lỏng có thể
|
||||
&atràn ra khỏi khu vực bảo vệ của hang.
|
||||
LOCK:
|
||||
description: "Bật/Tắt khóa"
|
||||
name: "Khoá đảo"
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE:
|
||||
name: "Sinh quái tự nhiên ngoài hang"
|
||||
description: |-
|
||||
&aBật/Tắt cho phép con vật (động vật và
|
||||
&aquái vật) có thể sinh tự nhiên ngoài
|
||||
&akhu vực bảo vệ của hang.
|
||||
|
||||
&cLưu ý là nó không chặn việc sinh quái
|
||||
&cbằng lồng triệu hồi hoặc trứng.
|
||||
OFFLINE_GROWTH:
|
||||
description: |-
|
||||
&aKhi tắt, cây trồng
|
||||
&asẽ không mọc lớn trong hang
|
||||
&anếu tất cả thành viên đều ngoại tuyến.
|
||||
&aCó thể giúp giảm lag.
|
||||
name: "Mọc cây khi ngoại tuyến"
|
||||
OFFLINE_REDSTONE:
|
||||
description: |-
|
||||
&aKhi tắt, đá đỏ
|
||||
&asẽ không hoạt động trong hang
|
||||
&anếu tất cả thành viên đều ngoại tuyến.
|
||||
&aCó thể giúp giảm lag.
|
||||
&aKhông ảnh hưởng đảo triệu hồi.
|
||||
name: "Đá đỏ khi ngoại tuyến"
|
||||
PISTON_PUSH:
|
||||
description: |-
|
||||
&aCho phép pít tông đẩy
|
||||
&akhối ra khỏi hang
|
||||
name: "Pít tông đẩy khối"
|
||||
REMOVE_MOBS:
|
||||
description: |-
|
||||
&aXoá quái khi dịch
|
||||
&achuyển đến đảo
|
||||
name: "Xoá quái"
|
||||
TREES_GROWING_OUTSIDE_RANGE:
|
||||
name: "Cây mọc ngoài đảo"
|
||||
description: |-
|
||||
&aBật/Tắt việc cây có thể mọc ngoài
|
||||
&akhu vực bảo vệ trong hang.
|
||||
PREVENT_TELEPORT_WHEN_FALLING:
|
||||
name: "Chặn dịch chuyển khi đang rời"
|
||||
description: |-
|
||||
&aChặn người chơi khỏi việc dịch chuyển
|
||||
&avề đảo của họ bằng lệnh khi đang rơi.
|
||||
hint: '&cBạn không thể làm điều đó khi đang rơi.'
|
||||
locked: "&cHang đã bị khoá!"
|
||||
protected: "&cĐã bảo vệ hang: [description]"
|
||||
spawn-protected: "&cĐã bảo vệ nơi bắt đầu: [description]"
|
||||
|
||||
panel:
|
||||
PROTECTION:
|
||||
description: |-
|
||||
&aTuỳ chỉnh bảo vệ
|
||||
&acho hang này
|
||||
SETTING:
|
||||
description: |-
|
||||
&aTuỳ chỉnh tổng quan
|
||||
&acho hang này
|
||||
|
||||
protection:
|
||||
flags:
|
||||
SKY_WALKER_FLAG:
|
||||
description: "&5&oCho phép bật/tắt\n&5&oquyền để đi trên\n&5&ođỉnh của thế giới hang\n&5&omà không cần thêm quyền."
|
||||
name: "Bước Trên Trời Cao"
|
||||
hint: "Cho phép đi trên đỉnh hang."
|
|
@ -0,0 +1,282 @@
|
|||
caveblock:
|
||||
sign:
|
||||
line0: "&c洞穴生存"
|
||||
line1: "欢迎!"
|
||||
line2: "[name]"
|
||||
line3: "开始挖掘吧! &c<3"
|
||||
|
||||
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] &a已被 &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这里还没有 box. 确认以创建一个."
|
||||
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] trash [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] switchto <player> <number>&r&a 将玩家切换到废弃的洞穴中"
|
||||
emptytrash:
|
||||
description: "给玩家清除废弃的洞穴, 或清除所有无主人的废弃的洞穴"
|
||||
setrange:
|
||||
description: "设置玩家洞穴的范围"
|
||||
range-updated: "洞穴范围更新至 [number]"
|
||||
tp:
|
||||
description: "传送到玩家的洞穴"
|
||||
getrank:
|
||||
description: "查看玩家在其洞穴中的地位"
|
||||
rank-is: "&a玩家在其洞穴中的地位是 [rank]."
|
||||
setrank:
|
||||
description: "设置玩家在其洞穴中的地位"
|
||||
setspawn:
|
||||
description: "将洞穴设置为当前世界的主城"
|
||||
already-spawn: "&c此洞穴已经是主城了!"
|
||||
no-island-here: "&c这里还没有洞穴."
|
||||
confirmation: "&c确认要将将洞穴设置为当前世界的主城吗?"
|
||||
resetflags:
|
||||
description: "重置所有洞穴的 flag 值成 config.yml 中的默认值"
|
||||
delete:
|
||||
description: "删除一名玩家的洞穴"
|
||||
cannot-delete-owner: "&c在删除此洞穴之前, 必须移出此洞穴中的所有成员."
|
||||
deleted-island: "&a成功删除位于 &e[xyz] &a处的洞穴."
|
||||
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在您重新开始之前, 您必须移出洞穴中的所有成员 (/island team kick <player>)."
|
||||
sethome:
|
||||
must-be-on-your-island: "&c必须在洞穴中才能设置家的位置!"
|
||||
home-set: "&6洞穴家的位置已设置到您当前位置."
|
||||
setname:
|
||||
description: "设置您洞穴的名称"
|
||||
resetname:
|
||||
description: "重置您洞穴的名称"
|
||||
team:
|
||||
coop:
|
||||
description: "将玩家设置为您洞穴的副 OP"
|
||||
uncoop:
|
||||
you-are-no-longer-a-coop-member: "&c您不再是 [name] 的洞穴的副 OP 了"
|
||||
all-members-logged-off: "&c洞穴的所有玩家都离线了, 因此您不再是 [name] 的洞穴的副 OP 了"
|
||||
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您加入了一个洞穴! 输入 /[label] team info 来查看其他成员."
|
||||
name-joined-your-island: "&a[name] 加入了您的洞穴!"
|
||||
confirmation: |-
|
||||
&c确认要接收此邀请?
|
||||
&c&l您将 &n失去&r &c&l现有的洞穴!
|
||||
reject:
|
||||
you-rejected-invite: "&a您拒绝了加入洞穴的邀请."
|
||||
name-rejected-your-invite: "&c[name] 拒绝了您加入洞穴的邀请!"
|
||||
cancel:
|
||||
description: "取消待接受/拒绝的洞穴加入邀请"
|
||||
leave:
|
||||
description: "退出您的洞穴"
|
||||
left-your-island: "&c[name] &c退出了您的洞穴"
|
||||
kick:
|
||||
description: "从您的洞穴中移出一名玩家"
|
||||
owner-kicked: "&c洞穴的主人移出了您!"
|
||||
success: "&b[name] &a从您的洞穴中被移出."
|
||||
demote:
|
||||
description: "降低洞穴中一名玩家的地位"
|
||||
promote:
|
||||
description: "提升洞穴中一名玩家的地位"
|
||||
setowner:
|
||||
description: "将洞穴转让给一名成员"
|
||||
errors:
|
||||
target-is-not-member: "&c玩家不在您洞穴的队伍中!"
|
||||
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: "&c您被 &b[name]&c 的洞穴请出!"
|
||||
|
||||
ranks:
|
||||
owner: "矮人王"
|
||||
sub-owner: "矮人骑士"
|
||||
member: "小矮人"
|
||||
trusted: "信任者"
|
||||
coop: "副 OP"
|
||||
visitor: "人类"
|
||||
banned: "被禁止玩家"
|
||||
|
||||
protection:
|
||||
flags:
|
||||
ENDERMAN_GRIEFING:
|
||||
description: |-
|
||||
&a末影人可以
|
||||
&a移动洞穴中的方块
|
||||
name: "末影人破坏"
|
||||
ENTER_EXIT_MESSAGES:
|
||||
island: "[name] 的洞穴"
|
||||
GEO_LIMIT_MOBS:
|
||||
description: |-
|
||||
&a移除在洞穴保护
|
||||
&a范围外的生物
|
||||
name: "&e将生物限制在洞穴内"
|
||||
ISLAND_RESPAWN:
|
||||
description: |-
|
||||
&a玩家在他们的
|
||||
&a洞穴中重生
|
||||
name: "洞穴中重生"
|
||||
LIQUIDS_FLOWING_OUT:
|
||||
name: "流体流出洞穴"
|
||||
description: |-
|
||||
&a切换流体是否能
|
||||
&a流出洞穴保护范围.
|
||||
LOCK:
|
||||
description: "切换是否禁止访客访问"
|
||||
name: "锁定洞穴"
|
||||
NATURAL_SPAWNING_OUTSIDE_RANGE:
|
||||
name: "常规生物在保护范围外生成"
|
||||
description: |-
|
||||
&a切换常规生物 (动物和
|
||||
&a怪物) 是否能在洞穴保护
|
||||
&a范围外生成.
|
||||
|
||||
&c注意, 此操作不能防止
|
||||
&c洞穴保护范围外的
|
||||
&c刷怪笼或刷怪蛋生成生物.
|
||||
OFFLINE_GROWTH:
|
||||
description: |-
|
||||
&a如果禁用, 当洞穴中的所有成员
|
||||
&a都离线时, 植物将停止生长.
|
||||
&a或许能减少服务器卡顿.
|
||||
name: "离线生长"
|
||||
OFFLINE_REDSTONE:
|
||||
description: |-
|
||||
&a如果禁用, 当洞穴中的所有成员
|
||||
&a都离线时, 红石将停止运作.
|
||||
&a或许能减少服务器卡顿.
|
||||
name: "离线红石"
|
||||
PISTON_PUSH:
|
||||
description: |-
|
||||
&a允许活塞推动
|
||||
&a洞穴外的方块
|
||||
name: "活塞推动"
|
||||
REMOVE_MOBS:
|
||||
description: |-
|
||||
&a传送到洞穴中时,
|
||||
&a移除洞穴中的所有怪物
|
||||
name: "Remove monsters"
|
||||
TREES_GROWING_OUTSIDE_RANGE:
|
||||
name: "树木在洞穴保护范围外生长"
|
||||
description: |-
|
||||
&a切换树木是否能长到
|
||||
&a洞穴保护范围之外.
|
||||
PREVENT_TELEPORT_WHEN_FALLING:
|
||||
name: "掉落时禁止传送"
|
||||
description: |-
|
||||
&a当玩家正在掉落时
|
||||
&a禁止他们通过指令进行传送.
|
||||
hint: "&c在掉落时不能传送."
|
||||
locked: "&c该洞穴已禁止访客访问!"
|
||||
protected: "&c没有权限: [description]"
|
||||
spawn-protected: "&c没有权限: [description]"
|
||||
|
||||
panel:
|
||||
PROTECTION:
|
||||
description: |-
|
||||
&a洞穴的
|
||||
&a保护设置
|
||||
SETTING:
|
||||
description: |-
|
||||
&a洞穴的
|
||||
&a一般设置
|
||||
|
||||
protection:
|
||||
flags:
|
||||
SKY_WALKER_FLAG:
|
||||
description: "&5&o这将允许/禁止\n&5&o没有额外权限的玩家\n&5&o在洞穴世界的顶部\n&5&o行走."
|
||||
name: "天空行者"
|
||||
hint: "允许在洞穴的天花板上行走."
|
|
@ -0,0 +1,9 @@
|
|||
name: BentoBox-CaveBlock
|
||||
main: world.bentobox.caveblock.CaveBlockPladdon
|
||||
version: ${project.version}${build.number}
|
||||
api-version: "1.19"
|
||||
|
||||
authors: [tastybento, BONNe]
|
||||
contributors: ["The BentoBoxWorld Community"]
|
||||
website: https://bentobox.world
|
||||
description: ${project.description}
|
Loading…
Reference in New Issue