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": [
|
"client": [
|
||||||
],
|
],
|
||||||
"server": [
|
"server": [
|
||||||
|
"server.fixes.EndermanEntityMixin$ChaseGoalMixin",
|
||||||
"server.bridge.ServerWorldBridge",
|
"server.bridge.ServerWorldBridge",
|
||||||
"server.bridge.ServerPlayerBridge",
|
"server.bridge.ServerPlayerBridge",
|
||||||
"server.MinecraftServerMixin",
|
"server.MinecraftServerMixin",
|
||||||
|
|||||||
Reference in new issue
Block a user