fix: enderman chases player regardless of the dim
This commit is contained in:
2 files changed
+31
No files matched your search
@@ -0,0 +1,30 @@
|
||||
package io.ib67.sfcraft.mixin.server.fixes;
|
||||
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
import net.minecraft.entity.mob.EndermanEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
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;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
public class EndermanEntityMixin {
|
||||
@Mixin(targets = "net.minecraft.entity.mob.EndermanEntity$ChasePlayerGoal")
|
||||
public static class ChaseGoalMixin {
|
||||
@Shadow
|
||||
@Final
|
||||
private EndermanEntity enderman;
|
||||
|
||||
@Inject(method = "canStart", at = @At("HEAD"), cancellable = true)
|
||||
public void fixCrossDimTeleport(CallbackInfoReturnable<Boolean> cir) {
|
||||
var target = enderman.getTarget();
|
||||
if (target!=null && enderman.getWorld() != target.getWorld()) {
|
||||
cir.setReturnValue(false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@
|
||||
"client": [
|
||||
],
|
||||
"server": [
|
||||
"server.fixes.EndermanEntityMixin$ChaseGoalMixin",
|
||||
"server.bridge.ServerWorldBridge",
|
||||
"server.bridge.ServerPlayerBridge",
|
||||
"server.MinecraftServerMixin",
|
||||
|
||||
Reference in new issue
Block a user