' +
'
Attention
' +
@@ -1173,14 +1110,12 @@ const config: ConfigRoot = {
"cache": {
"cache-player-profile-result": {
default: true,
- desc:
- "Whether to cache the player profile result when they joined server.
" +
+ desc: "Whether to cache the player profile result when they joined server.
" +
"It's useful if Mojang's authentication server is down."
},
"cache-player-profile-result-timeout": {
default: 1440,
- desc:
- "The timeout of the player profile cache.
" +
+ desc: "The timeout of the player profile cache.
" +
"(Unit: minute)
" +
"If the given timeout is exceeded, it will send another request to Mojang's authentication server to get profile data on player's next join.
"
}
diff --git a/pages/docs/config/data/leaf-global-1-21-4.ts b/pages/docs/config/data/leaf-global-1-21-4.ts
index e8b783b..4c5a28e 100644
--- a/pages/docs/config/data/leaf-global-1-21-4.ts
+++ b/pages/docs/config/data/leaf-global-1-21-4.ts
@@ -7,13 +7,11 @@ const config: ConfigRoot = {
},
"async": {
- __desc__:
- "This section contains asynchronous features intended to reduce the load on the main thread (Server Thread) by processing tasks asynchronously.",
"parallel-world-tracking": {
+ __desc__: "This section contains asynchronous features intended to reduce the load on the main thread (Server Thread) by processing tasks asynchronously.",
"enabled": {
default: false,
- desc:
- "Whether parallel processing different worlds in separate threads, which can improve performance on multi-core system.
" +
+ desc: "Whether parallel processing different worlds in separate threads, which can improve performance on multi-core system.
" +
"
" +
"Parallel World Ticking, also called \"PWT\", is a concept created by [SparklyPaper](https://github.com/SparklyPower/SparklyPaper), by ticking each world in a separate thread, to reduce and split the work load in originally single thread for all worlds.
" +
"In this PWT implementation, each world will wait until last world tick finished, read more in SparklyPaper's explanation [PARALLEL_WORLD_TICKING.md](https://github.com/SparklyPower/SparklyPaper/blob/13aff425238ea322658de0d9f4f7bd906bd9f431/docs/PARALLEL_WORLD_TICKING.md).
" +
@@ -34,34 +32,29 @@ const config: ConfigRoot = {
},
"threads": {
default: 8,
- desc:
- "Number of threads dedicated to parallel world ticking.\n\n" +
+ desc: "Number of threads dedicated to parallel world ticking.\n\n" +
"Consider setting based on amount of worlds in the server."
},
"log-container-creation-stacktraces": {
default: false,
- desc:
- "Log stacktraces when containers (like Tile Entities or Entities) are created during parallel ticking.\n\n" +
+ desc: "Log stacktraces when containers (like Tile Entities or Entities) are created during parallel ticking.\n\n" +
"Useful for debugging potential concurrency issues."
},
"disable-hard-throw": {
default: false,
- desc:
- "Disable hard throws (which usually stop the server) related to parallel ticking errors.\n\n" +
+ desc: "Disable hard throws (which usually stop the server) related to parallel ticking errors.\n\n" +
"⚠️ **Might mask underlying issues but could prevent crashes in unstable experimental phases. Use with caution.**"
},
"run-async-tasks-sync": {
default: false,
- desc:
- "Run asynchronous tasks synchronously within the parallel ticking system.\n\n" +
+ desc: "Run asynchronous tasks synchronously within the parallel ticking system.\n\n" +
"Might be needed for compatibility with certain plugins but largely negates the performance benefits of parallel ticking."
}
},
"async-entity-tracker": {
"enabled": {
default: false,
- desc:
- "Make entity tracking asynchronous, can improve performance significantly, " +
+ desc: "Make entity tracking asynchronous, can improve performance significantly, " +
"especially in situations with massive numbers of entities in a small area.\n\n" +
"⚡ **Recommended value:** `true`\n\n" +
"📝 **Note:** If you installed plugins like Citizens, which uses real, player-type " +
@@ -69,8 +62,7 @@ const config: ConfigRoot = {
},
"compat-mode": {
default: false,
- desc:
- "Enable compatibility mode for plugins like Citizens or other NPC plugins that use real, player-type entities.\n\n" +
+ desc: "Enable compatibility mode for plugins like Citizens or other NPC plugins that use real, player-type entities.\n\n" +
"If `true`, visibility issues where player-type NPCs might disappear sometimes can be fixed.\n\n" +
"You should enable `compat-mode` ONLY IF you have installed Citizens or similar real-entity NPC " +
"plugins and are experiencing issues.\n\n" +
@@ -80,21 +72,18 @@ const config: ConfigRoot = {
},
"max-threads": {
default: 0,
- desc:
- "Maximum number of threads for the async entity tracker to use.\n\n" +
+ desc: "Maximum number of threads for the async entity tracker to use.\n\n" +
"If the value is set to `0`, it automatically uses 1/4 of the number of CPU cores (minimum 1).\n\n" +
"⚡ **Recommended value:** 1/2 of CPU cores (or adjust based on server load and core count)"
},
"keepalive": {
default: 60,
- desc:
- "Thread keepalive time. Threads with no tasks will be terminated if " +
+ desc: "Thread keepalive time. Threads with no tasks will be terminated if " +
"they remain idle for longer than this duration.\n\n 📏 **Unit:** seconds."
},
"queue-size": {
default: 0,
- desc:
- "Maximum size of the queue for pending entity tracking tasks.\n\n" +
+ desc: "Maximum size of the queue for pending entity tracking tasks.\n\n" +
"If set to `0`, the queue size is dynamically calculated as `max-threads * 384`.\n\n" +
"A limit might prevent excessive memory usage under extreme load but could potentially " +
"lead to tasks being dropped or delayed depending on the rejection policy " +
@@ -104,8 +93,7 @@ const config: ConfigRoot = {
"async-target-finding": {
"enabled": {
default: false,
- desc:
- "**Experimental feature**\n\n Moves the expensive entity target search calculations " +
+ desc: "**Experimental feature**\n\n Moves the expensive entity target search calculations " +
"(finding nearby entities to attack or interact with) to a background thread while keeping " +
"the actual entity validation on the main thread.\n\n" +
"Can improve performance by reducing main thread load from AI calculations.\n\n" +
@@ -115,8 +103,7 @@ const config: ConfigRoot = {
"async-playerdata-save": {
"enabled": {
default: false,
- desc:
- "**Experimental feature**\n\n Make PlayerData saving asynchronous.\n\n" +
+ desc: "**Experimental feature**\n\n Make PlayerData saving asynchronous.\n\n" +
"⚠️ **Warning: May cause data loss in some circumstances (e.g., server crashes " +
"during the save operation)! Use with extreme caution and ensure robust backups.**"
}
@@ -128,27 +115,23 @@ const config: ConfigRoot = {
},
"max-threads": {
default: 0,
- desc:
- "Maximum number of threads for async entity pathfinding to use.\n\n" +
+ desc: "Maximum number of threads for async entity pathfinding to use.\n\n" +
"If the value is set to `0`, it automatically uses 1/4 of the number of CPU cores (minimum 1).\n\n" +
"⚡ **Recommended value:** 1/3 of CPU cores (or adjust based on server load)"
},
"keepalive": {
default: 60,
- desc:
- "Thread keepalive time. Threads with no tasks will be terminated if they remain idle " +
+ desc: "Thread keepalive time. Threads with no tasks will be terminated if they remain idle " +
"longer than this duration.\n\n 📏 **Unit:** seconds."
},
"queue-size": {
default: 0,
- desc:
- "Maximum size of the queue for pending pathfinding tasks.\n\n" +
+ desc: "Maximum size of the queue for pending pathfinding tasks.\n\n" +
"If set to `0`, the queue size is dynamically calculated as `max-threads * 256`."
},
"reject-policy": {
- default: "FLUSH_ALL",
- desc:
- "The policy to use when the pathfinding task queue is full (only relevant if `queue-size` is > 0) and a new task is submitted.\n\n" +
+ default: "CALLER_RUNS",
+ desc: "The policy to use when the pathfinding task queue is full (only relevant if `queue-size` is > 0) and a new task is submitted.\n\n" +
"- `FLUSH_ALL`: All pending tasks in the queue are immediately run on the main server thread.\n" +
"- `CALLER_RUNS`: The newly submitted task (that couldn't fit in the queue) is run on the main server thread."
}
@@ -156,8 +139,7 @@ const config: ConfigRoot = {
"async-mob-spawning": {
"enabled": {
default: true,
- desc:
- "Whether asynchronous mob spawning calculations should be enabled.\n\n" +
+ desc: "Whether asynchronous mob spawning calculations should be enabled.\n\n" +
"On servers with many entities, this can improve performance by offloading some expensive " +
"calculations required for mob spawning to other threads. You must have Paper's `per-player-mob-spawns` " +
"config set to `true` in `paper-world-defaults.yml` for this to work effectively.\n\n" +
@@ -169,8 +151,7 @@ const config: ConfigRoot = {
"async-locator": {
"enabled": {
default: false,
- desc:
- "Whether asynchronous structure locating should be enabled.\n\n" +
+ desc: "Whether asynchronous structure locating should be enabled.\n\n" +
"This offloads potentially slow structure searches (like finding strongholds or monuments) to other threads.\n\n" +
"Currently available for:\n\n" +
"- `/locate` command\n" +
@@ -180,43 +161,29 @@ const config: ConfigRoot = {
},
"threads": {
default: 0,
- desc:
- "Maximum number of threads for the async locator to use.\n\n" +
+ desc: "Maximum number of threads for the async locator to use.\n\n" +
"If a value ≤ `0` is given, it automatically uses 1 thread.\n\n" +
"⚡ **Recommended value:** `1` or `2` (usually sufficient as these lookups aren't constant)"
},
"keepalive": {
default: 60,
- desc:
- "Thread keepalive time. Threads with no tasks will be terminated if " +
+ desc: "Thread keepalive time. Threads with no tasks will be terminated if " +
"they remain idle longer than this duration.\n\n 📏 **Unit:** seconds."
}
},
"async-chunk-send": {
"enabled": {
default: false,
- desc:
- "Makes chunk packet preparation and sending asynchronous.\n\n" +
+ desc: "Makes chunk packet preparation and sending asynchronous.\n\n" +
"This can significantly reduce main thread load, especially when many players " +
"are loading chunks simultaneously (e.g., joining, teleporting, flying fast).\n\n" +
"⚡ **Recommended value:** `true`"
}
- },
- "async-block-finding": {
- "enabled": {
- default: false,
- desc:
- "Moves expensive block search calculations (e.g., used by some commands or AI behaviors) " +
- "to a background thread while keeping the actual block validation on the main thread.\n\n" +
- "Can improve performance by reducing main thread load during these searches.\n\n" +
- "⚡ **Recommended value:** `true`"
- }
}
},
"performance": {
- __desc__:
- "This section contains performance tuning intended to reduce unnecessary calculations or use more efficient methods to optimize the server.",
+ __desc__: "This section contains performance tuning intended to reduce unnecessary calculations or use more efficient methods to optimize the server.",
"use-virtual-thread-for-user-authenticator": {
default: true,
desc: "Whether to use the [Virtual Thread](https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html) introduced in JDK 21 for the User Authenticator service, which handles premium player join verification.
" +
@@ -344,8 +311,7 @@ const config: ConfigRoot = {
"faster-structure-gen-future-sequencing": {
"enabled": {
default: true,
- desc:
- "Uses a potentially faster method for sequencing asynchronous tasks " +
+ desc: "Uses a potentially faster method for sequencing asynchronous tasks " +
"related to structure generation.\n\n" +
"⚠️ **May cause inconsistent order of future composition tasks in rare " +
"edge cases, potentially affecting structure generation results subtly.**\n\n" +
@@ -367,8 +333,7 @@ const config: ConfigRoot = {
"faster-random-generator": {
"enabled": {
default: false,
- desc:
- "Use faster random number generator implementations provided by Java 17+.\n\n" +
+ desc: "Use faster random number generator implementations provided by Java 17+.\n\n" +
"Random is used almost everywhere in Minecraft, enabling this can provide a decent " +
"performance improvement.\n\n" +
"📝 **Note:** Requires a JVM that supports `java.util.random.RandomGenerator` and " +
@@ -377,8 +342,7 @@ const config: ConfigRoot = {
},
"random-generator": {
default: "Xoroshiro128PlusPlus",
- desc:
- "Specifies which random generator algorithm to use when `faster-random-generator.enabled` is true.\n\n" +
+ desc: "Specifies which random generator algorithm to use when `faster-random-generator.enabled` is true.\n\n" +
"See [JEP 356](https://openjdk.org/jeps/356) or [Java RNG Info](https://www.baeldung.com/java-17-random-number-generators#1-api-design-1) " +
"for details on Java's available generators. `Xoroshiro128PlusPlus` generally offers a good balance of speed " +
"and statistical quality.\n\n" +
@@ -386,8 +350,7 @@ const config: ConfigRoot = {
},
"enable-for-worldgen": {
default: false,
- desc:
- "Enable the faster random generator for world generation processes.\n\n" +
+ desc: "Enable the faster random generator for world generation processes.\n\n" +
"⚠️ **WARNING: This WILL change world generation results! Use only for new worlds " +
"or if vanilla seed parity is not required. Structures, ore veins, etc., will be " +
"different from vanilla generation with the same seed.**\n\n" +
@@ -395,14 +358,12 @@ const config: ConfigRoot = {
},
"warn-for-slime-chunk": {
default: true,
- desc:
- "Log a warning on startup if slime chunk calculations are using the faster random generator " +
+ desc: "Log a warning on startup if slime chunk calculations are using the faster random generator " +
"instead of the legacy one, as this will change slime chunk locations."
},
"use-legacy-random-for-slime-chunk": {
default: false,
- desc:
- "Force the use of the legacy random source (`java.util.Random`) specifically " +
+ desc: "Force the use of the legacy random source (`java.util.Random`) specifically " +
"for slime chunk calculations, even if faster generators are enabled elsewhere.\n\n" +
"Set to `true` to maintain vanilla slime chunk locations (important for existing slime farms).\n\n" +
"⚡ **Recommended value:** `true` for vanilla behavior/existing farms, `false` for optimization " +
@@ -410,8 +371,7 @@ const config: ConfigRoot = {
},
"use-direct-implementation": {
default: false,
- desc:
- "Use direct Java implementations of the selected random algorithm instead of " +
+ desc: "Use direct Java implementations of the selected random algorithm instead of " +
"delegating through the standard `RandomGenerator` interface.\n\n" +
"May offer a minor performance improvement but could potentially change RNG " +
"behavior compared to the standard library's delegation mechanism."
@@ -420,8 +380,7 @@ const config: ConfigRoot = {
"enable-cached-minecraft-to-bukkit-entitytype-convert": {
"enabled": {
default: true,
- desc:
- "Whether to cache the result of the `CraftEntityType#minecraftToBukkit` conversion call.\n\n" +
+ desc: "Whether to cache the result of the `CraftEntityType#minecraftToBukkit` conversion call.\n\n" +
"This conversion can be somewhat expensive, so caching can improve performance slightly in code " +
"that frequently converts between Minecraft and Bukkit entity types.\n\n" +
"⚡ **Recommended value:** `true`"
@@ -430,31 +389,27 @@ const config: ConfigRoot = {
"dab": {
"enabled": {
default: true,
- desc:
- "Enables Distant Activation Behavior (DAB) / Dynamic Activation of Brain optimization for entities.\n\n" +
+ desc: "Enables Distant Activation Behavior (DAB) / Dynamic Activation of Brain optimization for entities.\n\n" +
"Reduces the AI processing (like pathfinding and goal execution / brain ticking) for entities that are " +
"far away from players, improving performance.\n\n" +
"⚡ **Recommended value:** `true` for optimization, `false` (or use blacklist) for vanilla behavior."
},
"dont-enable-if-in-water": {
default: false,
- desc:
- "If true, non-aquatic entities that are in water will not have their AI throttled by DAB, even if they are far away.\n\n" +
+ desc: "If true, non-aquatic entities that are in water will not have their AI throttled by DAB, even if they are far away.\n\n" +
"Can prevent issues like terrestrial mobs suffocating unexpectedly in water when far from players due to paused AI " +
"(Fixes [Pufferfish issue #58](https://github.com/pufferfish-gg/Pufferfish/issues/58)).\n\n" +
"⚡ **Recommended value:** `true`"
},
"start-distance": {
default: 12,
- desc:
- "The distance (in blocks) an entity must be from the nearest player to start being affected by DAB throttling.\n\n" +
+ desc: "The distance (in blocks) an entity must be from the nearest player to start being affected by DAB throttling.\n\n" +
"⚡ **Recommended value:** `8`\n\n" +
"📏 **Unit:** blocks."
},
"max-tick-freq": {
default: 20,
- desc:
- "Defines the maximum frequency (most often, in ticks) that the furthest " +
+ desc: "Defines the maximum frequency (most often, in ticks) that the furthest " +
"entities affected by DAB will have their AI/brain ticked.\n\n" +
"Lower values mean more frequent updates even for distant mobs (less optimization). " +
"Higher values mean less frequent updates (more optimization). `20` ticks = 1 second.\n\n" +
@@ -462,8 +417,7 @@ const config: ConfigRoot = {
},
"activation-dist-mod": {
default: 8,
- desc:
- "Controls how aggressively distance impacts the entity's tick frequency. " +
+ desc: "Controls how aggressively distance impacts the entity's tick frequency. " +
"The effective frequency is influenced by the formula: " +
"`freq ≈ (distanceToPlayer^2) / (2^value)` (clamped by `max-tick-freq`).\n\n" +
"- Lower value (e.g., 7): Further entities tick less often (more aggressive optimization).\n" +
@@ -472,8 +426,7 @@ const config: ConfigRoot = {
},
"blacklisted-entities": {
default: [],
- desc:
- "A list of entity types (e.g., `minecraft:villager`, `minecraft:creeper`) that should be " +
+ desc: "A list of entity types (e.g., `minecraft:villager`, `minecraft:creeper`) that should be " +
"completely ignored by the DAB optimization system.\n\nUseful for mob farms that rely on " +
"specific AI behaviors (like pathfinding) even when players are distant. If mobs in a farm freeze, " +
"try adding their type here (e.g., `[ZOMBIFIED_PIGLIN]` or `[VILLAGER, ZOMBIE]`).\n\n" +
@@ -485,8 +438,7 @@ const config: ConfigRoot = {
"dont-save-primed-tnt": {
"enabled": {
default: false,
- desc:
- "If enabled, Primed TNT entities will not be saved when chunks unload.\n\n" +
+ desc: "If enabled, Primed TNT entities will not be saved when chunks unload.\n\n" +
"Useful for redstone/technical/survival servers to prevent TNT explosions " +
"caused by chunk loading/unloading cycles (e.g., when a player disconnects " +
"or moves far away from an active TNT device).\n\n" +
@@ -496,8 +448,7 @@ const config: ConfigRoot = {
"dont-save-falling-block": {
"enabled": {
default: false,
- desc:
- "If enabled, Falling Block entities will not be saved when chunks unload.\n\n" +
+ desc: "If enabled, Falling Block entities will not be saved when chunks unload.\n\n" +
"Can prevent issues with glitched or duplicated falling blocks (sand, gravel, etc.) " +
"after server restarts or chunk reloads, especially if caused by lag.\n\n" +
"⚡ **Recommended value:** `true`"
@@ -506,8 +457,7 @@ const config: ConfigRoot = {
},
"entity-running-behavior-cache-update-interval": {
default: 5,
- desc:
- "How often (in ticks) an entity updates its internal cache of currently running brain behaviors (AI tasks).\n\n" +
+ desc: "How often (in ticks) an entity updates its internal cache of currently running brain behaviors (AI tasks).\n\n" +
"Lower values mean the cache is more up-to-date but involves slightly more frequent checks. Higher values reduce " +
"check frequency but might slightly delay internal AI state tracking.\n\n" +
"📏 **Unit:** ticks."
@@ -518,8 +468,7 @@ const config: ConfigRoot = {
"dont-place-player-if-server-full": {
"enabled": {
default: false,
- desc:
- "Prevents players from being fully placed into the world if the server is already at its maximum " +
+ desc: "Prevents players from being fully placed into the world if the server is already at its maximum " +
"player capacity (`max-players` in `server.properties`).\n\n" +
"If enabled, bypass access relies solely on permissions (e.g., `purpur.joinfullserver` or similar, " +
"check server/plugin documentation) rather than allowing plugins to override the limit via the `PlayerLoginEvent#allow` method."
@@ -531,16 +480,14 @@ const config: ConfigRoot = {
"use-spigot-item-merging-mechanism": {
"enabled": {
default: true,
- desc:
- "Whether to use Spigot's specific logic for merging item stacks (e.g., dropped items).\n\n" +
+ desc: "Whether to use Spigot's specific logic for merging item stacks (e.g., dropped items).\n\n" +
"Set to `true` to potentially restore item merging behavior closer to Spigot if Leaf/Paper has different mechanics."
}
},
"spawner-settings": {
"enabled": {
default: false,
- desc:
- "Enable the custom mob spawner settings defined below. If `false`, spawners will use default behavior " +
+ desc: "Enable the custom mob spawner settings defined below. If `false`, spawners will use default behavior " +
"(likely closer to vanilla or Paper)."
},
"checks": {
@@ -567,23 +514,20 @@ const config: ConfigRoot = {
},
"min-spawn-delay": {
default: 200,
- desc:
- "Minimum delay (in ticks) between spawner spawns. The actual delay is randomized between min and max. " +
+ desc: "Minimum delay (in ticks) between spawner spawns. The actual delay is randomized between min and max. " +
"Higher values slow down spawners. Vanilla default: 200.\n\n" +
"📏 **Unit:** ticks."
},
"max-spawn-delay": {
default: 800,
- desc:
- "Maximum delay (in ticks) between spawner spawns. Higher values slow down spawners. " +
+ desc: "Maximum delay (in ticks) between spawner spawns. Higher values slow down spawners. " +
"Vanilla default: 800.\n\n 📏 **Unit:** ticks."
}
},
"smooth-teleport": {
"enabled": {
default: false,
- desc:
- "**Experimental feature**\n\nAttempts to make dimension changes (e.g., entering Nether/End portals) " +
+ desc: "**Experimental feature**\n\nAttempts to make dimension changes (e.g., entering Nether/End portals) " +
"smoother for the player, reducing the jarring screen blackout effect.\n\n" +
"⚠️ **Warning: Requires the origin world and the destination world to have the same logical height " +
"(`logical-height` in world settings) to function correctly. May have visual glitches or compatibility issues. " +
@@ -612,8 +556,7 @@ const config: ConfigRoot = {
"can-player-knockback-zombie": {
"enabled": {
default: true,
- desc:
- "Determines if players' attacks apply standard knockback to Zombies " +
+ desc: "Determines if players' attacks apply standard knockback to Zombies " +
"(and potentially related undead mobs like Husks, Drowned).\n\n" +
"May be useful if other settings or plugins interfere with default knockback mechanics."
}
@@ -622,8 +565,7 @@ const config: ConfigRoot = {
"hide-item-component": {
"enabled": {
default: false,
- desc:
- "If enabled, specified item component information from player's inventory will be hidden from the client.\n\n" +
+ desc: "If enabled, specified item component information from player's inventory will be hidden from the client.\n\n" +
"This only affects what the client sees, not the actual item data on the server. It can be used to hide complex " +
"internal data or potentially reduce client-side rendering load for items with excessive component data (e.g., " +
"avoid frequent client animations).\n\n" +
@@ -633,8 +575,7 @@ const config: ConfigRoot = {
},
"hidden-types": {
default: [],
- desc:
- "A list of component type IDs (e.g., `minecraft:custom_data`, `minecraft:attribute_modifiers`, " +
+ desc: "A list of component type IDs (e.g., `minecraft:custom_data`, `minecraft:attribute_modifiers`, " +
"`minecraft:trim`) that will be hidden from the client if `hide-item-component.enabled` is true.\n\n" +
"Consult Minecraft component documentation or tools like NBT viewers to identify relevant component IDs. " +
'Example: `["minecraft:custom_data"]`'
@@ -643,8 +584,7 @@ const config: ConfigRoot = {
"allow-tripwire-dupe": {
"enabled": {
default: false,
- desc:
- "Whether to allow the vanilla behavior where tripwire hooks can sometimes " +
+ desc: "Whether to allow the vanilla behavior where tripwire hooks can sometimes " +
"duplicate items (like sand or TNT) under specific circumstances.\n\n" +
"Set to `true` to enable this vanilla mechanic/exploit."
}
@@ -652,8 +592,7 @@ const config: ConfigRoot = {
"player": {
"max-use-item-distance": {
default: 1.0000001,
- desc:
- "The maximum distance (in blocks) a player can be from a block's interaction " +
+ desc: "The maximum distance (in blocks) a player can be from a block's interaction " +
"point to successfully use an item on it (right-click).\n\n" +
"Setting this to `-1` disables the distance check entirely.\n\n" +
"⚠️ **Warning: Disabling the check (`-1`) or setting a very large value enables " +
@@ -668,8 +607,7 @@ const config: ConfigRoot = {
"afk-command": {
"enabled": {
default: false,
- desc:
- "Enables a built-in `/afk` command functionality integrated with " +
+ desc: "Enables a built-in `/afk` command functionality integrated with " +
"Minecraft's idle-timeout mechanism (set in `server.properties`).\n\n" +
"Players exceeding the idle timeout may be automatically set to AFK " +
"(if supported by this feature) or kicked as per `server.properties`.\n\n" +
@@ -683,8 +621,7 @@ const config: ConfigRoot = {
"jade-protocol": {
"enabled": {
default: false,
- desc:
- "Enable server-side support for the [Jade / WTHIT](https://modrinth.com/mod/jade) " +
+ desc: "Enable server-side support for the [Jade / WTHIT](https://modrinth.com/mod/jade) " +
"(What The Hell Is That) client mod's protocol.\n\n" +
"Allows the server to potentially send more accurate or custom information " +
"(like storage contents, furnace progress, beehive data) to players using this mod."
@@ -693,16 +630,14 @@ const config: ConfigRoot = {
"appleskin-protocol": {
"enabled": {
default: false,
- desc:
- "Enable server-side support for the [AppleSkin](https://modrinth.com/mod/appleskin) client mod's protocol.\n\n" +
+ desc: "Enable server-side support for the [AppleSkin](https://modrinth.com/mod/appleskin) client mod's protocol.\n\n" +
"Sends detailed hunger, saturation, and exhaustion information to players using AppleSkin, " +
"allowing accurate display on the client."
}
},
"appleskin-protocol-sync-tick-interval": {
default: 20,
- desc:
- "How often (in ticks) the server should synchronize AppleSkin data (saturation, exhaustion) " +
+ desc: "How often (in ticks) the server should synchronize AppleSkin data (saturation, exhaustion) " +
"with clients using the mod, if `appleskin-protocol.enabled` is true.\n\n" +
"`20` ticks = 1 second.\n\n" +
"📏 **Unit:** ticks."
@@ -710,16 +645,14 @@ const config: ConfigRoot = {
"asteorbar-protocol": {
"enabled": {
default: false,
- desc:
- "Enable server-side support for the [Astéor Bar](https://modrinth.com/mod/asteorbar) client mod's protocol.\n\n" +
+ desc: "Enable server-side support for the [Astéor Bar](https://modrinth.com/mod/asteorbar) client mod's protocol.\n\n" +
"Sends detailed saturation/exhaustion information for display on the client."
}
},
"chatimage-protocol": {
"enabled": {
default: false,
- desc:
- "Enable server-side support for client mods that allow embedding images in chat " +
+ desc: "Enable server-side support for client mods that allow embedding images in chat " +
"(e.g., [ChatImage](https://modrinth.com/mod/chatimage)).\n\n" +
"Requires a compatible plugin on the server to handle image uploading, " +
"distribution, and display using formats like CICode."
@@ -728,8 +661,7 @@ const config: ConfigRoot = {
"xaero-map-protocol": {
"enabled": {
default: false,
- desc:
- "Enable server-side support for [Xaero's World Map and Minimap](https://modrinth.com/mod/xaeros-minimap) " +
+ desc: "Enable server-side support for [Xaero's World Map and Minimap](https://modrinth.com/mod/xaeros-minimap) " +
"client mods' protocols.\n\n" +
"Allows the server to potentially send waypoint data or other map-related information. " +
"Clients can store map data (like player coordinates, death points) tied to the server ID, " +
@@ -738,16 +670,14 @@ const config: ConfigRoot = {
},
"xaero-map-server-id": {
default: -739812325,
- desc:
- "A unique numeric identifier for this server used by Xaero's map protocol.\n\n" +
+ desc: "A unique numeric identifier for this server used by Xaero's map protocol.\n\n" +
"Clients use this ID to distinguish map data from different servers. Change if needed " +
"(especially in a multi-server network environment). Generated randomly on first start if not set."
},
"syncmatica-protocol": {
"enabled": {
default: false,
- desc:
- "Enable server-side support for the [Syncmatica](https://modrinth.com/mod/syncmatica) client mod's protocol.\n\n" +
+ desc: "Enable server-side support for the [Syncmatica](https://modrinth.com/mod/syncmatica) client mod's protocol.\n\n" +
"Allows players using Syncmatica to share and synchronize [Litematica](https://modrinth.com/mod/litematica) " +
"schematics with the server and other players (requires a compatible server-side implementation)."
}
@@ -760,8 +690,7 @@ const config: ConfigRoot = {
},
"syncmatica-quota-limit": {
default: 40000000,
- desc:
- "The maximum total size allowed for Syncmatica schematic uploads per player or globally " +
+ desc: "The maximum total size allowed for Syncmatica schematic uploads per player or globally " +
"(depending on implementation) if `syncmatica-quota.enabled` is true.\n\n" +
"Default is 40,000,000 bytes (approx 38-40MB).\n\n" +
"📏 **Unit:** bytes."
@@ -770,8 +699,7 @@ const config: ConfigRoot = {
"OptimizeNonFlushPacketSending": {
"enabled": {
default: false,
- desc:
- "Optimizes the sending of non-flushed packets by using Netty's `lazyExecute` method. " +
+ desc: "Optimizes the sending of non-flushed packets by using Netty's `lazyExecute` method. " +
"This can reduce thread contention and wakeup calls for certain types of network operations.\n\n" +
"⚠️ **WARNING: This option is known to be INCOMPATIBLE with ProtocolLib and may cause issues " +
"with other plugins that extensively manipulate network packets. " +
@@ -781,8 +709,7 @@ const config: ConfigRoot = {
"chat-message-signature": {
"enabled": {
default: true,
- desc:
- "Whether to enable cryptographic signatures for chat messages (introduced in 1.19.1).\n\n" +
+ desc: "Whether to enable cryptographic signatures for chat messages (introduced in 1.19.1).\n\n" +
"- If `true` (Vanilla default): Messages are signed, allowing players to report messages to " +
"Mojang and enabling the 'secure chat' indicators/popups.\n" +
"- If `false`: Signatures are disabled. Chat reporting is not possible, and the 'secure chat' " +
@@ -796,8 +723,7 @@ const config: ConfigRoot = {
"message": {
"unknown-command": {
default: "
",
- desc:
- "Customizes the message displayed when a player enters an unrecognized command.\n\n" +
+ desc: "Customizes the message displayed when a player enters an unrecognized command.\n\n" +
"- Uses [MiniMessage](https://docs.adventure.kyori.net/minimessage/format.html) format for colors and styling.\n" +
'- Set to the string `"default"` to use the standard vanilla message.\n' +
"- Placeholder: `` can be used to insert the specific unknown command text entered by the player.\n\n" +
@@ -807,8 +733,7 @@ const config: ConfigRoot = {
"rebrand": {
"server-mod-name": {
default: "Leaf",
- desc:
- "The server name/brand displayed in the client's F3 debug screen and potentially the " +
+ desc: "The server name/brand displayed in the client's F3 debug screen and potentially the " +
"multiplayer server list (replaces 'Paper', 'Spigot', 'Vanilla', etc.)."
},
"server-gui-name": {
@@ -819,22 +744,19 @@ const config: ConfigRoot = {
"sentry": {
"dsn": {
default: "",
- desc:
- "Your Sentry Data Source Name (DSN) for advanced error reporting and aggregation.\n\n" +
+ desc: "Your Sentry Data Source Name (DSN) for advanced error reporting and aggregation.\n\n" +
"Obtain a DSN from [sentry.io](https://sentry.io/) by creating a project. " +
"Leave blank (`''`) to disable Sentry integration."
},
"log-level": {
default: "WARN",
- desc:
- "The minimum logging level (e.g., `INFO`, `WARN`, `ERROR`) required for a server " +
+ desc: "The minimum logging level (e.g., `INFO`, `WARN`, `ERROR`) required for a server " +
"log message to be captured and sent to Sentry, if Sentry is enabled."
},
"only-log-thrown": {
"enabled": {
default: true,
- desc:
- "If true, only log messages that include a Java Throwable (an exception or error stack trace) " +
+ desc: "If true, only log messages that include a Java Throwable (an exception or error stack trace) " +
"will be sent to Sentry, ignoring plain log messages even if they meet the `log-level`."
}
}
@@ -842,8 +764,7 @@ const config: ConfigRoot = {
"secure-seed": {
"enabled": {
default: false,
- desc:
- "If enabled, world generation features like ore veins and structure placements " +
+ desc: "If enabled, world generation features like ore veins and structure placements " +
"will use a secure, high-entropy 1024-bit seed derived internally from the main world " +
"seed, instead of directly using the 64-bit world seed.\n\n" +
"This makes predicting ore/structure locations based on the world seed (seed cracking) " +
@@ -857,8 +778,7 @@ const config: ConfigRoot = {
"remove-vanilla-username-check": {
"enabled": {
default: true,
- desc:
- "Removes the default vanilla check that restricts player usernames " +
+ desc: "Removes the default vanilla check that restricts player usernames " +
"to alphanumeric characters and underscores (`a-zA-Z0-9_`).\n\n" +
"Enable this (`true`) to allow usernames containing symbols or other " +
"characters (e.g., Chinese, spaces), often necessary for specific " +
@@ -868,8 +788,7 @@ const config: ConfigRoot = {
"remove-spigot-check-bungee-config": {
"enabled": {
default: true,
- desc:
- "Disables Spigot's check for `settings.bungeecord: true` in `spigot.yml` " +
+ desc: "Disables Spigot's check for `settings.bungeecord: true` in `spigot.yml` " +
"when a player attempts to join via a proxy.\n\n" +
"Enable this (`true`) to allow players to connect through a BungeeCord/Velocity " +
"proxy even if the backend server doesn't have BungeeCord mode explicitly enabled " +
@@ -883,8 +802,7 @@ const config: ConfigRoot = {
"remove-change-non-editable-sign-warning": {
"enabled": {
default: false,
- desc:
- 'Suppresses the console warning message: "Player [...] tried to change non-editable sign".\n\n' +
+ desc: 'Suppresses the console warning message: "Player [...] tried to change non-editable sign".\n\n' +
"Enable this (`true`) to reduce console spam if this warning occurs frequently due to plugins " +
"or specific player actions and is considered benign noise.\n\n" +
"⚡ **Recommended value:** `true` (to reduce console spam)"
@@ -893,8 +811,7 @@ const config: ConfigRoot = {
"region-format-settings": {
"region-format": {
default: "MCA",
- desc:
- "Specifies the format used for saving chunk data in region files.\n\n" +
+ desc: "Specifies the format used for saving chunk data in region files.\n\n" +
"- `MCA`: Standard Minecraft Anvil format using Zlib compression. Compatible everywhere. Safer.\n" +
"- `LINEAR`: Experimental format using Zstandard (ZSTD) compression. Offers significant disk " +
"space savings but is less compatible and potentially riskier.\n\n" +
@@ -905,16 +822,14 @@ const config: ConfigRoot = {
},
"linear-compress-level": {
default: 1,
- desc:
- "The Zstandard compression level to use when `region-format` is set to `LINEAR`.\n\n" +
+ desc: "The Zstandard compression level to use when `region-format` is set to `LINEAR`.\n\n" +
"Higher levels (up to 22) provide better compression ratios but require significantly more " +
"CPU time for compression. Lower levels are faster. Level 1 is a fast, light compression setting."
},
"throw-on-unknown-extension-detected": {
"enabled": {
default: false,
- desc:
- "If true, the server will detect and throw an error (potentially stopping) if it " +
+ desc: "If true, the server will detect and throw an error (potentially stopping) if it " +
"encounters region files with an unexpected file extension in the world's region directory " +
"(e.g., finding `.linear` files when expecting `.mca`, or vice-versa).\n\n" +
"Helps prevent data corruption from accidentally mixing region file formats in the same world."
@@ -928,8 +843,7 @@ const config: ConfigRoot = {
"lag-compensation": {
"enabled": {
default: false,
- desc:
- "**Experimental feature**\n\n Enables lag compensation features designed to " +
+ desc: "**Experimental feature**\n\n Enables lag compensation features designed to " +
"mitigate the gameplay impact of server lag spikes or low TPS situations, potentially " +
"ensuring a basic level of playability.\n\nMay involve techniques like client-side " +
"prediction adjustments or delaying certain actions to feel smoother during lag.\n\n" +
@@ -939,8 +853,7 @@ const config: ConfigRoot = {
"enable-for-water": {
"enabled": {
default: false,
- desc:
- "Apply lag compensation logic specifically to player interactions involving water " +
+ desc: "Apply lag compensation logic specifically to player interactions involving water " +
"(e.g., swimming, fluid flow effects), if `lag-compensation.enabled` is true.\n\n" +
"⚡ **Recommended value:** `true`"
}
@@ -948,8 +861,7 @@ const config: ConfigRoot = {
"enable-for-lava": {
"enabled": {
default: false,
- desc:
- "Apply lag compensation logic specifically to player interactions " +
+ desc: "Apply lag compensation logic specifically to player interactions " +
"involving lava, if `lag-compensation.enabled` is true.\n\n" +
"⚡ **Recommended value:** `true`"
}
@@ -958,8 +870,7 @@ const config: ConfigRoot = {
"including-5s-in-get-tps": {
"enabled": {
default: true,
- desc:
- "Whether the server's reported TPS (Ticks Per Second) values should include the " +
+ desc: "Whether the server's reported TPS (Ticks Per Second) values should include the " +
"short-term 5-second average alongside the standard 1-minute, 5-minute, and 15-minute " +
"averages when accessed via API methods like `Bukkit#getTPS()` or `Server#getTPS()`.\n\n" +
"- If `true`: `getTPS()` returns `[5s, 1m, 5m, 15m]`.\n" +
@@ -978,8 +889,7 @@ const config: ConfigRoot = {
},
"message": {
default: "default",
- desc:
- "The message broadcast globally when a player joins the server.\n\n" +
+ desc: "The message broadcast globally when a player joins the server.\n\n" +
"- Uses [MiniMessage](https://docs.adventure.kyori.net/minimessage/format.html) format.\n" +
'Set to `"default"` for vanilla message (e.g., "Player joined the game").\n' +
"Placeholders: `%player_name%`, `%player_displayname%`."
@@ -992,8 +902,7 @@ const config: ConfigRoot = {
},
"message": {
default: "default",
- desc:
- "The message broadcast globally when a player leaves the server.\n\n" +
+ desc: "The message broadcast globally when a player leaves the server.\n\n" +
"- Uses [MiniMessage](https://docs.adventure.kyori.net/minimessage/format.html) format.\n" +
'- Set to `"default"` for vanilla message.\n' +
"- Placeholders: `%player_name%`, `%player_displayname%`."
@@ -1004,8 +913,7 @@ const config: ConfigRoot = {
"cache-player-profile-result": {
"enabled": {
default: true,
- desc:
- "Cache the player's profile information (UUID, username, skin/cape textures) " +
+ desc: "Cache the player's profile information (UUID, username, skin/cape textures) " +
"retrieved from Mojang's session servers upon their first successful join.\n\n" +
"This allows players to rejoin the server using cached data even if Mojang's " +
"authentication servers are temporarily unavailable (useful during outages)."
@@ -1013,8 +921,7 @@ const config: ConfigRoot = {
},
"cache-player-profile-result-timeout": {
default: 1440,
- desc:
- "How long (in minutes) the cached player profile information remains valid.\n\n" +
+ desc: "How long (in minutes) the cached player profile information remains valid.\n\n" +
"After this timeout, the server will attempt to re-fetch the profile from Mojang upon " +
"the player's next join to ensure the data (especially textures) is up-to-date.\n\n" +
"Default is 1440 minutes (24 hours).\n\n" +
diff --git a/pages/zh/docs/config/data/gale-global-1-21-1.ts b/pages/zh/docs/config/data/gale-global-1-21-1.ts
index fbc08c6..6c807b2 100644
--- a/pages/zh/docs/config/data/gale-global-1-21-1.ts
+++ b/pages/zh/docs/config/data/gale-global-1-21-1.ts
@@ -9,8 +9,7 @@ const config: ConfigRoot = {
"gameplay-mechanics": {
"enable-book-writing": {
default: true,
- desc:
- "是否允许书本可写入.
" +
+ desc: "是否允许书本可写入.
" +
"如果设为 `false`, 拥有权限 `gale.writebooks` 的玩家 (默认: `op`) 仍然可以写入并使用书本." +
"" +
" | 默认值 | | |
" +
@@ -30,8 +29,7 @@ const config: ConfigRoot = {
"chat": {
"empty-message-warning": {
default: false,
- desc:
- "当玩家发送一个空的消息数据包时.
" +
+ desc: "当玩家发送一个空的消息数据包时.
" +
"(这无害, 通常是由于玩家的客户端版本过旧)" +
"" +
" | 默认值 | |
" +
@@ -41,8 +39,7 @@ const config: ConfigRoot = {
},
"expired-message-warning": {
default: false,
- desc:
- "当玩家的消息数据包已失效时.
" +
+ desc: "当玩家的消息数据包已失效时.
" +
"(这无害, 通常是由于玩家客户端的聊天有些不同步)" +
"" +
" | 默认值 | |
" +
@@ -52,8 +49,7 @@ const config: ConfigRoot = {
},
"not-secure-marker": {
default: true,
- desc:
- "是否在未签名的聊天消息前添加 [NOT SECURE] 标记." +
+ desc: "是否在未签名的聊天消息前添加 [NOT SECURE] 标记." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -63,8 +59,7 @@ const config: ConfigRoot = {
},
"ignored-advancements": {
default: true,
- desc:
- "当加载玩家数据时, 发现他们拥有已经不存在的进度内容.
" +
+ desc: "当加载玩家数据时, 发现他们拥有已经不存在的进度内容.
" +
"(这无害, 通常是通常发生在服务器升级 MC 版本后)" +
"" +
" | 默认值 | |
" +
@@ -74,8 +69,7 @@ const config: ConfigRoot = {
},
"invalid-pool-element-error-log-level": {
default: "info",
- desc:
- "当服务器在世界数据中遇到 *无效的池元素* 时的错误日志等级.
" +
+ desc: "当服务器在世界数据中遇到 *无效的池元素* 时的错误日志等级.
" +
"
" +
"*无效的池元素* 是生成的结构 (如矿井) 中由于版本更新不完全或损坏的部分.
" +
"
" +
@@ -93,8 +87,7 @@ const config: ConfigRoot = {
},
"invalid-statistics": {
default: true,
- desc:
- "当加载玩家数据时, 发现他们拥有已经不存在的统计数据." +
+ desc: "当加载玩家数据时, 发现他们拥有已经不存在的统计数据." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -103,8 +96,7 @@ const config: ConfigRoot = {
},
"legacy-material-initialization": {
default: false,
- desc:
- "当加载一个非常旧的 Bukkit 插件时." +
+ desc: "当加载一个非常旧的 Bukkit 插件时." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -113,8 +105,7 @@ const config: ConfigRoot = {
},
"null-id-disconnections": {
default: true,
- desc:
- "当玩家在进服时没有发送有效的用户信息.
" +
+ desc: "当玩家在进服时没有发送有效的用户信息.
" +
"(通常表明有黑客试图通过占用服务器性能进行攻击)" +
"" +
" | 默认值 | |
" +
@@ -124,8 +115,7 @@ const config: ConfigRoot = {
},
"player-login-locations": {
default: true,
- desc:
- "是否在记录到控制台的玩家进服消息中包含玩家的坐标." +
+ desc: "是否在记录到控制台的玩家进服消息中包含玩家的坐标." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -135,8 +125,7 @@ const config: ConfigRoot = {
"plugin-library-loader": {
"downloads": {
default: true,
- desc:
- "当插件的库加载器开始下载依赖库文件时." +
+ desc: "当插件的库加载器开始下载依赖库文件时." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -145,8 +134,7 @@ const config: ConfigRoot = {
},
"library-loaded": {
default: true,
- desc:
- "当插件库的加载器完成依赖库文件加载时." +
+ desc: "当插件库的加载器完成依赖库文件加载时." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -155,8 +143,7 @@ const config: ConfigRoot = {
},
"start-load-libraries-for-plugin": {
default: true,
- desc:
- "当插件的库加载器开始为插件加载依赖库文件时." +
+ desc: "当插件的库加载器开始为插件加载依赖库文件时." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -166,8 +153,7 @@ const config: ConfigRoot = {
},
"set-block-in-far-chunk": {
default: true,
- desc:
- "当玩家尝试与一个 *非常* 远的方块交互时.
" +
+ desc: "当玩家尝试与一个 *非常* 远的方块交互时.
" +
"(通常表明有黑客试图获取其他玩家位置信息, 或正在使用黑客端)" +
"" +
" | 默认值 | |
" +
@@ -177,8 +163,7 @@ const config: ConfigRoot = {
},
"unrecognized-recipes": {
default: false,
- desc:
- "当加载玩家数据时, 发现他们拥有已经不存在的配方书配方数据." +
+ desc: "当加载玩家数据时, 发现他们拥有已经不存在的配方书配方数据." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -190,8 +175,7 @@ const config: ConfigRoot = {
"misc": {
"ignore-null-legacy-structure-data": {
default: false,
- desc:
- "如果任何旧版结构数据的 NBT tag 解析器因某些原因返回 null, 是否忽略这些数据." +
+ desc: "如果任何旧版结构数据的 NBT tag 解析器因某些原因返回 null, 是否忽略这些数据." +
"" +
"- 如果设为 `true`, 当这种情况发生时不会显示警告.
" +
"- 如果设为 `false`, 当这种情况发生时会在控制台中抛出异常.
" +
@@ -211,8 +195,7 @@ const config: ConfigRoot = {
"keepalive": {
"send-multiple": {
default: true,
- desc:
- "是否发送比原版更频繁的 keepalive 数据包." +
+ desc: "是否发送比原版更频繁的 keepalive 数据包." +
"" +
"- 如果设为 `true`, 每秒向每个客户端发送一个 keepalive 数据包, 如果他们在 30 秒内响应至少一个数据包, 则不会被踢出.
" +
"- 如果设为 `false`, 每 15 秒向每个客户端发送一个 keepalive 数据包, 如果他们未响应, 则会被踢出.
" +
@@ -232,8 +215,7 @@ const config: ConfigRoot = {
"last-tick-time-in-tps-command": {
"add-oversleep": {
default: false,
- desc:
- "是否将上一 tick 的超时部分添加到 `/tps` 命令中.
" +
+ desc: "是否将上一 tick 的超时部分添加到 `/tps` 命令中.
" +
"仅当上方的 `enabled` 为 `true` 时, 此配置项才会生效." +
"" +
" | 默认值 | | |
" +
@@ -248,8 +230,7 @@ const config: ConfigRoot = {
},
"enabled": {
default: false,
- desc:
- "是否在 `/tps` 命令中显示上一 tick 的耗时.
" +
+ desc: "是否在 `/tps` 命令中显示上一 tick 的耗时.
" +
"上一 tick 的耗时仅代表那一个 tick 的时间, 因此通常不太有用." +
"" +
" | 默认值 | | |
" +
@@ -265,8 +246,7 @@ const config: ConfigRoot = {
},
"premium-account-slow-login-timeout": {
default: -1,
- desc:
- "进服时, 允许正版账户成功进入的最长时间.
" +
+ desc: "进服时, 允许正版账户成功进入的最长时间.
" +
"(以 tick 为单位)" +
"" +
"- 如果超出此时间, 玩家的连接将被关闭.
" +
@@ -285,8 +265,7 @@ const config: ConfigRoot = {
},
"verify-chat-order": {
default: true,
- desc:
- "是否验证聊天消息的顺序." +
+ desc: "是否验证聊天消息的顺序." +
"" +
"- 如果设为 `true`, 并且玩家由于某些原因发送了乱序的聊天数据包, 他们将被踢出.
" +
"- 如果设为 `false`, 将不会进行验证, 玩家也不会被踢出.
" +
@@ -308,8 +287,7 @@ const config: ConfigRoot = {
"reduced-intervals": {
"increase-time-statistics": {
default: 20,
- desc:
- "与时间相关的统计信息增加的频率 (总游戏时间, 自上次死亡以来的时间等等的时间增长频率).
" +
+ desc: "与时间相关的统计信息增加的频率 (总游戏时间, 自上次死亡以来的时间等等的时间增长频率).
" +
"(以 tick 为单位)
" +
"修改此值不会改变统计数据自原版以来的增长速度.
" +
"
" +
@@ -332,8 +310,7 @@ const config: ConfigRoot = {
},
"update-entity-line-of-sight": {
default: 4,
- desc:
- "更新一个实体是否在另一个实体视线内的频率.
" +
+ desc: "更新一个实体是否在另一个实体视线内的频率.
" +
"(以 tick 为单位)
" +
"如果设为 ≤ `0`, 将默认与 Paper 一致." +
"" +
@@ -352,8 +329,7 @@ const config: ConfigRoot = {
__desc__: "是否使用 [XorShift](https://www.codeproject.com/Articles/9187/A-fast-equivalent-for-System-Random) 随机数生成器代替 Java 默认的随机数生成器.",
"auto-replenish-lootable-refill": {
default: true,
- desc:
- "是否在 Paper 的 `auto-replenish` 功能中使用 XorShift 随机数生成器为战利品补充物品.
" +
+ desc: "是否在 Paper 的 `auto-replenish` 功能中使用 XorShift 随机数生成器为战利品补充物品.
" +
"此配置项不会影响普通的 Minecraft 战利品箱." +
"" +
" | 默认值 | | |
" +
@@ -368,8 +344,7 @@ const config: ConfigRoot = {
},
"elytra-firework-speed": {
default: true,
- desc:
- "是否在玩家使用烟花火箭滑翔时, 为加速效果使用 XorShift 随机数生成器." +
+ desc: "是否在玩家使用烟花火箭滑翔时, 为加速效果使用 XorShift 随机数生成器." +
"" +
" | 默认值 | | |
" +
"| 推荐值 | Leaf | Paper | 原版 |
" +
@@ -383,8 +358,7 @@ const config: ConfigRoot = {
},
"entity-wake-up-duration": {
default: true,
- desc:
- "是否在实体激活时间的变化中使用 XorShift 随机数生成器." +
+ desc: "是否在实体激活时间的变化中使用 XorShift 随机数生成器." +
"" +
" | 默认值 | | |
" +
"| 推荐值 | Leaf | Paper | 原版 |
" +
@@ -397,8 +371,7 @@ const config: ConfigRoot = {
},
"generate-tree-with-bukkit-api": {
default: true,
- desc:
- "是否在使用 Bukkit API (`World#generateTree`) 生成树时使用 XorShift 随机数生成器." +
+ desc: "是否在使用 Bukkit API (`World#generateTree`) 生成树时使用 XorShift 随机数生成器." +
"" +
" | 默认值 | | |
" +
"| 推荐值 | Leaf | Paper | 原版 |
" +
@@ -412,8 +385,7 @@ const config: ConfigRoot = {
},
"lightning-random-tick": {
default: true,
- desc:
- "是否在闪电击中几率的计算中使用 XorShift 随机数生成器." +
+ desc: "是否在闪电击中几率的计算中使用 XorShift 随机数生成器." +
"" +
" | 默认值 | | |
" +
"| 推荐值 | Leaf | Paper | 原版 |
" +
diff --git a/pages/zh/docs/config/data/gale-global-1-21-4.ts b/pages/zh/docs/config/data/gale-global-1-21-4.ts
index 1263288..3338354 100644
--- a/pages/zh/docs/config/data/gale-global-1-21-4.ts
+++ b/pages/zh/docs/config/data/gale-global-1-21-4.ts
@@ -9,8 +9,7 @@ const config: ConfigRoot = {
"gameplay-mechanics": {
"enable-book-writing": {
default: true,
- desc:
- "是否允许书本可写入.
" +
+ desc: "是否允许书本可写入.
" +
"如果设为 `false`, 拥有权限 `gale.writebooks` 的玩家 (默认: `op`) 仍然可以写入并使用书本." +
"" +
" | 默认值 | | |
" +
@@ -30,8 +29,7 @@ const config: ConfigRoot = {
"chat": {
"empty-message-warning": {
default: false,
- desc:
- "当玩家发送一个空的消息数据包时.
" +
+ desc: "当玩家发送一个空的消息数据包时.
" +
"(这无害, 通常是由于玩家的客户端版本过旧)" +
"" +
" | 默认值 | |
" +
@@ -41,8 +39,7 @@ const config: ConfigRoot = {
},
"expired-message-warning": {
default: false,
- desc:
- "当玩家的消息数据包已失效时.
" +
+ desc: "当玩家的消息数据包已失效时.
" +
"(这无害, 通常是由于玩家客户端的聊天有些不同步)" +
"" +
" | 默认值 | |
" +
@@ -52,8 +49,7 @@ const config: ConfigRoot = {
},
"not-secure-marker": {
default: true,
- desc:
- "是否在未签名的聊天消息前添加 [NOT SECURE] 标记." +
+ desc: "是否在未签名的聊天消息前添加 [NOT SECURE] 标记." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -63,8 +59,7 @@ const config: ConfigRoot = {
},
"ignored-advancements": {
default: true,
- desc:
- "当加载玩家数据时, 发现他们拥有已经不存在的进度内容.
" +
+ desc: "当加载玩家数据时, 发现他们拥有已经不存在的进度内容.
" +
"(这无害, 通常是通常发生在服务器升级 MC 版本后)" +
"" +
" | 默认值 | |
" +
@@ -74,8 +69,7 @@ const config: ConfigRoot = {
},
"invalid-pool-element-error-log-level": {
default: "info",
- desc:
- "当服务器在世界数据中遇到 *无效的池元素* 时的错误日志等级.
" +
+ desc: "当服务器在世界数据中遇到 *无效的池元素* 时的错误日志等级.
" +
"
" +
"*无效的池元素* 是生成的结构 (如矿井) 中由于版本更新不完全或损坏的部分.
" +
"
" +
@@ -93,8 +87,7 @@ const config: ConfigRoot = {
},
"invalid-statistics": {
default: true,
- desc:
- "当加载玩家数据时, 发现他们拥有已经不存在的统计数据." +
+ desc: "当加载玩家数据时, 发现他们拥有已经不存在的统计数据." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -103,8 +96,7 @@ const config: ConfigRoot = {
},
"legacy-material-initialization": {
default: false,
- desc:
- "当加载一个非常旧的 Bukkit 插件时." +
+ desc: "当加载一个非常旧的 Bukkit 插件时." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -113,8 +105,7 @@ const config: ConfigRoot = {
},
"null-id-disconnections": {
default: true,
- desc:
- "当玩家在进服时没有发送有效的用户信息.
" +
+ desc: "当玩家在进服时没有发送有效的用户信息.
" +
"(通常表明有黑客试图通过占用服务器性能进行攻击)" +
"" +
" | 默认值 | |
" +
@@ -124,8 +115,7 @@ const config: ConfigRoot = {
},
"player-login-locations": {
default: true,
- desc:
- "是否在记录到控制台的玩家进服消息中包含玩家的坐标." +
+ desc: "是否在记录到控制台的玩家进服消息中包含玩家的坐标." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -135,8 +125,7 @@ const config: ConfigRoot = {
"plugin-library-loader": {
"downloads": {
default: true,
- desc:
- "当插件的库加载器开始下载依赖库文件时." +
+ desc: "当插件的库加载器开始下载依赖库文件时." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -145,8 +134,7 @@ const config: ConfigRoot = {
},
"library-loaded": {
default: true,
- desc:
- "当插件库的加载器完成依赖库文件加载时." +
+ desc: "当插件库的加载器完成依赖库文件加载时." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -155,8 +143,7 @@ const config: ConfigRoot = {
},
"start-load-libraries-for-plugin": {
default: true,
- desc:
- "当插件的库加载器开始为插件加载依赖库文件时." +
+ desc: "当插件的库加载器开始为插件加载依赖库文件时." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -166,8 +153,7 @@ const config: ConfigRoot = {
},
"set-block-in-far-chunk": {
default: true,
- desc:
- "当玩家尝试与一个 *非常* 远的方块交互时.
" +
+ desc: "当玩家尝试与一个 *非常* 远的方块交互时.
" +
"(通常表明有黑客试图获取其他玩家位置信息, 或正在使用黑客端)" +
"" +
" | 默认值 | |
" +
@@ -177,8 +163,7 @@ const config: ConfigRoot = {
},
"unrecognized-recipes": {
default: false,
- desc:
- "当加载玩家数据时, 发现他们拥有已经不存在的配方书配方数据." +
+ desc: "当加载玩家数据时, 发现他们拥有已经不存在的配方书配方数据." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper |
" +
@@ -190,8 +175,7 @@ const config: ConfigRoot = {
"misc": {
"ignore-null-legacy-structure-data": {
default: false,
- desc:
- "如果任何旧版结构数据的 NBT tag 解析器因某些原因返回 null, 是否忽略这些数据." +
+ desc: "如果任何旧版结构数据的 NBT tag 解析器因某些原因返回 null, 是否忽略这些数据." +
"" +
"- 如果设为 `true`, 当这种情况发生时不会显示警告.
" +
"- 如果设为 `false`, 当这种情况发生时会在控制台中抛出异常.
" +
@@ -211,8 +195,7 @@ const config: ConfigRoot = {
"keepalive": {
"send-multiple": {
default: true,
- desc:
- "是否发送比原版更频繁的 keepalive 数据包." +
+ desc: "是否发送比原版更频繁的 keepalive 数据包." +
"" +
"- 如果设为 `true`, 每秒向每个客户端发送一个 keepalive 数据包, 如果他们在 30 秒内响应至少一个数据包, 则不会被踢出.
" +
"- 如果设为 `false`, 每 15 秒向每个客户端发送一个 keepalive 数据包, 如果他们未响应, 则会被踢出.
" +
@@ -232,8 +215,7 @@ const config: ConfigRoot = {
"last-tick-time-in-tps-command": {
"add-oversleep": {
default: false,
- desc:
- "是否将上一 tick 的超时部分添加到 `/tps` 命令中.
" +
+ desc: "是否将上一 tick 的超时部分添加到 `/tps` 命令中.
" +
"仅当上方的 `enabled` 为 `true` 时, 此配置项才会生效." +
"" +
" | 默认值 | | |
" +
@@ -248,8 +230,7 @@ const config: ConfigRoot = {
},
"enabled": {
default: false,
- desc:
- "是否在 `/tps` 命令中显示上一 tick 的耗时.
" +
+ desc: "是否在 `/tps` 命令中显示上一 tick 的耗时.
" +
"上一 tick 的耗时仅代表那一个 tick 的时间, 因此通常不太有用." +
"" +
" | 默认值 | | |
" +
@@ -265,8 +246,7 @@ const config: ConfigRoot = {
},
"premium-account-slow-login-timeout": {
default: -1,
- desc:
- "进服时, 允许正版账户成功进入的最长时间.
" +
+ desc: "进服时, 允许正版账户成功进入的最长时间.
" +
"(以 tick 为单位)" +
"" +
"- 如果超出此时间, 玩家的连接将被关闭.
" +
@@ -285,8 +265,7 @@ const config: ConfigRoot = {
},
"verify-chat-order": {
default: true,
- desc:
- "是否验证聊天消息的顺序." +
+ desc: "是否验证聊天消息的顺序." +
"" +
"- 如果设为 `true`, 并且玩家由于某些原因发送了乱序的聊天数据包, 他们将被踢出.
" +
"- 如果设为 `false`, 将不会进行验证, 玩家也不会被踢出.
" +
@@ -308,8 +287,7 @@ const config: ConfigRoot = {
"reduced-intervals": {
"increase-time-statistics": {
default: 20,
- desc:
- "与时间相关的统计信息增加的频率 (总游戏时间, 自上次死亡以来的时间等等的时间增长频率).
" +
+ desc: "与时间相关的统计信息增加的频率 (总游戏时间, 自上次死亡以来的时间等等的时间增长频率).
" +
"(以 tick 为单位)
" +
"修改此值不会改变统计数据自原版以来的增长速度.
" +
"
" +
@@ -332,8 +310,7 @@ const config: ConfigRoot = {
},
"update-entity-line-of-sight": {
default: 4,
- desc:
- "更新一个实体是否在另一个实体视线内的频率.
" +
+ desc: "更新一个实体是否在另一个实体视线内的频率.
" +
"(以 tick 为单位)
" +
"如果设为 ≤ `0`, 将默认与 Paper 一致." +
"" +
diff --git a/pages/zh/docs/config/data/gale-world-defaults-1-21-1.ts b/pages/zh/docs/config/data/gale-world-defaults-1-21-1.ts
index 014505a..3941506 100644
--- a/pages/zh/docs/config/data/gale-world-defaults-1-21-1.ts
+++ b/pages/zh/docs/config/data/gale-world-defaults-1-21-1.ts
@@ -9,8 +9,7 @@ const config: ConfigRoot = {
"gameplay-mechanics": {
"arrow-movement-resets-despawn-counter": {
default: false,
- desc:
- "当箭开始下落时 (例如卡住箭的方块被破坏), 是否重置箭的 [自然清除计数器](https://zh.minecraft.wiki/w/%E7%94%9F%E6%88%90#%E6%B8%85%E9%99%A4)." +
+ desc: "当箭开始下落时 (例如卡住箭的方块被破坏), 是否重置箭的 [自然清除计数器](https://zh.minecraft.wiki/w/%E7%94%9F%E6%88%90#%E6%B8%85%E9%99%A4)." +
"" +
" | 默认值 | | |
" +
"| 推荐值 | Leaf | Paper | 原版 |
" +
@@ -24,8 +23,7 @@ const config: ConfigRoot = {
},
"entities-can-random-stroll-into-non-ticking-chunks": {
default: true,
- desc:
- "是否允许随机游荡的生物寻路进入未加载区块." +
+ desc: "是否允许随机游荡的生物寻路进入未加载区块." +
"" +
" | 默认值 | | |
" +
"| 推荐值 | Leaf | Paper | 原版 |
" +
@@ -39,8 +37,7 @@ const config: ConfigRoot = {
},
"entity-wake-up-duration-ratio-standard-deviation": {
default: 0.2,
- desc:
- "如果将此值设为 > `0`, 则唤醒不活跃实体的过程会分布在一段时间内, 而不是同时唤醒大量实体.
" +
+ desc: "如果将此值设为 > `0`, 则唤醒不活跃实体的过程会分布在一段时间内, 而不是同时唤醒大量实体.
" +
"这使实体的行为更加自然.
" +
"
" +
"此配置项的值应是一个 [变异系数 (Coefficient of Variation)](https://baike.baidu.com/item/%E5%8F%98%E5%BC%82%E7%B3%BB%E6%95%B0/6463621), 或实体不活跃持续时间的 σ / μ (标准差与均值的比率).
" +
@@ -62,8 +59,7 @@ const config: ConfigRoot = {
"fixes": {
"broadcast-crit-animations-as-the-entity-being-critted": {
default: false,
- desc:
- "是否将广播暴击动画为被攻击实体的动画.
" +
+ desc: "是否将广播暴击动画为被攻击实体的动画.
" +
"
" +
"这不会改变暴击动画显示的位置: 动画始终显示在被攻击实体上.
" +
"通常 (如果设为 `false`), 暴击动画会广播为暴击的玩家, 这意味着看不到玩家的人也无法看到暴击动画.
" +
@@ -82,8 +78,7 @@ const config: ConfigRoot = {
},
"keep-mooshroom-rotation-after-shearing": {
default: true,
- desc:
- "是否在用剪刀修剪哞菇后保留其旋转角度 (修复 [MC-88967](https://bugs.mojang.com/browse/MC-88967) 的部分问题)." +
+ desc: "是否在用剪刀修剪哞菇后保留其旋转角度 (修复 [MC-88967](https://bugs.mojang.com/browse/MC-88967) 的部分问题)." +
"" +
" | 默认值 | | |
" +
"| 推荐值 | Leaf | Paper | 原版 |
" +
@@ -97,8 +92,7 @@ const config: ConfigRoot = {
},
"mc-110386": {
default: true,
- desc:
- "是否修复 [MC-110386](https://bugs.mojang.com/browse/MC-110386)." +
+ desc: "是否修复 [MC-110386](https://bugs.mojang.com/browse/MC-110386)." +
"" +
" | 默认值 | |
" +
"| 推荐值 | Leaf | Paper | 原版 |
" +
@@ -107,8 +101,7 @@ const config: ConfigRoot = {
},
"mc-121706": {
default: false,
- desc:
- "是否修复 [MC-121706](https://bugs.mojang.com/browse/MC-121706)." +
+ desc: "是否修复 [MC-121706](https://bugs.mojang.com/browse/MC-121706)." +
"