Updated Upstream (Bukkit/CraftBukkit/Spigot)

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
47b9cf30 SPIGOT-4372: LightningStrikeEvent cause API
a9ceda75 Include the plugin channel name in the exception message

CraftBukkit Changes:
a4bdecff SPIGOT-4372: LightningStrikeEvent cause API
34caaf6d SPIGOT-4371: Trident damaged when event cancelled
97315374 SPIGOT-4369: Handle cancelled trident event
bf1c8273 SPIGOT-4370: Remove vehicle if its passenger spawn event was cancelled

Spigot Changes:
6b015b4b SPIGOT-4370: Remove vehicle if its passenger spawn event was cancelled
This commit is contained in:
Aikar 2018-09-15 12:10:26 -04:00
parent b606122b85
commit f956f185c8
No known key found for this signature in database
GPG Key ID: 401ADFC9891FAAFE
32 changed files with 178 additions and 178 deletions

View File

@ -1,4 +1,4 @@
From c29cf352780a2e4924f2b9c11804efa58ac0c0e2 Mon Sep 17 00:00:00 2001
From db96209eeb825730f55d161a488b58dd2cbd8c3f 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
@ -1080,7 +1080,7 @@ index c69209497b..68ac014aab 100644
private final TileEntityTypes<?> e; public TileEntityTypes getTileEntityType() { return e; } // Paper - OBFHELPER
protected World world;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 169294b3c3..2f7fab0907 100644
index b5b0cbf647..53e35634a8 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,5 +1,6 @@
@ -1123,7 +1123,7 @@ index 169294b3c3..2f7fab0907 100644
this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
@@ -1123,6 +1124,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1130,6 +1131,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
this.methodProfiler.c("remove");
@ -1131,7 +1131,7 @@ index 169294b3c3..2f7fab0907 100644
this.entityList.removeAll(this.g);
int j;
@@ -1143,6 +1145,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1150,6 +1152,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.g.clear();
this.p_();
@ -1139,7 +1139,7 @@ index 169294b3c3..2f7fab0907 100644
this.methodProfiler.c("regular");
CrashReportSystemDetails crashreportsystemdetails1;
@@ -1152,6 +1155,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1159,6 +1162,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
timings.entityTick.startTiming(); // Spigot
guardEntityList = true; // Spigot
// CraftBukkit start - Use field for loop variable
@ -1147,7 +1147,7 @@ index 169294b3c3..2f7fab0907 100644
int entitiesThisCycle = 0;
if (tickPosition < 0) tickPosition = 0;
for (entityLimiter.initTick();
@@ -1173,10 +1177,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1180,10 +1184,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.methodProfiler.a("tick");
if (!entity.dead && !(entity instanceof EntityPlayer)) {
try {
@ -1161,7 +1161,7 @@ index 169294b3c3..2f7fab0907 100644
crashreport1 = CrashReport.a(throwable1, "Ticking entity");
crashreportsystemdetails1 = crashreport1.a("Entity being ticked");
entity.appendEntityCrashDetails(crashreportsystemdetails1);
@@ -1301,6 +1306,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1308,6 +1313,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
timings.tileEntityPending.stopTiming(); // Spigot
@ -1169,7 +1169,7 @@ index 169294b3c3..2f7fab0907 100644
this.methodProfiler.e();
this.methodProfiler.e();
}
@@ -1359,7 +1365,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1366,7 +1372,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
// CraftBukkit end
@ -1177,7 +1177,7 @@ index 169294b3c3..2f7fab0907 100644
entity.N = entity.locX;
entity.O = entity.locY;
entity.P = entity.locZ;
@@ -1367,6 +1372,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1374,6 +1379,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
entity.lastPitch = entity.pitch;
if (flag && entity.inChunk) {
++entity.ticksLived;
@ -1185,7 +1185,7 @@ index 169294b3c3..2f7fab0907 100644
if (entity.isPassenger()) {
entity.aH();
} else {
@@ -1430,8 +1436,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1437,8 +1443,6 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
}
}
@ -1195,7 +1195,7 @@ index 169294b3c3..2f7fab0907 100644
public boolean a(@Nullable Entity entity, VoxelShape voxelshape) {
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index c276c259ae..badec349b7 100644
index 4be2d8d3c4..e4d03b6779 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1,5 +1,6 @@
@ -1802,5 +1802,5 @@ index e60fe5a920..f68e42c4d4 100644
}
}
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 68ff51ddebbce42ce5b66cde1a790887799d0fc0 Mon Sep 17 00:00:00 2001
From ae8ffe9d11d117ef18da2199da5cdf644bf1a28d 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
@ -58,7 +58,7 @@ index cbdd2431fd..9e24b77ad1 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 237e6136f1..ce97cc99fa 100644
index 957868d642..29d98ae30b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -34,6 +34,7 @@ import org.bukkit.craftbukkit.block.data.CraftBlockData;
@ -69,7 +69,7 @@ index 237e6136f1..ce97cc99fa 100644
import org.bukkit.event.block.BlockCanBuildEvent;
import org.bukkit.event.block.BlockPhysicsEvent;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
@@ -2432,7 +2433,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2431,7 +2432,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@ -103,5 +103,5 @@ index b8bdcb6b74..91e585048a 100644
@Override
public void updateCommands() {
--
2.18.0
2.19.0

View File

@ -1,11 +1,11 @@
From 5a9ad7efe623a2b35697e3ea12e6848b42ed1941 Mon Sep 17 00:00:00 2001
From 2af749a07a38005528f7dab2944ce7655a79568e Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 1 Mar 2016 23:45:08 -0600
Subject: [PATCH] Entity Origin API
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 15b6067aab..02ac5c4c0c 100644
index 8b40fcfa77..38615f9eea 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -162,6 +162,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -101,10 +101,10 @@ index 769d599c59..e37da10e09 100644
if (i >= 0 && i < this.list.size()) {
NBTBase nbtbase = (NBTBase)this.list.get(i);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ce97cc99fa..cf359d6d9e 100644
index 29d98ae30b..8984949ff5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -961,6 +961,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -968,6 +968,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
int j = MathHelper.floor(entity.locZ / 16.0D);
boolean flag = entity.attachedToPlayer;
@ -135,5 +135,5 @@ index 7a204e8edf..0c9b7276fc 100644
+ // Paper end
}
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 26889dd272c3420365e44b69a9b52eb1e876fdc4 Mon Sep 17 00:00:00 2001
From 79a3b07620008e12ad07d2489dea841eb1314a44 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 1 Mar 2016 23:52:34 -0600
Subject: [PATCH] Prevent tile entity and entity crashes
@ -23,10 +23,10 @@ index 68ac014aab..c5212417c6 100644
}
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index be2feb441d..0b38093f91 100644
index 8984949ff5..4afa16fb8a 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1190,10 +1190,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1197,10 +1197,12 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
entity.tickTimer.stopTiming(); // Paper
} catch (Throwable throwable1) {
entity.tickTimer.stopTiming();
@ -43,7 +43,7 @@ index be2feb441d..0b38093f91 100644
}
}
@@ -1256,10 +1258,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1263,10 +1265,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
((ITickable) tileentity).Y_();
this.methodProfiler.e();
} catch (Throwable throwable2) {
@ -62,5 +62,5 @@ index be2feb441d..0b38093f91 100644
// Spigot start
finally {
--
2.18.0
2.19.0

View File

@ -1,14 +1,14 @@
From e7d0420983298221e86f3959e98a9acd7cbcc059 Mon Sep 17 00:00:00 2001
From 933080a0dc72a443ce3fac4cd03ae8a737e66e81 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Wed, 2 Mar 2016 23:45:17 -0600
Subject: [PATCH] Disable spigot tick limiters
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9e192b7c04..8b90b13d15 100644
index 9a7da83b82..4a457e3302 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1167,10 +1167,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1174,10 +1174,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// CraftBukkit start - Use field for loop variable
co.aikar.timings.TimingHistory.entityTicks += this.entityList.size(); // Paper
int entitiesThisCycle = 0;
@ -23,7 +23,7 @@ index 9e192b7c04..8b90b13d15 100644
tickPosition = (tickPosition < entityList.size()) ? tickPosition : 0;
entity = (Entity) this.entityList.get(this.tickPosition);
// CraftBukkit end
@@ -1234,9 +1234,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1241,9 +1241,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
// Spigot start
// Iterator iterator = this.tileEntityListTick.iterator();
int tilesThisCycle = 0;
@ -35,5 +35,5 @@ index 9e192b7c04..8b90b13d15 100644
TileEntity tileentity = (TileEntity) this.tileEntityListTick.get(tileTickPosition);
// Spigot start
--
2.18.0
2.19.0

View File

@ -1,11 +1,11 @@
From 5a524473ad69a38c362a3f2fc90811f9d2ffe8ba Mon Sep 17 00:00:00 2001
From 7c6c6994aef966b58c6c45848d922e469a53ec52 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 02:39:54 -0600
Subject: [PATCH] Change implementation of (tile)entity removal list
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 8b90b13d15..9fb87914ff 100644
index 4a457e3302..fbcdf9ecaf 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -73,11 +73,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -22,7 +22,7 @@ index 8b90b13d15..9fb87914ff 100644
public final List<EntityHuman> players = Lists.newArrayList();
public final List<Entity> k = Lists.newArrayList();
protected final IntHashMap<Entity> entitiesById = new IntHashMap();
@@ -1138,20 +1138,20 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1145,20 +1145,20 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.entityList.removeAll(this.g);
int j;
@ -53,5 +53,5 @@ index 8b90b13d15..9fb87914ff 100644
this.g.clear();
this.p_();
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From f619275b362dced2e0f375bb68620b2c7e20355d Mon Sep 17 00:00:00 2001
From 65c9df6d439014bcebe771bfb9ad883d88766070 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 03:15:41 -0600
Subject: [PATCH] Add exception reporting event
@ -89,7 +89,7 @@ index d41cd7a6e9..68f8459861 100644
}
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 1379b574ef..6b041f06e4 100644
index 046973a4ed..d73034f329 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -15,6 +15,7 @@ import java.util.function.BooleanSupplier;
@ -191,7 +191,7 @@ index d18921271f..e5115863ec 100644
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 9e24b77ad1..f32191c5a2 100644
index 50b1175cc1..cc0a884cd3 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager;
@ -239,7 +239,7 @@ index e649d662ae..560edb523f 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 8af8cf2ee5..561bcd07b3 100644
index fbcdf9ecaf..8aa8d40cb4 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,6 +1,8 @@
@ -251,7 +251,7 @@ index 8af8cf2ee5..561bcd07b3 100644
import com.google.common.base.MoreObjects;
import com.google.common.collect.Lists;
import it.unimi.dsi.fastutil.longs.LongSet;
@@ -1193,8 +1195,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1200,8 +1202,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
} catch (Throwable throwable1) {
entity.tickTimer.stopTiming();
// Paper start - Prevent tile entity and entity crashes
@ -263,7 +263,7 @@ index 8af8cf2ee5..561bcd07b3 100644
entity.dead = true;
continue;
// Paper end
@@ -1259,8 +1263,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1266,8 +1270,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.methodProfiler.e();
} catch (Throwable throwable2) {
// Paper start - Prevent tile entity and entity crashes
@ -334,5 +334,5 @@ index 93b9134d6e..26753fac5e 100644
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 2429e8939eb62f6c57e3b5a6ab067e0942371932 Mon Sep 17 00:00:00 2001
From 967f13508fd86db7959565e2d32ae2b7231a2e19 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
@ -97,7 +97,7 @@ index 274c449480..7e4c79a1ce 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 94872593b1..ee5d4c5272 100644
index d531dfcb8a..5031ee3fca 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -263,11 +263,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -173,7 +173,7 @@ index 94872593b1..ee5d4c5272 100644
return FluidTypes.a.i();
} else {
Chunk chunk = this.getChunkAtWorldCoords(blockposition);
@@ -1803,7 +1803,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1810,7 +1810,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public Map<BlockPosition, TileEntity> capturedTileEntities = Maps.newHashMap();
@Nullable
public TileEntity getTileEntity(BlockPosition blockposition) {
@ -182,7 +182,7 @@ index 94872593b1..ee5d4c5272 100644
return null;
} else {
// CraftBukkit start
@@ -1844,7 +1844,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1851,7 +1851,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public void setTileEntity(BlockPosition blockposition, @Nullable TileEntity tileentity) {
@ -191,7 +191,7 @@ index 94872593b1..ee5d4c5272 100644
if (tileentity != null && !tileentity.x()) {
// CraftBukkit start
if (captureBlockStates) {
@@ -1905,7 +1905,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1912,7 +1912,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
public boolean p(BlockPosition blockposition) {
@ -201,5 +201,5 @@ index 94872593b1..ee5d4c5272 100644
} else {
Chunk chunk = this.chunkProvider.getChunkAt(blockposition.getX() >> 4, blockposition.getZ() >> 4, false, false);
--
2.18.0
2.19.0

View File

@ -1,14 +1,14 @@
From 23dbf833e038bf5d565bba44919c95322ef55e3e Mon Sep 17 00:00:00 2001
From 1ca39c0a68a24dba5575712be65b4cbd7502c785 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 20:32:58 -0400
Subject: [PATCH] Entity AddTo/RemoveFrom World Events
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 8f3b1d529a..7f39a321db 100644
index 5471528c22..a252e657c3 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1069,6 +1069,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1076,6 +1076,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
entity.valid = true; // CraftBukkit
@ -16,7 +16,7 @@ index 8f3b1d529a..7f39a321db 100644
}
protected void c(Entity entity) {
@@ -1076,6 +1077,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1083,6 +1084,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
((IWorldAccess) this.v.get(i)).b(entity);
}
@ -25,5 +25,5 @@ index 8f3b1d529a..7f39a321db 100644
}
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 4bd607245b947c2f52623b9df34aad0aa47619b6 Mon Sep 17 00:00:00 2001
From c9b30a74f54c83da7c319cb1b4b484cff5e8b5c8 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
@ -63,10 +63,10 @@ index bbd476bb0e..280e684db4 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 69266ece8f..eb85fa1907 100644
index cc3ce8d83d..f815c8477c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2868,8 +2868,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2867,8 +2867,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
int k = i * 16 + 8 - blockposition.getX();
int l = j * 16 + 8 - blockposition.getZ();
boolean flag = true;
@ -107,5 +107,5 @@ index 132b21f8bc..9637c98994 100644
loadChunk(chunkCoordX + x, chunkCoordZ + z);
} else {
--
2.18.0
2.19.0

View File

@ -1,14 +1,14 @@
From 1285cf28b6ff0e40cd76bc64122577d31fcbbcc5 Mon Sep 17 00:00:00 2001
From 34f5225d34a59ceeef04a55bf248cb688351094c 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 4ea7bc53e6..f5741b2b36 100644
index 75e2de1a22..4bed101c08 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2864,6 +2864,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2863,6 +2863,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return this.K;
}
@ -16,7 +16,7 @@ index 4ea7bc53e6..f5741b2b36 100644
public boolean e(int i, int j) {
BlockPosition blockposition = this.getSpawn();
int k = i * 16 + 8 - blockposition.getX();
@@ -2880,6 +2881,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2879,6 +2880,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return (LongSet) (forcedchunk != null ? LongSets.unmodifiable(forcedchunk.a()) : LongSets.EMPTY_SET);
}
@ -38,5 +38,5 @@ index 517b1e7124..0e654ebf70 100644
protected abstract void m();
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 9159a08fd4bc3baaf9131c771e6f712a3e810414 Mon Sep 17 00:00:00 2001
From bb66308e3e6de4bc8b65cf582a5c268aa3a40bd6 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 8abe3cdd92..3ce6058d4c 100644
index 4bed101c08..c8c89d6ef3 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -76,7 +76,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -18,7 +18,7 @@ index 8abe3cdd92..3ce6058d4c 100644
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
private final List<TileEntity> c = Lists.newArrayList();
private final Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); // Paper
@@ -1305,7 +1305,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1312,7 +1312,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
timings.tileEntityTick.startTiming(); // Spigot
if (!this.tileEntityListUnload.isEmpty()) {
this.tileEntityListTick.removeAll(this.tileEntityListUnload);
@ -27,7 +27,7 @@ index 8abe3cdd92..3ce6058d4c 100644
this.tileEntityListUnload.clear();
}
@@ -1358,7 +1358,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1365,7 +1365,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (tileentity.x()) {
tilesThisCycle--;
this.tileEntityListTick.remove(tileTickPosition--);
@ -36,7 +36,7 @@ index 8abe3cdd92..3ce6058d4c 100644
if (this.isLoaded(tileentity.getPosition())) {
this.getChunkAtWorldCoords(tileentity.getPosition()).d(tileentity.getPosition());
}
@@ -1388,7 +1388,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1395,7 +1395,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3);
// CraftBukkit start
// From above, don't screw this up - SPIGOT-1746
@ -45,7 +45,7 @@ index 8abe3cdd92..3ce6058d4c 100644
this.a(tileentity1);
}
// CraftBukkit end
@@ -1408,9 +1408,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1415,9 +1415,9 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
protected void p_() {}
public boolean a(TileEntity tileentity) {
@ -57,7 +57,7 @@ index 8abe3cdd92..3ce6058d4c 100644
this.tileEntityListTick.add(tileentity);
}
@@ -1891,7 +1891,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1898,7 +1898,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
} else {
if (tileentity != null) {
this.c.remove(tileentity);
@ -67,5 +67,5 @@ index 8abe3cdd92..3ce6058d4c 100644
}
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 8824eb040551062e405769e77f5b114da7a136f5 Mon Sep 17 00:00:00 2001
From 838891ffd3bdbc81e429f285900af224acba96cf Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 29 Apr 2016 20:02:00 -0400
Subject: [PATCH] Improve Maps (in item frames) performance and bug fixes
@ -13,7 +13,7 @@ custom renderers are in use, defaulting to the much simpler Vanilla system.
Additionally, numerous issues to player position tracking on maps has been fixed.
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 6c4c1924..ad9e7f7b 100644
index 6c4c192446..ad9e7f7b54 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -619,6 +619,12 @@ public abstract class EntityHuman extends EntityLiving {
@ -30,7 +30,7 @@ index 6c4c1924..ad9e7f7b 100644
ItemStack itemstack1 = this.a(entityitem);
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 5c75d494..6120c63a 100644
index 5c75d494a2..6120c63a38 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -90,7 +90,7 @@ public class EntityTrackerEntry {
@ -43,10 +43,10 @@ index 5c75d494..6120c63a 100644
ItemStack itemstack = entityitemframe.getItem();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a4237b30..caf75ee3 100644
index c8c89d6ef3..c6e9d697b4 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1109,6 +1109,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1116,6 +1116,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
{
if ( iter.next().trackee == entity )
{
@ -55,7 +55,7 @@ index a4237b30..caf75ee3 100644
}
}
diff --git a/src/main/java/net/minecraft/server/WorldMap.java b/src/main/java/net/minecraft/server/WorldMap.java
index aa58e34c..f26b91b4 100644
index aa58e34c6f..f26b91b407 100644
--- a/src/main/java/net/minecraft/server/WorldMap.java
+++ b/src/main/java/net/minecraft/server/WorldMap.java
@@ -30,6 +30,7 @@ public class WorldMap extends PersistentBase {
@ -127,7 +127,7 @@ index aa58e34c..f26b91b4 100644
for ( org.bukkit.map.MapCursor cursor : render.cursors) {
diff --git a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
index 256a1317..5768cd51 100644
index 256a131781..5768cd512e 100644
--- a/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
+++ b/src/main/java/org/bukkit/craftbukkit/map/RenderData.java
@@ -5,7 +5,7 @@ import org.bukkit.map.MapCursor;
@ -140,5 +140,5 @@ index 256a1317..5768cd51 100644
public RenderData() {
--
2.18.0.windows.1
2.19.0

View File

@ -1,4 +1,4 @@
From 6488a8930089b7cbdec16f6b93efd1328a4976c3 Mon Sep 17 00:00:00 2001
From e90dbe5958240c16dc0f95d7b794d23c564cda27 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 18 Jun 2016 23:22:12 -0400
Subject: [PATCH] Delay Chunk Unloads based on Player Movement
@ -17,7 +17,7 @@ This allows servers with smaller worlds who do less long distance exploring to s
wasting cpu cycles on saving/unloading/reloading chunks repeatedly.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index f8102d9f..547ab096 100644
index f8102d9f07..547ab09627 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -288,4 +288,18 @@ public class PaperWorldConfig {
@ -40,7 +40,7 @@ index f8102d9f..547ab096 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 5390396d..3c9c3cd4 100644
index 5390396d5e..3c9c3cd41d 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -37,6 +37,7 @@ public class Chunk implements IChunkAccess {
@ -52,7 +52,7 @@ index 5390396d..3c9c3cd4 100644
public final int locZ;
private boolean l;
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 1a1daf36..7417660e 100644
index b1e6901090..9739288b53 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -306,6 +306,19 @@ public class ChunkProviderServer implements IChunkProvider {
@ -76,7 +76,7 @@ index 1a1daf36..7417660e 100644
this.chunkScheduler.a(booleansupplier);
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java
index ac0e90ee..3f4a8f21 100644
index ac0e90eeca..3f4a8f21c0 100644
--- a/src/main/java/net/minecraft/server/PlayerChunk.java
+++ b/src/main/java/net/minecraft/server/PlayerChunk.java
@@ -33,8 +33,16 @@ public class PlayerChunk {
@ -113,7 +113,7 @@ index ac0e90ee..3f4a8f21 100644
}
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 174389e8..eb9d454a 100644
index a69d510dd1..7b67fa3208 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -460,7 +460,13 @@ public class PlayerChunkMap {
@ -132,10 +132,10 @@ index 174389e8..eb9d454a 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index caf75ee3..b4f31c93 100644
index c6e9d697b4..4cee3739bb 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1329,7 +1329,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1336,7 +1336,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (!tileentity.x() && tileentity.hasWorld()) {
BlockPosition blockposition = tileentity.getPosition();
@ -151,7 +151,7 @@ index caf75ee3..b4f31c93 100644
this.methodProfiler.a(() -> {
return String.valueOf(TileEntityTypes.a(tileentity.C()));
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 9637c989..6b3b45f9 100644
index 9637c98994..6b3b45f94a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1620,7 +1620,7 @@ public class CraftWorld implements World {
@ -164,7 +164,7 @@ index 9637c989..6b3b45f9 100644
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 454c1a58..79f053a7 100644
index 12040596df..f9bb19fed6 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -284,6 +284,11 @@ public class ActivationRange
@ -180,5 +180,5 @@ index 454c1a58..79f053a7 100644
}
}
--
2.18.0.windows.1
2.19.0

View File

@ -1,4 +1,4 @@
From e0f5d9ef984d0bacc7739a5ad94d45e4761b196d Mon Sep 17 00:00:00 2001
From 88abfc2741ad294c9ac4e4837cdcae53b01f5ded 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 1ed4408e2a..0fd91a687e 100644
index f13ff979b0..c42c6c742f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1509,7 +1509,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1516,7 +1516,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
i = MathHelper.floor(entity.locX / 16.0D);
@ -21,5 +21,5 @@ index 1ed4408e2a..0fd91a687e 100644
if (!entity.inChunk || entity.ae != i || entity.af != j || entity.ag != k) {
--
2.18.0
2.19.0

View File

@ -1,11 +1,11 @@
From d2a91d650e428d979607011c24efc0a2802d6b3d Mon Sep 17 00:00:00 2001
From 149f17e8532b98f9cb33ac5061035509aa3ae066 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Mon, 31 Jul 2017 01:45:19 -0500
Subject: [PATCH] Reset spawner timer when spawner event is cancelled
diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
index ef93f433d6..e4598d8314 100644
index 72b12d869e..408ef423e9 100644
--- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
+++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
@@ -121,6 +121,9 @@ public abstract class MobSpawnerAbstract {
@ -16,9 +16,9 @@ index ef93f433d6..e4598d8314 100644
+ flag = true; // Paper
+
if (org.bukkit.craftbukkit.event.CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) {
continue;
}
@@ -131,7 +134,7 @@ public abstract class MobSpawnerAbstract {
Entity vehicle = entity.getVehicle();
if (vehicle != null) {
@@ -138,7 +141,7 @@ public abstract class MobSpawnerAbstract {
entityinsentient.doSpawnEffect();
}
@ -28,5 +28,5 @@ index ef93f433d6..e4598d8314 100644
}
--
2.18.0
2.19.0

View File

@ -1,14 +1,14 @@
From cfb49559e28c704eb9d49d5d4010174dd214797f Mon Sep 17 00:00:00 2001
From ad869815dee91aaa85cb8be64451e2df9410666c Mon Sep 17 00:00:00 2001
From: mezz <tehgeek@gmail.com>
Date: Wed, 9 Aug 2017 17:51:22 -0500
Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 0cf5d80899..109e718118 100644
index 4b53478d77..a6e87835d5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1310,7 +1310,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1317,7 +1317,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.methodProfiler.c("blockEntities");
timings.tileEntityTick.startTiming(); // Spigot
if (!this.tileEntityListUnload.isEmpty()) {
@ -22,5 +22,5 @@ index 0cf5d80899..109e718118 100644
this.tileEntityListUnload.clear();
}
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From fd03d282fd5195b571293aabe0cce3db74661be5 Mon Sep 17 00:00:00 2001
From 961416ac0e026aaa7582b6f5ecae10364e97969d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 15 Aug 2017 22:29:12 -0400
Subject: [PATCH] Expand World.spawnParticle API and add Builder
@ -10,10 +10,10 @@ Adds an option to control the force mode of the particle.
This adds a new Builder API which is much friendlier to use.
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index e4ba13cec5..d6e330d345 100644
index 65fe50882b..ee06457653 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1202,12 +1202,17 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -1206,12 +1206,17 @@ public class WorldServer extends World implements IAsyncTaskHandler {
}
public <T extends ParticleParam> int sendParticles(EntityPlayer sender, T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, boolean force) {
@ -57,5 +57,5 @@ index 6347d3d1f2..63d9130918 100644
x, y, z, // Position
count, // Count
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 771d740dc6145e2bf73fc418477e9e8c292479a3 Mon Sep 17 00:00:00 2001
From 85ac3540d623320bc08f9f7877eb38f5db1ee813 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 Jul 2018 03:39:51 -0400
Subject: [PATCH] Avoid Chunk Lookups for Entity/TileEntity Current Chunk
@ -10,7 +10,7 @@ to the object directly on the Entity/TileEntity object we can directly grab.
Use that local value instead to reduce lookups in many hot places.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 614fce444..e806d13d2 100644
index 614fce4447..e806d13d22 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -725,6 +725,7 @@ public class Chunk implements IChunkAccess {
@ -22,10 +22,10 @@ index 614fce444..e806d13d2 100644
this.a(entity, entity.af);
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index be6d21e4c..ba1fb577a 100644
index 946c129443..c695689101 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1245,12 +1245,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1252,12 +1252,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
int j;
// Paper start - Set based removal lists
for (Entity e : this.g) {
@ -42,7 +42,7 @@ index be6d21e4c..ba1fb577a 100644
}
for (Entity e : this.g) {
@@ -1311,12 +1314,17 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1318,12 +1321,17 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.methodProfiler.e();
this.methodProfiler.a("remove");
if (entity.dead) {
@ -61,7 +61,7 @@ index be6d21e4c..ba1fb577a 100644
guardEntityList = false; // Spigot
this.entityList.remove(this.tickPosition--); // CraftBukkit - Use field for loop variable
@@ -1361,7 +1369,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1368,7 +1376,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
BlockPosition blockposition = tileentity.getPosition();
// Paper start - Skip ticking in chunks scheduled for unload
@ -70,7 +70,7 @@ index be6d21e4c..ba1fb577a 100644
boolean shouldTick = chunk != null;
if(this.paperConfig.skipEntityTickingInChunksScheduledForUnload)
shouldTick = shouldTick && chunk.scheduledForUnload == null;
@@ -1397,8 +1405,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1404,8 +1412,11 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
tilesThisCycle--;
this.tileEntityListTick.remove(tileTickPosition--);
//this.tileEntityList.remove(tileentity); // Paper - remove unused list
@ -85,5 +85,5 @@ index be6d21e4c..ba1fb577a 100644
}
}
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From d1ba66ffb95eb8a9116f5c0e0cef4de0e9b38efb Mon Sep 17 00:00:00 2001
From e2bed98381552f85e0d324e83e646675eba213bc Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 12:57:39 +0200
Subject: [PATCH] Option to prevent armor stands from doing entity lookups
@ -21,10 +21,10 @@ index 3aa6f031f3..58f87794d6 100644
private void maxEntityCollision() {
maxCollisionsPerEntity = getInt( "max-entity-collisions", this.spigotConfig.getInt("max-entity-collisions", 8) );
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 2ad02b0a61..73cd2d015b 100644
index 03896807f5..a0e1eb3ff1 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1599,6 +1599,14 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1606,6 +1606,14 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
}
@ -40,5 +40,5 @@ index 2ad02b0a61..73cd2d015b 100644
int i = MathHelper.floor(axisalignedbb.a);
int j = MathHelper.f(axisalignedbb.d);
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 0cacdd59764c9ca57ca038d5b72392a0a6bb517e Mon Sep 17 00:00:00 2001
From 48d202457a79862fe2914f5e765bc8ba91969cc2 Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 14:22:26 +0200
Subject: [PATCH] Vanished players don't have rights
@ -64,10 +64,10 @@ index ea8f1c170a..fdfc0d442e 100644
return this.a.a();
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index caec2807a6..e7576c5c6a 100644
index a0e1eb3ff1..887dba69ce 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1581,6 +1581,37 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1588,6 +1588,37 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
}
@ -125,5 +125,5 @@ index 063c1b7fa3..f6b7f7a462 100644
return event;
}
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 0073935df3eb903a5cb29a7c5dadebd260e30d73 Mon Sep 17 00:00:00 2001
From 318c5e0b3498e6f215d35d845d950dd6bb6424eb Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 28 Jul 2018 12:09:20 -0400
Subject: [PATCH] Always process chunk removal in removeEntity
@ -8,10 +8,10 @@ which can keep them in the chunk when they shouldnt be if done
during entity ticking.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 3ea26d5ad8..c2d404b813 100644
index 887dba69ce..f21c7f8d90 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1159,7 +1159,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1166,7 +1166,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.everyoneSleeping();
}
@ -20,7 +20,7 @@ index 3ea26d5ad8..c2d404b813 100644
int i = entity.ae;
int j = entity.ag;
@@ -1167,6 +1167,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1174,6 +1174,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.getChunkAt(i, j).b(entity);
}
@ -29,5 +29,5 @@ index 3ea26d5ad8..c2d404b813 100644
int index = this.entityList.indexOf(entity);
if (index != -1) {
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 46802d69757545e315c417c9092a0ed5d4568100 Mon Sep 17 00:00:00 2001
From 21e2b383c7c451aab9678a4611b4e8b675da0b0a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 28 Jul 2018 12:18:27 -0400
Subject: [PATCH] Ignore Dead Entities in entityList iteration
@ -23,7 +23,7 @@ index 56700fc596..9b9c8361e9 100644
MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ());
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index f5d5f38232..e558197623 100644
index 8951ac8095..127a7c9b72 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -123,6 +123,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -35,10 +35,10 @@ index f5d5f38232..e558197623 100644
public float length;
public float J;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c2d404b813..255829b0b5 100644
index f21c7f8d90..79f7a678a7 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1098,6 +1098,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1105,6 +1105,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
entity.valid = true; // CraftBukkit
@ -46,7 +46,7 @@ index c2d404b813..255829b0b5 100644
new com.destroystokyo.paper.event.entity.EntityAddToWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
}
@@ -1166,6 +1167,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1173,6 +1174,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (entity.inChunk && this.isChunkLoaded(i, j, true)) {
this.getChunkAt(i, j).b(entity);
}
@ -54,7 +54,7 @@ index c2d404b813..255829b0b5 100644
if (!guardEntityList) { // Spigot - It will get removed after the tick if we are ticking // Paper - always remove from current chunk above
// CraftBukkit start - Decrement loop variable field if we've already ticked this entity
@@ -2376,6 +2378,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2383,6 +2385,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
while (iterator.hasNext()) {
Entity entity = (Entity) iterator.next();
@ -62,14 +62,14 @@ index c2d404b813..255829b0b5 100644
if (oclass.isAssignableFrom(entity.getClass()) && predicate.test((T) entity)) {
arraylist.add(entity);
@@ -2462,6 +2465,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2469,6 +2472,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
while (iterator.hasNext()) {
Entity entity = (Entity) iterator.next();
+ if (entity.shouldBeRemoved) continue; // Paper
// CraftBukkit start - Split out persistent check, don't apply it to special persistent mobs
if (entity instanceof EntityInsentient) {
EntityInsentient entityinsentient = (EntityInsentient) entity;
if (!(entity instanceof EntityInsentient) || !((EntityInsentient) entity).isPersistent()) {
if (oclass.isAssignableFrom(entity.getClass())) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index af977b171a..80fd49b6e1 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@ -107,5 +107,5 @@ index af977b171a..80fd49b6e1 100644
if (bukkitEntity == null) {
--
2.18.0
2.19.0

View File

@ -1,11 +1,11 @@
From 3d8f1b41f66faf392991e817b0954bc7d5841738 Mon Sep 17 00:00:00 2001
From 9bdc7e711d66f2aabac9cde0b3723ef68105df87 Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com>
Date: Mon, 30 Jul 2018 02:42:49 -0400
Subject: [PATCH] World EntityHuman Lookup Optimizations
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 255829b0b5..26007862ab 100644
index 79f7a678a7..e2ed2d3c1f 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -81,6 +81,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -16,7 +16,7 @@ index 255829b0b5..26007862ab 100644
public final List<Entity> k = Lists.newArrayList();
protected final IntHashMap<Entity> entitiesById = new IntHashMap();
private final long F = 16777215L;
@@ -1082,6 +1083,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1089,6 +1090,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
EntityHuman entityhuman = (EntityHuman) entity;
this.players.add(entityhuman);
@ -25,7 +25,7 @@ index 255829b0b5..26007862ab 100644
this.everyoneSleeping();
}
@@ -1124,6 +1127,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1131,6 +1134,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
entity.die();
if (entity instanceof EntityHuman) {
this.players.remove(entity);
@ -33,7 +33,7 @@ index 255829b0b5..26007862ab 100644
// Spigot start
for ( WorldPersistentData worldData : worldMaps.a.values() )
{
@@ -1157,6 +1161,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1164,6 +1168,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
entity.die();
if (entity instanceof EntityHuman) {
this.players.remove(entity);
@ -41,7 +41,7 @@ index 255829b0b5..26007862ab 100644
this.everyoneSleeping();
}
@@ -2706,6 +2711,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2705,6 +2710,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@Nullable
public EntityHuman a(String s) {
@ -50,7 +50,7 @@ index 255829b0b5..26007862ab 100644
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@@ -2715,10 +2722,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2714,10 +2721,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
return null;
@ -66,7 +66,7 @@ index 255829b0b5..26007862ab 100644
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@@ -2728,6 +2740,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2727,6 +2739,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
return null;
@ -78,5 +78,5 @@ index 255829b0b5..26007862ab 100644
public void checkSession() throws ExceptionWorldConflict {
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From e21552089e29786bf85bcfd9fdf5d1d61f614af1 Mon Sep 17 00:00:00 2001
From d575c293eba242bce20368e93bf1c946bf9ee8cb Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 3 Aug 2018 22:47:46 -0400
Subject: [PATCH] Entity add to world fixes
@ -14,7 +14,7 @@ Fix this by differing entity add to world for all entities at the same time
the original entity is dead, overwrite it as the logic does for unloaod queued entities.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index e8af8f419..56c378341 100644
index e8af8f4196..56c3783412 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -905,6 +905,7 @@ public class Chunk implements IChunkAccess {
@ -42,10 +42,10 @@ index e8af8f419..56c378341 100644
// CraftBukkit start
org.bukkit.Server server = this.world.getServer();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b2b182c58..f99cdf100 100644
index e2ed2d3c1f..2b7ab82b11 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1089,6 +1089,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1096,6 +1096,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
}
this.getChunkAt(i, j).a(entity);
@ -53,7 +53,7 @@ index b2b182c58..f99cdf100 100644
this.entityList.add(entity);
this.b(entity);
return true;
@@ -2494,9 +2495,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2493,9 +2494,13 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return j;
}
@ -68,7 +68,7 @@ index b2b182c58..f99cdf100 100644
this.b(entity);
});
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 657938762..788ab40d0 100644
index 2692d0a1b6..911d03c70b 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -987,7 +987,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@ -81,5 +81,5 @@ index 657938762..788ab40d0 100644
} else {
if (!(entity instanceof EntityHuman)) {
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 6b92f447cc46cd7d22d28407b1e0e9e530ddffa5 Mon Sep 17 00:00:00 2001
From 8a7c8360a348229b1e81432124ea1093dc29bc70 Mon Sep 17 00:00:00 2001
From: Mystiflow <mystiflow@gmail.com>
Date: Fri, 6 Jul 2018 13:21:30 +0100
Subject: [PATCH] Send nearby packets from world player list not server list
@ -95,10 +95,10 @@ index e26405d341..23f390c221 100644
if (entityplayer != null && entityplayer.world == this.world && entityplayer.getId() != i) {
double d0 = (double) blockposition.getX() - entityplayer.locX;
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 788ab40d0e..1e30ba0548 100644
index 911d03c70b..f837e6c36c 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1082,7 +1082,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -1086,7 +1086,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
}
// CraftBukkit end
if (super.strikeLightning(entity)) {
@ -107,7 +107,7 @@ index 788ab40d0e..1e30ba0548 100644
return true;
} else {
return false;
@@ -1142,8 +1142,8 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -1146,8 +1146,8 @@ public class WorldServer extends World implements IAsyncTaskHandler {
BlockActionData blockactiondata = (BlockActionData) this.d.removeFirst();
if (this.a(blockactiondata)) {
@ -132,5 +132,5 @@ index 80fd49b6e1..ba2e768594 100644
public String getGameRuleValue(String rule) {
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From cfe60b56f90e65e48b707b3a0d3d81615f036454 Mon Sep 17 00:00:00 2001
From 0f31bf2ce8e0e92ccf40826a80d2ecd698f7af0f Mon Sep 17 00:00:00 2001
From: Colin Godsey <crgodsey@gmail.com>
Date: Wed, 8 Aug 2018 10:10:06 -0600
Subject: [PATCH] Cache World Entity Type counts
@ -133,7 +133,7 @@ index 0000000000..35104542c5
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 4252e8c02a..2b1affd03c 100644
index 02b567d559..f609e2ceda 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -124,6 +124,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -170,7 +170,7 @@ index 8874a05be5..0af387c059 100644
return this.e;
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 32808558bb..62b4c64f68 100644
index 95d98b65cf..387570ed67 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -114,7 +114,7 @@ public final class SpawnerCreature {
@ -183,7 +183,7 @@ index 32808558bb..62b4c64f68 100644
if (l1 <= k) {
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f99cdf1003..c479828d49 100644
index 2b7ab82b11..4089204308 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -50,7 +50,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -213,7 +213,7 @@ index f99cdf1003..c479828d49 100644
public static boolean haveWeSilencedAPhysicsCrash;
public static String blockLocation;
private org.spigotmc.TickLimiter entityLimiter;
@@ -1174,6 +1176,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -1181,6 +1183,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
this.getChunkAt(i, j).b(entity);
}
entity.shouldBeRemoved = true; // Paper
@ -222,5 +222,5 @@ index f99cdf1003..c479828d49 100644
if (!guardEntityList) { // Spigot - It will get removed after the tick if we are ticking // Paper - always remove from current chunk above
// CraftBukkit start - Decrement loop variable field if we've already ticked this entity
--
2.18.0
2.19.0

View File

@ -1,14 +1,14 @@
From 9f558a69347dfbaaf71ff2d963e7f27d8b972aae Mon Sep 17 00:00:00 2001
From 7eec24b0570c9d4303505151fb9311021987f5c5 Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com>
Date: Wed, 29 Aug 2018 00:37:42 -0400
Subject: [PATCH] Implement Force-Loaded Chunk API
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 49809372d8..2b5b0c4df6 100644
index 9a99a56c14..9636b40f97 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -3010,6 +3010,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -3009,6 +3009,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
return forcedchunk != null && forcedchunk.a().contains(ChunkCoordIntPair.a(i, j));
}
@ -55,5 +55,5 @@ index 1ccf2a7609..755d2632fd 100644
public ChunkGenerator getGenerator() {
--
2.18.0
2.19.0

View File

@ -1,4 +1,4 @@
From 8680a88f33ba22fdceb70ffd3a876f4284244a4b Mon Sep 17 00:00:00 2001
From 0b22c6881db444da8b133a33b97bddff2d752a0b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 29 Aug 2018 21:59:22 -0400
Subject: [PATCH] Optimize getChunkIfLoaded type calls
@ -10,7 +10,7 @@ Will improve inlining across many hot methods.
Improve getBrightness to not do double chunk map lookups.
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 96d49b469a..c0ec896eea 100644
index fc621911e0..99613b2ef3 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -381,7 +381,7 @@ public class ChunkProviderServer implements IChunkProvider {
@ -23,7 +23,7 @@ index 96d49b469a..c0ec896eea 100644
neighbor.setNeighborUnloaded(-x, -z);
chunk.setNeighborUnloaded(x, z);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 2b5b0c4df6..acd0c93cec 100644
index 9636b40f97..52d9c06805 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -165,7 +165,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -45,7 +45,7 @@ index 2b5b0c4df6..acd0c93cec 100644
}
public void a(EnumSkyBlock enumskyblock, BlockPosition blockposition, int i) {
@@ -2017,7 +2018,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@@ -2024,7 +2025,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
if (blockposition.isInvalidYLocation()) { // Paper
return false;
} else {
@ -77,5 +77,5 @@ index 755d2632fd..585a0c7fd2 100644
return true;
}
--
2.18.0
2.19.0

@ -1 +1 @@
Subproject commit 381fba2cd0c6c30b327c1c5edb1920427b4dd94f
Subproject commit 47b9cf30ac5f6e61c84c126075932c4b9d123d95

@ -1 +1 @@
Subproject commit 1cead6280f702aabc1c38f67477876981a583363
Subproject commit a4bdecff654c72281fbce4cebf1ff55d86470d07

@ -1 +1 @@
Subproject commit 500ff5d408d9ce45b6a0819777fc7ad4779f32e4
Subproject commit 6b015b4b7a9a33746619506053e83993439877ae