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

DimSwap

Состояние игрока для каждого измерения в NeoForge 1.21.1 — инвентарь, эндер-сундук, опыт, эффекты зелий, слоты Curios. Игроки автоматически меняют состояние при переходе между настроенными группами измерений. Работает на стороне сервера, установка на клиент не требуется.

NeoForge
Загрузчики
NeoForge
Скачиваний на Modrinth
324
Подписчиков на Modrinth
2
версия
1
Обновлён
27 мая 202627 мая
Опубликован
в 2026

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

Работает на NeoForge
Для Minecraft 1.21.1
Нужен на сервере; в игре — по желанию
Последняя версия — 1.0.0 от 27 мая 2026
Лицензия MIT — бесплатно
Где нужен
В игренеобязателенНа сервереобязателен

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

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

DimSwap

Изоляция состояния игрока по измерениям для NeoForge. Автоматически сохраняет и восстанавливает инвентарь, эндер-сундук, опыт, эффекты зелий, голод, режим игры, позицию и слоты Curios, когда игрок пересекает границу между настраиваемыми группами измерений. Создай творческий тестовый мир, который не может протечь в выживание — или хардкорную зону с собственной прогрессией, или измерение для мини-игр с собственным снаряжением — полностью на стороне сервера, без клиентских модов, без костылей с датапаками.

Зачем это нужно

В NeoForge нет поддерживаемого мода «инвентарь на измерение» для 1.21.1. В экосистемах Fabric/Paper такие есть (Multiverse-Inventories, инструменты рядом с EasyAuth), но на NeoForge ты либо поднимаешь второй серверный процесс, либо миришься с тем, что игроки в творческом режиме случайно закинут творческие предметы в мир выживания. DimSwap решает вторую проблему: он цепляется за EntityTravelToDimensionEvent, чтобы атомарно сохранить полное состояние игрока перед переходом, и за PlayerChangedDimensionEvent, чтобы атомарно восстановить состояние, назначенное группе пункта назначения. При первом посещении состояние очищается начисто, чтобы ничего не переносилось.

Возможности

  • Ванильное состояние: основной инвентарь + броня + вторая рука, эндер-сундук, уровни опыта, активные эффекты зелий, еда, запас воздуха, тики горения, режим игры, позиция
  • Слоты Curios (опциональная зависимость): джетпаки, рюкзаки, кольца — все слоты Curios сохраняются и восстанавливаются
  • Настраиваемость: какие поля менять, как сгруппированы измерения, какие команды открывать
  • Атомарность и защита: неудачное сохранение/восстановление защитно очищает состояние, чтобы предотвратить утечки; NBT на игрока хранит снимки изолированно
  • Пользовательские алиасы: определи /creative и /survival (или любое другое имя) как одноразовые команды телепортации со сменой состояния
  • Админ-инструменты: /dimswap status, `/dimswap reset , /dimswap reload`

Установка

  1. Положи dimswap-X.Y.Z.jar в папку mods/ твоего сервера.
  2. Опционально: также положи на клиент (нужно только если хочешь, чтобы команды автодополнялись на стороне клиента; геймплей работает только на сервере).
  3. Запусти сервер один раз, чтобы сгенерировался config/dimswap.json.
  4. Отредактируй конфиг, чтобы задать группы измерений (см. ниже).
  5. Перезагрузи через /dimswap reload или перезапусти сервер.

Зависимости

  • Обязательно: NeoForge 21.1+, Minecraft 1.21.1
  • Опционально: Curios 9.5+ — для сохранения/восстановления слотов Curios. Без Curios мод всё равно работает для ванильного состояния.

Конфигурация

config/dimswap.json:

{
  "groups": {
    "default":  ["minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"],
    "creative": ["dimswap_creative:flat"]
  },
  "save": {
    "enderChest": true,
    "xp": true,
    "effects": true,
    "food": true,
    "air": true,
    "fire": true,
    "health": false,
    "gamemode": true,
    "position": true,
    "curios": true
  },
  "aliases": [
    {"name": "creative", "dimension": "dimswap_creative:flat", "gamemode": "creative", "permissionLevel": 0},
    {"name": "survival", "dimension": "minecraft:overworld",   "gamemode": "survival", "permissionLevel": 0}
  ]
}

groups

Словарь имя группы → список ID измерений. Измерения в одной группе делят состояние. Измерения в разных группах имеют изолированное состояние. Любое измерение, не указанное в списке, попадает в группу default.

save

Переключатели того, какие поля состояния игрока менять. health: false (по умолчанию) оставляет игрока с текущим здоровьем при переходе — переключи на true, если хочешь здоровье на каждое измерение в хардкорном стиле.

aliases

Определяют команды-сокращения. Каждый алиас становится командой верхнего уровня (например, /creative), которая телепортирует игрока в целевое измерение с целевым режимом игры. permissionLevel: 0 означает, что использовать может любой; 2 — только для операторов.

Примечание: алиасы регистрируются при запуске сервера. Добавление/удаление алиасов требует перезапуска сервера. Изменения в groups и save применяются через /dimswap reload.

Команды

КомандаПраваОписание
`/dimswap go [gamemode]`op (2)Телепортироваться в измерение, опционально задать режим игры
/dimswap reloadop (2)Перезагрузить конфиг с диска
/dimswap status [player]op (2)Показать, для каких групп есть сохранённые снимки у игрока
`/dimswap reset `op (2)Стереть снимок игрока для группы
`/`настраиваетсяЗапустить настроенный алиас (например, /creative, /survival)

Оговорки и известные ограничения

  • Игрок должен быть ServerPlayer — сценарии только с клиентом или только со встроенным сервером не поддерживаются.
  • Езда на сущностях: когда игрок меняет измерение верхом, ванилла спешивает его перед переносом. DimSwap не сохраняет, «на чём он ехал».
  • Добавленные модами вложения вне Curios: если сторонний мод хранит состояние игрока в своём Data Attachment или capability, DimSwap его не захватывает. PR приветствуются для добавления слоёв совместимости под конкретные моды.
  • Память позиции восстанавливается только если сохранённое измерение совпадает с измерением назначения (проверка на всякий случай). Переход через портал между измерениями во время смены остаётся согласованным.
  • Первое посещение группы всегда очищает состояние — нет понятия «стартовое снаряжение» для группы. Используй отдельный мод с наборами или ванильную таблицу лута для снаряжения при первом посещении.

Сборка из исходников

./gradlew build
# Output: build/libs/dimswap-1.0.0.jar

Требуется JDK 21.

Лицензия

MIT — см. LICENSE.

Благодарности

Создан по необходимости для небольшого сервера выживания с модом Create, которому нужен был творческий тестовый мир без загрязнения инвентаря. Архитектура намеренно простая: событие сохранения, событие восстановления и NBT-хранилище на игрока.

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

Как установить DimSwap?

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

Для каких версий Minecraft есть DimSwap?

У DimSwap есть сборки для Minecraft 1.21.1.

Нужен ли DimSwap на сервере?

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

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

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