Update upstream

This commit is contained in:
Aikar 2018-04-22 10:40:36 -04:00
parent a144c203fc
commit a72fc26fc1
No known key found for this signature in database
GPG Key ID: 401ADFC9891FAAFE
17 changed files with 61 additions and 115 deletions

View File

@ -1,4 +1,4 @@
From 5f29e0a54fea2f22cb4d8d61e89d9e8b1b57fef2 Mon Sep 17 00:00:00 2001
From b3c4c79a1b1793ea484e2576151940ee6de01328 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 04:00:11 -0600
Subject: [PATCH] Timings v2
@ -1148,7 +1148,7 @@ index 5a5a588e7..d2d4ff6fb 100644
private static final RegistryMaterials<MinecraftKey, Class<? extends TileEntity>> f = new RegistryMaterials();
protected World world;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 07fd5d957..ec83c431e 100644
index 843320ffb..d902e2630 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -19,11 +19,11 @@ import com.google.common.collect.Maps;
@ -1228,16 +1228,15 @@ index 07fd5d957..ec83c431e 100644
this.methodProfiler.b();
this.methodProfiler.b();
}
@@ -1623,7 +1628,7 @@ public abstract class World implements IBlockAccess {
return;
@@ -1620,7 +1625,6 @@ public abstract class World implements IBlockAccess {
}
// Spigot end
// CraftBukkit end
- entity.tickTimer.startTiming(); // Spigot
+
entity.M = entity.locX;
entity.N = entity.locY;
entity.O = entity.locZ;
@@ -1631,6 +1636,7 @@ public abstract class World implements IBlockAccess {
@@ -1628,6 +1632,7 @@ public abstract class World implements IBlockAccess {
entity.lastPitch = entity.pitch;
if (flag && entity.aa) {
++entity.ticksLived;
@ -1245,7 +1244,7 @@ index 07fd5d957..ec83c431e 100644
if (entity.isPassenger()) {
entity.aE();
} else {
@@ -1690,8 +1696,6 @@ public abstract class World implements IBlockAccess {
@@ -1687,8 +1692,6 @@ public abstract class World implements IBlockAccess {
}
}
}
@ -1907,5 +1906,5 @@ index 2bd690fdf..38be7ed71 100644
}
}
--
2.14.3
2.17.0

View File

@ -1,4 +1,4 @@
From dd9ac394c58c1de582f03216bf52206b71b6bd19 Mon Sep 17 00:00:00 2001
From 620959a6b7c23480d69b886a164cb12185d59a9f Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Tue, 1 Mar 2016 14:47:52 -0600
Subject: [PATCH] Player affects spawning API
@ -57,10 +57,10 @@ index a599a043d..1c7c187c7 100644
j = MathHelper.floor(entityhuman.locZ / 16.0D);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 3cdbedf14..b2b82d520 100644
index 759964b0f..26d4bd690 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2731,7 +2731,7 @@ public abstract class World implements IBlockAccess {
@@ -2727,7 +2727,7 @@ public abstract class World implements IBlockAccess {
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@ -91,5 +91,5 @@ index 916781403..9e8ca0fbd 100644
// Spigot start
--
2.14.3
2.17.0

View File

@ -1,4 +1,4 @@
From 879b9321a818af70f87a4aeb1b4e391334529190 Mon Sep 17 00:00:00 2001
From 0f9c4b3b846e4d401e0a54b02275a552e095993b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 02:07:55 -0600
Subject: [PATCH] Optimize isValidLocation, getType and getBlockData for inling
@ -99,7 +99,7 @@ index 3d784d0dc..afdc4a779 100644
private NibbleArray skyLight;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 03fec7195..93257a38e 100644
index 9339bf83a..a20c9810f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -277,12 +277,12 @@ public abstract class World implements IBlockAccess {
@ -228,7 +228,7 @@ index 03fec7195..93257a38e 100644
public boolean D() {
return this.L < 4;
@@ -2021,7 +2030,7 @@ public abstract class World implements IBlockAccess {
@@ -2017,7 +2026,7 @@ public abstract class World implements IBlockAccess {
public Map<BlockPosition, TileEntity> capturedTileEntities = Maps.newHashMap();
@Nullable
public TileEntity getTileEntity(BlockPosition blockposition) {
@ -237,7 +237,7 @@ index 03fec7195..93257a38e 100644
return null;
} else {
// CraftBukkit start
@@ -2062,7 +2071,7 @@ public abstract class World implements IBlockAccess {
@@ -2058,7 +2067,7 @@ public abstract class World implements IBlockAccess {
}
public void setTileEntity(BlockPosition blockposition, @Nullable TileEntity tileentity) {
@ -246,7 +246,7 @@ index 03fec7195..93257a38e 100644
if (tileentity != null && !tileentity.y()) {
// CraftBukkit start
if (captureBlockStates) {
@@ -2125,7 +2134,7 @@ public abstract class World implements IBlockAccess {
@@ -2121,7 +2130,7 @@ public abstract class World implements IBlockAccess {
}
public boolean d(BlockPosition blockposition, boolean flag) {
@ -256,5 +256,5 @@ index 03fec7195..93257a38e 100644
} else {
Chunk chunk = this.chunkProvider.getLoadedChunkAt(blockposition.getX() >> 4, blockposition.getZ() >> 4);
--
2.14.3
2.17.0

View File

@ -1,4 +1,4 @@
From 821b1063568630d188fc719bd2bec080f25a545c Mon Sep 17 00:00:00 2001
From ed62436c4f4f130cd0834ac490924f9d9de101bc Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 13 Sep 2014 23:14:43 -0400
Subject: [PATCH] Configurable Keep Spawn Loaded range per world
@ -39,10 +39,10 @@ index 4e8ce79ff..2300ee10b 100644
if (i1 - j > 1000L) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 518ee1826..4ae6d6df6 100644
index 279f0a261..a0b36b6ba 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -3204,8 +3204,9 @@ public abstract class World implements IBlockAccess {
@@ -3200,8 +3200,9 @@ public abstract class World implements IBlockAccess {
int k = i * 16 + 8 - blockposition.getX();
int l = j * 16 + 8 - blockposition.getZ();
boolean flag = true;
@ -83,5 +83,5 @@ index 01fc193db..69dc11e2b 100644
loadChunk(chunkCoordX + x, chunkCoordZ + z);
} else {
--
2.14.3
2.17.0

View File

@ -1,14 +1,14 @@
From d8082db6ad95fdbcc2c256ee4070d7a67b881ebb Mon Sep 17 00:00:00 2001
From 3a050fdc3e3b84d8a030942b18773b80a6de7c6b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 5 Apr 2016 19:42:22 -0400
Subject: [PATCH] Don't spam reload spawn chunks in nether/end
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b092a84db..b3bebefe4 100644
index f78298a5a..e2efbf8cb 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -3200,6 +3200,7 @@ public abstract class World implements IBlockAccess {
@@ -3196,6 +3196,7 @@ public abstract class World implements IBlockAccess {
return this.P;
}
@ -29,5 +29,5 @@ index d0265f960..35d8d1a6e 100644
}
}
--
2.14.3
2.17.0

View File

@ -1,4 +1,4 @@
From 1ed63343ae812bb15622e25e0d4378c0f64f5765 Mon Sep 17 00:00:00 2001
From 881a1ab825255f0e7f97094eebfd4b39fbca180c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 13 Apr 2016 00:25:28 -0400
Subject: [PATCH] Remove unused World Tile Entity List
@ -6,7 +6,7 @@ Subject: [PATCH] Remove unused World Tile Entity List
Massive hit to performance and it is completely unnecessary.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b3bebefe4..37713adf0 100644
index e2efbf8cb..aae2d5786 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -69,7 +69,7 @@ public abstract class World implements IBlockAccess {
@ -57,7 +57,7 @@ index b3bebefe4..37713adf0 100644
this.tileEntityListTick.add(tileentity);
}
@@ -2118,7 +2118,7 @@ public abstract class World implements IBlockAccess {
@@ -2114,7 +2114,7 @@ public abstract class World implements IBlockAccess {
} else {
if (tileentity != null) {
this.b.remove(tileentity);
@ -67,5 +67,5 @@ index b3bebefe4..37713adf0 100644
}
--
2.14.3
2.17.0

View File

@ -1,4 +1,4 @@
From 011624aeb0d64b67f330b6e12ea38531ec9da1d3 Mon Sep 17 00:00:00 2001
From da448ceff5f7a99b59b3b5ee87a49ff6d4a156e1 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 21 Sep 2016 22:54:28 -0400
Subject: [PATCH] Chunk registration fixes
@ -8,10 +8,10 @@ World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is tr
Keep them consistent
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 7976112e5..4bea2a9e1 100644
index bafa37f64..d5e338eb3 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1768,7 +1768,7 @@ public abstract class World implements IBlockAccess {
@@ -1764,7 +1764,7 @@ public abstract class World implements IBlockAccess {
}
i = MathHelper.floor(entity.locX / 16.0D);
@ -21,5 +21,5 @@ index 7976112e5..4bea2a9e1 100644
if (!entity.aa || entity.ab != i || entity.ac != j || entity.ad != k) {
--
2.14.3
2.17.0

View File

@ -1,4 +1,4 @@
From 2967dc3336c3b8b37d046206e7ada28379d36fd2 Mon Sep 17 00:00:00 2001
From fd98d890b21aa6a712c7c215e8926b367c09dab8 Mon Sep 17 00:00:00 2001
From: AlphaBlend <whizkid3000@hotmail.com>
Date: Sun, 16 Oct 2016 23:19:30 -0700
Subject: [PATCH] Add EntityZapEvent
@ -22,10 +22,10 @@ index 94d011721..fcf99e668 100644
if (CraftEventFactory.callPigZapEvent(this, entitylightning, entitypigzombie).isCancelled()) {
return;
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index fd3714e8e..cfc8d986f 100644
index 87ed31b21..9d201b14e 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -633,6 +633,12 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
@@ -638,6 +638,12 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
if (!this.world.isClientSide && !this.dead) {
EntityWitch entitywitch = new EntityWitch(this.world);
@ -38,7 +38,7 @@ index fd3714e8e..cfc8d986f 100644
entitywitch.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
entitywitch.prepare(this.world.D(new BlockPosition(entitywitch)), (GroupDataEntity) null);
entitywitch.setNoAI(this.isNoAI());
@@ -641,7 +647,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
@@ -646,7 +652,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
entitywitch.setCustomNameVisible(this.getCustomNameVisible());
}
@ -67,5 +67,5 @@ index bc84dd30f..ba7e5d181 100644
HorseJumpEvent event = new HorseJumpEvent((AbstractHorse) horse.getBukkitEntity(), power);
horse.getBukkitEntity().getServer().getPluginManager().callEvent(event);
--
2.16.3
2.17.0

View File

@ -1,4 +1,4 @@
From f29a0437a77710327757f8b5ed2b4d44cd2a65fd Mon Sep 17 00:00:00 2001
From 61a4082b64104fb1bda5cfb0ba8e504719a1fa3c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 16 Dec 2016 22:10:35 -0600
Subject: [PATCH] Vanished players don't have rights
@ -31,10 +31,10 @@ index 60149c1ca..a5730d1c7 100644
IBlockData iblockdata1 = this.a.getPlacedState(world, blockposition, enumdirection, f, f1, f2, i, entityhuman);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 66e56e0fd..942f57df1 100644
index ea6f46522..01dba285a 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1803,6 +1803,33 @@ public abstract class World implements IBlockAccess {
@@ -1799,6 +1799,33 @@ public abstract class World implements IBlockAccess {
return this.a(axisalignedbb, (Entity) null);
}
@ -68,7 +68,7 @@ index 66e56e0fd..942f57df1 100644
public boolean a(AxisAlignedBB axisalignedbb, @Nullable Entity entity) {
List list = this.getEntities((Entity) null, axisalignedbb);
@@ -2693,7 +2720,7 @@ public abstract class World implements IBlockAccess {
@@ -2689,7 +2716,7 @@ public abstract class World implements IBlockAccess {
AxisAlignedBB axisalignedbb = flag ? null : block.getBlockData().d(this, blockposition);
// CraftBukkit start - store default return
@ -96,5 +96,5 @@ index 06a277b3b..5f816e44f 100644
return event;
}
--
2.14.3
2.17.0

View File

@ -1,4 +1,4 @@
From 4539973b3d84e85db28da88b41059b9df098e4ae Mon Sep 17 00:00:00 2001
From d2e86c1abb81ba80804af0d666364169635112b7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 20 Dec 2016 15:26:27 -0500
Subject: [PATCH] Configurable Cartographer Treasure Maps
@ -28,10 +28,10 @@ index 513c4b020..631aa6eb9 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index cfc8d986f..d0183457e 100644
index 9d201b14e..57fcc3c05 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -778,7 +778,8 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
@@ -783,7 +783,8 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
public void a(IMerchant imerchant, MerchantRecipeList merchantrecipelist, Random random) {
int i = this.a.a(random);
World world = imerchant.u_();
@ -42,5 +42,5 @@ index cfc8d986f..d0183457e 100644
if (blockposition != null) {
ItemStack itemstack = ItemWorldMap.a(world, (double) blockposition.getX(), (double) blockposition.getZ(), (byte) 2, true, true);
--
2.16.3
2.17.0

View File

@ -1,4 +1,4 @@
From 6c5d889c80c777ddf78ec592c7e9cf0fca7126b5 Mon Sep 17 00:00:00 2001
From 595f30a5ba443cbbad054e480a9cd909e56c02b8 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 19 Dec 2017 16:31:46 -0500
Subject: [PATCH] ExperienceOrbs API for Reason/Source/Triggering player
@ -156,10 +156,10 @@ index 0255986fd..e14f614f5 100644
this.die();
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index d0183457e..812e88e58 100644
index 57fcc3c05..a9c4ab10d 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -432,7 +432,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
@@ -437,7 +437,7 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
}
if (merchantrecipe.j()) {
@ -253,5 +253,5 @@ index 3a09cab3d..3302af0e4 100644
public EntityExperienceOrb getHandle() {
return (EntityExperienceOrb) entity;
--
2.16.3
2.17.0

View File

@ -1,4 +1,4 @@
From 91c222268760b9802fe7c010a3b2beac66796626 Mon Sep 17 00:00:00 2001
From 6d65fb462e07a362f643770fce990e722470e233 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sat, 13 May 2017 20:11:21 -0500
Subject: [PATCH] Add system property to disable book size limits
@ -11,7 +11,7 @@ to make books with as much data as they want. Do not use this without
limiting incoming data from packets in some other way.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
index ed89f64ac..91e3c4468 100644
index a7e51d9f1..ffdb7ec82 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
@@ -40,6 +40,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
@ -22,7 +22,7 @@ index ed89f64ac..91e3c4468 100644
protected String title;
protected String author;
@@ -192,7 +193,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
@@ -196,7 +197,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
if (title == null) {
this.title = null;
return true;
@ -31,7 +31,7 @@ index ed89f64ac..91e3c4468 100644
return false;
}
@@ -228,7 +229,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
@@ -232,7 +233,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
throw new IllegalArgumentException("Invalid page number " + page + "/" + pages.size());
}
@ -40,7 +40,7 @@ index ed89f64ac..91e3c4468 100644
pages.set(page - 1, CraftChatMessage.fromString(newText, true)[0]);
}
@@ -240,13 +241,13 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
@@ -244,13 +245,13 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta {
public void addPage(final String... pages) {
for (String page : pages) {
@ -57,5 +57,5 @@ index ed89f64ac..91e3c4468 100644
}
--
2.14.3
2.17.0

View File

@ -1,28 +0,0 @@
From 6294e90434866ffbfed3843473bf3debeec37673 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 18 Apr 2018 01:42:42 -0400
Subject: [PATCH] Revert SPIGOT-3894 to restore vanilla behavior
reporter of this issue was incorrect and did not verify vanilla logic
vanilla logic only skips ticks if the flag is set
spigots change causes bugs as it now skips ticking and processing
chunk teleportation, which was a bug I fixed many many years ago...
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 4ce846b5e..6c92f93a9 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1754,7 +1754,7 @@ public abstract class World implements IBlockAccess {
// CraftBukkit end
// Spigot start
- if (!org.spigotmc.ActivationRange.checkIfActive(entity)) {
+ if (flag && !org.spigotmc.ActivationRange.checkIfActive(entity)) { // Paper - Revert spigot change back to vanilla
entity.ticksLived++;
entity.inactiveTick();
return;
--
2.17.0

View File

@ -1,25 +0,0 @@
From 646201cc8906ae473235f5debaf1e585cf84c3d9 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sun, 8 Apr 2018 01:21:23 +0100
Subject: [PATCH] revert "Better reloading of pending unload chunks"
many areas of NMS calls through to this method which means that
the server can easilly keep chunks loaded in certain conditions
even when they're no longer needed.
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 55dada668..2ed3fc40b 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -148,7 +148,7 @@ public class ChunkProviderServer implements IChunkProvider {
}
public Chunk getChunkAt(int i, int j, Runnable runnable, boolean generate) {
- Chunk chunk = getLoadedChunkAt(i, j);
+ Chunk chunk = getChunkIfLoaded(i, j); // Paper - revert "Better reloading of pending unload chunks" (see patch)
ChunkRegionLoader loader = null;
if (this.chunkLoader instanceof ChunkRegionLoader) {
--
2.17.0

@ -1 +1 @@
Subproject commit bf61ffc26b4845816da86e9ce53c29b7263fb7a7
Subproject commit 33a62b95913e6df50dc60f0fdad3144ba094bef7

@ -1 +1 @@
Subproject commit bea5a842bc51229c58db6ee9a0ce8768935543ea
Subproject commit 21d5f75d6c7b2f13faf8815b20ba877681a0f47f

@ -1 +1 @@
Subproject commit eadd615b8418d25885b85acb922c4f3be674dd76
Subproject commit 2086bb074d6795823451bdb9f857d83c0f566990