9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-28 11:29:19 +00:00
This commit is contained in:
XiaoMoMi
2024-08-31 22:57:45 +08:00
parent 3cbd1f65a6
commit bbde4ebd47
475 changed files with 24733 additions and 24341 deletions

View File

@@ -0,0 +1,38 @@
#
# Don't change this
#
config-version: "${config_version}"
#
# For safety reasons, editing this file requires a restart to apply
#
# A command to reload the plugin
# Usage: [COMMAND]
reload:
enable: true
permission: customcrops.command.reload
usage:
- /customcrops reload
- /ccrops reload
get_season:
enable: true
permission: customcrops.command.get_season
usage:
- /customcrops season get
- /ccrops season get
set_season:
enable: true
permission: customcrops.command.set_season
usage:
- /customcrops season set
- /ccrops season set
debug_data:
enable: true
permission: customcrops.command.debug
usage:
- /customcrops debug data
- /ccrops debug data

View File

@@ -1,30 +1,26 @@
# Don't change
config-version: '37'
# Debug
debug: false
# BStats
metrics: true
# Check updates
update-checker: true
# Language
# https://github.com/Xiao-MoMi/Custom-Crops/tree/main/plugin/src/main/resources/messages
lang: en
# Force locale, for instance zh_cn
force-locale: ''
# World settings
worlds:
# This is designed for servers that using an independent folder for worlds
# Especially for realm systems
# Some servers use separate folders to store player worlds, and these world directories
# are often not located in the server's root directory. This option allows users to read
# world data from a custom directory. It is only applicable to Bukkit worlds.
absolute-world-folder-path: ''
# A list of worlds that would decide where the plugin mechanisms take effect
# Mode: whitelist/blacklist/regex
mode: blacklist
list:
- blacklist_world
- blacklist_world # A non-existent world
settings:
# Default settings that apply to all worlds
_DEFAULT_:
# Whether to enable the plugin's pre-made system
# Disabling this option will make all mechanisms stop counting ticks unless you have full control over it using the API.
@@ -37,10 +33,9 @@ worlds:
auto-alternation: true
# Game days of each season
duration: 28
# Random tick speed
# It's different from the vanilla RandomTickSpeed.
# CustomCrops' random tick speed has a larger base value
# So we can have more precise control on crops' growth speed
# "Random tick" here refers to the process of randomly selecting n blocks within a 16x16x16 section every second to perform a tick while Minecraft do that every tick.
# Therefore, the random tick of CustomCrops has little impact on the server, and it is performed on multiple threads.
random-tick-speed: 20
# The smallest tick unit in seconds used in scheduled tick mode
# 300s means that a crop would be certainly ticked once in 300s
@@ -66,6 +61,7 @@ worlds:
# Scheduler mode provides more reliable growth schedule management
# which allows crops to grow at almost the same speed
mode: RANDOM_TICK
# The tick-interval determines how many times a block is ticked before its tick logic is actually executed.
tick-interval: 1
# Limit the max amount of crops in one chunk (-1 = no limit)
max-per-chunk: -1
@@ -74,14 +70,12 @@ worlds:
# RANDOM_TICK / SCHEDULED_TICK
mode: SCHEDULED_TICK
tick-interval: 3
# Limit the max amount of pots in one chunk (-1 = no limit)
max-per-chunk: -1
# Settings for sprinklers
sprinkler:
# RANDOM_TICK / SCHEDULED_TICK
mode: SCHEDULED_TICK
tick-interval: 2
# Limit the max amount of sprinklers in one chunk (-1 = no limit)
max-per-chunk: -1
# You can override the default settings for worlds here
_WORLDS_:
@@ -89,7 +83,6 @@ worlds:
enable: false
world_the_end:
enable: false
# Mechanics settings
mechanics:
# You can create more ranks by adding more "/" for instance x/x/x/x/x
@@ -97,29 +90,26 @@ mechanics:
# 17/2/1 = 85%/10%/5%
# 85% = 17/(17+2+1) * 100%
default-quality-ratio: 17/2/1
# Scarecrow prevents crops from being attacked by crows
scarecrow:
enable: true
id: '{0}scarecrow'
type: ITEM_FRAME
range: 7
# If this option is enabled, the range above would not longer take effect
# This option would make the scarecrow protect all the crops in a chunk instead of crops in certain range
# If this option is enabled, the range would no longer take effect
# This option would make it protect all the crops in the same chunk
protect-chunk: false
# Greenhouse glass prevents crops from withering from season changing
greenhouse:
enable: true
# You can use a list of ids here, vanilla blocks are supported too
id: '{0}greenhouse_glass'
type: CHORUS
range: 5
# Sync seasons
sync-season:
enable: false
reference: world
# Vanilla farmland settings
vanilla-farmland:
# Disable vanilla farmland moisture mechanics
@@ -127,29 +117,19 @@ mechanics:
disable-moisture-mechanic: false
# Prevent entities from trampling the farmland
prevent-trampling: false
other-settings:
# It's recommended to use MiniMessage format. If you insist on using legacy color code "&", enable the support below.
# Disable this would improve performance
legacy-color-code-support: true
# Requires PlaceholderAPI to work
placeholder-register:
'{skill-level}': '%levelplugin_farming%'
# Thread pool settings
thread-pool-settings:
corePoolSize: 10
maximumPoolSize: 10
keepAliveTime: 30
# Using items from other plugins
item-detection-order: []
# Whether to protect the original lore of the item
# This uses the scoreboard component to identify the plugin's lore,
# which may conflict with some plugins that still use SpigotAPI#ItemMeta.
protect-original-lore: false
# Should the plugin try to convert worlds from 3.3 to 3.4 when WorldLoadEvent is triggered
convert-on-world-load: false
# Whether to check if the block/furniture corresponds with the one in CustomCrops data
# You can enable this if you are using Oraxen as its API is more reliable
double-check: false

View File

@@ -215,14 +215,17 @@ tomato:
crop: tomato
# Custom grow conditions
grow-conditions:
season_condition:
type: suitable_season
value:
- Spring
- Autumn
water_condition:
type: water_more_than
value: 0
default:
point: 1
conditions:
season_condition:
type: suitable_season
value:
- Spring
- Autumn
water_condition:
type: water_more_than
value: 0
# Custom death conditions
death-conditions:
no_water:

View File

@@ -13,20 +13,19 @@ default:
absorb-nearby-water: false
# Set unique looks for pots with different fertilizer statuses
fertilized-pots:
enable: false
quality:
dry: {0}dry_pot
wet: {0}wet_pot
yield-increase:
yield_increase:
dry: {0}dry_pot
wet: {0}wet_pot
variation:
dry: {0}dry_pot
wet: {0}wet_pot
soil-retain:
soil_retain:
dry: {0}dry_pot
wet: {0}wet_pot
speed-grow:
speed_grow:
dry: {0}dry_pot
wet: {0}wet_pot
# Methods to fill the watering can

View File

@@ -1,8 +0,0 @@
messages:
prefix: '<gradient:#ff206c:#fdee55>[CustomCrops]</gradient> '
reload: '<white>Reloaded! Took <green>{time}ms.</green></white>'
spring: 'Spring'
summer: 'Summer'
autumn: 'Autumn'
winter: 'Winter'
no-season: 'Season Disabled'

View File

@@ -1,8 +0,0 @@
messages:
prefix: '<gradient:#ff206c:#fdee55>[CustomCrops]</gradient> '
reload: '<white>¡Recargado! Tardó <green>{time}ms.'
spring: 'Primavera'
summer: 'Verano'
autumn: 'Otoño'
winter: 'Invierno'
no-season: 'LAS ESTACIONES ESTÁN DESACTIVADAS EN ESTE MUNDO'

View File

@@ -1,8 +0,0 @@
messages:
prefix: '<gradient:#ff206c:#fdee55>[CustomCrops]</gradient> '
reload: '<white>Rechargé ! A pris <green>{time}ms.'
spring: 'Printemps'
summer: 'Été'
autumn: 'Automne'
winter: 'Hiver'
no-season: 'SAISON DÉSACTIVÉE DANS CE MONDE'

View File

@@ -1,8 +0,0 @@
messages:
prefix: '<gradient:#ff206c:#fdee55>[CustomCrops]</gradient> '
reload: '<white>Recarregado! Levou <green>{time}ms.</green></white>'
spring: 'Primavera'
summer: 'Verão'
autumn: 'Outono'
winter: 'Inverno'
no-season: 'Estação Desativada'

View File

@@ -1,8 +0,0 @@
messages:
prefix: '<gradient:#ff206c:#fdee55>[CustomCrops]</gradient> '
reload: '<white>Перезагружено! Заняло <green>{time}мс.'
spring: 'Весна'
summer: 'Лето'
autumn: 'Осень'
winter: 'Зима'
no-season: 'СЕЗОНЫ ОТКЛЮЧЕНЫ В ЭТОМ МИРЕ'

View File

@@ -1,8 +0,0 @@
messages:
prefix: '<gradient:#ff206c:#fdee55>[CustomCrops]</gradient> '
reload: '<white>重载完成! 耗时 <green>{time}ms.</green></white>'
spring: '春季'
summer: '夏季'
autumn: '秋季'
winter: '冬季'
no-season: '未启用季节'

View File

@@ -1,12 +1,10 @@
name: CustomCrops
version: '${version}'
main: net.momirealms.customcrops.CustomCropsPluginImpl
version: '${project_version}'
main: net.momirealms.customcrops.bukkit.BukkitBootstrap
api-version: 1.17
load: POSTWORLD
authors: [ XiaoMoMi ]
folia-supported: true
depend:
- ProtocolLib
softdepend:
- Vault
- ItemsAdder
@@ -18,7 +16,7 @@ softdepend:
- RealisticSeasons
- AdvancedSeasons
- SlimeWorldManager
- SlimeWorldPlugin
- MythicMobs
- HuskClaims
- HuskTowns
- Residence
@@ -29,7 +27,6 @@ softdepend:
- GriefPrevention
- BentoBox
- IridiumSkyblock
- MythicMobs
- KingdomsX
- Landlord
- Lands

View File

@@ -0,0 +1,46 @@
# Don"t change this
config-version: "37"
exception.invalid_syntax: "<red>Invalid syntax. Correct syntax: <white><arg:0></white></red>"
exception.invalid_argument: "<red>Invalid argument. Reason: <white><arg:0></white></red>"
exception.invalid_sender: "<red><arg:0> is not allowed to execute that command. Must be of type <arg:1></red>"
exception.unexpected: "<red>An internal error occurred while attempting to perform this command</red>"
exception.no_permission: "<red>I'm sorry, but you do not have permission to perform this command</red>"
exception.no_such_command: "Unknown command."
argument.entity.notfound.player: "<red><lang:argument.entity.notfound.player></red>"
argument.entity.notfound.entity: "<red><lang:argument.entity.notfound.entity></red>"
argument.parse.failure.time: "<red>'<arg:0>' is not a valid time format</red>"
argument.parse.failure.material: "<red>'<arg:0>' is not a valid material name</red>"
argument.parse.failure.enchantment: "<red>'<arg:0>' is not a valid enchantment</red>"
argument.parse.failure.offlineplayer: "<red>No player found for input '<arg:0>'</red>"
argument.parse.failure.player: "<red>No player found for input '<arg:0>'</red>"
argument.parse.failure.world: "<red>'<arg:0>' is not a valid Minecraft world</red>"
argument.parse.failure.location.invalid_format: "<red>'<arg:0>' is not a valid location. Required format is '<arg:1> <arg:2> <arg:3></red>"
argument.parse.failure.location.mixed_local_absolute: "<red>Cannot mix local and absolute coordinates. (either all coordinates use '^' or none do)</red>"
argument.parse.failure.namespacedkey.namespace: "<red>Invalid namespace '<arg:0>'. Must be [a-z0-9._-]</red>"
argument.parse.failure.namespacedkey.key: "<red>Invalid key '<arg:0>'. Must be [a-z0-9/._-]</red>"
argument.parse.failure.namespacedkey.need_namespace: "<red>Invalid input '<arg:0>', requires an explicit namespace</red>"
argument.parse.failure.boolean: "<red>Could not parse boolean from '<arg:0>'</red>"
argument.parse.failure.number: "<red>'<arg:0>' is not a valid number in the range <arg:1> to <arg:2></red>"
argument.parse.failure.char: "<red>'<arg:0>' is not a valid character</red>"
argument.parse.failure.string: "<red>'<arg:0>' is not a valid string of type <arg:1></red>"
argument.parse.failure.uuid: "<red>'<arg:0>' is not a valid UUID</red>"
argument.parse.failure.enum: "<red>'<arg:0>' is not one of the following: <arg:1></red>"
argument.parse.failure.regex: "<red>'<arg:0>' does not match '<arg:1>'</red>"
argument.parse.failure.flag.unknown: "<red>Unknown flag '<arg:0>'</red>"
argument.parse.failure.flag.duplicate_flag: "<red>Duplicate flag '<arg:0>'</red>"
argument.parse.failure.flag.no_flag_started: "<red>No flag started. Don't know what to do with '<arg:0>'</red>"
argument.parse.failure.flag.missing_argument: "<red>Missing argument for '<arg:0>'</red>"
argument.parse.failure.flag.no_permission: "<red>You don't have permission to use '<arg:0>'</red>"
argument.parse.failure.color: "<red>'<arg:0>' is not a valid color</red>"
argument.parse.failure.duration: "<red>'<arg:0>' is not a duration format</red>"
argument.parse.failure.aggregate.missing: "<red>Missing component '<arg:0>'</red>"
argument.parse.failure.aggregate.failure: "<red>Invalid component '<arg:0>': <arg:1></red>"
argument.parse.failure.either: "<red>Could not resolve <arg:1> or <arg:2> from '<arg:0>'</red>"
argument.parse.failure.namedtextcolor: "<red>'<arg:0>' is not a named text color</red>"
command.reload.success: "<white>Reloaded. Took <green><arg:0></green> ms.</white>"
season.spring: "Spring"
season.summer: "Summer"
season.autumn: "Autumn"
season.winter: "Winter"
season.disable: "Disable"

View File

@@ -0,0 +1,46 @@
# 别动这个
config-version: "37"
exception.invalid_syntax: "<red>无效语法. 正确语法:<white><arg:0></white></red>"
exception.invalid_argument: "<red>无效参数. 原因:<white><arg:0></white></red>"
exception.invalid_sender: "<red><arg:0> 不允许执行该命令. 执行者必须是 <arg:1></red>"
exception.unexpected: "<red>执行该命令时发生内部错误</red>"
exception.no_permission: "<red>抱歉, 您没有权限执行该命令</red>"
exception.no_such_command: "未知命令"
argument.entity.notfound.player: "<red>找不到玩家 '<arg:0>'</red>"
argument.entity.notfound.entity: "<red>找不到实体 '<arg:0>'</red>"
argument.parse.failure.time: "<red>'<arg:0>' 不是有效的时间格式</red>"
argument.parse.failure.material: "<red>'<arg:0>' 不是有效的材料</red>"
argument.parse.failure.enchantment: "<red>'<arg:0>' 不是有效的魔咒</red>"
argument.parse.failure.offlineplayer: "<red>输入的玩家 '<arg:0>' 已离线</red>"
argument.parse.failure.player: "<red>找不到输入的玩家 '<arg:0>'</red>"
argument.parse.failure.world: "<red>'<arg:0>' 不是有效的 Minecraft 世界名称</red>"
argument.parse.failure.location.invalid_format: "<red>'<arg:0>' 不是有效的位置格式.必须格式为 '<arg:1> <arg:2> <arg:3>'</red>"
argument.parse.failure.location.mixed_local_absolute: "<red>不能混用相对和绝对坐标.坐标要么全部使用 '^',要么全部不用</red>"
argument.parse.failure.namespacedkey.namespace: "<red>无效的命名空间 '<arg:0>'.必须为 [a-z0-9._-]</red>"
argument.parse.failure.namespacedkey.key: "<red>无效的键 '<arg:0>'.必须为 [a-z0-9/._-]</red>"
argument.parse.failure.namespacedkey.need_namespace: "<red>无效的输入 '<arg:0>', 需要显式指定命名空间</red>"
argument.parse.failure.boolean: "<red>无法解析布尔值 '<arg:0>'</red>"
argument.parse.failure.number: "<red>'<arg:0>' 不是从 <arg:1> 到 <arg:2> 范围内的有效数字</red>"
argument.parse.failure.char: "<red>'<arg:0>' 不是有效的字符</red>"
argument.parse.failure.string: "<red>'<arg:0>' 不是类型为 <arg:1> 的有效字符串</red>"
argument.parse.failure.uuid: "<red>'<arg:0>' 不是有效的 UUID</red>"
argument.parse.failure.enum: "<red>'<arg:0>' 不是以下任何一种情况之一: <arg:1></red>"
argument.parse.failure.regex: "<red>'<arg:0>' 不匹配 '<arg:1>'</red>"
argument.parse.failure.flag.unknown: "<red>未知标志 '<arg:0>'</red>"
argument.parse.failure.flag.duplicate_flag: "<red>重复的标志 '<arg:0>'</red>"
argument.parse.failure.flag.no_flag_started: "<red>没有开始标志. 不知道如何处理 '<arg:0>'</red>"
argument.parse.failure.flag.missing_argument: "<red>缺少 '<arg:0>' 参数</red>"
argument.parse.failure.flag.no_permission: "<red>您没有权限使用 '<arg:0>'</red>"
argument.parse.failure.color: "<red>'<arg:0>' 不是有效的颜色</red>"
argument.parse.failure.duration: "<red>'<arg:0>' 不是有效的持续时间格式</red>"
argument.parse.failure.aggregate.missing: "<red>缺少组件 '<arg:0>'</red>"
argument.parse.failure.aggregate.failure: "<red>无效的组件 '<arg:0>': <arg:1></red>"
argument.parse.failure.either: "<red>无法从 '<arg:0>' 解析 <arg:1> 或 <arg:2></red>"
argument.parse.failure.namedtextcolor: "<red>'<arg:0>' 不是颜色代码</red>"
command.reload.success: "<white>重新加载完成.耗时 <green><arg:0></green> 毫秒</white><newline><green><click:open_url:https://github.com/jhqwqmc>译者jhqwqmc</click></green>"
season.spring: "春"
season.summer: "夏"
season.autumn: "秋"
season.winter: "冬"
season.disable: "未启用"