Перейти к содержимому

ReplaceBlock

Этот датапак предоставляет мощный API, позволяющий заменять блоки в мире после генерации мира полностью ванильным способом с высокой производительностью.

FabricNeoForgeForgeQuilt
Загрузчики
FabricNeoForgeForgeQuilt
Скачиваний на Modrinth
981
Подписчиков на Modrinth
2
версий
12
Обновлён
21 сентября 202621 сент.
Опубликован
в 2025
Это библиотека — она нужна другим модам и сама ничего не добавляет в игру

Коротко о моде

Библиотека — нужна другим модам
Работает на Fabric, NeoForge, Forge и Quilt
Для Minecraft 1.20.3–26.3
Нужен на сервере; в игре — по желанию
Последняя версия — 2.0.0+mod от 21 сентября 2026
Лицензия GPL-3.0-or-later — бесплатно
Где нужен
В игренеобязателенНа сервереобязателен

Нужен на сервере; в игре — по желанию

Версии игры1.20.3–26.3
Описание переведено автоматическиПоказать оригинал (EN)

[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_block of your command storage. You can call the replace_block:api/reset_settings function and pass {storage:"{{storage}}"} to generate a sample configuration. See below for the full configuration format.
  • Call the function: Call the replace_block:api/execute function 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, enter function replace_block:api/execute {storage:"{{storage}}"} in the command block; to replace blocks centered on all players, run execute at @a run function replace_block:api/execute {storage:"{{storage}}"} (note that changing the executing entity with as has no effect on the API, which only reads the position updated by at); 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/execute function 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 на сервере?

Нужен на сервере; в игре — по желанию

Лицензия и источник
GNU General Public License v3.0 or laterможно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее