Revert "Updated Upstream (Bukkit/CraftBukkit/Spigot)"

This reverts commit 23826a3f66.
This commit is contained in:
Shane Freeder 2020-10-17 10:48:00 +01:00
parent 23826a3f66
commit fa990d26af
61 changed files with 185 additions and 216 deletions

View File

@ -1876,10 +1876,10 @@ index 0000000000000000000000000000000000000000..ef824d701c97cad8b31e76ad98c94fc4
+}
diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef58a6c00f444bd498a2d8fc4e457236f393954f
index 0000000000000000000000000000000000000000..bf3e059fe06aae361b2ded451914ed19b5e970c5
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsReportListener.java
@@ -0,0 +1,77 @@
@@ -0,0 +1,75 @@
+package co.aikar.timings;
+
+import com.google.common.collect.Lists;
@ -1891,8 +1891,6 @@ index 0000000000000000000000000000000000000000..ef58a6c00f444bd498a2d8fc4e457236
+import org.bukkit.command.RemoteConsoleCommandSender;
+
+import java.util.List;
+import java.util.UUID;
+
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
@ -2929,10 +2927,10 @@ index d6c8938b1e13b63116b7b0e074ea8ef5997f8dc3..a6ad94ef98a1df1d2842635d850bc990
}
diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java
new file mode 100644
index 0000000000000000000000000000000000000000..a7ef1f51c2b96617a32e6e7b1723e8770ba8a6a8
index 0000000000000000000000000000000000000000..ca1893e9fb41baae0d103f1a925e33f3dfa273be
--- /dev/null
+++ b/src/main/java/org/bukkit/command/MessageCommandSender.java
@@ -0,0 +1,129 @@
@@ -0,0 +1,114 @@
+package org.bukkit.command;
+
+import org.apache.commons.lang.NotImplementedException;
@ -2944,10 +2942,7 @@ index 0000000000000000000000000000000000000000..a7ef1f51c2b96617a32e6e7b1723e877
+import org.bukkit.plugin.Plugin;
+
+import java.util.Set;
+import java.util.UUID;
+
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * For when all you care about is just messaging
@ -2961,18 +2956,6 @@ index 0000000000000000000000000000000000000000..a7ef1f51c2b96617a32e6e7b1723e877
+ }
+ }
+
+ @Override
+ default void sendMessage(@Nullable UUID sender, @NotNull String message) {
+ sendMessage(message);
+ }
+
+ @Override
+ default void sendMessage(@Nullable UUID sender, @NotNull String[] messages) {
+ for (String message : messages) {
+ sendMessage(message);
+ }
+ }
+
+ @NotNull
+ @Override
+ default Server getServer() {

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Add BaseComponent sendMessage methods to CommandSender
diff --git a/src/main/java/org/bukkit/command/CommandSender.java b/src/main/java/org/bukkit/command/CommandSender.java
index fe6b162fe55cddf3f9be40fa4cd42e5060ac85ad..cab682f741da6bbf7463b457ce1674accce6f5f2 100644
index a9020ecc744514067374bd2b1751251add4d9a78..d3b3a8bf94dac370ea254875e4d4a30894a70c67 100644
--- a/src/main/java/org/bukkit/command/CommandSender.java
+++ b/src/main/java/org/bukkit/command/CommandSender.java
@@ -79,4 +79,30 @@ public interface CommandSender extends Permissible {
@@ -61,4 +61,30 @@ public interface CommandSender extends Permissible {
@NotNull
Spigot spigot();
// Spigot end

View File

@ -7,10 +7,10 @@ Allows you to easily access the chunks X/z as a long, and a method
to look up by the long key too.
diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java
index beac1439c71fb28f1a3baecf56157237e12ccfd5..fa576096e908f8fbdbef53e1bd91215ac9e73ed6 100644
index 95e485eea693e7648e63d198c8591d89e02e6755..0bbef14a9fc2a3ec03b4db59c8d8e1eedc0ad1c1 100644
--- a/src/main/java/org/bukkit/Chunk.java
+++ b/src/main/java/org/bukkit/Chunk.java
@@ -28,6 +28,32 @@ public interface Chunk extends PersistentDataHolder {
@@ -27,6 +27,32 @@ public interface Chunk {
*/
int getZ();

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots
diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java
index fa576096e908f8fbdbef53e1bd91215ac9e73ed6..b4ef6297f78d1f0c216e718024a21e6aa07cd1c6 100644
index 0bbef14a9fc2a3ec03b4db59c8d8e1eedc0ad1c1..11b691cf59b4a72493c91055fd8c46d7681b4527 100644
--- a/src/main/java/org/bukkit/Chunk.java
+++ b/src/main/java/org/bukkit/Chunk.java
@@ -103,13 +103,26 @@ public interface Chunk extends PersistentDataHolder {
@@ -102,13 +102,26 @@ public interface Chunk {
@NotNull
Entity[] getEntities();

View File

@ -2411,7 +2411,7 @@ index 1b2f415e3ed7f6dca12d13cd098cb4ec3af54020..64e8088d394ddcda59d0209883b778ab
@Override
public BlockPosition immutableCopy() {
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235c802c8f7 100644
index ea09e7a742f8e28dfd3db3736422326aff0912f6..3b3e94cff2c6def318864bb5b7baefcf9de2cae7 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -26,7 +26,7 @@ public class Chunk implements IChunkAccess {
@ -2441,8 +2441,8 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235
this.i = chunkconverter;
HeightMap.Type[] aheightmap_type = HeightMap.Type.values();
int j = aheightmap_type.length;
@@ -112,6 +112,110 @@ public class Chunk implements IChunkAccess {
public final org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer persistentDataContainer = new org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer(DATA_TYPE_REGISTRY);
@@ -109,6 +109,110 @@ public class Chunk implements IChunkAccess {
public boolean needsDecoration;
// CraftBukkit end
+ // Paper start
@ -2552,7 +2552,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235
public Chunk(World world, ProtoChunk protochunk) {
this(world, protochunk.getPos(), protochunk.getBiomeIndex(), protochunk.p(), protochunk.n(), protochunk.o(), protochunk.getInhabitedTime(), protochunk.getSections(), (Consumer) null);
Iterator iterator = protochunk.y().iterator();
@@ -217,6 +321,18 @@ public class Chunk implements IChunkAccess {
@@ -214,6 +318,18 @@ public class Chunk implements IChunkAccess {
}
}
@ -2571,7 +2571,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235
@Override
public Fluid getFluid(BlockPosition blockposition) {
return this.a(blockposition.getX(), blockposition.getY(), blockposition.getZ());
@@ -356,6 +472,7 @@ public class Chunk implements IChunkAccess {
@@ -353,6 +469,7 @@ public class Chunk implements IChunkAccess {
entity.chunkX = this.loc.x;
entity.chunkY = k;
entity.chunkZ = this.loc.z;
@ -2579,7 +2579,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235
this.entitySlices[k].add(entity);
}
@@ -378,6 +495,7 @@ public class Chunk implements IChunkAccess {
@@ -375,6 +492,7 @@ public class Chunk implements IChunkAccess {
}
this.entitySlices[i].remove(entity);
@ -2587,7 +2587,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235
}
@Override
@@ -399,6 +517,7 @@ public class Chunk implements IChunkAccess {
@@ -396,6 +514,7 @@ public class Chunk implements IChunkAccess {
return this.a(blockposition, Chunk.EnumTileEntityState.CHECK);
}
@ -2595,7 +2595,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235
@Nullable
public TileEntity a(BlockPosition blockposition, Chunk.EnumTileEntityState chunk_enumtileentitystate) {
// CraftBukkit start
@@ -510,7 +629,25 @@ public class Chunk implements IChunkAccess {
@@ -507,7 +626,25 @@ public class Chunk implements IChunkAccess {
// CraftBukkit start
public void loadCallback() {
@ -2621,7 +2621,7 @@ index 22281e509e65bf179c041b33238f217fb7c856ad..157eccc8e45566db527c7d46d3b3d235
if (server != null) {
/*
* If it's a new world, the first few chunks are generated inside
@@ -549,6 +686,22 @@ public class Chunk implements IChunkAccess {
@@ -546,6 +683,22 @@ public class Chunk implements IChunkAccess {
server.getPluginManager().callEvent(unloadEvent);
// note: saving can be prevented, but not forced if no saving is actually required
this.mustNotSave = !unloadEvent.isSaveChunk();
@ -3133,7 +3133,7 @@ index 07c48d777a71a979fb1f0063eef2e613e448d2eb..8a5d6869c269369d45cfe4e61853c442
super(entitytypes, world);
this.f = 5;
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 8fc44b87ba16f6d25471c26310702c5b4651989a..2b86d99420b59d67b1afec45d9a02003613d40a6 100644
index 24d16bbeb8d7e971591c182149bdd8fbed7778a5..ec885c22279b237974ef461285ba59e0033800d9 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -93,6 +93,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@ -8,7 +8,7 @@ This enables us a fast reference to the entities current chunk instead
of having to look it up by hashmap lookups.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 157eccc8e45566db527c7d46d3b3d235c802c8f7..e46ed143a52eab4af15cc76606992c3bf68156c3 100644
index 3b3e94cff2c6def318864bb5b7baefcf9de2cae7..6bd9457ad5c9fb1c0f12ff345b531be0673e866e 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -56,11 +56,36 @@ public class Chunk implements IChunkAccess {
@ -49,7 +49,7 @@ index 157eccc8e45566db527c7d46d3b3d235c802c8f7..e46ed143a52eab4af15cc76606992c3b
this.l = Maps.newHashMap();
this.m = Maps.newHashMap();
this.n = new ShortList[16];
@@ -469,6 +494,7 @@ public class Chunk implements IChunkAccess {
@@ -466,6 +491,7 @@ public class Chunk implements IChunkAccess {
}
entity.inChunk = true;
@ -57,7 +57,7 @@ index 157eccc8e45566db527c7d46d3b3d235c802c8f7..e46ed143a52eab4af15cc76606992c3b
entity.chunkX = this.loc.x;
entity.chunkY = k;
entity.chunkZ = this.loc.z;
@@ -481,6 +507,7 @@ public class Chunk implements IChunkAccess {
@@ -478,6 +504,7 @@ public class Chunk implements IChunkAccess {
((HeightMap) this.heightMap.get(heightmap_type)).a(along);
}
@ -65,7 +65,7 @@ index 157eccc8e45566db527c7d46d3b3d235c802c8f7..e46ed143a52eab4af15cc76606992c3b
public void b(Entity entity) {
this.a(entity, entity.chunkY);
}
@@ -494,7 +521,12 @@ public class Chunk implements IChunkAccess {
@@ -491,7 +518,12 @@ public class Chunk implements IChunkAccess {
i = this.entitySlices.length - 1;
}
@ -137,7 +137,7 @@ index cfbca7cfde3160e888e14c5bb3bc48267f1cb599..67fdd560f8136d83a13f75e265d5f5dd
@Nullable
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 82f9b1ad68012c6ea72337108bb3363a0f3a1f46..c4d7430cfe037ed65b49d2cc9c3d95002368fdc1 100644
index fc23f2c4dc3ece5fd944de72b62b1a1ede3e7e45..66878c53bfb71392bf07d2c41a2edf1bc8f7af79 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -143,6 +143,7 @@ import net.minecraft.server.EntityZombieHusk;

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Store counts for each Entity/Block Entity Type
Opens door for future patches to optimize performance
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index e46ed143a52eab4af15cc76606992c3bf68156c3..18e18e6cabe94a23ebfc9f9d8279837105f1d976 100644
index 6bd9457ad5c9fb1c0f12ff345b531be0673e866e..e6855287102be620856935df32b5df9bcf6bb88e 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -57,15 +57,19 @@ public class Chunk implements IChunkAccess {
@ -37,7 +37,7 @@ index e46ed143a52eab4af15cc76606992c3bf68156c3..18e18e6cabe94a23ebfc9f9d82798371
}
return removed;
}
@@ -493,6 +498,7 @@ public class Chunk implements IChunkAccess {
@@ -490,6 +495,7 @@ public class Chunk implements IChunkAccess {
k = this.entitySlices.length - 1;
}
@ -45,7 +45,7 @@ index e46ed143a52eab4af15cc76606992c3bf68156c3..18e18e6cabe94a23ebfc9f9d82798371
entity.inChunk = true;
entity.setCurrentChunk(this); // Paper
entity.chunkX = this.loc.x;
@@ -526,6 +532,7 @@ public class Chunk implements IChunkAccess {
@@ -523,6 +529,7 @@ public class Chunk implements IChunkAccess {
if (!this.entitySlices[i].remove(entity)) {
return;
}

View File

@ -667,7 +667,7 @@ index 0000000000000000000000000000000000000000..944fd203e9f39d6c6fc9e270940c76c9
+ }
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 357856e5abcbc91452fa5b09643522f04843f71d..4479f74daef573bcbb6757186440bf47a3aef912 100644
index b367bb8ea184489f433f8acc798466c38816ae62..a62f4bbb973b9cb6d1ee53f56a0897d70ae176af 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -14,12 +14,15 @@ import java.util.concurrent.TimeUnit;
@ -735,10 +735,10 @@ index 871b79cb2c63525c430c257f00b2cf70157aa476..d847326b0099a0c05a085d5d62de6304
private String name;
@Nullable
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 18e18e6cabe94a23ebfc9f9d8279837105f1d976..30d760ab30ed70ec2e4c37f2e8dbe80006c51f1b 100644
index e6855287102be620856935df32b5df9bcf6bb88e..baa3783a0c16e9a7eaec9d38e1fe6bfed9710aa1 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -696,6 +696,7 @@ public class Chunk implements IChunkAccess {
@@ -693,6 +693,7 @@ public class Chunk implements IChunkAccess {
server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(this.bukkitChunk, this.needsDecoration));
if (this.needsDecoration) {
@ -746,7 +746,7 @@ index 18e18e6cabe94a23ebfc9f9d8279837105f1d976..30d760ab30ed70ec2e4c37f2e8dbe800
this.needsDecoration = false;
java.util.Random random = new java.util.Random();
random.setSeed(world.getSeed());
@@ -715,6 +716,7 @@ public class Chunk implements IChunkAccess {
@@ -712,6 +713,7 @@ public class Chunk implements IChunkAccess {
}
}
server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk));
@ -846,7 +846,7 @@ index 1ca6d656cd2c7bbf12df6368ad7d953765d03e36..042031d2b7cb2f56d422145ffa7589fa
private void a(long i, Consumer<Chunk> consumer) {
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 7d9161b9e3996098d0f257661e39036e82d3f88a..52621ab74c8af1ab0c38e8df28cb7dc7153096a3 100644
index a9b40a74fb2080ccb9958f074d424c8b8ed97239..f30071fe5c1f33386829cc61d8c6976a39eff24f 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -1,5 +1,6 @@
@ -856,7 +856,7 @@ index 7d9161b9e3996098d0f257661e39036e82d3f88a..52621ab74c8af1ab0c38e8df28cb7dc7
import com.google.common.collect.Maps;
import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
import it.unimi.dsi.fastutil.longs.LongSet;
@@ -404,7 +405,6 @@ public class ChunkRegionLoader {
@@ -392,7 +393,6 @@ public class ChunkRegionLoader {
private static void loadEntities(NBTTagCompound nbttagcompound, Chunk chunk) {
NBTTagList nbttaglist = nbttagcompound.getList("Entities", 10);
World world = chunk.getWorld();
@ -864,7 +864,7 @@ index 7d9161b9e3996098d0f257661e39036e82d3f88a..52621ab74c8af1ab0c38e8df28cb7dc7
for (int i = 0; i < nbttaglist.size(); ++i) {
NBTTagCompound nbttagcompound1 = nbttaglist.getCompound(i);
@@ -416,8 +416,6 @@ public class ChunkRegionLoader {
@@ -404,8 +404,6 @@ public class ChunkRegionLoader {
chunk.d(true);
}
@ -873,7 +873,7 @@ index 7d9161b9e3996098d0f257661e39036e82d3f88a..52621ab74c8af1ab0c38e8df28cb7dc7
NBTTagList nbttaglist1 = nbttagcompound.getList("TileEntities", 10);
for (int j = 0; j < nbttaglist1.size(); ++j) {
@@ -435,8 +433,6 @@ public class ChunkRegionLoader {
@@ -423,8 +421,6 @@ public class ChunkRegionLoader {
}
}
}
@ -2012,10 +2012,10 @@ index 7f435847ac1d13756ce233e7d5ae13f9dc17c443..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 68da8e3981dda2c04031d8033776abb845dc109e..4f8745ce03eef96597963f5c2e08055f51686755 100644
index 1bde861afb6ff3d339bda0996e9eaa502cce5e70..495470f9c397e80b9e6e8e3c9360b0d659b916ed 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1797,6 +1797,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1774,6 +1774,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
packet.components = components;
getHandle().playerConnection.sendPacket(packet);
}

View File

@ -131,10 +131,10 @@ index 90af43930f9141b0c7f51bb3d887d7b9c4d935eb..1741ec5e241f8ae7a3c30a9021d14cb0
public void c() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 4f8745ce03eef96597963f5c2e08055f51686755..ae7fd1cfdf2a5c222959ca8694b98a77b69e7885 100644
index 495470f9c397e80b9e6e8e3c9360b0d659b916ed..11f80c6f58e611f33ad8bbd09aa8bf90c7933426 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1709,7 +1709,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1686,7 +1686,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {
return getHandle().locale;

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Remove invalid mob spawner tile entities
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 30d760ab30ed70ec2e4c37f2e8dbe80006c51f1b..4c051667028ebed6b6f57d4e7d7acbad850c1052 100644
index baa3783a0c16e9a7eaec9d38e1fe6bfed9710aa1..dbaa56f4f8c1093935a981c14bc1cb79c991579c 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -611,6 +611,10 @@ public class Chunk implements IChunkAccess {
@@ -608,6 +608,10 @@ public class Chunk implements IChunkAccess {
}
// CraftBukkit start

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Only refresh abilities if needed
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index ae7fd1cfdf2a5c222959ca8694b98a77b69e7885..8e53988ab9639a7f9c2b21c7a66f3c4a2edeb2cf 100644
index 11f80c6f58e611f33ad8bbd09aa8bf90c7933426..b491e10b95d2235e2495e491596d23614be23d50 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1389,12 +1389,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1366,12 +1366,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setFlying(boolean value) {

View File

@ -117,10 +117,10 @@ index a807933d65a22dc1b15eda4dee819af72006fff3..25a4bd5a216798d01da33e54da4ab0e2
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index c4d7430cfe037ed65b49d2cc9c3d95002368fdc1..cee519adaad3f784640bb4d91b53b107054c5e58 100644
index 66878c53bfb71392bf07d2c41a2edf1bc8f7af79..10f96056700c88cc8e83477877788e3443cecefd 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1032,4 +1032,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1022,4 +1022,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return spigot;
}
// Spigot end

View File

@ -52,7 +52,7 @@ index 3a6e780007bc1b1fa799166daa01d3a9e15c7ab0..535056c64ef866e645b1bfbd149b50c5
if (this.a == PacketPlayOutTitle.EnumTitleAction.TIMES) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 8e53988ab9639a7f9c2b21c7a66f3c4a2edeb2cf..671cab3efd94b81b0d71af3e096ffe9108d36258 100644
index b491e10b95d2235e2495e491596d23614be23d50..7c89694da8bb0ee10b5294d8ecf83842c9030c20 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1,5 +1,6 @@
@ -62,7 +62,7 @@ index 8e53988ab9639a7f9c2b21c7a66f3c4a2edeb2cf..671cab3efd94b81b0d71af3e096ffe91
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.BaseEncoding;
@@ -238,6 +239,96 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -215,6 +216,96 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}

View File

@ -30,10 +30,10 @@ index cd47a4ca069df26969de3051c2aac80540093818..abbf59bb91021821876a8960e8f77fac
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 671cab3efd94b81b0d71af3e096ffe9108d36258..2cc50f8d91c4ea8632ad72fce6aa585916ca8dd7 100644
index 7c89694da8bb0ee10b5294d8ecf83842c9030c20..3698080b147301b41014ea75c677af042a38c6a3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -783,7 +783,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -760,7 +760,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (fromWorld == toWorld) {
entity.playerConnection.teleport(to);
} else {

View File

@ -49,7 +49,7 @@ index 0000000000000000000000000000000000000000..f699ce18ca044f813e194ef2786b7ea8
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 4c051667028ebed6b6f57d4e7d7acbad850c1052..399641433a874cb6426a6092722036446df32eb6 100644
index dbaa56f4f8c1093935a981c14bc1cb79c991579c..330492e918efa42717ef2208947e8be927df5398 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -1,5 +1,6 @@
@ -59,7 +59,7 @@ index 4c051667028ebed6b6f57d4e7d7acbad850c1052..399641433a874cb6426a609272203644
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
@@ -616,10 +617,15 @@ public class Chunk implements IChunkAccess {
@@ -613,10 +614,15 @@ public class Chunk implements IChunkAccess {
this.tileEntities.remove(blockposition);
// Paper end
} else {
@ -187,7 +187,7 @@ index 1844a6504acc420bdfaaf8f045c569e970d055db..d6aadbda5c5a17976659f57ee04cf9b9
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c628b3f8a927d8ddba1c14c2dc60ae4fc517b56f..8ae490f5dbf9afc467f82fd7ea863bc9e247203b 100644
index f0f099c28dcbfa2914fc86e87c52d70b68883ebe..8d8da7885df69fd98f2b4715e4b6b4aa992bde27 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,5 +1,10 @@

View File

@ -22,7 +22,7 @@ index 7493d7ce48a9c5875bce01252b4d958ab3b9ec7d..535e24a54a22f59b165e5043653eef5c
// CraftBukkit end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 2cc50f8d91c4ea8632ad72fce6aa585916ca8dd7..65ba8b130328b681b67a01b06353ea382d004be6 100644
index 3698080b147301b41014ea75c677af042a38c6a3..4140fef9aeb3a67c8a0e543c54b3df66ba50eb0b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -138,6 +138,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -36,7 +36,7 @@ index 2cc50f8d91c4ea8632ad72fce6aa585916ca8dd7..65ba8b130328b681b67a01b06353ea38
public CraftPlayer(CraftServer server, EntityPlayer entity) {
super(server, entity);
@@ -1813,6 +1817,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1790,6 +1794,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean getAffectsSpawning() {
return this.getHandle().affectsSpawning;
}

View File

@ -44,10 +44,10 @@ index a69eadd57a2ccb30eaa5f997feebf0cbb2300065..e9a67693f36345da1ef657a584f99692
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 65ba8b130328b681b67a01b06353ea382d004be6..eb86e8ff8c483b77d91a948411aaf167f6261091 100644
index 4140fef9aeb3a67c8a0e543c54b3df66ba50eb0b..90f04e16956e18f48a45d45f09d4f37eabc65478 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1630,6 +1630,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1607,6 +1607,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setRealHealth(double health) {

View File

@ -33,10 +33,10 @@ index f6a5ebd4c7ec045c8dd6841831f8fcc0b32d964e..63a9ce32fb8b98695e104f7d820cd9b1
this.a = i;
this.b = j;
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 399641433a874cb6426a6092722036446df32eb6..560d61183f28b0271739548e8b784fdaf97e8a11 100644
index 330492e918efa42717ef2208947e8be927df5398..8d13c2fab572428d61777699d5463f0678d9ad7c 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -311,12 +311,27 @@ public class Chunk implements IChunkAccess {
@@ -308,12 +308,27 @@ public class Chunk implements IChunkAccess {
return this.sections;
}
@ -192,7 +192,7 @@ index 065eeed71075bb8f4069cb172ea7fca54793ddc0..09da0cc8f02c504191dfec8be93e6cf6
@Override
public Fluid getFluid(BlockPosition blockposition) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 884e166826a73e0210f3c215d68cdf1a4bd00355..5f867e28ec349b4ff1ac1d9398c7bd6263cbf9c0 100644
index ca073af1c88721a856ad5a1878db24f3d94135e6..3b4ac43dbad865e1f99a20e4b8860797d060903f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -187,7 +187,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {

View File

@ -30,10 +30,10 @@ index 92d1dffbf436a21943b4a6aa0fabf54f064e6046..725958efab3dd05e04b7b18e16923076
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 560d61183f28b0271739548e8b784fdaf97e8a11..f02d4726747a0992e851730c21c9423f706aa27a 100644
index 8d13c2fab572428d61777699d5463f0678d9ad7c..72f7d415907b7e8478b3ca4a0fd6c3897ce70d40 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -980,7 +980,7 @@ public class Chunk implements IChunkAccess {
@@ -977,7 +977,7 @@ public class Chunk implements IChunkAccess {
@Override
public long getInhabitedTime() {

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Workaround for setting passengers on players
SPIGOT-1915 & GH-114
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index eb86e8ff8c483b77d91a948411aaf167f6261091..9aca1c0198f4d9e0b8b632aead499aaed240b091 100644
index 90f04e16956e18f48a45d45f09d4f37eabc65478..81beabd053c024b0fc4d0948b94a8ff789cb1ba6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -792,6 +792,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -769,6 +769,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return true;
}

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Implement PlayerLocaleChangeEvent
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 4799bf67f0ca74cf5573ce0a553903f75b7711b7..4849a44ebbddcdd17a84cb0db3c47ea420f2bf05 100644
index 863f779453bb028d6452292663fd1e41ab434165..ed29b3cdbc0137f81d586207d4082a02d8ef73b5 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1540,16 +1540,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@ -29,10 +29,10 @@ index 4799bf67f0ca74cf5573ce0a553903f75b7711b7..4849a44ebbddcdd17a84cb0db3c47ea4
this.locale = packetplayinsettings.locale;
this.clientViewDistance = packetplayinsettings.viewDistance;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 9aca1c0198f4d9e0b8b632aead499aaed240b091..4148b53d08d7bde1c13d9cdca4330f1313b33409 100644
index 81beabd053c024b0fc4d0948b94a8ff789cb1ba6..da264f118fca10bc7ff758e702c11f9d4885d2c2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1816,8 +1816,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1793,8 +1793,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale() {

View File

@ -19,10 +19,10 @@ index ac76bdd7e1d91b0d242539c4495948cdfbb622e0..6cb717a63f52d757b0b323408d2fc0c3
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index f02d4726747a0992e851730c21c9423f706aa27a..45d7a06ea51ccc2264a7c3d1518d0b37d089c531 100644
index 72f7d415907b7e8478b3ca4a0fd6c3897ce70d40..e33711fc14323777c86a485dee20ebaeb3989614 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -640,6 +640,12 @@ public class Chunk implements IChunkAccess {
@@ -637,6 +637,12 @@ public class Chunk implements IChunkAccess {
"Chunk coordinates: " + (this.loc.x * 16) + "," + (this.loc.z * 16));
e.printStackTrace();
ServerInternalException.reportInternalException(e);

View File

@ -18,10 +18,10 @@ index bdfd17362518ff2398cf9e1743a7a4f0c7a0e966..cc14e4b4609fa7013df666181c0e02a5
public static <K, V> Collector<Entry<? extends K, ? extends V>, ?, Map<K, V>> a() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 4148b53d08d7bde1c13d9cdca4330f1313b33409..207fb61243d87620b65720d4cb558c6234f92c92 100644
index da264f118fca10bc7ff758e702c11f9d4885d2c2..6ca7a7a3267d3c8477c8333dea9ac2bbad230056 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -244,6 +244,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -221,6 +221,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper start

View File

@ -49,10 +49,10 @@ index 259713339217660e8b81a9500f57c6995ea59dde..8eb20c6b9a88d5d4056f91df1f496d3d
if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) {
Entity vehicle = entity.getVehicle();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 833ea97631563c7e4f35a232c5f3f371e6eff689..80dfa39fdf736225c3c1ad4bf510c250c0e87dba 100644
index e7125c8a3a4b8374e3a5ea37dc097d383ba8bdc3..1d3e4d5c88368f89f8b6da40788592362df8c87f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1070,5 +1070,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1060,5 +1060,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
Location origin = getHandle().origin;
return origin == null ? null : origin.clone();
}

View File

@ -42,10 +42,10 @@ index e2370b8cf76d6f06cbdaba009feaf5df98b36da4..a2eaea4bd847ebe0b3dc35c95c4c29d6
return i * 2;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index abc0466a2d6a059a401f57d93cd4e9465de14461..0ab5915d447b7a23deccb54763f54d09e83cf88e 100644
index 6eb02d0a69a0375ba099f776636de765612911e5..cbeac436e57a68270b2681ddf564d84c167398bd 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1098,8 +1098,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1075,8 +1075,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return GameMode.getByValue(getHandle().playerInteractManager.getGameMode().getId());
}

View File

@ -48,10 +48,10 @@ index 230dcda34707b822790ace75957174f937821898..a3555dd251af5dd4b320428aadaffe70
uniqueId = i.getId();
// Paper end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0ab5915d447b7a23deccb54763f54d09e83cf88e..1721f3c937450eacfcb48df482535e6cf1f24fe3 100644
index cbeac436e57a68270b2681ddf564d84c167398bd..4bcf2ed3dd2a5d51e4490d4156978c8fff0df2b0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1256,8 +1256,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1233,8 +1233,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
hiddenPlayers.put(player.getUniqueId(), hidingPlugins);
// Remove this player from the hidden player's EntityTrackerEntry
@ -66,7 +66,7 @@ index 0ab5915d447b7a23deccb54763f54d09e83cf88e..1721f3c937450eacfcb48df482535e6c
PlayerChunkMap.EntityTracker entry = tracker.trackedEntities.get(other.getId());
if (entry != null) {
entry.clear(getHandle());
@@ -1298,8 +1303,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1275,8 +1280,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
hiddenPlayers.remove(player.getUniqueId());
@ -81,7 +81,7 @@ index 0ab5915d447b7a23deccb54763f54d09e83cf88e..1721f3c937450eacfcb48df482535e6c
getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, other));
@@ -1308,6 +1318,50 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1285,6 +1295,50 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
entry.updatePlayer(getHandle());
}
}

View File

@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs.
provide an optional flag to disable this check, at your own risk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 1721f3c937450eacfcb48df482535e6cf1f24fe3..df1896d447295123dbf7f8c8dea163be7849132f 100644
index 4bcf2ed3dd2a5d51e4490d4156978c8fff0df2b0..23889ce169baf956cfb39f1ec21a8369f80c5555 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -141,6 +141,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -20,7 +20,7 @@ index 1721f3c937450eacfcb48df482535e6cf1f24fe3..df1896d447295123dbf7f8c8dea163be
// Paper end
public CraftPlayer(CraftServer server, EntityPlayer entity) {
@@ -1524,7 +1525,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1501,7 +1502,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void addChannel(String channel) {

View File

@ -180,10 +180,10 @@ index a1c318aa6501d9d0bdd53dc1fb8a99b7a782b4ce..ebcd2d043b3e6cf90b62eda1ea7a2d8c
@Override
public boolean isBlocking() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index df1896d447295123dbf7f8c8dea163be7849132f..18f0d23e38abb9c3e326a727cc4b4e040adb432d 100644
index 23889ce169baf956cfb39f1ec21a8369f80c5555..25175230583bbd6fcfc864dcbae4111dcc0d3b33 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -813,7 +813,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -790,7 +790,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Close any foreign inventory
if (getHandle().activeContainer != getHandle().defaultContainer) {

View File

@ -6,10 +6,10 @@ Subject: [PATCH] Mark chunk dirty anytime entities change to guarantee it
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 45d7a06ea51ccc2264a7c3d1518d0b37d089c531..edacc6da62593c94392f460cb6839ed5f8067dd4 100644
index e33711fc14323777c86a485dee20ebaeb3989614..bc249e399befa84cdf07cc58cd0072bb9cb5cced 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -522,6 +522,7 @@ public class Chunk implements IChunkAccess {
@@ -519,6 +519,7 @@ public class Chunk implements IChunkAccess {
entity.chunkZ = this.loc.z;
this.entities.add(entity); // Paper - per chunk entity list
this.entitySlices[k].add(entity);
@ -17,7 +17,7 @@ index 45d7a06ea51ccc2264a7c3d1518d0b37d089c531..edacc6da62593c94392f460cb6839ed5
}
@Override
@@ -549,6 +550,7 @@ public class Chunk implements IChunkAccess {
@@ -546,6 +547,7 @@ public class Chunk implements IChunkAccess {
return;
}
entityCounts.decrement(entity.getMinecraftKeyString());

View File

@ -9,10 +9,10 @@ This should hopefully avoid duplicate entities ever being created
if the entity was to end up in 2 different chunk slices
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index edacc6da62593c94392f460cb6839ed5f8067dd4..18d55cea6258c7b59b79aec1bcdf358944d5b527 100644
index bc249e399befa84cdf07cc58cd0072bb9cb5cced..3b3cae92513a85ba842d403c68f5a1fb8fde785d 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -513,6 +513,25 @@ public class Chunk implements IChunkAccess {
@@ -510,6 +510,25 @@ public class Chunk implements IChunkAccess {
if (k >= this.entitySlices.length) {
k = this.entitySlices.length - 1;
}
@ -38,7 +38,7 @@ index edacc6da62593c94392f460cb6839ed5f8067dd4..18d55cea6258c7b59b79aec1bcdf3589
if (!entity.inChunk || entity.getCurrentChunk() != this) entityCounts.increment(entity.getMinecraftKeyString()); // Paper
entity.inChunk = true;
@@ -522,6 +541,7 @@ public class Chunk implements IChunkAccess {
@@ -519,6 +538,7 @@ public class Chunk implements IChunkAccess {
entity.chunkZ = this.loc.z;
this.entities.add(entity); // Paper - per chunk entity list
this.entitySlices[k].add(entity);
@ -46,7 +46,7 @@ index edacc6da62593c94392f460cb6839ed5f8067dd4..18d55cea6258c7b59b79aec1bcdf3589
this.markDirty(); // Paper
}
@@ -546,6 +566,10 @@ public class Chunk implements IChunkAccess {
@@ -543,6 +563,10 @@ public class Chunk implements IChunkAccess {
// Paper start
if (entity.currentChunk != null && entity.currentChunk.get() == this) entity.setCurrentChunk(null);

View File

@ -18,10 +18,10 @@ an invalid entity.
This should reduce log occurrences of dupe uuid messages.
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 52621ab74c8af1ab0c38e8df28cb7dc7153096a3..8affcbbb0a970acc83531f7308734552727b00c5 100644
index f30071fe5c1f33386829cc61d8c6976a39eff24f..1e28061dd83a4bf2daab38aee84ddba3329b28dc 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -307,6 +307,7 @@ public class ChunkRegionLoader {
@@ -301,6 +301,7 @@ public class ChunkRegionLoader {
nbttagcompound1.set("TileEntities", nbttaglist1);
NBTTagList nbttaglist2 = new NBTTagList();
@ -29,7 +29,7 @@ index 52621ab74c8af1ab0c38e8df28cb7dc7153096a3..8affcbbb0a970acc83531f7308734552
if (ichunkaccess.getChunkStatus().getType() == ChunkStatus.Type.LEVELCHUNK) {
Chunk chunk = (Chunk) ichunkaccess;
@@ -324,13 +325,28 @@ public class ChunkRegionLoader {
@@ -312,13 +313,28 @@ public class ChunkRegionLoader {
while (iterator1.hasNext()) {
Entity entity = (Entity) iterator1.next();
NBTTagCompound nbttagcompound4 = new NBTTagCompound();
@ -59,7 +59,7 @@ index 52621ab74c8af1ab0c38e8df28cb7dc7153096a3..8affcbbb0a970acc83531f7308734552
} else {
ProtoChunk protochunk = (ProtoChunk) ichunkaccess;
@@ -389,6 +405,19 @@ public class ChunkRegionLoader {
@@ -377,6 +393,19 @@ public class ChunkRegionLoader {
nbttagcompound1.set("Structures", a(chunkcoordintpair, ichunkaccess.h(), ichunkaccess.v()));
return nbttagcompound;
}

View File

@ -23,10 +23,10 @@ index 9cb2f3b31921870ddba044840e99eb04babe26bb..f0a836db74ad3e20778d3863223bc9a3
MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.chunkX, e.chunkZ);
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 18d55cea6258c7b59b79aec1bcdf358944d5b527..6154f7a7973168cbe294bc0f40894f05bf20513e 100644
index 3b3cae92513a85ba842d403c68f5a1fb8fde785d..5ee581d1634f44a98756c5d11def9c3d46fd53e9 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -821,6 +821,7 @@ public class Chunk implements IChunkAccess {
@@ -818,6 +818,7 @@ public class Chunk implements IChunkAccess {
for (int i1 = 0; i1 < l; ++i1) {
Entity entity1 = (Entity) list1.get(i1);
@ -34,7 +34,7 @@ index 18d55cea6258c7b59b79aec1bcdf358944d5b527..6154f7a7973168cbe294bc0f40894f05
if (entity1.getBoundingBox().c(axisalignedbb) && entity1 != entity) {
if (predicate == null || predicate.test(entity1)) {
@@ -857,6 +858,7 @@ public class Chunk implements IChunkAccess {
@@ -854,6 +855,7 @@ public class Chunk implements IChunkAccess {
while (iterator.hasNext()) {
T entity = (T) iterator.next(); // CraftBukkit - decompile error
@ -42,7 +42,7 @@ index 18d55cea6258c7b59b79aec1bcdf358944d5b527..6154f7a7973168cbe294bc0f40894f05
if ((entitytypes == null || entity.getEntityType() == entitytypes) && entity.getBoundingBox().c(axisalignedbb) && predicate.test(entity)) {
list.add(entity);
@@ -878,6 +880,7 @@ public class Chunk implements IChunkAccess {
@@ -875,6 +877,7 @@ public class Chunk implements IChunkAccess {
while (iterator.hasNext()) {
T t0 = (T) iterator.next(); // CraftBukkit - decompile error

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
index 1a312a868f6a65e7d4a53406825e9efd96d98607..4aeae5ef72c2d929c86b4f9575f2c162710f99f0 100644
index eaa60f89bf57f348a6be287b2478b33ca2320d07..3d18a95c9ce9e2fbe142b522d41045992002f715 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
@@ -130,9 +130,16 @@ public class CraftChunk implements Chunk {
@@ -129,9 +129,16 @@ public class CraftChunk implements Chunk {
@Override
public BlockState[] getTileEntities() {
@ -25,7 +25,7 @@ index 1a312a868f6a65e7d4a53406825e9efd96d98607..4aeae5ef72c2d929c86b4f9575f2c162
int index = 0;
net.minecraft.server.Chunk chunk = getHandle();
@@ -144,7 +151,7 @@ public class CraftChunk implements Chunk {
@@ -143,7 +150,7 @@ public class CraftChunk implements Chunk {
}
BlockPosition position = (BlockPosition) obj;

View File

@ -17,10 +17,10 @@ index cc20b73a993d021789840ed2ee7ba1fc8310dc5a..a6265c71973b67a0b49a41e2163a6f48
return (float) (1.0D / this.b(GenericAttributes.ATTACK_SPEED) * 20.0D);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 18f0d23e38abb9c3e326a727cc4b4e040adb432d..982b8a7028385d38ff0bd88aabd94801ae258037 100644
index 25175230583bbd6fcfc864dcbae4111dcc0d3b33..b90b35c08cdc9bb44aaf9f4824289fd0824c937f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1993,6 +1993,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1970,6 +1970,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
getInventory().setItemInMainHand(hand);
}

View File

@ -274,7 +274,7 @@ index f193c2778d0f04973546256d648692398b932dca..c54641d984bdd04067f9dba66322b01b
return this.isBaby() ? (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.5F : (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F;
}
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index daeb5a6e005a4b85b5f3ac581c0e7cb6ea64b2c8..db7435c6923235fad63bdf531eca4a95c1b63dc9 100644
index 7ac4e006c76373d2aedb37adf22bbb3044f9e65b..246de149254a6303b36ba1e2441499497c09bc5b 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -82,6 +82,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@ -352,10 +352,10 @@ index 9a2e6bedfc50fba10f37c01d825f80415bfb69d3..a4afe638515471159d505a5e402a9342
this.minecraftKey = minecraftKey;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 982b8a7028385d38ff0bd88aabd94801ae258037..6c3b9df31e9c44f7171cf08014561e4b095133b1 100644
index b90b35c08cdc9bb44aaf9f4824289fd0824c937f..28a04cb8a90ad82b86f658ad17675ab58f7e8d41 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1784,7 +1784,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1761,7 +1761,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void sendHealthUpdate() {
@ -373,7 +373,7 @@ index 982b8a7028385d38ff0bd88aabd94801ae258037..6c3b9df31e9c44f7171cf08014561e4b
public void injectScaledMaxHealth(Collection<AttributeModifiable> collection, boolean force) {
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 78f3af7de270750734f6d8d1522e0d755408e17e..4d82634cc4f1f4ef16cb027c7edfc8b7638311b5 100644
index 95f01296b1a7763f33ec17ab4e11d85549ca95c0..460f473b0158f2392261a55db12fa735969de470 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -791,9 +791,16 @@ public class CraftEventFactory {

View File

@ -16,7 +16,7 @@ intent to remove) and replace it with two new methods, clearly named and
documented as to their purpose.
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index e69fd9985ea99c46ac20bf5cabd961eeccdbc7c1..32b2d592f2e2e736ab46a08ecbad89bc3adc3f2b 100644
index 0bc51dd94d87b469022183c5a4f94cebe9f1a950..71604e01fe6d7dc5d8c500c10ae8b54075848b4f 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -82,6 +82,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@ -28,7 +28,7 @@ index e69fd9985ea99c46ac20bf5cabd961eeccdbc7c1..32b2d592f2e2e736ab46a08ecbad89bc
public boolean queueHealthUpdatePacket = false;
public net.minecraft.server.PacketPlayOutUpdateHealth queuedHealthUpdatePacket;
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 9a552465a262238614a6ee2a7e9118f9866d2441..3af77481c1f4671602058be8f34504b302e20c9c 100644
index bc31e882e77f5b8657107db1e3a830df4cf561e1..9a56f83e12c65cafe3d1fb00379b78e5ea59b3f1 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -97,6 +97,7 @@ public abstract class PlayerList {
@ -106,7 +106,7 @@ index 00333548b470435aa89fb0f4b29047eb1461e992..5770d4183c1b9ab6119a25930283c023
public Location getBedSpawnLocation() {
NBTTagCompound data = getData();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 6c3b9df31e9c44f7171cf08014561e4b095133b1..16c0aafcb2f0dc9e44e6f68f410236b3283050e5 100644
index 28a04cb8a90ad82b86f658ad17675ab58f7e8d41..806c621c6dfec93b7d0e46471dc2757998c90486 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -142,6 +142,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -117,7 +117,7 @@ index 6c3b9df31e9c44f7171cf08014561e4b095133b1..16c0aafcb2f0dc9e44e6f68f410236b3
// Paper end
public CraftPlayer(CraftServer server, EntityPlayer entity) {
@@ -1428,6 +1429,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1405,6 +1406,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.firstPlayed = firstPlayed;
}
@ -136,7 +136,7 @@ index 6c3b9df31e9c44f7171cf08014561e4b095133b1..16c0aafcb2f0dc9e44e6f68f410236b3
public void readExtraData(NBTTagCompound nbttagcompound) {
hasPlayedBefore = true;
if (nbttagcompound.hasKey("bukkit")) {
@@ -1450,6 +1463,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1427,6 +1440,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setExtraData(NBTTagCompound nbttagcompound) {
@ -145,7 +145,7 @@ index 6c3b9df31e9c44f7171cf08014561e4b095133b1..16c0aafcb2f0dc9e44e6f68f410236b3
if (!nbttagcompound.hasKey("bukkit")) {
nbttagcompound.set("bukkit", new NBTTagCompound());
}
@@ -1464,6 +1479,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1441,6 +1456,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
data.setLong("firstPlayed", getFirstPlayed());
data.setLong("lastPlayed", System.currentTimeMillis());
data.setString("lastKnownName", handle.getName());

View File

@ -12,10 +12,10 @@ Player we will look at limiting the scope of this change. It appears to
be unintentional in the few cases we've seen so far.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 16c0aafcb2f0dc9e44e6f68f410236b3283050e5..af7838a654978e86b4d2f2ff80c04da245ff1a41 100644
index 806c621c6dfec93b7d0e46471dc2757998c90486..d43ada6dccb45060ea37acf7a2a8ea6a4d74ab18 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2038,6 +2038,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2015,6 +2015,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetCooldown() {
getHandle().resetAttackCooldown();
}

View File

@ -71,7 +71,7 @@ index 1aecc84479b00a019a5b68f5e726d1c2965ae0f7..c3a5db97fd85b31c6b4bce93527b9d0e
// Spigot Start
if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) {
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 19d8497d691e0ec6f4451298dcf4b4831062d5ed..5b2cecba3569a35ba259427747a8d39f51d1c8cb 100644
index cb04de23dd8b506ebfd07d60acd082d6b7e14528..fbed3c1012c5b6fe61598ae6fae64edc2ad2e490 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -262,7 +262,7 @@ public abstract class PlayerList {
@ -96,10 +96,10 @@ index d6c86ce6a6a23ac8e889b0a9e7b8b7b8513ba5d1..21c0450d10e34ba066325af1b1bf7732
if (entity.valid) {
MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable());
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 61cadd53ca0125585da7fa33bfb8a82908f35cd2..423e6c3d4dc0266b70eae2dfa0aca6d4cc5442c5 100644
index d55383d8fb471fe3441dbbc8e9344b42f1d7465b..a479ca88dcf60866650c236e885dd55f47915858 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1076,5 +1076,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1066,5 +1066,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean fromMobSpawner() {
return getHandle().spawnedViaMobSpawner;
}

View File

@ -40,10 +40,10 @@ index dd4d12f4e3ab5385b85504bde962adce2981dfb5..1511212cbfbece279d9f66473bd6b5bc
double deltaZ = this.locZ() - player.locZ();
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index af7838a654978e86b4d2f2ff80c04da245ff1a41..b5088ad2eeef0a3fae0acb3dfea7605b9a861c73 100644
index 16edb26f9e66e26e5f26b83301613cd1486c7700..748b1c12ccee67a35232cf7a48e68ef7f34147c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2047,6 +2047,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2024,6 +2024,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
super.remove();
}
}

View File

@ -81,10 +81,10 @@ index 15e1f9f65280043853544d3bf796f991df2482de..21910dfd1a533e923a8a73e92fea2568
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 6154f7a7973168cbe294bc0f40894f05bf20513e..0f8745ede62894f8d88fc8985e34b32acee5c698 100644
index 5ee581d1634f44a98756c5d11def9c3d46fd53e9..8e3244fc5c6e5fff22857637b4ab5944d6b1e165 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -502,6 +502,7 @@ public class Chunk implements IChunkAccess {
@@ -499,6 +499,7 @@ public class Chunk implements IChunkAccess {
if (i != this.loc.x || j != this.loc.z) {
Chunk.LOGGER.warn("Wrong location! ({}, {}) should be ({}, {}), {}", i, j, this.loc.x, this.loc.z, entity);
entity.dead = true;

View File

@ -43,10 +43,10 @@ index db6b52850f10d212b3db81dcf86c622e610f02b2..3bfd225db6945cb431238a9a980fb6d1
@Nullable
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 8affcbbb0a970acc83531f7308734552727b00c5..c8aec9380ffb4e27ee41ff478ab984d92a5837b4 100644
index 1e28061dd83a4bf2daab38aee84ddba3329b28dc..ff859311abb0eeaedb9c9d9cf7a9e858f4e12978 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -419,6 +419,17 @@ public class ChunkRegionLoader {
@@ -407,6 +407,17 @@ public class ChunkRegionLoader {
}
// Paper end

View File

@ -975,10 +975,10 @@ index 0000000000000000000000000000000000000000..333763936897befda5bb6c077944d266
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 71efd1efab43d5aeabba2ad385016b616f4e4849..4ff3eff58fa8007eca7eec22ef53d23705a98ed9 100644
index 62758052546fac25fc90a9d26e5081d92eeba8b5..8dea2c50529478cf8473a53b7f760546812aa7ff 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -426,7 +426,7 @@ public class Chunk implements IChunkAccess {
@@ -423,7 +423,7 @@ public class Chunk implements IChunkAccess {
return null;
}
@ -1001,7 +1001,7 @@ index ed22ff28ea6c0978ec0d9d1ecf7baa3f422ed677..d2286f1549de563332c3e4181b9ada30
// Paper start
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index c8aec9380ffb4e27ee41ff478ab984d92a5837b4..4036970f4831f49eb0f35e3c11743623ac2eabb5 100644
index ff859311abb0eeaedb9c9d9cf7a9e858f4e12978..95bc46e8d9c9f75147cfdeaf464ec3ca2e491b1c 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -58,7 +58,7 @@ public class ChunkRegionLoader {
@ -1013,8 +1013,8 @@ index c8aec9380ffb4e27ee41ff478ab984d92a5837b4..4036970f4831f49eb0f35e3c11743623
chunksection.getBlocks().a(nbttagcompound2.getList("Palette", 10), nbttagcompound2.getLongArray("BlockStates"));
chunksection.recalcBlockCounts();
@@ -122,7 +122,7 @@ public class ChunkRegionLoader {
// CraftBukkit end
@@ -116,7 +116,7 @@ public class ChunkRegionLoader {
loadEntities(nbttagcompound1, chunk);
});
} else {
- ProtoChunk protochunk = new ProtoChunk(chunkcoordintpair, chunkconverter, achunksection, protochunkticklist, protochunkticklist1);
@ -1427,10 +1427,10 @@ index e89b512613e77d1f11acc9dfa5fb5d69c824305f..f4a4902ed161c7fab5c625135f11ff2b
convertable = convertable_conversionsession;
uuid = WorldUUID.getUUID(convertable_conversionsession.folder.toFile());
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
index 4aeae5ef72c2d929c86b4f9575f2c162710f99f0..d40ef8353b2c025309144b4123d6a7dff04a9c62 100644
index 3d18a95c9ce9e2fbe142b522d41045992002f715..ddad3440d364ebe98f6fabf00e90766b4ea4a5c2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
@@ -42,7 +42,7 @@ public class CraftChunk implements Chunk {
@@ -41,7 +41,7 @@ public class CraftChunk implements Chunk {
private final WorldServer worldServer;
private final int x;
private final int z;
@ -1439,7 +1439,7 @@ index 4aeae5ef72c2d929c86b4f9575f2c162710f99f0..d40ef8353b2c025309144b4123d6a7df
private static final byte[] emptyLight = new byte[2048];
public CraftChunk(net.minecraft.server.Chunk chunk) {
@@ -264,7 +264,7 @@ public class CraftChunk implements Chunk {
@@ -263,7 +263,7 @@ public class CraftChunk implements Chunk {
NBTTagCompound data = new NBTTagCompound();
cs[i].getBlocks().a(data, "Palette", "BlockStates");

View File

@ -14,7 +14,7 @@ And since minecart hoppers are used _very_ rarely near we can avoid alot of sear
Combined, this adds up a lot.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50909bb3d7 100644
index 8dea2c50529478cf8473a53b7f760546812aa7ff..a6cd89e0850c11ab6dd7f77842583c456c7f93dd 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -85,6 +85,10 @@ public class Chunk implements IChunkAccess {
@ -28,7 +28,7 @@ index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50
// Paper end
public Chunk(World world, ChunkCoordIntPair chunkcoordintpair, BiomeStorage biomestorage, ChunkConverter chunkconverter, TickList<Block> ticklist, TickList<FluidType> ticklist1, long i, @Nullable ChunkSection[] achunksection, @Nullable Consumer<Chunk> consumer) {
@@ -542,6 +546,13 @@ public class Chunk implements IChunkAccess {
@@ -539,6 +543,13 @@ public class Chunk implements IChunkAccess {
entity.chunkZ = this.loc.z;
this.entities.add(entity); // Paper - per chunk entity list
this.entitySlices[k].add(entity);
@ -42,7 +42,7 @@ index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50
entity.entitySlice = this.entitySlices[k]; // Paper
this.markDirty(); // Paper
}
@@ -574,6 +585,11 @@ public class Chunk implements IChunkAccess {
@@ -571,6 +582,11 @@ public class Chunk implements IChunkAccess {
if (!this.entitySlices[i].remove(entity)) {
return;
}
@ -54,7 +54,7 @@ index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50
entityCounts.decrement(entity.getMinecraftKeyString());
this.markDirty(); // Paper
// Paper end
@@ -857,6 +873,14 @@ public class Chunk implements IChunkAccess {
@@ -854,6 +870,14 @@ public class Chunk implements IChunkAccess {
for (int k = i; k <= j; ++k) {
Iterator iterator = this.entitySlices[k].iterator(); // Spigot
@ -69,7 +69,7 @@ index 4ff3eff58fa8007eca7eec22ef53d23705a98ed9..211e4353e88ad703c7f6aa8e416e6a50
while (iterator.hasNext()) {
T entity = (T) iterator.next(); // CraftBukkit - decompile error
if (entity.shouldBeRemoved) continue; // Paper
@@ -876,9 +900,29 @@ public class Chunk implements IChunkAccess {
@@ -873,9 +897,29 @@ public class Chunk implements IChunkAccess {
i = MathHelper.clamp(i, 0, this.entitySlices.length - 1);
j = MathHelper.clamp(j, 0, this.entitySlices.length - 1);

View File

@ -2495,7 +2495,7 @@ index b49420bdbdd00148fc5f9a21d3f4953457b2cdc6..032464901e02392df4966c68cce8d06f
} finally {
playerChunkMap.callbackExecutor.run();
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7c6cb1c64 100644
index 95bc46e8d9c9f75147cfdeaf464ec3ca2e491b1c..61aef3c14dff6bda603175883f9cb1b9a2c82428 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -6,6 +6,7 @@ import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
@ -2579,7 +2579,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7
}
}
}
@@ -184,7 +221,7 @@ public class ChunkRegionLoader {
@@ -178,7 +215,7 @@ public class ChunkRegionLoader {
}
if (chunkstatus_type == ChunkStatus.Type.LEVELCHUNK) {
@ -2588,7 +2588,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7
} else {
ProtoChunk protochunk1 = (ProtoChunk) object;
@@ -223,11 +260,83 @@ public class ChunkRegionLoader {
@@ -217,11 +254,83 @@ public class ChunkRegionLoader {
protochunk1.a(worldgenstage_features, BitSet.valueOf(nbttagcompound5.getByteArray(s1)));
}
@ -2673,7 +2673,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
NBTTagCompound nbttagcompound = new NBTTagCompound();
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
@@ -236,7 +345,7 @@ public class ChunkRegionLoader {
@@ -230,7 +339,7 @@ public class ChunkRegionLoader {
nbttagcompound.set("Level", nbttagcompound1);
nbttagcompound1.setInt("xPos", chunkcoordintpair.x);
nbttagcompound1.setInt("zPos", chunkcoordintpair.z);
@ -2682,15 +2682,15 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7
nbttagcompound1.setLong("InhabitedTime", ichunkaccess.getInhabitedTime());
nbttagcompound1.setString("Status", ichunkaccess.getChunkStatus().d());
ChunkConverter chunkconverter = ichunkaccess.p();
@@ -252,14 +361,22 @@ public class ChunkRegionLoader {
@@ -246,14 +355,22 @@ public class ChunkRegionLoader {
NBTTagCompound nbttagcompound2;
- for (int i = -1; i < 17; ++i) {
+ for (int i = -1; i < 17; ++i) { // Paper - conflict on loop parameter change
int finalI = i; // CraftBukkit - decompile errors
int finalI = i;
ChunkSection chunksection = (ChunkSection) Arrays.stream(achunksection).filter((chunksection1) -> {
return chunksection1 != null && chunksection1.getYPosition() >> 4 == finalI; // CraftBukkit - decompile errors
return chunksection1 != null && chunksection1.getYPosition() >> 4 == finalI;
}).findFirst().orElse(Chunk.a);
- NibbleArray nibblearray = lightenginethreaded.a(EnumSkyBlock.BLOCK).a(SectionPosition.a(chunkcoordintpair, i));
- NibbleArray nibblearray1 = lightenginethreaded.a(EnumSkyBlock.SKY).a(SectionPosition.a(chunkcoordintpair, i));
@ -2709,7 +2709,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7
if (chunksection != Chunk.a || nibblearray != null || nibblearray1 != null) {
nbttagcompound2 = new NBTTagCompound();
nbttagcompound2.setByte("Y", (byte) (i & 255));
@@ -326,7 +443,7 @@ public class ChunkRegionLoader {
@@ -314,7 +431,7 @@ public class ChunkRegionLoader {
Entity entity = (Entity) iterator1.next();
NBTTagCompound nbttagcompound4 = new NBTTagCompound();
// Paper start
@ -2718,7 +2718,7 @@ index 4036970f4831f49eb0f35e3c11743623ac2eabb5..5612f2f4d3cd76192868ff300f6affb7
toUpdate.add(entity);
continue;
}
@@ -369,24 +486,32 @@ public class ChunkRegionLoader {
@@ -357,24 +474,32 @@ public class ChunkRegionLoader {
}
nbttagcompound1.set("Entities", nbttaglist2);
@ -4094,7 +4094,7 @@ index e741d1f966869b057652a93a1ef1785ad152f303..204ad44454732345be78c5c428dfb178
// Spigot start
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 423e6c3d4dc0266b70eae2dfa0aca6d4cc5442c5..fb6fa1d15dc7d189a38e2cc78d9c7d24cf0af752 100644
index a479ca88dcf60866650c236e885dd55f47915858..26376c995102753fcd298b1eea6e195bae238d65 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -501,6 +501,28 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@ -10,10 +10,10 @@ operation. This patch will reduce the load of plugins which for example
implement custom moblimits and depend on Chunk.getEntities().
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
index d40ef8353b2c025309144b4123d6a7dff04a9c62..26210b233bb40565326cf25f568dca0984ce7313 100644
index ddad3440d364ebe98f6fabf00e90766b4ea4a5c2..2a08a3170fcef666cb3096511d8a592e575c9734 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
@@ -115,14 +115,14 @@ public class CraftChunk implements Chunk {
@@ -114,14 +114,14 @@ public class CraftChunk implements Chunk {
Entity[] entities = new Entity[count];
for (int i = 0; i < 16; i++) {

View File

@ -83,10 +83,10 @@ index f068436960c96b0df427bcdf337a4dcc6a9f66f5..253423acc3c3697a5e47136f34da9261
return this.d(baseblockposition.getX(), baseblockposition.getY(), baseblockposition.getZ());
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 211e4353e88ad703c7f6aa8e416e6a50909bb3d7..98401f36f768f36f98007c52c998252e25b07d47 100644
index a6cd89e0850c11ab6dd7f77842583c456c7f93dd..20c3e425f4299318c49128f3d330b889a0c1c52a 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -596,8 +596,8 @@ public class Chunk implements IChunkAccess {
@@ -593,8 +593,8 @@ public class Chunk implements IChunkAccess {
this.entities.remove(entity); // Paper
}

View File

@ -8,10 +8,10 @@ faster on its own, however removing the try catch makes it
easier to inline due to code size
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 98401f36f768f36f98007c52c998252e25b07d47..0bdd463a35d4b45fd6e50ab35046f1783600d3ee 100644
index 20c3e425f4299318c49128f3d330b889a0c1c52a..eebd014f9c0f4285f16d9ffac79e604854a6926c 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -389,17 +389,20 @@ public class Chunk implements IChunkAccess {
@@ -386,17 +386,20 @@ public class Chunk implements IChunkAccess {
}
public Fluid a(int i, int j, int k) {
@ -39,7 +39,7 @@ index 98401f36f768f36f98007c52c998252e25b07d47..0bdd463a35d4b45fd6e50ab35046f178
CrashReport crashreport = CrashReport.a(throwable, "Getting fluid state");
CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Block being got");
@@ -408,6 +411,7 @@ public class Chunk implements IChunkAccess {
@@ -405,6 +408,7 @@ public class Chunk implements IChunkAccess {
});
throw new ReportedException(crashreport);
}

View File

@ -149,7 +149,7 @@ index dbc3552d50c4129e1844c8a379ab5ba396645f52..87ec3987d4b6de836016e91ef90383e3
return this.e;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index b5088ad2eeef0a3fae0acb3dfea7605b9a861c73..3c24c1cc5045fbf794e605a5dd5473d8bf8e6542 100644
index 748b1c12ccee67a35232cf7a48e68ef7f34147c7..e905aa4d668f51f0e0d2d140fcac54e5038aebfe 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1,5 +1,8 @@
@ -161,7 +161,7 @@ index b5088ad2eeef0a3fae0acb3dfea7605b9a861c73..3c24c1cc5045fbf794e605a5dd5473d8
import com.destroystokyo.paper.Title;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
@@ -2057,6 +2060,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2034,6 +2037,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setViewDistance(int viewDistance) {
throw new NotImplementedException("Per-Player View Distance APIs need further understanding to properly implement (There are per world view distances though!)"); // TODO
}

View File

@ -23,7 +23,7 @@ index c9164dfdb27ddf3709129c8aec54903a1df121ff..e33e889c291d37a821a4fbd40d9aac7b
}));
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index a8ab4bcd55d7705542c87079bb9c27db1b381fe0..e884456fac00a81d251f75fb9eea98092dc96408 100644
index a6dcc3606dd1f8aa963d4f09cad93d918d555339..ab9170c8440dbd30639c2d451b58583fef13220e 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -620,4 +620,9 @@ public class PaperWorldConfig {
@ -37,10 +37,10 @@ index a8ab4bcd55d7705542c87079bb9c27db1b381fe0..e884456fac00a81d251f75fb9eea9809
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 0bdd463a35d4b45fd6e50ab35046f1783600d3ee..b7bfdab0e8ba47cd78bff77efabc6a2a1936157b 100644
index eebd014f9c0f4285f16d9ffac79e604854a6926c..6ac8670c76eaf0c1292c6e88c63eaf6b18c9fbb8 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -201,7 +201,51 @@ public class Chunk implements IChunkAccess {
@@ -198,7 +198,51 @@ public class Chunk implements IChunkAccess {
}
protected void onNeighbourChange(final long bitsetBefore, final long bitsetAfter) {

View File

@ -9,10 +9,10 @@ an object pool for these.
Uses lots of advanced new capabilities of the Paper codebase :)
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 2582eef2ff24afec14268ee0dbfaba63822b83c1..f18cb4aedc4a6536bf45db591b6d2b64cefce676 100644
index 937bd0daf84f6b5f382dea73e20f2fd6ad903000..3d06c87b64c209526bee2ea11b58d30fe9b1d062 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -392,11 +392,11 @@ public class ChunkRegionLoader {
@@ -386,11 +386,11 @@ public class ChunkRegionLoader {
}
if (nibblearray != null && !nibblearray.c()) {
@ -353,10 +353,10 @@ index 6b70df646c6a690ab9437ead96c5ff097e4e12d2..a22f0cccecc85b4e4fe4603bcfa213f1
this.d &= ~(1 << k);
if (nibblearray != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
index 26210b233bb40565326cf25f568dca0984ce7313..42b47634437135a9e9b608283f3ce81c98ca181a 100644
index 2a08a3170fcef666cb3096511d8a592e575c9734..d2c45157a27c24651c72fd8ab9a0950dec097b84 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
@@ -275,14 +275,14 @@ public class CraftChunk implements Chunk {
@@ -274,14 +274,14 @@ public class CraftChunk implements Chunk {
sectionSkyLights[i] = emptyLight;
} else {
sectionSkyLights[i] = new byte[2048];

View File

@ -19,10 +19,10 @@ index e750aedfad992635019d1abd7c880f4829b1e41d..d393e37f50e2815da6b486ff0c3e277f
+
}
diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
index 089fe4a3458ed3106fa214f89a7004a5d3c6bb95..64d1ebf8db91cbf8c1430c80aa089aac49d6163b 100644
index bfd21a07280a79d279388c785c78fb8fe731102a..e67da10f9bfbb8125d8fbf34695997ecfebcc484 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
@@ -80,4 +80,16 @@ public class CraftConsoleCommandSender extends ServerCommandSender implements Co
@@ -74,4 +74,16 @@ public class CraftConsoleCommandSender extends ServerCommandSender implements Co
public boolean isConversing() {
return conversationTracker.isConversing();
}

View File

@ -12,10 +12,10 @@ to the client, so that it doesn't attempt to calculate them.
This mitigates the frametime impact to a minimum (but it's still there).
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index b7bfdab0e8ba47cd78bff77efabc6a2a1936157b..083da88c1dd78b8ecdc8329c94430189cecb9d95 100644
index 6ac8670c76eaf0c1292c6e88c63eaf6b18c9fbb8..299d7d7a55532930e2d4340a6cfe77a5fd8a0a0c 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -233,7 +233,7 @@ public class Chunk implements IChunkAccess {
@@ -230,7 +230,7 @@ public class Chunk implements IChunkAccess {
// broadcast
Object[] backingSet = inRange.getBackingSet();

View File

@ -1237,10 +1237,10 @@ index f35dda50fd9015a793708d214c648d75f9f87e2b..ae1f9dde6887988ca682f53cba316ce5
net.minecraft.server.Chunk chunk = (net.minecraft.server.Chunk) either.left().orElse(null);
return CompletableFuture.completedFuture(chunk == null ? null : chunk.getBukkitChunk());
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 3c24c1cc5045fbf794e605a5dd5473d8bf8e6542..453cae339656a52a6d42bc712de546b340a5e91c 100644
index e905aa4d668f51f0e0d2d140fcac54e5038aebfe..0c45159eb7747d943dc45efc60f5dc7d72b8f022 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -766,6 +766,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -743,6 +743,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
throw new UnsupportedOperationException("Cannot set rotation of players. Consider teleporting instead.");
}

View File

@ -16,29 +16,23 @@ We further improve it by making a copy of the nbt tag with only the memory
it needs, so that we dont have to hold a copy to the entire compound.
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index f18cb4aedc4a6536bf45db591b6d2b64cefce676..9e7f63d53727c126023da01613c01d97e32d7a75 100644
index 3d06c87b64c209526bee2ea11b58d30fe9b1d062..335bb1dcb7285edabb6c5e7ec6ba4d6d40c60dcb 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -156,15 +156,9 @@ public class ChunkRegionLoader {
@@ -156,9 +156,9 @@ public class ChunkRegionLoader {
object2 = protochunkticklist1;
}
- object = new Chunk(worldserver.getMinecraftWorld(), chunkcoordintpair, biomestorage, chunkconverter, (TickList) object1, (TickList) object2, j, achunksection, (chunk) -> {
- loadEntities(nbttagcompound1, chunk);
- // CraftBukkit start - load chunk persistent data from nbt
- NBTTagCompound persistentBase = nbttagcompound1.getCompound("BukkitValues");
- if (persistentBase != null) {
- chunk.persistentDataContainer.putAll(nbttagcompound1);
- }
- // CraftBukkit end
- });
+ object = new Chunk(worldserver.getMinecraftWorld(), chunkcoordintpair, biomestorage, chunkconverter, (TickList) object1, (TickList) object2, j, achunksection, // Paper start - fix massive nbt memory leak due to lambda. move lambda into a container method to not leak scope. Only clone needed NBT keys.
+ createLoadEntitiesConsumer(new SafeNBTCopy(nbttagcompound1, "TileEntities", "Entities", "BukkitValues")) // Paper - move CB Chunk PDC into here
+ createLoadEntitiesConsumer(new SafeNBTCopy(nbttagcompound1, "TileEntities", "Entities"))
+ );// Paper end
} else {
ProtoChunk protochunk = new ProtoChunk(chunkcoordintpair, chunkconverter, achunksection, protochunkticklist, protochunkticklist1, worldserver); // Paper - Anti-Xray - Add parameter
@@ -270,6 +264,45 @@ public class ChunkRegionLoader {
@@ -264,6 +264,37 @@ public class ChunkRegionLoader {
return new InProgressChunkHolder(protochunk1, tasksToExecuteOnMain); // Paper - Async chunk loading
}
}
@ -70,15 +64,7 @@ index f18cb4aedc4a6536bf45db591b6d2b64cefce676..9e7f63d53727c126023da01613c01d97
+ }
+ }
+ private static java.util.function.Consumer<Chunk> createLoadEntitiesConsumer(NBTTagCompound nbt) {
+ return (chunk) -> {
+ loadEntities(nbt, chunk);
+ // CraftBukkit start - load chunk persistent data from nbt
+ NBTTagCompound persistentBase = nbt.getCompound("BukkitValues");
+ if (persistentBase != null) {
+ chunk.persistentDataContainer.putAll(nbt);
+ }
+ // CraftBukkit end
+ };
+ return (chunk) -> loadEntities(nbt, chunk);
+ }
+ // Paper end

View File

@ -40,10 +40,10 @@ index d903460c32213fa2d5362671efc9e96b142daf9a..3e6ccdd5b54dbe51d4ee9ec979cbc2d0
return !this.justCreated && this.M.getDouble(TagsFluid.LAVA) > 0.0D;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index fb6fa1d15dc7d189a38e2cc78d9c7d24cf0af752..e3026d54cb6b6e8fe9164a1bc7d5500c62ba7211 100644
index 26376c995102753fcd298b1eea6e195bae238d65..b1fdc5737d332c6210d57793468da1eda8f8b9d2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1103,5 +1103,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1093,5 +1093,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason() {
return getHandle().spawnReason;
}

View File

@ -65,10 +65,10 @@ index 45cf34c35af9d2ae9a60ff81af5bea3495d4621f..16664a446192c77903ff1f10989c7afa
return (!this.player.joining && !this.networkManager.isConnected()) || this.processedDisconnect; // Paper
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 453cae339656a52a6d42bc712de546b340a5e91c..bdfd9f84209dec8ee312f72075c9e71c30cbbdec 100644
index 0c45159eb7747d943dc45efc60f5dc7d72b8f022..da32f4affd381b08bd50e5882abffa58575737dd 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2166,6 +2166,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2143,6 +2143,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper end
};

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Brand support
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index bdfd9f84209dec8ee312f72075c9e71c30cbbdec..fb1852ea6bf6997771a3522079bf3a32ebca357c 100644
index da32f4affd381b08bd50e5882abffa58575737dd..7e91e95941039cce630ed3eb88e1919e1d08c091 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2169,7 +2169,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2146,7 +2146,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Paper start - brand support
@Override
public String getClientBrandName() {

View File

@ -19,10 +19,10 @@ index ebdbbeb1b55b428dde3ab1c9691cb153c6c2fe76..28e2d3f0a5e2ab084175bf0bba88816f
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index c08fe368409137c33501aaca369e99a0924f0339..0f419d3e0621c71d43f85aa852bc3fc5405f1cf6 100644
index 6ceb2d50c59b63a337364605f8a5280d905f2662..6f59f8d4541451573eb50a1a3190788c51490502 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1131,5 +1131,9 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1121,5 +1121,9 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public boolean isInLava() {
return getHandle().isInLava();
}

@ -1 +1 @@
Subproject commit 01e22e09726e700776739ec0662acd30e7844cec
Subproject commit 9165c3c0b0e34aefce111933495e1c3efb000d4b

@ -1 +1 @@
Subproject commit 4ef13f94d6a4042e0dadd622666a50cee7468d26
Subproject commit 055870c4bca477067f9113deb1090228cccf67c6

@ -1 +1 @@
Subproject commit 57bbdd8eb797a51960cf9a47f764b68f97d4f18c
Subproject commit 988b41197dad25f715bf535ec725af7c0c1a1627