minecraft fabric modding:@Inject注解找不到任何匹配

问题描述

我正在参与存储玩家数据的 minecraft 魔法模组
我用 mixin 来制作零件

完成后,它在客户端上不起作用
但它在开发环境中仍然有效

我该如何解决

+ 此代码在我构建时不会出错

代码

package dev.bukgeuk.polarmagic.mixin

import ...

@Mixin(PlayerEntity::class)
abstract class PlayerEntityMixin(type: EntityType<LivingEntity>,world: World) : LivingEntity(type,world),PlayerEntityExt {
    private var maxManaAmount: Float? = null
    private var currentManaAmount: Float? = null
    private var magicLevel: Int? = null
    private var magicCurrentExp: Float? = null
    private var magicMaxExp: Float? = null

    ...

    @Inject(method = ["readCustomDataFromNbt"],at = [At("RETURN")])
    fun readCustomDataFromNbt(nbt: NbtCompound,ci: CallbackInfo) {
        magicLevel = nbt.getInt("magicLevel")

        magicCurrentExp = nbt.getFloat("magicCurrentExp")
        magicMaxExp = nbt.getFloat("magicMaxExp")

        currentManaAmount = nbt.getFloat("currentManaAmount")
        maxManaAmount = nbt.getFloat("maxManaAmount")

        println("read")
    }

    @Inject(method = ["writeCustomDataToNbt"],at = [At("RETURN")])
    fun writeCustomDataToNbt(nbt: NbtCompound,ci: CallbackInfo) {
        if (this.magicLevel != null)
            nbt.putInt("magicLevel",this.magicLevel!!)

        if (this.magicCurrentExp != null)
            nbt.putFloat("magicCurrentExp",this.magicCurrentExp!!)
        if (this.magicMaxExp != null)
            nbt.putFloat("magicMaxExp",this.magicMaxExp!!)

        if (this.currentManaAmount != null)
            nbt.putFloat("currentManaAmount",this.currentManaAmount!!)
        if (this.maxManaAmount != null)
            nbt.putFloat("maxManaAmount",this.maxManaAmount!!)

        println("write")
    }

    ...
}

错误日志:

[23:45:59] [main/INFO]: Loading for game minecraft 1.17.1
[23:45:59] [main/INFO]: [FabricLoader] Loading 61 mods:
    - fabric@0.37.0+1.17
    - fabric-api-base@0.3.0+a02b446318
    - fabric-api-lookup-api-v1@1.2.0+2b5c62d018
    - fabric-biome-api-v1@3.1.11+c345aea818
    - fabric-blockrenderlayer-v1@1.1.5+a02b446318
    - fabric-command-api-v1@1.1.2+6cefd57718
    - fabric-commands-v0@0.2.2+92519afa18
    - fabric-containers-v0@0.1.12+a02b446318
    - fabric-content-registries-v0@0.2.2+a02b446318
    - fabric-crash-report-info-v1@0.1.5+be9da31018
    - fabric-dimensions-v1@2.0.11+6cefd57718
    - fabric-entity-events-v1@1.1.0+a02b446318
    - fabric-events-interaction-v0@0.4.9+a722d8c018
    - fabric-events-lifecycle-v0@0.2.1+92519afa18
    - fabric-game-rule-api-v1@1.0.7+6cefd57718
    - fabric-item-api-v1@1.2.4+a02b446318
    - fabric-item-groups-v0@0.2.10+b7ab612118
    - fabric-key-binding-api-v1@1.0.4+a02b446318
    - fabric-keybindings-v0@0.2.2+36b77c3e18
    - fabric-language-kotlin@1.6.2+kotlin.1.5.20
    - fabric-lifecycle-events-v1@1.4.4+a02b446318
    - fabric-loot-tables-v1@1.0.4+a02b446318
    - fabric-mining-levels-v0@0.1.3+92519afa18
    - fabric-models-v0@0.3.0+a02b446318
    - fabric-networking-api-v1@1.0.12+6cefd57718
    - fabric-networking-blockentity-v0@0.2.11+a02b446318
    - fabric-networking-v0@0.3.2+92519afa18
    - fabric-object-builder-api-v1@1.10.9+b7ab612118
    - fabric-object-builders-v0@0.7.3+a02b446318
    - fabric-particles-v1@0.2.4+a02b446318
    - fabric-registry-sync-v0@0.7.10+e2961fee18
    - fabric-renderer-api-v1@0.4.4+5f02c96918
    - fabric-renderer-indigo@0.4.8+a02b446318
    - fabric-renderer-registries-v1@3.2.0+a02b446318
    - fabric-rendering-data-attachment-v1@0.1.5+a02b446318
    - fabric-rendering-fluids-v1@0.1.13+a02b446318
    - fabric-rendering-v0@1.1.2+92519afa18
    - fabric-rendering-v1@1.6.0+a02b446318
    - fabric-resource-loader-v0@0.4.7+b7ab612118
    - fabric-screen-api-v1@1.0.4+155f865c18
    - fabric-screen-handler-api-v1@1.1.8+a02b446318
    - fabric-structure-api-v1@1.1.12+6cefd57718
    - fabric-tag-extensions-v0@1.1.4+a02b446318
    - fabric-textures-v0@1.0.6+a02b446318
    - fabric-tool-attribute-api-v1@1.2.12+b7ab612118
    - fabric-transfer-api-v1@1.0.0+3fe3c3f518
    - fabricloader@0.11.6
    - jankson@3.0.1+j1.2.0
    - java@16
    - libgui@4.1.4+1.17.1
    - libninepatch@1.1.0
    - minecraft@1.17.1
    - org_jetbrains_kotlin_kotlin-reflect@1.5.20
    - org_jetbrains_kotlin_kotlin-stdlib@1.5.20
    - org_jetbrains_kotlin_kotlin-stdlib-jdk7@1.5.20
    - org_jetbrains_kotlin_kotlin-stdlib-jdk8@1.5.20
    - org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm@1.5.0
    - org_jetbrains_kotlinx_kotlinx-coroutines-jdk8@1.5.0
    - org_jetbrains_kotlinx_kotlinx-serialization-core-jvm@1.2.1
    - org_jetbrains_kotlinx_kotlinx-serialization-json-jvm@1.2.1
    - polarmagic@1.0.0
[23:45:59] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.2 Source=file:/C:/Users/bukgeuk/AppData/Roaming/.minecraft/libraries/net/fabricmc/sponge-mixin/0.9.4+mixin.0.8.2/sponge-mixin-0.9.4+mixin.0.8.2.jar Service=Knot/Fabric Env=CLIENT
[23:46:00] [main/INFO]: Compatibility level set to JAVA_16
[23:46:00] [main/WARN]: Reference map 'polarmagic-refmap.json' for polarmagic.mixins.json Could not be read. If this is a development environment you can ignore this message
[23:46:00] [main/WARN]: @Mixin target net/minecraft/class_2474$class_5124 is public in fabric-tag-extensions-v0.mixins.json:MixinObjectBuilder and should be specified in value
[23:46:01] [main/FATAL]: Mixin apply Failed polarmagic.mixins.json:PlayerEntityMixin -> net.minecraft.class_1657: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @Inject annotation on readCustomDataFromNbt Could not find any targets matching 'readCustomDataFromNbt' in net.minecraft.class_1657. No refMap loaded. [PREINJECT Applicator Phase -> polarmagic.mixins.json:PlayerEntityMixin -> Prepare Injections ->  -> handler$zff000$readCustomDataFromNbt(Lnet/minecraft/class_2487;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V -> Parse]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on readCustomDataFromNbt Could not find any targets matching 'readCustomDataFromNbt' in net.minecraft.class_1657. No refMap loaded. [PREINJECT Applicator Phase -> polarmagic.mixins.json:PlayerEntityMixin -> Prepare Injections ->  -> handler$zff000$readCustomDataFromNbt(Lnet/minecraft/class_2487;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V -> Parse]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.findMethods(InjectionInfo.java:572) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.readAnnotation(InjectionInfo.java:288) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:275) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:267) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.injection.struct.CallbackInjectionInfo.<init>(CallbackInjectionInfo.java:46) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at jdk.internal.reflect.GeneratedConstructorAccessor58.newInstance(UnkNown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
    at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo$InjectorEntry.create(InjectionInfo.java:140) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.parse(InjectionInfo.java:624) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1247) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1033) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:388) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:320) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178) ~[sponge-mixin-0.9.4+mixin.0.8.2.jar:0.9.4+mixin.0.8.2]
    at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23) ~[fabric-loader-0.11.6.jar:0.9.4+mixin.0.8.2]
    at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:162) ~[fabric-loader-0.11.6.jar:?]
    at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:154) ~[fabric-loader-0.11.6.jar:?]
    at java.lang.classLoader.loadClass(ClassLoader.java:519) ~[?:?]
    at net.minecraft.class_2246.<clinit>(class_2246.java:103) ~[intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at net.minecraft.class_3523.<clinit>(class_3523.java:13) ~[intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at net.minecraft.class_5471.<clinit>(class_5471.java:11) ~[intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at net.minecraft.class_5458.method_30573(class_5458.java:44) ~[intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at net.minecraft.class_5458.method_30566(class_5458.java:75) ~[intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at java.util.LinkedHashMap.forEach(LinkedHashMap.java:723) [?:?]
    at net.minecraft.class_5458.<clinit>(class_5458.java:74) [intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at net.minecraft.class_2378.<clinit>(class_2378.java:266) [intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at net.minecraft.class_2966.method_12851(class_2966.java:44) [intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at net.minecraft.client.main.Main.main(Main.java:139) [intermediary-fabric-loader-0.11.6-1.17.1.jar:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
    at net.fabricmc.loader.game.minecraftGameProvider.launch(minecraftGameProvider.java:234) [fabric-loader-0.11.6.jar:?]
    at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153) [fabric-loader-0.11.6.jar:?]
    at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28) [fabric-loader-0.11.6.jar:?]

完整代码https://github.com/Bukgeuk/PolarMagic

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...