9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-20 15:29:35 +00:00

Update Paper (#261)

This commit is contained in:
Bluemangoo
2024-07-19 20:38:04 +08:00
committed by GitHub
parent a872cd0de5
commit 3992c7945f
38 changed files with 436 additions and 464 deletions

View File

@@ -5,6 +5,52 @@ Subject: [PATCH] Reduce array allocations
This patch is Powered by Gale(https://github.com/GaleMC/Gale)
diff --git a/src/main/java/ca/spottedleaf/moonrise/common/list/EntityList.java b/src/main/java/ca/spottedleaf/moonrise/common/list/EntityList.java
index ba68998f6ef57b24c72fd833bd7de440de9501cc..a8e93e61beb51cc061b489ed4ad70e8fe6dfb8b9 100644
--- a/src/main/java/ca/spottedleaf/moonrise/common/list/EntityList.java
+++ b/src/main/java/ca/spottedleaf/moonrise/common/list/EntityList.java
@@ -5,6 +5,7 @@ import net.minecraft.world.entity.Entity;
import java.util.Arrays;
import java.util.Iterator;
import java.util.NoSuchElementException;
+import org.leavesmc.leaves.util.ArrayConstants;
// list with O(1) remove & contains
@@ -18,9 +19,7 @@ public final class EntityList implements Iterable<Entity> {
this.entityToIndex.defaultReturnValue(Integer.MIN_VALUE);
}
- protected static final Entity[] EMPTY_LIST = new Entity[0];
-
- protected Entity[] entities = EMPTY_LIST;
+ protected Entity[] entities = ArrayConstants.emptyEntityArray; // Leaves - reduce array allocations
protected int count;
public int size() {
diff --git a/src/main/java/ca/spottedleaf/moonrise/common/list/IBlockDataList.java b/src/main/java/ca/spottedleaf/moonrise/common/list/IBlockDataList.java
index fcfbca333234c09f7c056bbfcd9ac8860b20a8db..18503ef068924d4be4d40390af8db70d26fd9c7d 100644
--- a/src/main/java/ca/spottedleaf/moonrise/common/list/IBlockDataList.java
+++ b/src/main/java/ca/spottedleaf/moonrise/common/list/IBlockDataList.java
@@ -6,6 +6,7 @@ import java.util.Arrays;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.GlobalPalette;
+import org.leavesmc.leaves.util.ArrayConstants;
public final class IBlockDataList {
@@ -17,9 +18,7 @@ public final class IBlockDataList {
this.map.defaultReturnValue(Long.MAX_VALUE);
}
- private static final long[] EMPTY_LIST = new long[0];
-
- private long[] byIndex = EMPTY_LIST;
+ private long[] byIndex = ArrayConstants.emptyLongArray; // Leaves - reduce array allocations
private int size;
public static int getLocationKey(final int x, final int y, final int z) {
diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java
index 87d2b3ec165e2e9e4bdbedd7adddaa2130ed507b..aa17f322c6d5bfcada09d32f67f5df8f13f579ca 100644
--- a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/ChunkEntitySlices.java
@@ -44,52 +90,6 @@ index 87d2b3ec165e2e9e4bdbedd7adddaa2130ed507b..aa17f322c6d5bfcada09d32f67f5df8f
this.storage = (E[])new Entity[DEFAULT_CAPACITY];
} else {
this.storage = Arrays.copyOf(this.storage, this.storage.length * 2);
diff --git a/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java b/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java
index 0133ea6feb1ab88f021f66855669f58367e7420b..f56c2491fb2e84e459073ad128abf0dc699d45e9 100644
--- a/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java
+++ b/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java
@@ -5,6 +5,7 @@ import net.minecraft.world.entity.Entity;
import java.util.Arrays;
import java.util.Iterator;
import java.util.NoSuchElementException;
+import org.leavesmc.leaves.util.ArrayConstants;
// list with O(1) remove & contains
/**
@@ -17,9 +18,7 @@ public final class EntityList implements Iterable<Entity> {
this.entityToIndex.defaultReturnValue(Integer.MIN_VALUE);
}
- protected static final Entity[] EMPTY_LIST = new Entity[0];
-
- protected Entity[] entities = EMPTY_LIST;
+ protected Entity[] entities = ArrayConstants.emptyEntityArray; // Leaves - reduce array allocations
protected int count;
public int size() {
diff --git a/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java b/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java
index 277cfd9d1e8fff5d9b5e534b75c3c5162d58b0b7..7b870ea004d338b2bb9423f9d8c5759801315950 100644
--- a/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java
+++ b/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java
@@ -6,6 +6,7 @@ import java.util.Arrays;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.GlobalPalette;
+import org.leavesmc.leaves.util.ArrayConstants;
/**
* @author Spottedleaf
@@ -20,9 +21,7 @@ public final class IBlockDataList {
this.map.defaultReturnValue(Long.MAX_VALUE);
}
- private static final long[] EMPTY_LIST = new long[0];
-
- private long[] byIndex = EMPTY_LIST;
+ private long[] byIndex = ArrayConstants.emptyLongArray; // Leaves - reduce array allocations
private int size;
public static int getLocationKey(final int x, final int y, final int z) {
diff --git a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java
index ae60bd96b5284d54676d8e7e4dd5d170b526ec1e..0c474b1eb4dbef547890b7db5fcf9c13c86092a2 100644
--- a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java
@@ -133,7 +133,7 @@ index 06648f9751fd8a322d0809ffebf6a544596ee1a4..d6761bdb37619b91f147ff7a9197b730
@Override
diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java
index 4e005b7b062e3231f564d284887ea1c2783a4e7d..bc9ee52755c73606e6f5788a947f2bc695986858 100644
index d7bb00a946346dff0b0269cbd65276e146a63fb0..3f6545f3d2e421b9d2778adb113781b1d516fa0c 100644
--- a/src/main/java/net/minecraft/nbt/CompoundTag.java
+++ b/src/main/java/net/minecraft/nbt/CompoundTag.java
@@ -18,6 +18,7 @@ import javax.annotation.Nullable;
@@ -218,7 +218,7 @@ index 0846e11c82295ccf93683f877962ec7804dad677..b747b3858befe48996ea707cf126f6f8
for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 828e879953981c41507a08b9b7c7c13ea551a76e..73f734ffcf007857bd13235dc14da930dbbe3928 100644
index 5f779bce04ee8c687550c1386f73550c12da1892..d43f8be8132d825bc84daaa56cc624654e3f04a8 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -181,6 +181,7 @@ import org.bukkit.event.server.MapInitializeEvent;
@@ -287,10 +287,10 @@ index b0f7a378f19b9837c060c891002cd5db756cdae1..8b13bd7aec76f30c5b59207583930665
final String s;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 5c47209505af8e9bea3f20effa4e176c32e5109a..fedeaf43f7b61a7ca6dc2a99bb76a47f4c640a1d 100644
index 12a848dd032099d315861016e2f18ff0c9bc751b..6e68ad42d4fff62e38f45fd09de26da3363dcdd9 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -947,13 +947,9 @@ public abstract class PlayerList {
@@ -948,13 +948,9 @@ public abstract class PlayerList {
final ResourceKey<Level> OVERWORLD = Level.OVERWORLD;
final ResourceKey<Level> THE_NETHER = Level.NETHER;
if (!((fromDim != OVERWORLD || toDim != THE_NETHER) && (fromDim != THE_NETHER || toDim != OVERWORLD))) {
@@ -329,7 +329,7 @@ index c038da20b76c0b7b1c18471b20be01e849d29f3a..603007a376dc76c46d34f265283dda69
public boolean isEmpty() {
diff --git a/src/main/java/net/minecraft/util/ZeroBitStorage.java b/src/main/java/net/minecraft/util/ZeroBitStorage.java
index 33cba55d41b305bf193268c04b93b742711231dd..4200e9c5f047e3a124c61a28ff26bf30e8368b5a 100644
index 93d1416cf2eaeb10e24c69a28a1d9e576ca7dbdc..72d908b88bd21a777a26ed3a510c422912bf9e56 100644
--- a/src/main/java/net/minecraft/util/ZeroBitStorage.java
+++ b/src/main/java/net/minecraft/util/ZeroBitStorage.java
@@ -4,9 +4,10 @@ import java.util.Arrays;
@@ -357,7 +357,7 @@ index 2fa2a4eef21e786f738f36616c3160defa95bce8..36c98f611f043ebadffd1b110ba3002b
private EquipmentSlot(final EquipmentSlot.Type type, final int entityId, final int maxCount, final int armorStandId, final String name) {
this.type = type;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 3f27a821fccbd95fbe5626c31daf2aaed1e382cc..2c385a89db50d85ff65df7b20dcfefdc21856cca 100644
index efbac4dd85314cce550d4c8fa1836566012a7a0d..a160a6b3a8634d142436ba4098da219cf4d825a8 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3280,7 +3280,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -370,10 +370,10 @@ index 3f27a821fccbd95fbe5626c31daf2aaed1e382cc..2c385a89db50d85ff65df7b20dcfefdc
for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 5c20fad61b81189ad45623346fa2b79ea8aa9b2a..2634a4cb8a880363829ecffa85cb57ac22f9a632 100644
index 9f2ef5ea9f380e78d4a150df9f16ff6bfc398b75..33de05de648c88539a4792c63a903102f0faa7b2 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1152,7 +1152,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -1150,7 +1150,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@Override
protected void dropCustomDeathLoot(ServerLevel world, DamageSource source, boolean causedByPlayer) {
super.dropCustomDeathLoot(world, source, causedByPlayer);
@@ -382,7 +382,7 @@ index 5c20fad61b81189ad45623346fa2b79ea8aa9b2a..2634a4cb8a880363829ecffa85cb57ac
int i = aenumitemslot.length;
for (int j = 0; j < i; ++j) {
@@ -1282,7 +1282,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -1280,7 +1280,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
}
boolean flag = true;
@@ -391,7 +391,7 @@ index 5c20fad61b81189ad45623346fa2b79ea8aa9b2a..2634a4cb8a880363829ecffa85cb57ac
int j = aenumitemslot.length;
for (int k = 0; k < j; ++k) {
@@ -1367,7 +1367,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -1365,7 +1365,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
protected void populateDefaultEquipmentEnchantments(ServerLevelAccessor world, RandomSource random, DifficultyInstance localDifficulty) {
this.enchantSpawnedWeapon(world, random, localDifficulty);
@@ -400,7 +400,7 @@ index 5c20fad61b81189ad45623346fa2b79ea8aa9b2a..2634a4cb8a880363829ecffa85cb57ac
int i = aenumitemslot.length;
for (int j = 0; j < i; ++j) {
@@ -1572,7 +1572,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -1570,7 +1570,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
t0.setInvulnerable(this.isInvulnerable());
if (flag) {
t0.setCanPickUpLoot(this.canPickUpLoot());
@@ -422,7 +422,7 @@ index 1bf54b0142fe41b29b21c8b97d3f52bb24a36a92..f19ace4f9027260ded3ee37c1bda91c5
public class ShapedRecipe extends io.papermc.paper.inventory.recipe.RecipeBookExactChoiceRecipe<CraftingInput> implements CraftingRecipe { // Paper - improve exact recipe choices
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 5e5467564c4ead220b7b82b94eebb5ff6f8023fe..9364fe8494b42d4e7061f9d08bbdcaeb8892452c 100644
index 1f6e6bba0f6d16091f4c6a5fdb4bac4579ba525f..1848ed1dff8327db5c9a01e8e2019997e927692c 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -102,6 +102,7 @@ import org.bukkit.craftbukkit.util.CraftSpawnCategory;