Не находится класс стороннего мода через mixin

Версия Minecraft
1.12.2
API
Forge

VeniVidiVici

Санта Барбарис
326
15
198
Создал mixin на класс ModelPartConfig из MorePlayerModels:
MixinModelPartConfig:
@Mixin(value = ModelPartConfig.class, remap = false)
public abstract class MixinModelPartConfig {
    @Inject(method = "setScale(FFF)V", at = @At(value = "HEAD"))
    public void scale(float x, float y, float z, CallbackInfo ci) {
        System.out.println("something to test");
    }
}

ModelPartConfig:
package noppes.mpm;

import net.minecraft.nbt.NBTTagCompound;

public class ModelPartConfig {
    public float scaleX = 1.0F;
    public float scaleY = 1.0F;
    public float scaleZ = 1.0F;
    public float transX = 0.0F;
    public float transY = 0.0F;
    public float transZ = 0.0F;
    public boolean notShared = false;

    public ModelPartConfig() {
    }

    public NBTTagCompound writeToNBT() {
        NBTTagCompound compound = new NBTTagCompound();
        compound.setFloat("ScaleX", this.scaleX);
        compound.setFloat("ScaleY", this.scaleY);
        compound.setFloat("ScaleZ", this.scaleZ);
        compound.setFloat("TransX", this.transX);
        compound.setFloat("TransY", this.transY);
        compound.setFloat("TransZ", this.transZ);
        compound.setBoolean("NotShared", this.notShared);
        return compound;
    }

    public void readFromNBT(NBTTagCompound compound) {
        this.scaleX = this.checkValue(compound.getFloat("ScaleX"), 0.5F, 1.5F);
        this.scaleY = this.checkValue(compound.getFloat("ScaleY"), 0.5F, 1.5F);
        this.scaleZ = this.checkValue(compound.getFloat("ScaleZ"), 0.5F, 1.5F);
        this.transX = this.checkValue(compound.getFloat("TransX"), -1.0F, 1.0F);
        this.transY = this.checkValue(compound.getFloat("TransY"), -1.0F, 1.0F);
        this.transZ = this.checkValue(compound.getFloat("TransZ"), -1.0F, 1.0F);
        this.notShared = compound.getBoolean("NotShared");
    }

    public String toString() {
        return "ScaleX: " + this.scaleX + " - ScaleY: " + this.scaleY + " - ScaleZ: " + this.scaleZ;
    }

    public void setScale(float x, float y, float z) {
        this.scaleX = x;
        this.scaleY = y;
        this.scaleZ = z;
    }

    public void setScale(float x, float y) {
        this.scaleZ = this.scaleX = x;
        this.scaleY = y;
    }

    public float checkValue(float given, float min, float max) {
        if (given < min) {
            return min;
        } else {
            return given > max ? max : given;
        }
    }

    public void setTranslate(float transX, float transY, float transZ) {
        this.transX = transX;
        this.transY = transY;
        this.transZ = transZ;
    }

    public void copyValues(ModelPartConfig config) {
        this.scaleX = config.scaleX;
        this.scaleY = config.scaleY;
        this.scaleZ = config.scaleZ;
        this.transX = config.transX;
        this.transY = config.transY;
        this.transZ = config.transZ;
    }
}

[17:14:39] [main/DEBUG] [mixin]: Adding new mixin transformer proxy #2
[17:14:39] [main/DEBUG] [FML]: Validating minecraft
[17:14:39] [main/DEBUG] [mixin]: Preparing mixins for MixinEnvironment[INIT]
[17:14:39] [main/DEBUG] [FML]: Minecraft validated, launching...
[17:14:39] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[17:14:39] [main/INFO] [LaunchWrapper]: Loading tweak class name org.spongepowered.asm.mixin.EnvironmentStateTweaker
[17:14:39] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[17:14:39] [main/INFO] [LaunchWrapper]: Calling tweak class org.spongepowered.asm.mixin.EnvironmentStateTweaker
[17:14:39] [main/DEBUG] [mixin]: Adding new mixin transformer proxy #3
[17:14:39] [main/DEBUG] [mixin]: Preparing mixins for MixinEnvironment[DEFAULT]
[17:14:39] [main/DEBUG] [mixin]: Selecting config mixins.resizer.json
[17:14:39] [main/DEBUG] [mixin]: Preparing mixins.resizer.json (1)
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Found name transformer: net.minecraftforge.fml.common.asm.transformers.DeobfuscationTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Rebuilding transformer delegation list:
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Found name transformer: net.minecraftforge.fml.common.asm.transformers.DeobfuscationTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: net.minecraftforge.fml.common.asm.transformers.PatchingTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Excluding: org.spongepowered.asm.mixin.transformer.Proxy
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: $wrapper.net.minecraftforge.fml.common.asm.transformers.SideTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Excluding: $wrapper.net.minecraftforge.fml.common.asm.transformers.EventSubscriptionTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: $wrapper.net.minecraftforge.fml.common.asm.transformers.EventSubscriberTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: $wrapper.net.minecraftforge.fml.common.asm.transformers.SoundEngineFixTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: net.minecraftforge.fml.common.asm.transformers.DeobfuscationTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: net.minecraftforge.fml.common.asm.transformers.AccessTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: net.minecraftforge.fml.common.asm.transformers.ModAccessTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: net.minecraftforge.fml.common.asm.transformers.ItemStackTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: net.minecraftforge.fml.common.asm.transformers.ItemBlockTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: net.minecraftforge.fml.common.asm.transformers.ItemBlockSpecialTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Adding: net.minecraftforge.fml.common.asm.transformers.PotionEffectTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Excluding: org.spongepowered.asm.mixin.transformer.Proxy
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Excluding: net.minecraftforge.fml.common.asm.transformers.TerminalTransformer
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Excluding: org.spongepowered.asm.mixin.transformer.Proxy
[17:14:39] [main/DEBUG] [org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper]: Transformer delegation list created with 11 entries
[17:14:39] [main/TRACE] [mixin]: Catching
java.lang.ClassNotFoundException: The specified class 'noppes.mpm.ModelPartConfig' was not found
at org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper.getClassBytes(MixinServiceLaunchWrapper.java:520) ~[MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.service.mojang.MixinServiceLaunchWrapper.getClassNode(MixinServiceLaunchWrapper.java:593) ~[MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.ClassInfo.forName(ClassInfo.java:2005) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinInfo.getTargetClass(MixinInfo.java:1017) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinInfo.readTargetClasses(MixinInfo.java:1007) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinInfo.parseTargets(MixinInfo.java:895) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinConfig.prepareMixins(MixinConfig.java:867) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinConfig.prepare(MixinConfig.java:775) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:539) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:462) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:438) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:290) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) [MixinBootstrap-1.1.0.jar:?]
at org.spongepowered.asm.mixin.transformer.Proxy.transform(Proxy.java:72) [MixinBootstrap-1.1.0.jar:?]
at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) [launchwrapper-1.12.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) [?:1.8.0_51]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [?:1.8.0_51]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_51]
at java.lang.Class.forName(Class.java:348) [?:1.8.0_51]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:131) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
[17:14:39] [main/WARN] [mixin]: Error loading class: noppes/mpm/ModelPartConfig (java.lang.ClassNotFoundException: The specified class 'noppes.mpm.ModelPartConfig' was not found)
[17:14:39] [main/TRACE] [mixin]: Added class metadata for noppes/mpm/ModelPartConfig to metadata cache
[17:14:39] [main/WARN] [mixin]: @Mixin target noppes.mpm.ModelPartConfig was not found mixins.resizer.json:MixinModelPartConfig

Игра запускается до меню, при входе в мир соответственно краш:
java.lang.NoClassDefFoundError: noppes/mpm/ModelPartConfig
at noppes.mpm.ModelDataShared.<init>(ModelDataShared.java:15)
at noppes.mpm.ModelData.<init>(ModelData.java:30)
at noppes.mpm.ServerEventHandler.attach(ServerEventHandler.java:146)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_32_ServerEventHandler_attach_AttachCapabilitiesEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:691)
at net.minecraftforge.event.ForgeEventFactory.gatherCapabilities(ForgeEventFactory.java:661)
at net.minecraft.entity.Entity.<init>(Entity.java:219)
at net.minecraft.entity.EntityLivingBase.<init>(EntityLivingBase.java:164)
at net.minecraft.entity.player.EntityPlayer.<init>(EntityPlayer.java:157)
at net.minecraft.entity.player.EntityPlayerMP.<init>(EntityPlayerMP.java:158)
at net.minecraft.server.management.PlayerList.func_148545_a(PlayerList.java:504)
at net.minecraft.server.network.NetHandlerLoginServer.func_147326_c(NetHandlerLoginServer.java:135)
at net.minecraft.server.network.NetHandlerLoginServer.func_73660_a(NetHandlerLoginServer.java:63)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:285)
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:180)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:790)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: noppes.mpm.ModelPartConfig
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 22 more
Caused by: java.lang.NullPointerException

Т.е. по какой-то причине у меня теряется класс, который я модифицирую миксином. Не понимаю почему это происходит
 
Стандартный mixin не умеет работать со сторонними модами.
Используй Grimoire или mixinBooter (или его аналоги)
Спасибо за направление, правда пока ни с тем ни с другим не получилось
 
Назад
Сверху