mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 20:50:41 +01:00
5c7081fecc
* Updated Upstream (Bukkit/CraftBukkit) Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 45690fe9 SPIGOT-5047: Correct slot types for 1.14 inventories CraftBukkit Changes:4090d01f
SPIGOT-5047: Correct slot types for 1.14 inventoriese8c08362
SPIGOT-5046: World#getLoadedChunks returning inaccessible cached chunks.d445af3b
SPIGOT-5067: Add item meta for 1.14 spawn eggs * Bring Chunk load checks in-line with spigot As of the last upstream merge spigot now checks ticket level status when returning loaded chunks for a world from api. Now our checks will respect that decision. * Fix spawn ticket levels Vanilla would keep the inner chunks of spawn available for ticking, however my changes made all chunks non-ticking. Resolve by changing ticket levels for spawn chunks inside the border to respect this behavior. * Make World#getChunkIfLoadedImmediately return only entity ticking chunks Mojang appears to be using chunks with level > 33 (non-ticking chunks) as cached chunks and not actually loaded chunks. * Bring all loaded checks in line with spigot Loaded chunks must be at least border chunks, or level <= 33
87 lines
3.6 KiB
Diff
87 lines
3.6 KiB
Diff
From c8f85f355c26cefcb326e4f7f01dafaa3a24be26 Mon Sep 17 00:00:00 2001
|
|
From: Alfie Cleveland <alfeh@me.com>
|
|
Date: Fri, 19 Aug 2016 01:52:56 +0100
|
|
Subject: [PATCH] Optimise BlockState's hashCode/equals
|
|
|
|
These are singleton "single instance" objects. We can rely on
|
|
object identity checks safely.
|
|
|
|
Use a simpler optimized hashcode
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockState.java b/src/main/java/net/minecraft/server/BlockState.java
|
|
index 77b25317aa..be7e10d859 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockState.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockState.java
|
|
@@ -28,23 +28,13 @@ public abstract class BlockState<T extends Comparable<T>> implements IBlockState
|
|
}
|
|
|
|
public boolean equals(Object object) {
|
|
- if (this == object) {
|
|
- return true;
|
|
- } else if (!(object instanceof BlockState)) {
|
|
- return false;
|
|
- } else {
|
|
- BlockState<?> blockstate = (BlockState) object;
|
|
-
|
|
- return this.a.equals(blockstate.a) && this.b.equals(blockstate.b);
|
|
- }
|
|
+ return this == object; // Paper - only one instance per configuration
|
|
}
|
|
|
|
+ private static final java.util.concurrent.atomic.AtomicInteger hashId = new java.util.concurrent.atomic.AtomicInteger(1); // Paper - only one instance per configuration
|
|
+ private final int hashCode = 92821 * hashId.getAndIncrement(); // Paper - only one instance per configuration
|
|
public final int hashCode() {
|
|
- if (this.c == null) {
|
|
- this.c = this.c();
|
|
- }
|
|
-
|
|
- return this.c;
|
|
+ return this.hashCode; // Paper - only one instance per configuration
|
|
}
|
|
|
|
public int c() {
|
|
diff --git a/src/main/java/net/minecraft/server/BlockStateBoolean.java b/src/main/java/net/minecraft/server/BlockStateBoolean.java
|
|
index 31cb8ac841..3f085c7d65 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockStateBoolean.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockStateBoolean.java
|
|
@@ -30,8 +30,7 @@ public class BlockStateBoolean extends BlockState<Boolean> {
|
|
return obool.toString();
|
|
}
|
|
|
|
- @Override
|
|
- public boolean equals(Object object) {
|
|
+ public boolean equals_unused(Object object) { // Paper
|
|
if (this == object) {
|
|
return true;
|
|
} else if (object instanceof BlockStateBoolean && super.equals(object)) {
|
|
diff --git a/src/main/java/net/minecraft/server/BlockStateEnum.java b/src/main/java/net/minecraft/server/BlockStateEnum.java
|
|
index 59d86fc66e..82a1fac6f1 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockStateEnum.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockStateEnum.java
|
|
@@ -49,8 +49,7 @@ public class BlockStateEnum<T extends Enum<T> & INamable> extends BlockState<T>
|
|
return ((INamable) t0).getName();
|
|
}
|
|
|
|
- @Override
|
|
- public boolean equals(Object object) {
|
|
+ public boolean equals_unused(Object object) { // Paper
|
|
if (this == object) {
|
|
return true;
|
|
} else if (object instanceof BlockStateEnum && super.equals(object)) {
|
|
diff --git a/src/main/java/net/minecraft/server/BlockStateInteger.java b/src/main/java/net/minecraft/server/BlockStateInteger.java
|
|
index 6861c2b058..74ef699520 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockStateInteger.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockStateInteger.java
|
|
@@ -38,8 +38,7 @@ public class BlockStateInteger extends BlockState<Integer> {
|
|
return this.a;
|
|
}
|
|
|
|
- @Override
|
|
- public boolean equals(Object object) {
|
|
+ public boolean equals_unused(Object object) { // Paper
|
|
if (this == object) {
|
|
return true;
|
|
} else if (object instanceof BlockStateInteger && super.equals(object)) {
|
|
--
|
|
2.21.0
|
|
|