HybridFix
Обеспечивает исправления багов, оптимизацию и набор утилит для серверного окружения Forge+Bukkit.
- Загрузчики
- Forge
- Скачиваний на Modrinth
- 3,1 тыс.
- Подписчиков на Modrinth
- 3
- версий
- 11
- Обновлён
- 20 февраля 202620 февр.
- Опубликован
- в 2024
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
HybridFix (混合修复)
Предоставляет набор исправлений багов, оптимизаций и утилит для серверных и клиентских сред Forge+Bukkit.
Исправленные проблемы
Forge-Bukkit
- Плагины Bukkit не могут обрабатывать некоторые взрывы от модов (например, EFLN из Tinkers' Construct)
- Мост некоторых событий Forge в Bukkit
Forge
- (Универсально) Исправление попыток Forge JarDiscoverer прочитать
module-info.classи другие multi-release классы. - (Сервер) Исправление отображения
Outdated serverв пинге до полной загрузки сервера.
Моды
Общие
- Замена хрупких asm-трансформеров Quark на миксины
- Исправление управления ИИ Swet из Aether Legacy
Клиент
- Замена дорогостоящего использования рефлексии в Industrial Craft 2 на прямые вызовы
Сервер
- Жажда в Simple Difficulty, ToughAsNails (и любых других похожих модах) не сбрасывается при возрождении игрока(Luohuayu/CatServer#536)(MohistMC/Mohist#2905)
- Баг дюпа через кольцо в моде The Betweenlands(Luohuayu/CatServer#204)
- Симуляция ванильного возрождения игрока, большинство багов дюпа при смерти игрока должны быть исправлены
- Исправление бага, когда саженцы Twilight Forest могут обходить защиту анти-грифер плагинов
- Исправление бага, когда сущности Twilight Forest (например, Нага) могут ломать блоки в защищённых зонах
- Исправление бага, когда Twilight Forest Chain with Block может ломать блоки в защищённых зонах
- Исправление бага, когда порча Thaumcraft 6 может распространяться в защищённые зоны
- Исправление бага, когда флюкс-разлом Thaumcraft 6 может ломать блоки в защищённых зонах
- Исправление бага, когда эффекты черт в Tinkers' Construct могут обходить защиту от урона
- Исправление бага, когда So Many Enchantments может обезоруживать игроков в защищённых зонах
- Исправление бага, когда Ring of Loki из Botania может обходить защиту от гриферства
- Исправление бага, когда MineLens из Botania может обходить защиту от гриферства
- Исправление бага, когда Rannuncarpus из Botania может обходить защиту от гриферства
- Исправление бага, когда майнеры Industrial Craft 2 могут ломать блоки в защищённых зонах
- Исправление бага, когда взрывчатка Industrial Craft 2 может ломать блоки в защищённых зонах
- Исправление бага, когда ChaosCrystal из Draconic Evolution может ломать блоки в защищённых зонах
- Исправление бага, когда взрывы TechReborn (RebornCore) могут ломать блоки в защищённых зонах
- Предоставление событий для Applied Energistics 2 Spatial Pylon для предотвращения несанкционированного гриферства
- Исправление бага, когда взрывы TechGuns могут ломать блоки в защищённых зонах
- Добавление чёрного/белого списка сущностей для Applied Energistics 2 Spatial Pylon
- Исправление бага, когда паутина InfernalMobs может появляться в защищённых зонах
- Исправление бага, когда ИИ мобов EpicSiegeMod могут гриферить в защищённых зонах
- Отключение рецепта Blackhole Controller (устаревший) в Industrial Foregoing
- Исправление бага, когда заклинания Witchery могут обходить защиту от урона
- Автоматическое изменение конфига Actually Additions для соответствия серверной среде
- Предотвращение добычи тайл-сущностей Mekanism Digital Miner
Возможности
- Автоматическая замена убогой встроенной обработки взрывов Mohist на наш собственный метод.
- Мост обработки прав Forge в Bukkit.
- Пропуск вызова события, если нет зарегистрированных слушателей.
- Отключение Timings для снижения накладных расходов на производительность.
- Совместимость в первую очередь, не должно ломать какие-либо моды/плагины.
- Встроенный плагин Bukkit в мод, предоставляет утилиты для владельцев серверов.
- Улучшенная совместимость с модовыми FakePlayers.
- Предоставление более или менее полезных api для разработчиков плагинов для лёгкого взаимодействия с модами Forge.
- Обширные API для разработчиков модов для лёгкого поддержания совместимости с гибридными серверами.
- Общие улучшения производительности CraftBukkit.
- Автоматическая деобфускация стектрейсов плагинов при установленном Censored ASM для упрощения отладки.
- Кросс-доступ ClassLoader, позволяющий модам Forge легко взаимодействовать с плагинами Bukkit. (Подробности)
- API Bukkit, портированные из современных версий.
- Встроенный ASM-патчер плагинов, совместимый с вашими любимыми плагинами.
- Поддержка миксинов плагинов Bukkit, позволяющая внедрять код в плагины через моды. (Экспериментально) (Документация)
- Расширение системы восстановления после ошибок Forge (
removeErroringEntitiesиremoveErroringTileEntities), уведомление операторов сервера при возникновении ошибок. - Защита процесса тика игрока, кик игрока вместо прямого краша.
- Исправление багов Forge, влияющих на игровой опыт на сервере.
- (Универсально) Оптимизация ИИ сущностей для более быстрого поиска ближайшей цели.
Файл конфигурации находится по пути ${minecraftDir}/config/hybridfix.cfg
Как установить (администраторам серверов)
Скачайте HybridFix и его зависимости (MixinBooter и ConfigAnyTime) с CurseForge, поместите HybridFix в папку ${minecraftDir}/mods.
HybridFix также можно установить на клиент — часть клиентских исправлений и оптимизаций будет применена.
Как использовать (разработчикам)
Если вы разрабатываете моды, вы можете подключить HybridFix из curse maven:
Gradle (Groovy DSL):
implementation fg.deobf("curse.maven:hybridfix-1166614:{latest_artifact_id}")Если вы разрабатываете плагины, вы можете подключить jar HybridFix напрямую:
Maven:
<dependency>
<groupId>io.wdsj</groupId>
<artifactId>hybridfix</artifactId>
<version>{latest_version}</version>
<scope>system</scope>
<systemPath>PATH-TO-JAR</systemPath>
</dependency>Gradle (Groovy DSL):
compileOnly files("PATH-TO-JAR")API находятся в пакетах io.wdsj.hybridfix.api и io.wdsj.hybridfix.duck.api.
Хуки для плагинов
Благодаря внутреннему плагину HybridFix мы можем подключаться к плагинам со стороны Forge, чтобы обеспечить больше исправлений.
Плагины, для которых уже есть патчи:
- Residence(SpigotMC)(GitHub)
- WorldGuard(BukkitDev)(GitHub)
- Citizens(GitHub)
ASM-патчер для плагинов
HybridFix использует ASM для динамического внедрения в классы плагинов во время выполнения, чтобы решить проблемы совместимости плагинов со средой Forge+Bukkit.
Поддерживаемые на данный момент плагины:
- Residence: исправляет совместимость с Residence 6.0.0.0+.
- Universal: перенаправляет вызов INVOKEINTERFACE InventoryView на INVOKEVIRTUAL.
О FakePlayers
HybridFix использует Forge FakePlayer для исправления некоторых багов с гриферством, логика именования — [modid-ClassName].
Например, патч для rannuncarpus из botania использует фейкового игрока с именем [botania-SubTileRannuncarpus].
Вы можете добавить эти имена в whitelist/blacklist ваших плагинов, чтобы настроить поведение.
Команды
/hybridfix dumpitem— показать подробности предмета в руке./hybridfix dumpentity— показать подробности сущности, на которую вы смотрите./hybridfix dumpblock— показать подробности блока, на который вы смотрите./hybridfix version— показать информацию о версии./hybridfix eraseentity— принудительно удалить сущность, на которую вы смотрите./mods— как/plugins, показывает все загруженные моды.
Права
hybridfix.command.use— разрешает доступ к команде/hybridfix.hybridfix.command.eraseentity.use— разрешает доступ к команде/hybridfix eraseentity.hybridfix.command.mods.use— разрешает доступ к команде/mods.
Примечание: команды и права регистрируются на стороне Bukkit, то есть вы можете управлять правами через плагины прав для Bukkit, например LuckPerms.
Лицензия
Этот мод распространяется под лицензией LGPL-2.1.
Портированные классы Bukkit распространяются под лицензией GPL-3.0.
Если в коде явно не указано иное, остальные части распространяются под LGPL-2.1.
Урезанный CraftBukkit JAR с ремапом MCP в репозитории предназначен только для разработки и не входит в релизы.
Частые вопросы
Как установить HybridFix?
Установите Forge под свою версию Minecraft, скачайте HybridFix под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть HybridFix?
У HybridFix есть сборки для Minecraft 1.12.2.
Нужен ли HybridFix на сервере?
Ставится только на сервер; игрокам ставить не нужно