mirror of
https://github.com/Sollace/Unicopia.git
synced 2025-02-01 03:26:44 +01:00
Merge branch '1.20.1' into 1.20.2
This commit is contained in:
commit
cc8bc28432
4 changed files with 24 additions and 16 deletions
|
@ -18,7 +18,7 @@ import net.minecraft.util.math.Vec3d;
|
|||
abstract class MixinAbstractSkeletonEntity extends HostileEntity {
|
||||
MixinAbstractSkeletonEntity() { super(null, null); }
|
||||
|
||||
@ModifyArg(method = "attack", at = @At(value = "INVOKE", target = "net/minecraft/world/World.spawnEntity(Lnet/minecraft/entity/Entity;)Z"))
|
||||
@ModifyArg(method = "shootAt(Lnet/minecraft/entity/LivingEntity;F)V", at = @At(value = "INVOKE", target = "net/minecraft/world/World.spawnEntity(Lnet/minecraft/entity/Entity;)Z"))
|
||||
private Entity modifyAccuracy(Entity entity) {
|
||||
if (entity instanceof PersistentProjectileEntity projectile && getTarget() instanceof PlayerEntity player && Pony.of(player).getPhysics().isFlying()) {
|
||||
Vec3d targetPos = TargettingUtil.getProjectedPos(player)
|
||||
|
|
|
@ -5,7 +5,9 @@ import org.spongepowered.asm.mixin.Final;
|
|||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import com.minelittlepony.unicopia.entity.effect.SeaponyGraceStatusEffect;
|
||||
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
|
@ -16,8 +18,10 @@ abstract class MixinGuardianTargetPredicate {
|
|||
@Shadow
|
||||
private @Final GuardianEntity owner;
|
||||
|
||||
@ModifyReturnValue(method = "test", at = @At("RETURN"))
|
||||
private boolean unicopia_excludeSeaponysGrace(boolean result, @Nullable LivingEntity target) {
|
||||
return result && SeaponyGraceStatusEffect.hasIre(target, owner);
|
||||
@Inject(method = "test", at = @At("HEAD"), cancellable = true)
|
||||
private void unicopia_excludeSeaponysGrace(@Nullable LivingEntity target, CallbackInfoReturnable<Boolean> info) {
|
||||
if (!SeaponyGraceStatusEffect.hasIre(target, owner)) {
|
||||
info.setReturnValue(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,9 @@ package com.minelittlepony.unicopia.mixin;
|
|||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import com.minelittlepony.unicopia.entity.effect.SeaponyGraceStatusEffect;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.passive.FishEntity;
|
||||
|
@ -12,8 +14,10 @@ import net.minecraft.entity.passive.PufferfishEntity;
|
|||
abstract class MixinPufferfishEntity extends FishEntity {
|
||||
MixinPufferfishEntity() { super(null, null); }
|
||||
|
||||
@ModifyReturnValue(method = "method_6591(Lnet/minecraft/entity/LivingEntity;)Z", at = @At("RETURN"))
|
||||
private static boolean unicopia_excludeSeaponysGrace(boolean result, LivingEntity entity) {
|
||||
return result && !SeaponyGraceStatusEffect.hasGrace(entity);
|
||||
@Inject(method = "method_6591(Lnet/minecraft/entity/LivingEntity;)Z", at = @At("HEAD"), cancellable = true)
|
||||
private static void unicopia_excludeSeaponysGrace(LivingEntity entity, CallbackInfoReturnable<Boolean> info) {
|
||||
if (SeaponyGraceStatusEffect.hasGrace(entity)) {
|
||||
info.setReturnValue(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.minelittlepony.unicopia.mixin.client;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
|
@ -15,7 +14,7 @@ import com.minelittlepony.unicopia.entity.behaviour.EntityAppearance;
|
|||
import com.minelittlepony.unicopia.entity.player.Pony;
|
||||
import com.minelittlepony.unicopia.network.track.Trackable;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.network.ClientCommonNetworkHandler;
|
||||
import net.minecraft.client.network.ClientPlayNetworkHandler;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.client.world.ClientWorld;
|
||||
|
@ -23,10 +22,14 @@ import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket;
|
|||
import net.minecraft.network.packet.s2c.play.PlayerRespawnS2CPacket;
|
||||
|
||||
@Mixin(ClientPlayNetworkHandler.class)
|
||||
abstract class MixinClientPlayNetworkHandler {
|
||||
@Shadow private @Final MinecraftClient client;
|
||||
abstract class MixinClientPlayNetworkHandler extends ClientCommonNetworkHandler {
|
||||
protected MixinClientPlayNetworkHandler() { super(null, null, null); }
|
||||
|
||||
@Shadow private ClientWorld world;
|
||||
|
||||
@Nullable
|
||||
private ClientPlayerEntity oldPlayer;
|
||||
|
||||
@Inject(method = "onEntityStatus", at = @At("TAIL"))
|
||||
private void onOnEntityStatus(EntityStatusS2CPacket packet, CallbackInfo info) {
|
||||
Living<?> living = Living.living(packet.getEntity(world));
|
||||
|
@ -41,9 +44,6 @@ abstract class MixinClientPlayNetworkHandler {
|
|||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private ClientPlayerEntity oldPlayer;
|
||||
|
||||
@Inject(method = "onPlayerRespawn", at = @At("HEAD"))
|
||||
public void beforeOnPlayerRespawn(PlayerRespawnS2CPacket packet, CallbackInfo info) {
|
||||
oldPlayer = client.player;
|
||||
|
|
Loading…
Reference in a new issue