Миксины для Чайников! Практика.

Миксины для Чайников! Практика.

39
8
5
Во-первых, никто не мешает требуемую версию(версии) мода указать в главном классе, во-вторых, для поиска файлов есть PathMatcher с регулярками. Способ, конечно, выглядит немного подозрительно, а как ещё может выглядеть попытка залезть в чужой жарник и всё переделать?)
 

GoogleTan

Картошка :3
1,354
43
310
Не подскажите, что оно хочет сказать этим:
Java:
[11дек2020 09:44:08.024] [Netty Local Client IO #0/WARN] [mixin/]: Mixin apply failed mixins.phoenix.json:MixinClientRecipeBook -> net.minecraft.client.util.ClientRecipeBook: org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException Mixin mixins.phoenix.json:MixinClientRecipeBook contains non-private static method getRecipeBookCategories(Lnet/minecraft/inventory/container/RecipeBookContainer;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V
org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException: Mixin mixins.phoenix.json:MixinClientRecipeBook contains non-private static method getRecipeBookCategories(Lnet/minecraft/inventory/container/RecipeBookContainer;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.checkMethodVisibility(MixinApplicatorStandard.java:1071) ~[mixin-0.8.2.jar:0.8.2+unknown-b0.git-unknown]
?
Код такой:
Java:
    @Inject(method = "func_216769_b", at = @At("HEAD"))
    public static void getRecipeBookCategories(RecipeBookContainer<?> p_216769_0_, CallbackInfoReturnable<List<RecipeBookCategories>> cir)
    {
        if (!(p_216769_0_ instanceof WorkbenchContainer) && !(p_216769_0_ instanceof PlayerContainer))
        {
            if (p_216769_0_ instanceof FurnaceContainer)
            {
                cir.setReturnValue(Lists.newArrayList(
                        RecipeBookCategories.FURNACE_SEARCH,
                        RecipeBookCategories.FURNACE_FOOD,
                        RecipeBookCategories.FURNACE_BLOCKS,
                        RecipeBookCategories.FURNACE_MISC));
            }
            else if (p_216769_0_ instanceof BlastFurnaceContainer)
            {
                cir.setReturnValue(Lists.newArrayList(
                        RecipeBookCategories.BLAST_FURNACE_SEARCH,
                        RecipeBookCategories.BLAST_FURNACE_BLOCKS,
                        RecipeBookCategories.BLAST_FURNACE_MISC));
            }
            else
            {
                cir.setReturnValue(p_216769_0_ instanceof SmokerContainer ?
                        Lists.newArrayList(RecipeBookCategories.SMOKER_SEARCH, RecipeBookCategories.SMOKER_FOOD) :
                        Lists.newArrayList());
            }
        }
        else
        {
            cir.setReturnValue(Lists.newArrayList(
                    RecipeBookCategories.SEARCH,
                    RecipeBookCategories.EQUIPMENT,
                    RecipeBookCategories.BUILDING_BLOCKS,
                    RecipeBookCategories.MISC,
                    RecipeBookCategories.REDSTONE,
                    BookCategories.MECHAMISMS));
        }
    }
Версия 1.15. Миксины 0.7-SNAPSHOT
А еще, что делать если надо передать this?
 
Последнее редактирование:
39
8
5
В миксине не должно быть статичных методов и полей с доступом выше приватного. Хз почему, но таковы правила. Ну а в твоём случае public и не нужен даже, меняй на private смело. Вопроса насчёт this не понял, просто в миксине прописываешь this и всё, вызов переходит к целевому классу.
 

GoogleTan

Картошка :3
1,354
43
310
А как заменять статичные методы?
 
Статье нужно уточнение, как грамотно добавить зависимость в jar. По примеру из репа, нужный таск не добавляет файл мапинга, да ещё и jar не обфусцируется и при попытке вызвать Minecraft.getMinecraft() получаю NoSuchMethodError.
Первое решилось добавлением:
градля:
reobf {
    shadowJar {}
}
Но вторую проблему это не решило.
Оказалось решило, надо было в IDEA "Invalidate caches" нажать🤦‍♂️.
 
Последнее редактирование:

Sainthozier

Стрелочник
623
11
369
Есть идеи на счёт того, как быть с совместимостью с другими модами?
В нужном мне классе, нужный мне метод один из популярных сторонних модов редиректит в своё русло, но мне тоже нужно редиректнуть в своё. Есть какой-то выход из подобной ситуации?
 

GoogleTan

Картошка :3
1,354
43
310
Не знаю будет ли работать, но попробуй сделать хук в его редирект.
 

Sainthozier

Стрелочник
623
11
369
Это первое, что я сделал. Такое мне не подходит
 
27
1
2
Возможно, что я не внимательный, но я не понял, как внедрять хуки в конструкторы классов. Прошу помочь.
И еще хотелось бы узнать, как получать ссылку на обьект целевого класса.
 
Последнее редактирование:
27
1
2
Т. е., это возможно только через создание обычного метода? Просто я хотел определять в нем константы.
 

GoogleTan

Картошка :3
1,354
43
310
А как можно хукаться в энум? Точнее в его эллемент.
 
27
1
2
И опять проблема:

"C:\Program Files\Java\jdk1.8.0_271\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:63219,suspend=y,server=n -Xincgc -Xmx2048M -Xms2048M -javaagent:C:\Users\MrFinger\.IdeaIC2018.3\system\groovyHotSwap\gragent.jar -javaagent:C:\Users\MrFinger\.IdeaIC2018.3\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_271\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_271\jre\lib\rt.jar;A:\MineModding\1.7.10\intellij\classes\production\com.yourname.modid.intellij.main;C:\Users\MrFinger\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.4.1614-1.7.10\forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\net.minecraft\launchwrapper\1.12\111e7bea9c968cdb3d06ef4632bf7ff0824d0f36\launchwrapper-1.12.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\1.3.9\40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf\jsr305-1.3.9.jar;C:\Users\MrFinger\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.4.1614-1.7.10\start;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm-debug-all\5.0.3\f9e364ae2a66ce2a543012a4668856e84e5dab74\asm-debug-all-5.0.3.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.typesafe.akka\akka-actor_2.11\2.3.3\ed62e9fc709ca0f2ff1a3220daa8b70a2870078e\akka-actor_2.11-2.3.3.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.typesafe\config\1.2.1\f771f71fdae3df231bcd54d5ca2d57f0bf93f467\config-1.2.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang\scala-actors-migration_2.11\1.1.0\dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f\scala-actors-migration_2.11-1.1.0.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang\scala-compiler\2.11.1\56ea2e6c025e0821f28d73ca271218b8dd04926a\scala-compiler-2.11.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang.plugins\scala-continuations-library_2.11\1.0.2\e517c53a7e9acd6b1668c5a35eccbaa3bab9aac\scala-continuations-library_2.11-1.0.2.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang.plugins\scala-continuations-plugin_2.11.1\1.0.2\f361a3283452c57fa30c1ee69448995de23c60f7\scala-continuations-plugin_2.11.1-1.0.2.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang\scala-library\2.11.1\e11da23da3eabab9f4777b9220e60d44c1aab6a\scala-library-2.11.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang\scala-parser-combinators_2.11\1.0.1\f05d7345bf5a58924f2837c6c1f4d73a938e1ff0\scala-parser-combinators_2.11-1.0.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang\scala-reflect\2.11.1\6580347e61cc7f8e802941e7fde40fa83b8badeb\scala-reflect-2.11.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang\scala-swing_2.11\1.0.1\b1cdd92bd47b1e1837139c1c53020e86bb9112ae\scala-swing_2.11-1.0.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang\scala-xml_2.11\1.0.2\7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0\scala-xml_2.11-1.0.2.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\net.sf.jopt-simple\jopt-simple\4.5\6065cc95c661255349c1d0756657be17c29a4fd3\jopt-simple-4.5.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\lzma\lzma\0.0.1\521616dc7487b42bef0e803bd2fa3faf668101d7\lzma-0.0.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.mojang\realms\1.3.5\807ae355ee63583becd7ea60e76aab1532bb42e\realms-1.3.5.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.8.1\a698750c16740fd5b3871425f4cb3bbaa87f529d\commons-compress-1.8.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpclient\4.3.3\18f4247ff4572a074444572cee34647c43e7c9c7\httpclient-4.3.3.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\commons-logging\commons-logging\1.1.3\f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f\commons-logging-1.1.3.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.apache.httpcomponents\httpcore\4.3.2\31fbbff1ddbf98f3aa7377c94d33b0447c646b6e\httpcore-4.3.2.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\java3d\vecmath\1.3.1\a0ae4f51da409fa0c20fa0ca59e6bbc9413ae71d\vecmath-1.3.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\net.sf.trove4j\trove4j\3.0.3\42ccaf4761f0dfdfa805c9e340d99a755907e2dd\trove4j-3.0.3.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.ibm.icu\icu4j-core-mojang\51.2\63d216a9311cca6be337c1e458e587f99d382b84\icu4j-core-mojang-51.2.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.paulscode\codecjorbis\20101023\c73b5636faf089d9f00e8732a829577de25237ee\codecjorbis-20101023.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.paulscode\codecwav\20101023\12f031cfe88fef5c1dd36c563c0a3a69bd7261da\codecwav-20101023.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.paulscode\libraryjavasound\20101123\5c5e304366f75f9eaa2e8cca546a1fb6109348b3\libraryjavasound-20101123.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.paulscode\librarylwjglopenal\20100824\73e80d0794c39665aec3f62eee88ca91676674ef\librarylwjglopenal-20100824.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.paulscode\soundsystem\20120107\419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6\soundsystem-20120107.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\io.netty\netty-all\4.0.10.Final\9e50bd52ffe257a0e2cd8d971688d6ce7d174325\netty-all-4.0.10.Final.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\17.0\9c6ef172e8de35fd8d4d8783e4821e57cdef7445\guava-17.0.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.3.2\90a3822c38ec8c996e84c16a3477ef632cbc87a3\commons-lang3-3.3.2.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\commons-io\commons-io\2.4\b1b6ea3b7e4aa4f492509a4952029cd8e48019ad\commons-io-2.4.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\commons-codec\commons-codec\1.9\9ce04e34240f674bc72680f8b843b1457383161a\commons-codec-1.9.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\net.java.jinput\jinput\2.0.5\39c7796b469a600f72380316f6b1f11db6c2c7c4\jinput-2.0.5.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\net.java.jutils\jutils\1.0.0\e12fe1fda814bd348c1579329c86943d2cd3c6a6\jutils-1.0.0.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.google.code.gson\gson\2.2.4\a60a5e993c98c864010053cb901b7eab25306568\gson-2.2.4.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\com.mojang\authlib\1.5.16\ef1582b11fd0943d069cdcb72e99008ac209a283\authlib-1.5.16.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.0-beta9\1dd66e68cccd907880229f9e2de1314bd13ff785\log4j-api-2.0-beta9.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.0-beta9\678861ba1b2e1fccb594bb0ca03114bb05da9695\log4j-core-2.0-beta9.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl\2.9.1\f58c5aabcef0e41718a564be9f8e412fff8db847\lwjgl-2.9.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl_util\2.9.1\290d7ba8a1bd9566f5ddf16ad06f09af5ec9b20e\lwjgl_util-2.9.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\tv.twitch\twitch\5.16\1f55f009c61637c10c0acfb8b5ffc600f30044b4\twitch-5.16.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang\scala-actors\2.11.0\8ccfb6541de179bb1c4d45cf414acee069b7f78b\scala-actors-2.11.0.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang.modules\scala-xml_2.11\1.0.2\820fbca7e524b530fdadc594c39d49a21ea0337e\scala-xml_2.11-1.0.2.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.scala-lang.modules\scala-parser-combinators_2.11\1.0.1\f05d7345bf5a58924f2837c6c1f4d73a938e1ff0\scala-parser-combinators_2.11-1.0.1.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\net.java.jinput\jinput-platform\2.0.5\7ff832a6eb9ab6a767f1ade2b548092d0fa64795\jinput-platform-2.0.5-natives-linux.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\net.java.jinput\jinput-platform\2.0.5\385ee093e01f587f30ee1c8a2ee7d408fd732e16\jinput-platform-2.0.5-natives-windows.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\net.java.jinput\jinput-platform\2.0.5\53f9c919f34d2ca9de8c51fc4e1e8282029a9232\jinput-platform-2.0.5-natives-osx.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\tv.twitch\twitch-platform\5.16\7c6affe439099806a4f552da14c42f9d643d8b23\twitch-platform-5.16-natives-windows-32.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\tv.twitch\twitch-platform\5.16\39d0c3d363735b4785598e0e7fbf8297c706a9f9\twitch-platform-5.16-natives-windows-64.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\tv.twitch\twitch-platform\5.16\62503ee712766cf77f97252e5902786fd834b8c5\twitch-platform-5.16-natives-osx.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\tv.twitch\twitch-external-platform\4.5\18215140f010c05b9f86ef6f0f8871954d2ccebf\twitch-external-platform-4.5-natives-windows-32.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\tv.twitch\twitch-external-platform\4.5\c3cde57891b935d41b6680a9c5e1502eeab76d86\twitch-external-platform-4.5-natives-windows-64.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl-platform\2.9.1\4c517eca808522457dd95ee8fc1fbcdbb602efbe\lwjgl-platform-2.9.1-natives-windows.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl-platform\2.9.1\aa9aae879af8eb378e22cfc64db56ec2ca9a44d1\lwjgl-platform-2.9.1-natives-linux.jar;C:\Users\MrFinger\.gradle\caches\modules-2\files-2.1\org.lwjgl.lwjgl\lwjgl-platform\2.9.1\2d12c83fdfbc04ecabf02c7bc8cc54d034f0daac\lwjgl-platform-2.9.1-natives-osx.jar;A:\MineModding\1.7.10\intellij\lib\CodeChickenCore-1.7.10-1.0.7.47-universal.jar;A:\MineModding\1.7.10\intellij\lib\CodeChickenLib-1.7.10-1.1.3.140-universal.jar;A:\MineModding\1.7.10\intellij\lib\NotEnoughItems-1.7.10-1.0.5.118-universal.jar;A:\MineModding\1.7.10\intellij\lib\_justMixins-0.7.11-1.7.10.jar;A:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.3.6\lib\idea_rt.jar" GradleStart --tweakClass org.spongepowered.asm.launch.MixinTweaker --mixin mixins.gothicgamemod.json
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
Connected to the target VM, address: '127.0.0.1:63219', transport: 'socket'
[11:34:39] [main/INFO] [GradleStart]: Extra: [--tweakClass, org.spongepowered.asm.launch.MixinTweaker, --mixin, mixins.gothicgamemod.json]
[11:34:39] [main/INFO] [GradleStart]: Found and added coremod: codechicken.core.launch.CodeChickenCorePlugin
[11:34:39] [main/INFO] [GradleStart]: Found and added coremod: codechicken.nei.asm.NEICorePlugin
[11:34:39] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/MrFinger/.gradle/caches/minecraft/assets, --assetIndex, 1.7.10, --accessToken, {REDACTED}, --version, 1.7.10, --tweakClass, cpw.mods.fml.common.launcher.FMLTweaker, --tweakClass, org.spongepowered.asm.launch.MixinTweaker, --mixin, mixins.gothicgamemod.json, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[11:34:39] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Loading tweak class name org.spongepowered.asm.launch.MixinTweaker
[11:34:39] [main/INFO] [mixin]: SpongePowered MIXIN Subsystem Version=0.7.10 Source=file:/A:/MineModding/1.7.10/intellij/lib/_justMixins-0.7.11-1.7.10.jar Service=LaunchWrapper Env=CLIENT
[11:34:39] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
[11:34:39] [main/INFO] [FML]: Forge Mod Loader version 7.99.40.1614 for Minecraft 1.7.10 loading
[11:34:39] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_271, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jdk1.8.0_271\jre
[11:34:39] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[11:34:39] [main/INFO] [FML]: Found a command line coremod : codechicken.nei.asm.NEICorePlugin
[11:34:39] [main/WARN] [FML]: The coremod codechicken.nei.asm.NEICorePlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft
[11:34:39] [main/INFO] [FML]: Found a command line coremod : codechicken.core.launch.CodeChickenCorePlugin
[11:34:39] [main/WARN] [FML]: The coremod codechicken.core.launch.CodeChickenCorePlugin does not have a MCVersion annotation, it may cause issues with this version of Minecraft
[11:34:39] [main/INFO] [LaunchWrapper]: Calling tweak class org.spongepowered.asm.launch.MixinTweaker
[11:34:39] [main/INFO] [mixin]: Compatibility level set to JAVA_8
[11:34:39] [main/INFO] [mixin]: Initialised Mixin FML Remapper Adapter with cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper@16ce702d
[11:34:39] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[11:34:39] [main/INFO] [GradleStart]: Injecting location in coremod cpw.mods.fml.relauncher.FMLCorePlugin
[11:34:39] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[11:34:39] [main/INFO] [GradleStart]: Injecting location in coremod codechicken.core.asm.MCPDeobfuscationTransformer.LoadPlugin
[11:34:39] [main/INFO] [GradleStart]: Injecting location in coremod codechicken.nei.asm.NEICorePlugin
[11:34:39] [main/INFO] [GradleStart]: Injecting location in coremod codechicken.core.launch.CodeChickenCorePlugin
[11:34:39] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Loading tweak class name org.spongepowered.asm.mixin.EnvironmentStateTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[11:34:39] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[11:34:40] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[11:34:40] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[11:34:40] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[11:34:40] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[11:34:41] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[11:34:41] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[11:34:41] [main/INFO] [LaunchWrapper]: Calling tweak class org.spongepowered.asm.mixin.EnvironmentStateTweaker
[11:34:41] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker
[11:34:41] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[11:34:41] [main/INFO] [GradleStart]: Remapping AccessTransformer rules...
[11:34:41] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.TerminalTweaker
[11:34:41] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.TerminalTweaker
[11:34:41] [main/WARN] [mixin]: Reference map 'mixins.gothicgamemod.refmap.json' for mixins.gothicgamemod.json could not be read. If this is a development environment you can ignore this message
[11:34:41] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[11:34:43] [main/INFO]: Setting user: Player560
[11:34:44] [main/ERROR] [LaunchWrapper]: Unable to launch
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_271]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_271]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_271]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?]
Caused by: java.lang.NoClassDefFoundError: mrfinger/gothicgamemod/mixin/GGMAttribute
at net.minecraft.entity.SharedMonsterAttributes.<clinit>(SharedMonsterAttributes.java:19) ~[SharedMonsterAttributes.class:?]
at net.minecraft.potion.Potion.<clinit>(Potion.java:25) ~[Potion.class:?]
at net.minecraft.potion.PotionHelper.<clinit>(PotionHelper.java:588) ~[PotionHelper.class:?]
at net.minecraft.item.Item.registerItems(Item.java:137) ~[Item.class:?]
at net.minecraft.init.Bootstrap.func_151354_b(Bootstrap.java:459) ~[Bootstrap.class:?]
at net.minecraft.client.Minecraft.<init>(Minecraft.java:323) ~[Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:141) ~[Main.class:?]
... 8 more
Caused by: java.lang.ClassNotFoundException: mrfinger.gothicgamemod.mixin.GGMAttribute
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101) ~[launchwrapper-1.12.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_271]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_271]
at net.minecraft.entity.SharedMonsterAttributes.<clinit>(SharedMonsterAttributes.java:19) ~[SharedMonsterAttributes.class:?]
at net.minecraft.potion.Potion.<clinit>(Potion.java:25) ~[Potion.class:?]
at net.minecraft.potion.PotionHelper.<clinit>(PotionHelper.java:588) ~[PotionHelper.class:?]
at net.minecraft.item.Item.registerItems(Item.java:137) ~[Item.class:?]
at net.minecraft.init.Bootstrap.func_151354_b(Bootstrap.java:459) ~[Bootstrap.class:?]
at net.minecraft.client.Minecraft.<init>(Minecraft.java:323) ~[Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:141) ~[Main.class:?]
... 8 more
Exception in thread "main" [11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable[imath]WrappedPrintStream:println:749]: cpw.mods.fml.relauncher.FMLSecurityManager[/imath]ExitTrappedException
[11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:749]: at cpw.mods.fml.relauncher.FMLSecurityManager.checkPermission(FMLSecurityManager.java:25)
[11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:749]: at java.lang.SecurityManager.checkExit(SecurityManager.java:761)
[11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:749]: at java.lang.Runtime.exit(Runtime.java:107)
[11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:749]: at java.lang.System.exit(System.java:971)
[11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:749]: at net.minecraft.launchwrapper.Launch.launch(Launch.java:138)
[11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:749]: at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:749]: at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
[11:34:44] [main/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:749]: at GradleStart.main(Unknown Source)
Disconnected from the target VM, address: '127.0.0.1:63219', transport: 'socket'

Process finished with exit code 1


У меня два класса-миксина. Класс лодер не может найти только второй миксин (Без него первый загружается нормально).

Сам миксин:
package mrfinger.gothicgamemod.mixin;

import mrfinger.gothicgamemod.entity.capability.attributes.IGGMAttribute;
import net.minecraft.entity.ai.attributes.BaseAttribute;
import net.minecraft.entity.ai.attributes.IAttribute;
import org.spongepowered.asm.mixin.Mixin;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

@Mixin(BaseAttribute.class)
public abstract class GGMAttribute implements IGGMAttribute {


    protected boolean haveDP;

    protected Map<IAttribute, Float> attributeModifiersMap;


    public GGMAttribute setHaveDP(boolean b) {
        this.haveDP = b;
        return this;
    }

    public GGMAttribute setBonus(IAttribute attribute, float mul) {

        if (this.attributeModifiersMap == null) this.attributeModifiersMap = new HashMap<>();
        this.attributeModifiersMap.put(attribute, mul);
        return this;
    }

    public boolean isHaveDP() {
        return haveDP;
    }

    public Map<IAttribute, Float> getAttributeModifiersMap() {
        return Collections.unmodifiableMap(this.attributeModifiersMap);
    }

}

Не понимаю, в чем проблема.

PS: форум заменяет : P на смайлик, версия майна 1.7.10.

PSS: с помощью инспектора Intellij нашел проблему: оказывается, в проекте нельзя вызывать классы миксинов напрямую, можно только кастить к соответствующим интерфейсам.
 
Последнее редактирование:

will0376

Токсичная личность
2,072
55
584
форум заменяет : P на смайлик, версия майна 1.7.10.
Ибо нехрен так делать. для логов существует hastebin.
можно только кастить к соответствующим интерфейсам
А тред мы читали жопой? (с)
вызов новых методов миксина явно прописывалось в примере
 
Сверху