3 downloads


Description:
The Possession Ghost is a fragile(gets killed in one blow), glowing specter that drifts silently through the night and, upon touching you, vanishes into your body—forcing you to attack peaceful creatures(and you lose all control of your character). Once it locks on to a target you won’t stop until the prey is gone or you wander too far, and when no prey is in sight you roam aimlessly like any wandering mob. A player only gets freed once they die in one way or another(or you clear it with /effect clear).
Manage versions and create new iterations of this mod.
This will create a new mod based on "Possession Ghost" with your modifications. The original mod will remain unchanged and you'll be credited as the author of the remix.
3
Sep 24, 2025, 08:40 PM
User request: Mod: Possession Ghost (id: possession-ghost-hxlpp4s2) - Visual: zombie-like entity with appearance tag "Ghost". - Original core feature: ghost can possess players, making them act like hostile mobs with no player control. Edit v2 — Possession rework: - Possessed player forced to behave like a hostile mob: - Attacks passive mobs. - Hostile mobs will NOT target the possessed player unless the possessed player hits that hostile mob. - Exception: indirect hits (e.g., a skeleton arrow that misses original target and hits the possessed player) cause that hostile mob to start targeting the possessed player. - Ghost HP changed to 1 HP so players can kill it before possession if they see it approaching. - Ghost movement: flies/swoops toward the player at roughly a zombie's walk speed. Edit v3 — Health, hit detection, and possession behavior refinements: - Ghost health set to 0.1 (very low). - Hit detector added that kills the ghost on detection of any hit — guarantees one-hit kill. - Possession effect: - Persists until the possessed player dies (no timeout). - Possessed player is given full hostile-mob AI (movement and attack behavior). - Player input is disabled (keyboard keys and mouse disabled while possessed). - Forced facing: possessed player is forced to face their target. - Safety: input-disabling must include a cancelable check to avoid crashes. Edit v4 — Crash report 1 (Mixin/injection failure) and fix request: - Failure summary: Runtime failure at bootstrap: java.lang.BootstrapMethodError caused by Mixin transformation failure for net.minecraft.class_304. - Exception chain: MixinTransformerError -> MixinApplyError -> InvalidInjectionException. - Specific failing mixin/injection: - Mixin config: possession_ghost_hxlpp4s2.mixins.json - Failing mixin class: KeyBindingBlockMixin (from possession-ghost-hxlpp4s2) - Failing injection: @Inject on possession_ghost$blockIsPressed could not find targets matching method name 'isPressed' in net/minecraft/class_304. - Injection handler signature referenced: handler$zph000$possession-ghost-hxlpp4s2$possession_ghost$blockIsPressed(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V - Refmap: possession_ghost_hxlpp4s2.refmap.json - Stacktrace fragments / files referenced: knot//net.minecraft.class_10530.<clinit>, KnotClassDelegate.getPostMixinClassByteArray, MixinProcessor.applyMixins. - Actionable detail: mixin @Inject targets a method ('isPressed' in net/minecraft/class_304) that does not exist in this Minecraft version/mapping -> InvalidInjectionException during Prepare Injections. Edit v5 — Crash report 2 (different mixin/injection failure) and fix request: - Failure summary: java.lang.RuntimeException: Mixin transformation of net.minecraft.class_312 failed during game initialization. - Exception chain: MixinTransformerError -> MixinApplyError -> InvalidInjectionException. - Specific failing mixin/injection: - Mixin config: possession_ghost_hxlpp4s2.mixins.json - Failing mixin: MouseBlockMixin (from possession_ghost_hxlpp4s2.mixins.json) - Failing injection: @Inject on possession_ghost$blockCursor could not find targets matching 'onCursorPos' in net/minecraft/class_312. - Injection context/handler signature shown: handler$zpi000$possession-ghost-hxlpp4s2$possession_ghost$blockCursor(JDDLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V - Refmap: possession_ghost_hxlpp4s2.refmap.json - Stacktrace/context: crash occurred on Render thread during Minecraft client initialization (class_310.<init> ...). - Actionable detail: mixin @Inject targeting method 'onCursorPos' in net/minecraft/class_312 does not match any method in that class mapping -> InvalidInjectionException during Prepare Injections. Overall deliverable requirements implied by edits and crash reports: - Implement possession mechanics per v2 and v3: - Hostile-AI takeover (movement + attack), input disabling (keyboard + mouse), forced facing, attacks passive mobs, hostility targeting exceptions (only if possessed hits hostiles or via indirect hits), persistence until death. - One-hit ghost kill via hit detector; ghost extremely low HP (0.1) and hit detection kills on any hit. - Input-disabling must include cancelable safety checks to avoid crashes. - Fix mixin usage to match Minecraft 1.21.5 mappings/environment: - Update/verify mixin target method names and signatures for net/minecraft/class_304 and net/minecraft/class_312 (remove or correct targets 'isPressed' and 'onCursorPos' or use mapping-aware selectors). - Ensure possession_ghost_hxlpp4s2.mixins.json and possession_ghost_hxlpp4s2.refmap.json are consistent with Fabric Loader 0.16.14, Fabric API 0.128.2+1.21.5, MixinExtras 0.4.1, Java 21. - Provide fixes to KeyBindingBlockMixin and MouseBlockMixin injection points: correct method names/signatures, use mapping-independent targets, or switch to @Redirect/@ModifyArg where appropriate; ensure handler method descriptors exactly match target method descriptors. Edit v7 — New crash (repeat/focus on class_312 failure) and full crash details to fix: - Failure summary (from crash report excerpt): java.lang.RuntimeException: Mixin transformation of net.minecraft.class_312 failed. - Cause: InvalidInjectionException: @Inject on possession_ghost$blockCursor could not find any targets matching 'onCursorPos(JDD)V' in net/minecraft/class_312; using refmap possession_ghost_hxlpp4s2.refmap.json. - Injection validation trace: [INJECT_PREPARE -> possession_ghost_hxlpp4s2.mixins.json:MouseBlockMixin -> Prepare Injections -> handler$zpi000$...$blockCursor(JDDLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V -> Parse -> Validate Targets] - Crash context: - Thread: Render thread. - Stacktrace shows class loading via Fabric Knot: KnotClassDelegate.getPostMixinClassByteArray -> tryLoadClass -> loadClass -> net.minecraft.class_310.<init>. - Mixin apply sequence: MixinProcessor.applyMixins -> MixinApplicatorStandard.prepareInjections -> TargetSelectors.validate -> InvalidInjectionException. - System / environment details (from crash report): - Minecraft: 1.21.5 - Fabric Loader: 0.16.14 - Fabric API: 0.128.2+1.21.5 (detailed submodules listed in report) - MixinExtras: 0.4.1 - Java: 21.0.8 (Oracle HotSpot 64-Bit) - OS: Windows 11 (amd64) - JVM args, memory, and full environment/log context included in report. - Fabric mods shown: possession-ghost-hxlpp4s2: Possession Ghost 1 plus Fabric API. - Stack/Module fragments referenced in v7 crash (notable): KnotClassDelegate.getPostMixinClassByteArray, MixinProcessor.applyMixins, MixinApplicatorStandard, TargetSelectors.validate, net.minecraft.class_310, net.minecraft.class_312. - Actionable fix required: correct MouseBlockMixin injection target — the annotation currently targets 'onCursorPos(JDD)V' which does not exist in class_312 for this environment/mapping. Update to correct target name/signature or use mapping-aware selectors/refmap alignment. Required fixes to prevent InvalidInjectionException during Prepare Injections (explicit checklist for implementer/agent): - Inspect net/minecraft/class_304 and net/minecraft/class_312 for correct method names and descriptors under mappings used by the runtime (Fabric 1.21.5 environment). Replace 'isPressed' and 'onCursorPos' targets with correct de-obfuscated or intermediary names/descriptors. - Update possession_ghost_hxlpp4s2.mixins.json and possession_ghost_hxlpp4s2.refmap.json to align with Fabric Loader 0.16.14 + MixinExtras 0.4.1 + Minecraft 1.21.5 mappings; ensure refmap keys match handler method names and signatures. - Fix KeyBindingBlockMixin: - Ensure @Inject target exists in net/minecraft/class_304 OR change to mapping-safe selector or alternate injection approach (@Redirect/@ModifyArg). - Ensure handler signature (CallbackInfoReturnable vs CallbackInfo) matches target method return type. - Fix MouseBlockMixin: - Ensure @Inject target 'onCursorPos(JDD)V' matches an actual method in net/minecraft/class_312 in this mapping OR change to correct target method or alternate injection approach. - Ensure handler descriptor handler$zpi000$... matches the callback signature (e.g., parameters J D D and CallbackInfo) if target exists. - Consider using mapping-independent mixin mechanisms (e.g., @At(value="INVOKE", target="L...;methodName(...)") with intermediary names) or query Mojmap/Intermediary mapping tables for exact names. - Validate mixins locally by running a headless launch with the exact environment (Minecraft 1.21.5, Fabric Loader 0.16.14, Fabric API 0.128.2, MixinExtras 0.4.1, Java 21) to reproduce and confirm injection targets resolve. - Maintain the v2/v3 gameplay requirements and safety checks when applying input-disabling mixins (cancelable checks to prevent client hangs/crashes). Edit v8: alright due to how many crashes there was, could you replace the mixins with other methods to get the same outcome the mixins are supposed to? Edit v9: alright so there is a problem:the pathfinding AI doesn't move the player(it does make them hit the target and attack it thought) could you fix it? Edit v10: I guess you could try coding the movement in a mixin since the possession system's AI movement is still not working Edit v11: Alright the movement part of it is still bugged, maybe also trying to move the player on the player's client could work Edit v12: Alright since invisibility doesn't really work for the making mobs neutral to the player(if the player ends up touching the mob, the mob attacks the player), could you try another way to do that and remove invisibility? Edit v13: Alright so to make the possessed player's behavior more like a hostile mob the possessed player will only attack entities that are in a certain range of blocks(with them only targetting the mobs that are within 25 blocks in front of their face or are too close such as 2 blocks), however after starting to target a mob they will only stop when the mob died or is over 75 blocks away when the possessed player haves no targets they will just wander around like how every mob in the game does(make sure it moves the player on the player's client) also make so that the possessed player has a small cooldown(the same as a zombie) to attack after it attacked once Edit v14: Alright also after giving the player the possessed effect i think the ghost should despawn(because it isn't really possession if the ghost is outside the player's body)
1
Sep 20, 2025, 10:08 PM
User request: Mod: Possession Ghost (id: possession-ghost-hxlpp4s2) - Visual: zombie-like entity with appearance tag "Ghost". - Original core feature: ghost can possess players, making them act like hostile mobs with no player control. Edit v2 — Possession rework: - Possessed player forced to behave like a hostile mob: - Attacks passive mobs. - Hostile mobs will NOT target the possessed player unless the possessed player hits that hostile mob. - Exception: indirect hits (e.g., a skeleton arrow that misses original target and hits the possessed player) cause that hostile mob to start targeting the possessed player. - Ghost HP changed to 1 HP so players can kill it before possession if they see it approaching. - Ghost movement: flies/swoops toward the player at roughly a zombie's walk speed. Edit v3 — Health, hit detection, and possession behavior refinements: - Ghost health set to 0.1 (very low). - Hit detector added that kills the ghost on detection of any hit — guarantees one-hit kill. - Possession effect: - Persists until the possessed player dies (no timeout). - Possessed player is given full hostile-mob AI (movement and attack behavior). - Player input is disabled (keyboard keys and mouse disabled while possessed). - Forced facing: possessed player is forced to face their target. - Safety: input-disabling must include a cancelable check to avoid crashes. Edit v4 — Crash report 1 (Mixin/injection failure) and fix request: - Failure summary: Runtime failure at bootstrap: java.lang.BootstrapMethodError caused by Mixin transformation failure for net.minecraft.class_304. - Exception chain: MixinTransformerError -> MixinApplyError -> InvalidInjectionException. - Specific failing mixin/injection: - Mixin config: possession_ghost_hxlpp4s2.mixins.json - Failing mixin class: KeyBindingBlockMixin (from possession-ghost-hxlpp4s2) - Failing injection: @Inject on possession_ghost$blockIsPressed could not find targets matching method name 'isPressed' in net/minecraft/class_304. - Injection handler signature referenced: handler$zph000$possession-ghost-hxlpp4s2$possession_ghost$blockIsPressed(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V - Refmap: possession_ghost_hxlpp4s2.refmap.json - Stacktrace fragments / files referenced: knot//net.minecraft.class_10530.<clinit>, KnotClassDelegate.getPostMixinClassByteArray, MixinProcessor.applyMixins. - Actionable detail: mixin @Inject targets a method ('isPressed' in net/minecraft/class_304) that does not exist in this Minecraft version/mapping -> InvalidInjectionException during Prepare Injections. Edit v5 — Crash report 2 (different mixin/injection failure) and fix request: - Failure summary: java.lang.RuntimeException: Mixin transformation of net.minecraft.class_312 failed during game initialization. - Exception chain: MixinTransformerError -> MixinApplyError -> InvalidInjectionException. - Specific failing mixin/injection: - Mixin config: possession_ghost_hxlpp4s2.mixins.json - Failing mixin: MouseBlockMixin (from possession_ghost_hxlpp4s2.mixins.json) - Failing injection: @Inject on possession_ghost$blockCursor could not find targets matching 'onCursorPos' in net/minecraft/class_312. - Injection context/handler signature shown: handler$zpi000$possession-ghost-hxlpp4s2$possession_ghost$blockCursor(JDDLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V - Refmap: possession_ghost_hxlpp4s2.refmap.json - Stacktrace/context: crash occurred on Render thread during Minecraft client initialization (class_310.<init> ...). - Actionable detail: mixin @Inject targeting method 'onCursorPos' in net/minecraft/class_312 does not match any method in that class mapping -> InvalidInjectionException during Prepare Injections. Overall deliverable requirements implied by edits and crash reports: - Implement possession mechanics per v2 and v3: - Hostile-AI takeover (movement + attack), input disabling (keyboard + mouse), forced facing, attacks passive mobs, hostility targeting exceptions (only if possessed hits hostiles or via indirect hits), persistence until death. - One-hit ghost kill via hit detector; ghost extremely low HP (0.1) and hit detection kills on any hit. - Input-disabling must include cancelable safety checks to avoid crashes. - Fix mixin usage to match Minecraft 1.21.5 mappings/environment: - Update/verify mixin target method names and signatures for net/minecraft/class_304 and net/minecraft/class_312 (remove or correct targets 'isPressed' and 'onCursorPos' or use mapping-aware selectors). - Ensure possession_ghost_hxlpp4s2.mixins.json and possession_ghost_hxlpp4s2.refmap.json are consistent with Fabric Loader 0.16.14, Fabric API 0.128.2+1.21.5, MixinExtras 0.4.1, Java 21. - Provide fixes to KeyBindingBlockMixin and MouseBlockMixin injection points: correct method names/signatures, use mapping-independent targets, or switch to @Redirect/@ModifyArg where appropriate; ensure handler method descriptors exactly match target method descriptors. Edit v7 — New crash (repeat/focus on class_312 failure) and full crash details to fix: - Failure summary (from crash report excerpt): java.lang.RuntimeException: Mixin transformation of net.minecraft.class_312 failed. - Cause: InvalidInjectionException: @Inject on possession_ghost$blockCursor could not find any targets matching 'onCursorPos(JDD)V' in net/minecraft/class_312; using refmap possession_ghost_hxlpp4s2.refmap.json. - Injection validation trace: [INJECT_PREPARE -> possession_ghost_hxlpp4s2.mixins.json:MouseBlockMixin -> Prepare Injections -> handler$zpi000$...$blockCursor(JDDLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V -> Parse -> Validate Targets] - Crash context: - Thread: Render thread. - Stacktrace shows class loading via Fabric Knot: KnotClassDelegate.getPostMixinClassByteArray -> tryLoadClass -> loadClass -> net.minecraft.class_310.<init>. - Mixin apply sequence: MixinProcessor.applyMixins -> MixinApplicatorStandard.prepareInjections -> TargetSelectors.validate -> InvalidInjectionException. - System / environment details (from crash report): - Minecraft: 1.21.5 - Fabric Loader: 0.16.14 - Fabric API: 0.128.2+1.21.5 (detailed submodules listed in report) - MixinExtras: 0.4.1 - Java: 21.0.8 (Oracle HotSpot 64-Bit) - OS: Windows 11 (amd64) - JVM args, memory, and full environment/log context included in report. - Fabric mods shown: possession-ghost-hxlpp4s2: Possession Ghost 1 plus Fabric API. - Stack/Module fragments referenced in v7 crash (notable): KnotClassDelegate.getPostMixinClassByteArray, MixinProcessor.applyMixins, MixinApplicatorStandard, TargetSelectors.validate, net.minecraft.class_310, net.minecraft.class_312. - Actionable fix required: correct MouseBlockMixin injection target — the annotation currently targets 'onCursorPos(JDD)V' which does not exist in class_312 for this environment/mapping. Update to correct target name/signature or use mapping-aware selectors/refmap alignment. Required fixes to prevent InvalidInjectionException during Prepare Injections (explicit checklist for implementer/agent): - Inspect net/minecraft/class_304 and net/minecraft/class_312 for correct method names and descriptors under mappings used by the runtime (Fabric 1.21.5 environment). Replace 'isPressed' and 'onCursorPos' targets with correct de-obfuscated or intermediary names/descriptors. - Update possession_ghost_hxlpp4s2.mixins.json and possession_ghost_hxlpp4s2.refmap.json to align with Fabric Loader 0.16.14 + MixinExtras 0.4.1 + Minecraft 1.21.5 mappings; ensure refmap keys match handler method names and signatures. - Fix KeyBindingBlockMixin: - Ensure @Inject target exists in net/minecraft/class_304 OR change to mapping-safe selector or alternate injection approach (@Redirect/@ModifyArg). - Ensure handler signature (CallbackInfoReturnable vs CallbackInfo) matches target method return type. - Fix MouseBlockMixin: - Ensure @Inject target 'onCursorPos(JDD)V' matches an actual method in net/minecraft/class_312 in this mapping OR change to correct target method or alternate injection approach. - Ensure handler descriptor handler$zpi000$... matches the callback signature (e.g., parameters J D D and CallbackInfo) if target exists. - Consider using mapping-independent mixin mechanisms (e.g., @At(value="INVOKE", target="L...;methodName(...)") with intermediary names) or query Mojmap/Intermediary mapping tables for exact names. - Validate mixins locally by running a headless launch with the exact environment (Minecraft 1.21.5, Fabric Loader 0.16.14, Fabric API 0.128.2, MixinExtras 0.4.1, Java 21) to reproduce and confirm injection targets resolve. - Maintain the v2/v3 gameplay requirements and safety checks when applying input-disabling mixins (cancelable checks to prevent client hangs/crashes). Edit v8: alright due to how many crashes there was, could you replace the mixins with other methods to get the same outcome the mixins are supposed to? Edit v9: alright so there is a problem:the pathfinding AI doesn't move the player(it does make them hit the target and attack it thought) could you fix it? Edit v10: I guess you could try coding the movement in a mixin since the possession system's AI movement is still not working Edit v11: Alright the movement part of it is still bugged, maybe also trying to move the player on the player's client could work Edit v12: Alright since invisibility doesn't really work for the making mobs neutral to the player(if the player ends up touching the mob, the mob attacks the player), could you try another way to do that and remove invisibility? Edit v13: Alright so to make the possessed player's behavior more like a hostile mob the possessed player will only attack entities that are in a certain range of blocks(with them only targetting the mobs that are within 25 blocks in front of their face or are too close such as 2 blocks), however after starting to target a mob they will only stop when the mob died or is over 75 blocks away when the possessed player haves no targets they will just wander around like how every mob in the game does(make sure it moves the player on the player's client) also make so that the possessed player has a small cooldown(the same as a zombie) to attack after it attacked once
1
Sep 17, 2025, 06:41 PM
User request: Mod: Possession Ghost (id: possession-ghost-hxlpp4s2) - Visual: zombie-like entity with appearance tag "Ghost". - Original core feature: ghost can possess players, making them act like hostile mobs with no player control. Edit v2 — Possession rework: - Possessed player forced to behave like a hostile mob: - Attacks passive mobs. - Hostile mobs will NOT target the possessed player unless the possessed player hits that hostile mob. - Exception: indirect hits (e.g., a skeleton arrow that misses original target and hits the possessed player) cause that hostile mob to start targeting the possessed player. - Ghost HP changed to 1 HP so players can kill it before possession if they see it approaching. - Ghost movement: flies/swoops toward the player at roughly a zombie's walk speed. Edit v3 — Health, hit detection, and possession behavior refinements: - Ghost health set to 0.1 (very low). - Hit detector added that kills the ghost on detection of any hit — guarantees one-hit kill. - Possession effect: - Persists until the possessed player dies (no timeout). - Possessed player is given full hostile-mob AI (movement and attack behavior). - Player input is disabled (keyboard keys and mouse disabled while possessed). - Forced facing: possessed player is forced to face their target. - Safety: input-disabling must include a cancelable check to avoid crashes. Edit v4 — Crash report 1 (Mixin/injection failure) and fix request: - Failure summary: Runtime failure at bootstrap: java.lang.BootstrapMethodError caused by Mixin transformation failure for net.minecraft.class_304. - Exception chain: MixinTransformerError -> MixinApplyError -> InvalidInjectionException. - Specific failing mixin/injection: - Mixin config: possession_ghost_hxlpp4s2.mixins.json - Failing mixin class: KeyBindingBlockMixin (from possession-ghost-hxlpp4s2) - Failing injection: @Inject on possession_ghost$blockIsPressed could not find targets matching method name 'isPressed' in net/minecraft/class_304. - Injection handler signature referenced: handler$zph000$possession-ghost-hxlpp4s2$possession_ghost$blockIsPressed(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V - Refmap: possession_ghost_hxlpp4s2.refmap.json - Stacktrace fragments / files referenced: knot//net.minecraft.class_10530.<clinit>, KnotClassDelegate.getPostMixinClassByteArray, MixinProcessor.applyMixins. - Actionable detail: mixin @Inject targets a method ('isPressed' in net/minecraft/class_304) that does not exist in this Minecraft version/mapping -> InvalidInjectionException during Prepare Injections. Edit v5 — Crash report 2 (different mixin/injection failure) and fix request: - Failure summary: java.lang.RuntimeException: Mixin transformation of net.minecraft.class_312 failed during game initialization. - Exception chain: MixinTransformerError -> MixinApplyError -> InvalidInjectionException. - Specific failing mixin/injection: - Mixin config: possession_ghost_hxlpp4s2.mixins.json - Failing mixin: MouseBlockMixin (from possession_ghost_hxlpp4s2.mixins.json) - Failing injection: @Inject on possession_ghost$blockCursor could not find targets matching 'onCursorPos' in net/minecraft/class_312. - Injection context/handler signature shown: handler$zpi000$possession-ghost-hxlpp4s2$possession_ghost$blockCursor(JDDLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V - Refmap: possession_ghost_hxlpp4s2.refmap.json - Stacktrace/context: crash occurred on Render thread during Minecraft client initialization (class_310.<init> ...). - Actionable detail: mixin @Inject targeting method 'onCursorPos' in net/minecraft/class_312 does not match any method in that class mapping -> InvalidInjectionException during Prepare Injections. Overall deliverable requirements implied by edits and crash reports: - Implement possession mechanics per v2 and v3: - Hostile-AI takeover (movement + attack), input disabling (keyboard + mouse), forced facing, attacks passive mobs, hostility targeting exceptions (only if possessed hits hostiles or via indirect hits), persistence until death. - One-hit ghost kill via hit detector; ghost extremely low HP (0.1) and hit detection kills on any hit. - Input-disabling must include cancelable safety checks to avoid crashes. - Fix mixin usage to match Minecraft 1.21.5 mappings/environment: - Update/verify mixin target method names and signatures for net/minecraft/class_304 and net/minecraft/class_312 (remove or correct targets 'isPressed' and 'onCursorPos' or use mapping-aware selectors). - Ensure possession_ghost_hxlpp4s2.mixins.json and possession_ghost_hxlpp4s2.refmap.json are consistent with Fabric Loader 0.16.14, Fabric API 0.128.2+1.21.5, MixinExtras 0.4.1, Java 21. - Provide fixes to KeyBindingBlockMixin and MouseBlockMixin injection points: correct method names/signatures, use mapping-independent targets, or switch to @Redirect/@ModifyArg where appropriate; ensure handler method descriptors exactly match target method descriptors. Edit v7 — New crash (repeat/focus on class_312 failure) and full crash details to fix: - Failure summary (from crash report excerpt): java.lang.RuntimeException: Mixin transformation of net.minecraft.class_312 failed. - Cause: InvalidInjectionException: @Inject on possession_ghost$blockCursor could not find any targets matching 'onCursorPos(JDD)V' in net/minecraft/class_312; using refmap possession_ghost_hxlpp4s2.refmap.json. - Injection validation trace: [INJECT_PREPARE -> possession_ghost_hxlpp4s2.mixins.json:MouseBlockMixin -> Prepare Injections -> handler$zpi000$...$blockCursor(JDDLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V -> Parse -> Validate Targets] - Crash context: - Thread: Render thread. - Stacktrace shows class loading via Fabric Knot: KnotClassDelegate.getPostMixinClassByteArray -> tryLoadClass -> loadClass -> net.minecraft.class_310.<init>. - Mixin apply sequence: MixinProcessor.applyMixins -> MixinApplicatorStandard.prepareInjections -> TargetSelectors.validate -> InvalidInjectionException. - System / environment details (from crash report): - Minecraft: 1.21.5 - Fabric Loader: 0.16.14 - Fabric API: 0.128.2+1.21.5 (detailed submodules listed in report) - MixinExtras: 0.4.1 - Java: 21.0.8 (Oracle HotSpot 64-Bit) - OS: Windows 11 (amd64) - JVM args, memory, and full environment/log context included in report. - Fabric mods shown: possession-ghost-hxlpp4s2: Possession Ghost 1 plus Fabric API. - Stack/Module fragments referenced in v7 crash (notable): KnotClassDelegate.getPostMixinClassByteArray, MixinProcessor.applyMixins, MixinApplicatorStandard, TargetSelectors.validate, net.minecraft.class_310, net.minecraft.class_312. - Actionable fix required: correct MouseBlockMixin injection target — the annotation currently targets 'onCursorPos(JDD)V' which does not exist in class_312 for this environment/mapping. Update to correct target name/signature or use mapping-aware selectors/refmap alignment. Required fixes to prevent InvalidInjectionException during Prepare Injections (explicit checklist for implementer/agent): - Inspect net/minecraft/class_304 and net/minecraft/class_312 for correct method names and descriptors under mappings used by the runtime (Fabric 1.21.5 environment). Replace 'isPressed' and 'onCursorPos' targets with correct de-obfuscated or intermediary names/descriptors. - Update possession_ghost_hxlpp4s2.mixins.json and possession_ghost_hxlpp4s2.refmap.json to align with Fabric Loader 0.16.14 + MixinExtras 0.4.1 + Minecraft 1.21.5 mappings; ensure refmap keys match handler method names and signatures. - Fix KeyBindingBlockMixin: - Ensure @Inject target exists in net/minecraft/class_304 OR change to mapping-safe selector or alternate injection approach (@Redirect/@ModifyArg). - Ensure handler signature (CallbackInfoReturnable vs CallbackInfo) matches target method return type. - Fix MouseBlockMixin: - Ensure @Inject target 'onCursorPos(JDD)V' matches an actual method in net/minecraft/class_312 in this mapping OR change to correct target method or alternate injection approach. - Ensure handler descriptor handler$zpi000$... matches the callback signature (e.g., parameters J D D and CallbackInfo) if target exists. - Consider using mapping-independent mixin mechanisms (e.g., @At(value="INVOKE", target="L...;methodName(...)") with intermediary names) or query Mojmap/Intermediary mapping tables for exact names. - Validate mixins locally by running a headless launch with the exact environment (Minecraft 1.21.5, Fabric Loader 0.16.14, Fabric API 0.128.2, MixinExtras 0.4.1, Java 21) to reproduce and confirm injection targets resolve. - Maintain the v2/v3 gameplay requirements and safety checks when applying input-disabling mixins (cancelable checks to prevent client hangs/crashes). Edit v8: alright due to how many crashes there was, could you replace the mixins with other methods to get the same outcome the mixins are supposed to? Edit v9: alright so there is a problem:the pathfinding AI doesn't move the player(it does make them hit the target and attack it thought) could you fix it? Edit v10: I guess you could try coding the movement in a mixin since the possession system's AI movement is still not working Edit v11: Alright the movement part of it is still bugged, maybe also trying to move the player on the player's client could work Edit v12: Alright since invisibility doesn't really work for the making mobs neutral to the player(if the player ends up touching the mob, the mob attacks the player), could you try another way to do that and remove invisibility?
Click here for installation instructions
This mod is licensed under the CreativeMode Mods License.