- Версия(и) Minecraft
- 1.7.10; 1.12.2
История:
Как-то раз меня @YJOX спросил, не хочу-ли я писать фиксы и выставляя их на продажу... После бессонной ночи я накидал(скорее высрал) список требований к к этому делу:
А сегодня я представляю это самое дело вам:
Вступление:
FixLoader - (как понятно из названия) это загрузчик фиксов, которые были собраны в 1 файле с расширением *.modfix.
1 modfix-файл включает в себя:
Установка FL**:
** в контексте этой категории - речь будет идти об установки на клиент/сервер.
Про установку среды для написания непосредственно фиксов я напишу позже.
Я решил вынести в отдельную тему, поскольку она огромная...
Некоторые минусы:
Я - человек, и осознаю, что у всего есть свои недостатки. Поэтому считаю нужным перечислить известные на данный момент:
Благодарности:
@YJOX за идею
@Aizistral за ревью одной из первых версий и Grimoire
@ABI за тесты первых версий ( ͡° ͜ʖ ͡°)
Тестовые файлы:
* 1.7.10
Клиент - 2.3 KB file on MEGA
Сервер - 1.3 KB file on MEGA
*1.12.2
Клиент - 1.3 KB file on MEGA
Сервер - 1.5 KB file on MEGA
На заметку: это мой первый раз, когда я представляю что-то публике. Поэтому ожидаю адекватной критики и постараюсь на неё ответить не менее адекватно ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)
Как-то раз меня @YJOX спросил, не хочу-ли я писать фиксы и выставляя их на продажу... После бессонной ночи я накидал
- Никаких изменений в jar-файлах напрямую (имхо - костыльно)
- Каждый фикс - отдельный "модуль"
- Должна быть возможность писать эвенты/конфиги/утилсы к этим фиксам
- Установка загрузчика и фиксов без особого напряга
А сегодня я представляю это самое дело вам:
Вступление:
FixLoader - (как понятно из названия) это загрузчик фиксов, которые были собраны в 1 файле с расширением *.modfix.
1 modfix-файл включает в себя:
- Классы-миксины
- Классы-акцепторы
- Классы-эвенты
- Классы-конфиги
- Утилитарные классы
- За счет использования Grimoire - никакого вмешательства в jar-файлы, только миксины. Только хардкор.
- Из-за использования парадигмы "отдельный фикс - отдельный файл" можно выбирать только нужное для использования
- Для нового фикса достаточно пометить нужные классы аннотацией @Fix и указать параметры в ней
- Нет нужды ручками обновлять версию фикса, автоинкремент при билде в комплекте.
- Возможность использовать разные конфиги при билде для различных сред разработки
- Можно писать миксины как для ванили, так и для модов
Установка FL**:
** в контексте этой категории - речь будет идти об установки на клиент/сервер.
Про установку среды для написания непосредственно фиксов я напишу позже.
- Скачать Grimoire нужной версии > Releases · CrucibleMC/Grimoire
- Скачать FixLoader так-же нужной версии > FixLoaders
- Засунуть всё из п.1 и п.2 в /mods папку
Установка фиксов - Достаточно закинуть нужный .modfix в /Modfixer папку
!!!ДЛЯ ОСОБЕННЫХ - НЕ РАСПАКОВЫВАЯ!!!
Написание фиксов: !!!ДЛЯ ОСОБЕННЫХ - НЕ РАСПАКОВЫВАЯ!!!
Я решил вынести в отдельную тему, поскольку она огромная...
FixLoader - Установка среды
Доброе времени суток всем! Вчера я выставил на публику свой отдельный загрузчик для фиксов. Теперь пришло время для описания установки среды, которое я обещал. Итак: Сразу несколько моментов: Я использую Intellij IDEA для разработки. Я использую Minecraft Development плагин для IDEA...
forum.mcmodding.ru
Некоторые минусы:
Я - человек, и осознаю, что у всего есть свои недостатки. Поэтому считаю нужным перечислить известные на данный момент:
- В данный момент нет возможности использовать рефмапу (начиная нерабочей генерацией рефмап в идее* заканчивая моей ленью)
- Кому-то п.3 из вступления может показаться минусом... Но имхо, под каждый проект проще создавать отдельную среду (я же собираюсь продавать фиксы)...
- Нет JavaDoc'ов. Когда-нибудь в будущем напишу.
Благодарности:
@YJOX за идею
@Aizistral за ревью одной из первых версий и Grimoire
@ABI за тесты первых версий ( ͡° ͜ʖ ͡°)
Тестовые файлы:
* 1.7.10
Клиент - 2.3 KB file on MEGA
Сервер - 1.3 KB file on MEGA
*1.12.2
Клиент - 1.3 KB file on MEGA
Сервер - 1.5 KB file on MEGA
На заметку: это мой первый раз, когда я представляю что-то публике. Поэтому ожидаю адекватной критики и постараюсь на неё ответить не менее адекватно ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)