Code Monkey home page Code Monkey logo

mixin-booter-legacy's Introduction

mixin-booter-legacy

Allows any mixins that work on mods to work effortlessly.
Unofficial port of MixinBooter for Minecraft 1.7.10.
MixinBooter 1.12.2 - https://github.com/LoliKingdom/MixinBooter

For Users:

Download mod from CurseForge and put jar to your mods directory.

For Developers:

apply from: 'https://raw.githubusercontent.com/tox1cozZ/mixin-booter-legacy/master/gradle/configurations/v1.gradle'

mixin {
    // Set custom refmap name. By default using project name
    // mixinRefMapName = 'mixin.custom.refmap.json'
}

mixin-booter-legacy's People

Contributors

mts2200 avatar tox1cozz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

metalabsmc

mixin-booter-legacy's Issues

Rename jar to come first alphabetically

Currently the mod doesn't work well with mods that embed Mixin 0.7, such as Et Futurum Requiem, Satchels, Serene Seasons and ForgeEssentials. This happens for two reasons:

  1. Their mixin config plugins reference Mixin 0.7's shaded ASM package names (e.g. org.spongepowered.asm.lib.tree.ClassNode) which are no longer present in Mixin 0.8 [note from the future: Actually this seems to not be an issue as long as the mods don't actually use the class (and they don't), since Mixin 0.8 has a dummy ClassNode class.]
  2. They may get loaded before MixinBooterLegacy, causing Mixin 0.7 to be initialized instead of 0.8, breaking any mod that depends on the latter (such as Triangulator when MixinBooterLegacy is present).

FalsePatternLib fixes issue 1 by transforming the config plugins of all mods that use Mixin 0.7 to use the new package names. However, fixing issue 2 requires a change from MixinBooterLegacy's side.

Fortunately, it's a simple change. Since Forge loads jars in alphabetical order, the jar simply has to be renamed so that it comes before other mods alphabetically. Several other mixin bootstrap mods employ this trick:

Personally, I would recommend using ! for consistency with MixinBooter.

By the way, we are working on releasing versions of our mods without embedded Mixin, but we can't expect every mod to do this.

Падение сборки при отсутствии миксинов

Если проект не содержит никаких миксинов (не проверил: либо не содержит миксины требующие ремап), то во время чистой сборки все упадет на таске reobf с исключением "не могу найти файл рефмап.srg". Если же миксины есть, то сборка будет падать до тех пор, пока она не будет запущена с параметром --rerun-tasks.

Воспроизведение:

  1. Проект с миксинами.
  2. ./gradlew clean build // Если добавить --rerun-tasks, билд пройдет удачно.

Либо:

  1. Проект без миксинов.
  2. ./gradlew clean build // Тут и --rerun-tasks не поможет.

Вот как все это выглядит билд на примере моего проекта:
Удачный билд - ./gradlew clean build --rerun-tasks
Неудачный билд - ./gradlew clean build

Скорее всего, файл просто не создается в случае, когда нет миксинов или нет необходимости что-то рефмарить. Но этот файл всегда применяется к reobf таску, из-за чего он падает при попытке его прочесть.

Как вариант решения (проблема походу на стороне миксинов, а не твоей обертки) - создание пустого файла-заглушки, чтобы таск не падал. Он ничего не сломает и будет перезаписан в случае появления валидного. Но это не решает проблему с --rerun-tasks.


Разобрался зачем просится --rerun-tasks: compileJava, где создается рефмап, скипается даже после clean.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.