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.
56 Zeilen
2.2 KiB
Diff
56 Zeilen
2.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Andrew Steinborn <git@steinborn.me>
|
|
Date: Mon, 18 Jan 2021 20:45:25 -0500
|
|
Subject: [PATCH] Inline shift direction fields
|
|
|
|
Removes a layer of indirection for EnumDirection.getAdjacent(X|Y|Z)(), which is in the
|
|
critical section for much of the server, including the lighting engine.
|
|
|
|
diff --git a/src/main/java/net/minecraft/core/Direction.java b/src/main/java/net/minecraft/core/Direction.java
|
|
index 3abec6de94f0ef1d788320e33653c598887f17ca..073c717bb676b9e99aada00c349fb7eee91df1e7 100644
|
|
--- a/src/main/java/net/minecraft/core/Direction.java
|
|
+++ b/src/main/java/net/minecraft/core/Direction.java
|
|
@@ -52,6 +52,11 @@ public enum Direction implements StringRepresentable {
|
|
})).toArray((i) -> {
|
|
return new Direction[i];
|
|
});
|
|
+ // Paper start - Perf: Inline shift direction fields
|
|
+ private final int adjX;
|
|
+ private final int adjY;
|
|
+ private final int adjZ;
|
|
+ // Paper end - Perf: Inline shift direction fields
|
|
|
|
private Direction(int id, int idOpposite, int idHorizontal, String name, Direction.AxisDirection direction, Direction.Axis axis, Vec3i vector) {
|
|
this.data3d = id;
|
|
@@ -61,6 +66,11 @@ public enum Direction implements StringRepresentable {
|
|
this.axis = axis;
|
|
this.axisDirection = direction;
|
|
this.normal = vector;
|
|
+ // Paper start - Perf: Inline shift direction fields
|
|
+ this.adjX = vector.getX();
|
|
+ this.adjY = vector.getY();
|
|
+ this.adjZ = vector.getZ();
|
|
+ // Paper end - Perf: Inline shift direction fields
|
|
}
|
|
|
|
public static Direction[] orderedByNearest(Entity entity) {
|
|
@@ -348,15 +358,15 @@ public enum Direction implements StringRepresentable {
|
|
}
|
|
|
|
public int getStepX() {
|
|
- return this.normal.getX();
|
|
+ return this.adjX; // Paper - Perf: Inline shift direction fields
|
|
}
|
|
|
|
public int getStepY() {
|
|
- return this.normal.getY();
|
|
+ return this.adjY; // Paper - Perf: Inline shift direction fields
|
|
}
|
|
|
|
public int getStepZ() {
|
|
- return this.normal.getZ();
|
|
+ return this.adjZ; // Paper - Perf: Inline shift direction fields
|
|
}
|
|
|
|
public Vector3f step() {
|