Updated Upstream (Paper & Tuinity)

Upstream has released updates that appears to apply and compile correctly

Paper Changes:
fcbeac8a [CI-SKIP] Readme update (#3702)
824f8086 Bandaid italic legacy serialization #3757 (#3760)

Tuinity Changes:
9f21359: Re-add optimise collision checking in player move packet handling
1152054: Revert player move packet optimisation
ef0a6c4: Optimise collision checking in player move packets
This commit is contained in:
William Blake Galbreath
2020-07-02 20:37:57 -05:00
parent 140a58f451
commit 5c7cdad371
127 changed files with 178 additions and 1200 deletions

View File

@@ -1,4 +1,4 @@
From 049e07a77b3110ad4685e5e2ffc797f7410a1650 Mon Sep 17 00:00:00 2001
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Fri, 14 Dec 2018 21:53:58 -0800
Subject: [PATCH] Tuinity Server Changes
@@ -216,99 +216,6 @@ Prevent log spam for "Block is water but TE is chest"
Happens when breaking a waterlogged chest.
Fix is to just not validate the TE while the chest is being removed.
---
pom.xml | 22 +-
.../co/aikar/timings/MinecraftTimings.java | 2 +
.../java/co/aikar/timings/TimingsExport.java | 3 +-
.../paper/PaperVersionFetcher.java | 11 +-
.../paper/server/ticklist/PaperTickList.java | 9 +
.../chunk/SingleThreadChunkRegionManager.java | 159 ++++++
.../tuinity/tuinity/config/TuinityConfig.java | 277 ++++++++++
.../com/tuinity/tuinity/util/CachedLists.java | 53 ++
.../com/tuinity/tuinity/util/TickThread.java | 41 ++
.../IteratorSafeOrderedReferenceSet.java | 265 +++++++++
.../tuinity/tuinity/voxel/AABBVoxelShape.java | 246 +++++++++
.../net/minecraft/server/AxisAlignedBB.java | 116 ++++
.../java/net/minecraft/server/BiomeBase.java | 12 +
.../java/net/minecraft/server/BlockBase.java | 1 +
.../java/net/minecraft/server/BlockChest.java | 4 +-
.../net/minecraft/server/BlockPiston.java | 30 +-
.../minecraft/server/BlockPistonMoving.java | 7 +-
src/main/java/net/minecraft/server/Chunk.java | 37 ++
.../minecraft/server/ChunkMapDistance.java | 93 +++-
.../minecraft/server/ChunkProviderServer.java | 286 ++++++++--
.../minecraft/server/ChunkRegionLoader.java | 12 +-
.../net/minecraft/server/ChunkSection.java | 1 +
.../net/minecraft/server/ChunkStatus.java | 4 +-
.../minecraft/server/DataPaletteBlock.java | 1 +
.../net/minecraft/server/DedicatedServer.java | 1 +
src/main/java/net/minecraft/server/EULA.java | 2 +-
.../java/net/minecraft/server/Entity.java | 201 ++++++-
.../net/minecraft/server/EntityLiving.java | 9 +-
.../minecraft/server/EntityTrackerEntry.java | 1 +
.../java/net/minecraft/server/HeightMap.java | 5 +-
.../java/net/minecraft/server/IBlockData.java | 13 +
.../net/minecraft/server/IChunkLoader.java | 2 +-
.../minecraft/server/ICollisionAccess.java | 5 +
.../net/minecraft/server/IEntityAccess.java | 1 +
.../minecraft/server/LightEngineStorage.java | 7 +-
.../java/net/minecraft/server/MCUtil.java | 14 +
.../net/minecraft/server/MinecraftServer.java | 108 +++-
.../net/minecraft/server/NetworkManager.java | 59 +-
.../server/PacketPlayOutMapChunk.java | 109 +++-
.../minecraft/server/PathfinderNormal.java | 2 +-
.../net/minecraft/server/PlayerChunk.java | 37 +-
.../net/minecraft/server/PlayerChunkMap.java | 64 ++-
.../minecraft/server/PlayerConnection.java | 34 +-
.../server/PlayerConnectionUtils.java | 26 +
.../server/PlayerInteractManager.java | 53 +-
.../java/net/minecraft/server/ProtoChunk.java | 16 +-
.../java/net/minecraft/server/RegionFile.java | 466 +++++++++++++++-
.../minecraft/server/RegionFileBitSet.java | 26 +-
.../net/minecraft/server/RegionFileCache.java | 52 +-
.../server/RegionFileCompression.java | 7 +-
.../java/net/minecraft/server/Ticket.java | 11 +-
.../java/net/minecraft/server/TicketType.java | 3 +-
.../java/net/minecraft/server/TileEntity.java | 49 +-
.../minecraft/server/TileEntityBeacon.java | 26 +-
.../minecraft/server/TileEntityBeehive.java | 7 +
.../server/TileEntityBrewingStand.java | 26 +-
.../net/minecraft/server/TileEntityChest.java | 16 +
.../minecraft/server/TileEntityConduit.java | 21 +-
.../minecraft/server/TileEntityFurnace.java | 26 +-
.../minecraft/server/TileEntityJukeBox.java | 7 +
.../minecraft/server/TileEntityLectern.java | 51 +-
.../minecraft/server/TileEntityPiston.java | 66 ++-
src/main/java/net/minecraft/server/Vec3D.java | 5 +-
.../net/minecraft/server/VillagePlace.java | 2 +-
.../java/net/minecraft/server/VoxelShape.java | 11 +-
.../net/minecraft/server/VoxelShapeArray.java | 72 +++
.../net/minecraft/server/VoxelShapes.java | 79 ++-
src/main/java/net/minecraft/server/World.java | 48 +-
.../net/minecraft/server/WorldBorder.java | 38 +-
.../net/minecraft/server/WorldServer.java | 517 +++++++++++++++++-
.../net/minecraft/server/WorldUpgrader.java | 2 +-
.../craftbukkit/CraftChunkSnapshot.java | 2 +-
.../org/bukkit/craftbukkit/CraftServer.java | 17 +-
.../org/bukkit/craftbukkit/CraftWorld.java | 19 +-
.../java/org/bukkit/craftbukkit/Main.java | 9 +-
.../bukkit/craftbukkit/block/CraftBlock.java | 21 +-
.../craftbukkit/block/CraftBlockState.java | 2 +-
.../block/data/CraftBlockData.java | 2 +-
.../craftbukkit/entity/CraftEntity.java | 31 ++
.../craftbukkit/generator/CraftChunkData.java | 2 +-
.../scoreboard/CraftScoreboardManager.java | 9 +
.../bukkit/craftbukkit/util/UnsafeList.java | 26 +
.../bukkit/craftbukkit/util/Versioning.java | 2 +-
src/main/java/org/spigotmc/AsyncCatcher.java | 2 +-
.../java/org/spigotmc/WatchdogThread.java | 79 +++
85 files changed, 3960 insertions(+), 358 deletions(-)
create mode 100644 src/main/java/com/tuinity/tuinity/chunk/SingleThreadChunkRegionManager.java
create mode 100644 src/main/java/com/tuinity/tuinity/config/TuinityConfig.java
create mode 100644 src/main/java/com/tuinity/tuinity/util/CachedLists.java
create mode 100644 src/main/java/com/tuinity/tuinity/util/TickThread.java
create mode 100644 src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java
create mode 100644 src/main/java/com/tuinity/tuinity/voxel/AABBVoxelShape.java
diff --git a/pom.xml b/pom.xml
index ef8ee637a..6fd596817 100644
@@ -3880,7 +3787,7 @@ index 8c5639fa5..4dd6f48ca 100644
// Paper end - optimised tracker
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index cf83059fe..c40255263 100644
index cf83059fe..37f55c66b 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -322,19 +322,24 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -3926,6 +3833,15 @@ index cf83059fe..c40255263 100644
this.networkManager.sendPacket(new PacketPlayOutVehicleMove(entity));
return;
}
@@ -976,7 +983,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
if (this.teleportPos != null) {
- if (this.e - this.A > 20) {
+ if (false && this.e - this.A > 20) { // Tuinity - this will greatly screw with clients with > 1000ms RTT
this.A = this.e;
this.a(this.teleportPos.x, this.teleportPos.y, this.teleportPos.z, this.player.yaw, this.player.pitch);
}
@@ -1000,7 +1007,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
double d2 = this.player.locZ();
double d3 = this.player.locY();
@@ -3958,6 +3874,23 @@ index cf83059fe..c40255263 100644
this.internalTeleport(this.player.locX(), this.player.locY(), this.player.locZ(), this.player.yaw, this.player.pitch, Collections.emptySet());
return;
}
@@ -1097,6 +1109,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
this.player.move(EnumMoveType.PLAYER, new Vec3D(d7, d8, d9));
+ boolean didCollide = toX != this.player.locX() || toY != this.player.locY() || toZ != this.player.locZ(); // Tuinity - needed here as the difference in Y can be reset - also note: this is only a guess at whether collisions took place, floating point errors can make this true when it shouldn't be...
this.player.c(packetplayinflying.b()); // CraftBukkit - SPIGOT-5810, SPIGOT-5835: reset by this.player.move
// Paper start - prevent position desync
if (this.teleportPos != null) {
@@ -1121,7 +1134,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
this.player.setLocation(d4, d5, d6, f, f1);
- if (!this.player.noclip && !this.player.isSleeping() && (flag1 && worldserver.getCubes(this.player, axisalignedbb) || this.a((IWorldReader) worldserver, axisalignedbb))) {
+ if (!this.player.noclip && !this.player.isSleeping() && (flag1 && worldserver.getCubes(this.player, axisalignedbb) || (didCollide && this.a((IWorldReader) worldserver, axisalignedbb)))) { // Tuinity - optimise out the extra getCubes-like call most of the time
this.a(d0, d1, d2, f, f1);
} else {
// CraftBukkit start - fire PlayerMoveEvent
diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
index eb3269e0e..d9c9d01ae 100644
--- a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
@@ -7158,6 +7091,3 @@ index 513c1041c..4d3109084 100644
dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( server.serverThread.getId(), Integer.MAX_VALUE ), log );
log.log( Level.SEVERE, "------------------------------" );
//
--
2.26.2