Move MixinPlayerControllerMP into 1.12.2 project

This commit is contained in:
Jonas Herzig
2021-02-23 00:45:12 +01:00
parent 6bc130312a
commit 6068aabea7
3 changed files with 35 additions and 32 deletions

View File

@@ -1,32 +1 @@
package com.replaymod.recording.mixin;
//#if MC>=10904 && MC<11400
//$$ import com.replaymod.recording.handler.RecordingEventHandler;
//$$ import net.minecraft.client.Minecraft;
//$$ import net.minecraft.client.multiplayer.PlayerControllerMP;
//$$ import net.minecraft.util.math.BlockPos;
//$$ import net.minecraft.world.World;
//$$ import org.spongepowered.asm.mixin.Mixin;
//$$ import org.spongepowered.asm.mixin.Shadow;
//$$ import org.spongepowered.asm.mixin.injection.At;
//$$ import org.spongepowered.asm.mixin.injection.Redirect;
//$$
//$$ import static com.replaymod.core.versions.MCVer.*;
//$$
//$$ @Mixin(PlayerControllerMP.class)
//$$ public abstract class MixinPlayerControllerMP implements RecordingEventHandler.RecordingEventSender {
//$$
//$$ @Shadow
//$$ private Minecraft mc;
//$$
//$$ // Redirects the call to playEvent without the initial player argument to the method with that argument
//$$ // The new method will then play it and (if applicable) record it. (See MixinWorldClient)
//$$ // This is necessary for the block break event (particles and sound) to be recorded. Otherwise it looks like the
//$$ // event was emitted because of a packet (player will be null) and not as it actually was (by the player).
//$$ @Redirect(method = "onPlayerDestroyBlock", at = @At(value = "INVOKE",
//$$ target = "Lnet/minecraft/world/World;playEvent(ILnet/minecraft/util/math/BlockPos;I)V"))
//$$ public void replayModRecording_playEvent_fixed(World world, int type, BlockPos pos, int data) {
//$$ world.playEvent(mc.player, type, pos, data);
//$$ }
//$$ }
//#endif
// 1.9.4 - 1.12.2