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

Create: Re-Packager Fix

Исправляет эксплойт дублирования в Re-Packager из Create.

от SOLR98
NeoForgeForge
Загрузчики
NeoForgeForge
Скачиваний на Modrinth
637
Подписчиков на Modrinth
2
версии
4
Обновлён
13 сентября 202613 сент.
Опубликован
в 2026

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

Работает на NeoForge и Forge
Для Minecraft 1.20.1, 1.21.1
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 1.1.0 от 13 сентября 2026
Лицензия MIT — бесплатно
Где нужен
В игрене нуженНа сервереобязателен

Ставится только на сервер; игрокам ставить не нужно

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

Create: Re-Packager Fix

Серверный фикс-мод для Create, исправляющий эксплойт дублирования в Re-Packager. Когда фрагментированный пакет содержит недостаточно предметов для выполнения крафтов своего заказа, Re-Packager всё равно создаёт запись пакета с количеством 0 — которую логика вывода упаковщика затем выбрасывает как настоящий физический пакет, содержащий полную копию материалов рецепта, что позволяет злоумышленникам бесконечно дублировать материалы рецептов. Этот мод патчит PackageRepackageHelper.repackBasedOnRecipes через Mixin, устраняя дублирование в корне без влияния на обычное поведение упаковки.

Уязвимость

Затронутые версии: Create 6.0.8 (1.20.1), 6.0.10 (1.21.1) и порты Create Fly (1.21.11 / 26.2).

  • Схемы крафта, настроенные на Factory Gauge, не проверяются на наличие предметов в инвентаре — материалы рецепта не обязаны совпадать с запрошенными предметами (Create проверяет это соответствие только в пути Redstone Requester; в пути Factory Gauge эта проверка полностью отсутствует).
  • Когда предметов недостаточно, repackBasedOnRecipes всё равно создаёт запись пакета с packagesToCreate == 0.
  • (Корень проблемы) Логика вывода упаковщика PackagerBlockEntity.tick() копирует пакет до проверки его количества (heldBox = entry.stack.copy() идёт перед count--), поэтому пакет с количеством 0 выбрасывается как настоящий — пустой инвентарь создаёт из воздуха пакет с полным набором материалов рецепта, что бесконечно эксплуатируется через повторяющиеся запросы пополнения Factory Gauge. Связанные issue в апстриме (все ещё открыты): #8082, #8046, #8155. Коммит апстрима 3e662789 исправил лишь вариант с превышением количества материалов рецепта (copyWithCount(1)); основной дефект остаётся неисправленным.

Исправление

Mixin-патч на PackageRepackageHelper.repackBasedOnRecipes с двухфазной проверкой:

  1. Сначала проверка — убедиться, что все материалы рецепта доступны (точное совпадение по NBT); если чего-то не хватает, прервать весь цикл, ничего не расходуя.
  2. Потом списание — только после подтверждения наличия всего необходимого равномерно вычесть предметы из инвентаря; без частичного расхода, так что игроки никогда не теряют вложенные материалы.
  3. Защита от нулевого количества — когда packagesToCreate == 0 (инвентарь не поддерживает даже один крафт), пакет не создаётся. Всё обычное поведение (достаточный запас, заказы с несколькими рецептами и т. д.) остаётся полностью идентичным ванильному.

Возможности

  • Только серверная сторона — клиенты могут подключаться без установки мода
  • Не влияет на обычную упаковку / переупаковку
  • Материалы возвращаются (через обычную переупаковку), а не пропадают при частичной нехватке
  • Совместим с другими фикс-модами

Проверка

Скормите Re-Packager аномальный пакет (пустой инвентарь + заказ на крафт, требующий 64 крафта):

  • Без этого мода: выводится 1 пакет с полным набором материалов рецепта (дублирование)
  • С этим модом: выводится 0 пакетов (исправлено) Команды для тестовых пакетов описаны в TEST_PACKAGES.md в репозитории.

Частые вопросы

Как установить Create: Re-Packager Fix?

Установите NeoForge под свою версию Minecraft, скачайте Create: Re-Packager Fix под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Create: Re-Packager Fix?

У Create: Re-Packager Fix есть сборки для Minecraft 1.20.1, 1.21.1.

Нужен ли Create: Re-Packager Fix на сервере?

Ставится только на сервер; игрокам ставить не нужно

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

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