ReplaceBlock
Этот датапак предоставляет мощный API, позволяющий заменять блоки в мире после генерации мира полностью ванильным способом с высокой производительностью.
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 981
- Подписчиков на Modrinth
- 2
- версий
- 12
- Обновлён
- 21 сентября 202621 сент.
- Опубликован
- в 2025
Коротко о моде
Нужен на сервере; в игре — по желанию
[RB]方块替换 (ReplaceBlock)
Описание на английском ниже.
Введение
Этот датапак предоставляет мощный API, позволяющий с высокой производительностью заменять блоки в мире после генерации мира полностью ванильным способом.
Возможности
Этот датапак обходит и заменяет блоки по чанкам. При каждом вызове он обходит от текущего чанка вдаль, пока не очистит один чанк успешно, либо пока не обойдёт все загруженные чанки в радиусе. Радиус обхода настраивается, см. ниже.
Использование
Ниже {{storage}} используется как заполнитель для пространства имён ID вашего командного хранилища, например test:test.
- Подготовка конфигурации: сохраните конфигурацию API в
{}.replace_blockвашего командного хранилища. Вы можете вызвать функциюreplace_block:api/reset_settingsи передать{storage:"{{storage}}"}для генерации примера конфигурации. Полный формат конфигурации см. ниже. - Вызов функции: вызовите функцию
replace_block:api/executeи передайте{storage:"{{storage}}"}. ReplaceBlock проверит конфигурацию и начнёт обход и замену с позиции выполнения команды в контексте команды. Например, чтобы заменить блоки с центром на командном блоке, введитеfunction replace_block:api/execute {storage:"{{storage}}"}в командном блоке; чтобы заменить блоки с центром на всех игроках, выполнитеexecute at @a run function replace_block:api/execute {storage:"{{storage}}"}(учтите, что изменение исполнителя команды черезasне влияет на API, который читает только позицию, обновлённую черезat); чтобы заменить блоки с центром на себе, введите/function replace_block:api/execute {storage:"{{storage}}"}в чате. - Возвращаемое значение: если один или несколько чанков были успешно заменены, функция
replace_block:api/executeвозвращает общее количество успешно заменённых блоков. Если замена блоков не была успешно выполнена из-за ошибки разбора конфигурации, незагруженного измерения, достижения предела радиуса обхода и т. д., функция возвращает fail.
Конфигурация
Ниже приведён полный список конфигурации, все пункты обязательны, ReplaceBlock не будет автоматически откатываться к какому-либо значению по умолчанию.
Некоторые строки будут развёрнуты в макрос-функции. Если предоставленное значение недопустимо, ReplaceBlock может вести себя некорректно, не обязательно выдавая явную ошибку.
Также см. пример в reset_settings.mcfunction.
Радиус замены:
- Путь:
{}.replace_block.search_range - Содержимое: расстояние обхода, при значении 1 — это 9 чанков с центром на позиции выполнения команды.
- Пример:
3
- Путь:
Порог успеха:
- Путь:
{}.replace_block.success_threshold - Содержимое: количество заменённых блоков, необходимое для того, чтобы одна или несколько замен чанков считались успешными. Если суммарное количество успешно заменённых блоков во всех блоках какого-либо чанка не достигает этого значения, обход продолжается к следующему чанку.
- Пример:
50
- Путь:
Список пар блоков для замены:
- target_block
- Путь:
{}.replace_block.replace_pairs[].target_block - Содержимое: пространство имён ID заменяемого блока
- Пример:
"stone" - replace_with
- Путь:
{}.replace_block.replace_pairs[].replace_with - Содержимое: пространство имён ID нового блока
- Пример:
"air"
Список измерений, в которых действует замена:
- dimension
- Путь:
{}.replace_block.dimensions[].dimension - Содержимое: пространство имён ID измерения, в котором действует замена
- Пример:
"minecraft:overworld" - min_y
- Путь:
{}.replace_block.dimensions[].min_y - Содержимое: минимальная высота, на которой действует замена; ошибка в конфигурации приведёт к сбою команды fill
- Пример:
-64 - max_y
- Путь:
{}.replace_block.dimensions[].max_y - Содержимое: максимальная высота, на которой действует замена; ошибка в конфигурации приведёт к сбою команды fill
- Пример:
319
Introduction
This datapack provides a powerful API that can replace blocks in the world after world generation in a completely vanilla way with high performance.
Features
This datapack traverses and replaces blocks chunk by chunk. Each call traverses outward from the current chunk until it successfully clears one chunk, or until it has traversed all loaded chunks in range. The traversal range is configurable, see below.
Usage
Below, {{storage}} is used as a placeholder for the namespaced ID of your command storage, for example test:test.
- Prepare the configuration: Store the API configuration in
{}.replace_blockof your command storage. You can call thereplace_block:api/reset_settingsfunction and pass{storage:"{{storage}}"}to generate a sample configuration. See below for the full configuration format. - Call the function: Call the
replace_block:api/executefunction and pass{storage:"{{storage}}"}. ReplaceBlock will check the configuration and start traversing and replacing from the command execution position in the command context. For example, to replace blocks centered on a command block, enterfunction replace_block:api/execute {storage:"{{storage}}"}in the command block; to replace blocks centered on all players, runexecute at @a run function replace_block:api/execute {storage:"{{storage}}"}(note that changing the executing entity withashas no effect on the API, which only reads the position updated byat); to replace blocks centered on yourself, enter/function replace_block:api/execute {storage:"{{storage}}"}in the chat. - Return value: If one or more chunks were successfully replaced, the
replace_block:api/executefunction returns the total number of blocks successfully replaced. If no block replacement was successfully performed due to a configuration parsing error, an unloaded dimension, the traversal range reaching its limit, etc., the function returns fail.
Настройка
Ниже приведён полный список параметров конфигурации. Ни один из них нельзя пропустить; ReplaceBlock не подставляет автоматически никакие значения по умолчанию.
Некоторые значения вставляются в макрос-функции. Если указать некорректное значение, ReplaceBlock может работать неправильно, возможно, без понятного сообщения об ошибке.
Также можно посмотреть пример в reset_settings.mcfunction.
Радиус поиска:
- Путь:
{}.replace_block.search_range - Описание: Дистанция обхода; значение 1 означает 9 чанков с центром в точке выполнения команды.
- Пример:
3
- Путь:
Порог успеха:
- Путь:
{}.replace_block.success_threshold - Описание: Количество замен блоков, необходимое для того, чтобы одна или несколько замен чанков считались успешными. Если общее число успешно заменённых блоков для всех пар блоков в чанке не достигает этого значения, обход продолжается к следующему чанку.
- Пример:
50
- Путь:
Список пар блоков для замены:
- target_block
- Путь:
{}.replace_block.replace_pairs[].target_block - Описание: ID с пространством имён блока, который нужно заменить
- Пример:
"stone" - replace_with
- Путь:
{}.replace_block.replace_pairs[].replace_with - Описание: ID с пространством имён нового блока
- Пример:
"air"
Список измерений, где действует замена:
- dimension
- Путь:
{}.replace_block.dimensions[].dimension - Описание: ID с пространством имён измерения, где действует замена
- Пример:
"minecraft:overworld" - min_y
- Путь:
{}.replace_block.dimensions[].min_y - Описание: Минимальная высота, на которой действует замена; неправильная конфигурация приведёт к сбою команды fill
- Пример:
-64 - max_y
- Путь:
{}.replace_block.dimensions[].max_y - Описание: Максимальная высота, на которой действует замена; неправильная конфигурация приведёт к сбою команды fill
- Пример:
319
Частые вопросы
Как установить ReplaceBlock?
Установите Fabric под свою версию Minecraft, скачайте ReplaceBlock под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть ReplaceBlock?
У ReplaceBlock есть сборки для Minecraft 1.20.3–26.3.
Нужен ли ReplaceBlock на сервере?
Нужен на сервере; в игре — по желанию