geforkt von Mirrors/Paper
89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
55 Zeilen
2.7 KiB
Diff
55 Zeilen
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Sat, 21 Aug 2021 12:13:53 -0700
|
|
Subject: [PATCH] Change EnderEye target without changing other things
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/projectile/EyeOfEnder.java b/src/main/java/net/minecraft/world/entity/projectile/EyeOfEnder.java
|
|
index 305e92007fa2466f9aa7be8b9224dcc04d20120f..d06a02f1868b911721477c149f1b321979d8d178 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/projectile/EyeOfEnder.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/EyeOfEnder.java
|
|
@@ -73,6 +73,11 @@ public class EyeOfEnder extends Entity implements ItemSupplier {
|
|
}
|
|
|
|
public void signalTo(BlockPos pos) {
|
|
+ // Paper start - Change EnderEye target without changing other things
|
|
+ this.signalTo(pos, true);
|
|
+ }
|
|
+ public void signalTo(BlockPos pos, boolean update) {
|
|
+ // Paper end - Change EnderEye target without changing other things
|
|
double d0 = (double) pos.getX();
|
|
int i = pos.getY();
|
|
double d1 = (double) pos.getZ();
|
|
@@ -90,8 +95,10 @@ public class EyeOfEnder extends Entity implements ItemSupplier {
|
|
this.tz = d1;
|
|
}
|
|
|
|
+ if (update) { // Paper - Change EnderEye target without changing other things
|
|
this.life = 0;
|
|
this.surviveAfterDeath = this.random.nextInt(5) > 0;
|
|
+ } // Paper - Change EnderEye target without changing other things
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java
|
|
index d4dfc7a0266086b9bf2c3966c6e149453d0583ba..27f56fa4b7ef92a9a4dfa6b782350424b88210f2 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java
|
|
@@ -32,8 +32,15 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal {
|
|
|
|
@Override
|
|
public void setTargetLocation(Location location) {
|
|
+ // Paper start - Change EnderEye target without changing other things
|
|
+ this.setTargetLocation(location, true);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setTargetLocation(Location location, boolean update) {
|
|
+ // Paper end - Change EnderEye target without changing other things
|
|
Preconditions.checkArgument(this.getWorld().equals(location.getWorld()), "Cannot target EnderSignal across worlds");
|
|
- this.getHandle().signalTo(CraftLocation.toBlockPosition(location));
|
|
+ this.getHandle().signalTo(CraftLocation.toBlockPosition(location), update); // Paper - Change EnderEye target without changing other things
|
|
}
|
|
|
|
@Override
|