mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 00:47:42 +01:00
Update Tuinity patches
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From c794d57af4283d31fe962cea6c96a3602c0e50fd Mon Sep 17 00:00:00 2001
|
||||
From e39528079ddd25c1b51230d0b66546f55cc8ff27 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 Patches
|
||||
@@ -14,37 +14,37 @@ Subject: [PATCH] Tuinity Server Patches
|
||||
.../chunk/QueuedChangesMapLong2Object.java | 170 ++++
|
||||
.../tuinity/tuinity/config/TuinityConfig.java | 225 +++++
|
||||
.../server/TickListServerInterval.java | 42 +
|
||||
.../tuinity/server/TuinityTickList.java | 614 ++++++++++++
|
||||
.../tuinity/server/TuinityTickList.java | 614 ++++++++++++++
|
||||
.../com/tuinity/tuinity/util/ChunkList.java | 119 +++
|
||||
.../com/tuinity/tuinity/util/EntityList.java | 124 +++
|
||||
.../tuinity/tuinity/util/IBlockDataList.java | 123 +++
|
||||
.../tuinity/util/OptimizedSmallEnumSet.java | 65 ++
|
||||
.../tuinity/util/PrimaryThreadList.java | 241 +++++
|
||||
.../tuinity/util/PrimaryThreadSet.java | 282 ++++++
|
||||
.../tuinity/util/PrimaryThreadList.java | 241 ++++++
|
||||
.../tuinity/util/PrimaryThreadSet.java | 282 +++++++
|
||||
.../util/TickSynchronizationPoint.java | 40 +
|
||||
.../com/tuinity/tuinity/util/TickThread.java | 40 +
|
||||
.../java/com/tuinity/tuinity/util/Util.java | 103 +++
|
||||
.../fastutil/ExtendedAbstractDoubleList.java | 39 +
|
||||
.../fastutil/ExtendedDoubleArrayList.java | 65 ++
|
||||
.../fastutil/ExtendedObjectAVLTreeSet.java | 90 ++
|
||||
.../com/tuinity/tuinity/util/map/AreaMap.java | 388 ++++++++
|
||||
.../com/tuinity/tuinity/util/map/AreaMap.java | 388 +++++++++
|
||||
.../tuinity/util/map/PlayerAreaMap.java | 25 +
|
||||
.../util/map/PooledLinkedHashSets.java | 287 ++++++
|
||||
.../util/map/PooledLinkedHashSets.java | 287 +++++++
|
||||
.../util/pool/PooledBlockPositions.java | 40 +
|
||||
.../tuinity/util/set/LinkedSortedSet.java | 142 +++
|
||||
.../tuinity/util/set/LinkedSortedSet.java | 142 ++++
|
||||
.../net/minecraft/server/ArraySetSorted.java | 41 +-
|
||||
.../net/minecraft/server/AxisAlignedBB.java | 2 +
|
||||
.../net/minecraft/server/BlockPosition.java | 1 +
|
||||
src/main/java/net/minecraft/server/Chunk.java | 134 +++
|
||||
.../java/net/minecraft/server/ChunkMap.java | 15 +-
|
||||
.../minecraft/server/ChunkMapDistance.java | 387 +++++++-
|
||||
.../minecraft/server/ChunkMapDistance.java | 387 ++++++++-
|
||||
.../minecraft/server/ChunkProviderServer.java | 186 +++-
|
||||
.../minecraft/server/ChunkRegionLoader.java | 12 +-
|
||||
.../net/minecraft/server/ChunkStatus.java | 5 +-
|
||||
.../net/minecraft/server/DedicatedServer.java | 3 +-
|
||||
.../minecraft/server/DoubleListOffset.java | 2 +-
|
||||
src/main/java/net/minecraft/server/EULA.java | 2 +-
|
||||
.../java/net/minecraft/server/Entity.java | 53 ++
|
||||
.../java/net/minecraft/server/Entity.java | 100 +++
|
||||
.../minecraft/server/EntityEnderDragon.java | 4 +-
|
||||
.../minecraft/server/EntityInsentient.java | 19 +-
|
||||
.../net/minecraft/server/EntityPlayer.java | 41 +-
|
||||
@@ -74,18 +74,18 @@ Subject: [PATCH] Tuinity Server Patches
|
||||
.../minecraft/server/PathfinderNormal.java | 4 +-
|
||||
.../server/PathfinderTargetCondition.java | 1 +
|
||||
.../net/minecraft/server/PlayerChunk.java | 112 ++-
|
||||
.../net/minecraft/server/PlayerChunkMap.java | 870 +++++++++++++++---
|
||||
.../net/minecraft/server/PlayerChunkMap.java | 791 +++++++++++++++---
|
||||
.../server/PlayerInteractManager.java | 45 +-
|
||||
.../net/minecraft/server/PlayerInventory.java | 6 +-
|
||||
.../java/net/minecraft/server/PlayerList.java | 6 +-
|
||||
.../java/net/minecraft/server/ProtoChunk.java | 16 +-
|
||||
.../java/net/minecraft/server/RegionFile.java | 420 ++++++++-
|
||||
.../java/net/minecraft/server/RegionFile.java | 420 +++++++++-
|
||||
.../minecraft/server/RegionFileBitSet.java | 26 +-
|
||||
.../net/minecraft/server/RegionFileCache.java | 45 +-
|
||||
.../server/RegionFileCompression.java | 7 +-
|
||||
.../server/StructureBoundingBox.java | 14 +-
|
||||
.../net/minecraft/server/ThreadedMailbox.java | 2 +-
|
||||
.../net/minecraft/server/TickListServer.java | 51 +
|
||||
.../net/minecraft/server/TickListServer.java | 51 ++
|
||||
.../java/net/minecraft/server/Ticket.java | 6 +-
|
||||
.../java/net/minecraft/server/TicketType.java | 1 +
|
||||
.../net/minecraft/server/VoxelShapeArray.java | 2 +-
|
||||
@@ -93,7 +93,7 @@ Subject: [PATCH] Tuinity Server Patches
|
||||
.../server/VoxelShapeMergerList.java | 2 +-
|
||||
.../net/minecraft/server/VoxelShapes.java | 2 +-
|
||||
src/main/java/net/minecraft/server/World.java | 23 +-
|
||||
.../net/minecraft/server/WorldServer.java | 478 +++++++++-
|
||||
.../net/minecraft/server/WorldServer.java | 471 ++++++++++-
|
||||
.../net/minecraft/server/WorldUpgrader.java | 2 +-
|
||||
.../org/bukkit/craftbukkit/CraftServer.java | 7 +-
|
||||
.../org/bukkit/craftbukkit/CraftWorld.java | 67 +-
|
||||
@@ -102,7 +102,7 @@ Subject: [PATCH] Tuinity Server Patches
|
||||
.../craftbukkit/entity/CraftPlayer.java | 37 +-
|
||||
.../java/org/spigotmc/ActivationRange.java | 41 +-
|
||||
src/main/java/org/spigotmc/AsyncCatcher.java | 2 +-
|
||||
98 files changed, 6858 insertions(+), 486 deletions(-)
|
||||
98 files changed, 6819 insertions(+), 486 deletions(-)
|
||||
create mode 100644 src/main/java/com/tuinity/tuinity/chunk/ChunkRegionManager.java
|
||||
create mode 100644 src/main/java/com/tuinity/tuinity/chunk/QueuedChangesMapLong2Int.java
|
||||
create mode 100644 src/main/java/com/tuinity/tuinity/chunk/QueuedChangesMapLong2Object.java
|
||||
@@ -186,7 +186,7 @@ index 132397b3f3..4e12f416f9 100644
|
||||
continue;
|
||||
}
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index c7cde1d0a0..e60af9ceba 100644
|
||||
index 7ca67a4aa5..e76d5fd8df 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -108,7 +108,7 @@ public class PaperWorldConfig {
|
||||
@@ -5320,17 +5320,64 @@ index cf00f35a5b..e54730f097 100644
|
||||
throwable = throwable1;
|
||||
throw throwable1;
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 8974c16bf9..23e91183ef 100644
|
||||
index 8974c16bf9..181f1742ac 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -208,6 +208,58 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -208,6 +208,105 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
+ // Tuinity start
|
||||
+ // ender dragon is special cased for its large range, player is special cased for spectator mode + npc plugins
|
||||
+ // non-final, let plugins set at their discretion
|
||||
+ protected boolean isLegacyTrackingEntity = this instanceof EntityEnderDragon || this instanceof EntityPlayer;
|
||||
+ boolean isLegacyTrackingEntity = this instanceof EntityEnderDragon || this instanceof EntityPlayer;
|
||||
+
|
||||
+ public final void setLegacyTrackingEntity(final boolean isLegacyTrackingEntity) {
|
||||
+ com.tuinity.tuinity.util.TickThread.softEnsureTickThread("Cannot update legacy tracking off of the main thread");
|
||||
+ if (this.isLegacyTrackingEntity == isLegacyTrackingEntity) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (this.world == null) {
|
||||
+ this.isLegacyTrackingEntity = isLegacyTrackingEntity;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ WorldServer world = (WorldServer)this.world;
|
||||
+ PlayerChunkMap chunkMap = world.getChunkProvider().playerChunkMap;
|
||||
+
|
||||
+ if (chunkMap.playerEntityTrackerTrackMap == null) {
|
||||
+ this.isLegacyTrackingEntity = isLegacyTrackingEntity;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (this.isLegacyTrackingEntity) {
|
||||
+ this.isLegacyTrackingEntity = false;
|
||||
+ chunkMap.activelyTrackedEntitiesLegacy.remove(this);
|
||||
+
|
||||
+ PlayerChunkMap.EntityTracker tracker = chunkMap.trackedEntities.get(this.getId());
|
||||
+ if (tracker != null) {
|
||||
+ for (EntityPlayer player : world.getPlayers()) {
|
||||
+ tracker.removeTrackingPlayer(player);
|
||||
+ tracker.updatePlayer(player);
|
||||
+ }
|
||||
+ }
|
||||
+ } else {
|
||||
+ this.isLegacyTrackingEntity = true;
|
||||
+ chunkMap.activelyTrackedEntitiesLegacy.add(this);
|
||||
+
|
||||
+ PlayerChunkMap.EntityTracker tracker = this.tracker;
|
||||
+ if (tracker != null) {
|
||||
+ com.tuinity.tuinity.util.map.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<EntityPlayer> inRange = chunkMap.playerEntityTrackerTrackMap.getObjectsInRange(com.tuinity.tuinity.util.Util.getCoordinateKey(this));
|
||||
+
|
||||
+ for (EntityPlayer player : world.getPlayers()) {
|
||||
+ tracker.clear(player);
|
||||
+ if (inRange != null && inRange.contains(player)) {
|
||||
+ tracker.updateTrackingPlayer(player);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // We queue changes to tracker here because when adding to a chunk we do not know if the entity is in a trackable state
|
||||
+ public final it.unimi.dsi.fastutil.ints.IntLinkedOpenHashSet trackQueue = new it.unimi.dsi.fastutil.ints.IntLinkedOpenHashSet(8);
|
||||
@@ -5382,7 +5429,7 @@ index 8974c16bf9..23e91183ef 100644
|
||||
public Entity(EntityTypes<?> entitytypes, World world) {
|
||||
this.id = Entity.entityCount.incrementAndGet();
|
||||
this.passengers = Lists.newArrayList();
|
||||
@@ -1371,6 +1423,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -1371,6 +1470,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
return MathHelper.c(f * f + f1 * f1 + f2 * f2);
|
||||
}
|
||||
|
||||
@@ -6871,7 +6918,7 @@ index b38bc67758..7297952386 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
index 57bea926a6..aa625ce2a4 100644
|
||||
index 57bea926a6..6ce0c8f25f 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
@@ -55,8 +55,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -6897,7 +6944,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
|
||||
// CraftBukkit start - recursion-safe executor for Chunk loadCallback() and unloadCallback()
|
||||
public final CallbackExecutor callbackExecutor = new CallbackExecutor();
|
||||
@@ -109,6 +110,93 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -109,6 +110,89 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
// Paper start - distance maps
|
||||
private final com.destroystokyo.paper.util.misc.PooledLinkedHashSets<EntityPlayer> pooledLinkedPlayerHashSets = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets<>();
|
||||
|
||||
@@ -6941,7 +6988,6 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ if (this.playerEntityTrackerTrackMap != null) {
|
||||
+ this.playerEntityTrackerTrackMap.update(player, chunkX, chunkZ, Math.min(this.entityTrackerTrackRange, effectiveViewDistance));
|
||||
+ this.playerEntityTrackerUntrackMap.update(player, chunkX, chunkZ, Math.min(this.entityTrackerUntrackRange, effectiveViewDistance));
|
||||
+ this.playerEntityTrackerLegacyMap.update(player, chunkX, chunkZ, this.entityTrackerLegacyMapRange);
|
||||
+ }
|
||||
+ // Tuinity end - use distance map to optimise entity tracker
|
||||
+ }
|
||||
@@ -6966,11 +7012,8 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ public final int entityTrackerTrackRange;
|
||||
+ public final int entityTrackerUntrackRange;
|
||||
+
|
||||
+ public final com.tuinity.tuinity.util.map.PlayerAreaMap playerEntityTrackerLegacyMap;
|
||||
+ public final int entityTrackerLegacyMapRange;
|
||||
+
|
||||
+ //public final com.tuinity.tuinity.util.EntityList activelyTrackedEntities; // TODO not yet
|
||||
+ public final com.tuinity.tuinity.util.EntityList activelyTrackedEntitiesLegacy;
|
||||
+ final com.tuinity.tuinity.util.EntityList activelyTrackedEntitiesLegacy;
|
||||
+
|
||||
+ public static boolean isLegacyTrackingEntity(Entity entity) {
|
||||
+ return entity.isLegacyTrackingEntity;
|
||||
@@ -6991,7 +7034,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
void addPlayerToDistanceMaps(EntityPlayer player) {
|
||||
this.updateMaps(player);
|
||||
|
||||
@@ -134,10 +222,91 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -134,10 +218,89 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
|
||||
// Paper end
|
||||
@@ -7027,7 +7070,6 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ if (this.playerEntityTrackerTrackMap != null) {
|
||||
+ this.playerEntityTrackerTrackMap.remove(player);
|
||||
+ this.playerEntityTrackerUntrackMap.remove(player);
|
||||
+ this.playerEntityTrackerLegacyMap.remove(player);
|
||||
+ }
|
||||
+ // Tuinity end - use distance map to optimise entity tracker
|
||||
+
|
||||
@@ -7067,7 +7109,6 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ if (this.playerEntityTrackerTrackMap != null) {
|
||||
+ this.playerEntityTrackerTrackMap.update(player, chunkX, chunkZ, Math.min(this.entityTrackerTrackRange, effectiveViewDistance));
|
||||
+ this.playerEntityTrackerUntrackMap.update(player, chunkX, chunkZ, Math.min(this.entityTrackerUntrackRange, effectiveViewDistance));
|
||||
+ this.playerEntityTrackerLegacyMap.update(player, chunkX, chunkZ, this.entityTrackerLegacyMapRange);
|
||||
+ }
|
||||
+ // Tuinity end - use distance map to optimise entity tracker
|
||||
+
|
||||
@@ -7084,7 +7125,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
this.pendingUnload = new Long2ObjectLinkedOpenHashMap();
|
||||
this.loadedChunks = new LongOpenHashSet();
|
||||
this.unloadQueue = new LongOpenHashSet();
|
||||
@@ -166,7 +335,188 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -166,7 +329,157 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
this.l = supplier;
|
||||
this.m = new VillagePlace(new File(this.w, "poi"), datafixer, this.world); // Paper
|
||||
this.setViewDistance(i);
|
||||
@@ -7171,11 +7212,8 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ if (!this.world.tuinityConfig.useOptimizedTracker) {
|
||||
+ this.playerEntityTrackerTrackMap = null;
|
||||
+ this.playerEntityTrackerUntrackMap = null;
|
||||
+ this.playerEntityTrackerLegacyMap = null;
|
||||
+ this.entityTrackerTrackRange = -1;
|
||||
+ this.entityTrackerUntrackRange = -1;
|
||||
+ this.entityTrackerLegacyMapRange = -1;
|
||||
+
|
||||
+ this.activelyTrackedEntitiesLegacy = null;
|
||||
+ } else {
|
||||
+ this.activelyTrackedEntitiesLegacy = new com.tuinity.tuinity.util.EntityList();
|
||||
@@ -7238,34 +7276,6 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ entity.clearTrackingQueues(player);
|
||||
+ }
|
||||
+ });
|
||||
+
|
||||
+ // legacy tracker
|
||||
+
|
||||
+ // TODO check on update
|
||||
+ int legacyTrackerRange = 10 * 16; // Ender dragon range
|
||||
+ if (legacyTrackerRange < this.world.spigotConfig.playerTrackingRange) {
|
||||
+ legacyTrackerRange = this.world.spigotConfig.playerTrackingRange;
|
||||
+ }
|
||||
+
|
||||
+ int legacyTrackerChunkRange = legacyTrackerRange >>> 4 + ((legacyTrackerRange & 15) != 0 ? 1 : 0);
|
||||
+ this.entityTrackerLegacyMapRange = legacyTrackerChunkRange;
|
||||
+ this.playerEntityTrackerLegacyMap = new com.tuinity.tuinity.util.map.PlayerAreaMap(sets,
|
||||
+ (EntityPlayer player, int rangeX, int rangeZ, int currPosX, int currPosZ, int prevPosX, int prevPosZ,
|
||||
+ com.tuinity.tuinity.util.map.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<EntityPlayer> newState) -> {
|
||||
+ Chunk chunk = PlayerChunkMap.this.world.getChunkProvider().getChunkAtIfLoadedMainThreadNoCache(rangeX, rangeZ);
|
||||
+ if (chunk == null || newState.size() != 1) {
|
||||
+ return;
|
||||
+ }
|
||||
+ Entity[] entities = chunk.entities.getRawData();
|
||||
+ for (int index = 0, len = chunk.entities.size(); index < len; ++index) {
|
||||
+ Entity entity = entities[index];
|
||||
+ if (!PlayerChunkMap.isLegacyTrackingEntity(entity)) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ PlayerChunkMap.this.activelyTrackedEntitiesLegacy.add(entity); // tracker tick propagates entity
|
||||
+ }
|
||||
+ },
|
||||
+ null); // tracker tick handles entities moving out of range
|
||||
+ }
|
||||
+ // Tuinity end - use distance map to optimise entity tracker
|
||||
+ // Tuinity start - optimise getPlayersInRange type functions
|
||||
@@ -7274,7 +7284,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
}
|
||||
|
||||
public void updatePlayerMobTypeMap(Entity entity) {
|
||||
@@ -177,15 +527,30 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -177,15 +490,30 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
int chunkZ = (int)Math.floor(entity.locZ()) >> 4;
|
||||
int index = entity.getEntityType().getEnumCreatureType().ordinal();
|
||||
|
||||
@@ -7306,7 +7316,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
private static double a(ChunkCoordIntPair chunkcoordintpair, Entity entity) {
|
||||
double d0 = (double) (chunkcoordintpair.x * 16 + 8);
|
||||
double d1 = (double) (chunkcoordintpair.z * 16 + 8);
|
||||
@@ -213,8 +578,13 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -213,8 +541,13 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
|
||||
private static int a(ChunkCoordIntPair chunkcoordintpair, int i, int j) {
|
||||
@@ -7322,7 +7332,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
|
||||
return Math.max(Math.abs(k), Math.abs(l));
|
||||
}
|
||||
@@ -225,12 +595,17 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -225,12 +558,17 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
@Nullable
|
||||
protected PlayerChunk getUpdatingChunk(long i) {
|
||||
@@ -7342,7 +7352,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
}
|
||||
|
||||
protected IntSupplier c(long i) {
|
||||
@@ -308,6 +683,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -308,6 +646,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
@Nullable
|
||||
private PlayerChunk a(long i, int j, @Nullable PlayerChunk playerchunk, int k) {
|
||||
@@ -7350,7 +7360,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
if (k > PlayerChunkMap.GOLDEN_TICKET && j > PlayerChunkMap.GOLDEN_TICKET) {
|
||||
return playerchunk;
|
||||
} else {
|
||||
@@ -327,11 +703,12 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -327,11 +666,12 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
playerchunk = (PlayerChunk) this.pendingUnload.remove(i);
|
||||
if (playerchunk != null) {
|
||||
playerchunk.a(j);
|
||||
@@ -7364,7 +7374,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
this.updatingChunksModified = true;
|
||||
}
|
||||
|
||||
@@ -411,7 +788,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -411,7 +751,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
protected void save(boolean flag) {
|
||||
if (flag) {
|
||||
@@ -7373,7 +7383,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
MutableBoolean mutableboolean = new MutableBoolean();
|
||||
|
||||
do {
|
||||
@@ -439,7 +816,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -439,7 +779,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
// this.i(); // Paper - nuke IOWorker
|
||||
PlayerChunkMap.LOGGER.info("ThreadedAnvilChunkStorage ({}): All chunks are saved", this.w.getName());
|
||||
} else {
|
||||
@@ -7382,7 +7392,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
IChunkAccess ichunkaccess = (IChunkAccess) playerchunk.getChunkSave().getNow(null); // CraftBukkit - decompile error
|
||||
|
||||
if (ichunkaccess instanceof ProtoChunkExtension || ichunkaccess instanceof Chunk) {
|
||||
@@ -482,7 +859,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -482,7 +822,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
while (longiterator.hasNext()) { // Spigot
|
||||
long j = longiterator.nextLong();
|
||||
longiterator.remove(); // Spigot
|
||||
@@ -7391,7 +7401,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
|
||||
if (playerchunk != null) {
|
||||
this.pendingUnload.put(j, playerchunk);
|
||||
@@ -610,7 +987,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -610,7 +950,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
if (!this.updatingChunksModified) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -7400,7 +7410,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
this.updatingChunksModified = false;
|
||||
return true;
|
||||
}
|
||||
@@ -903,11 +1280,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -903,11 +1243,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
completablefuture1.thenAcceptAsync((either) -> {
|
||||
either.mapLeft((chunk) -> {
|
||||
this.u.getAndIncrement();
|
||||
@@ -7413,7 +7423,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
return Either.left(chunk);
|
||||
});
|
||||
}, (runnable) -> {
|
||||
@@ -1011,58 +1384,70 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1011,58 +1347,70 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
} // Paper
|
||||
}
|
||||
|
||||
@@ -7505,7 +7515,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
}
|
||||
|
||||
protected PlayerChunkMap.a e() {
|
||||
@@ -1070,12 +1455,12 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1070,12 +1418,12 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
|
||||
protected Iterable<PlayerChunk> f() {
|
||||
@@ -7520,7 +7530,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
|
||||
while (objectbidirectionaliterator.hasNext()) {
|
||||
Entry<PlayerChunk> entry = (Entry) objectbidirectionaliterator.next();
|
||||
@@ -1265,31 +1650,53 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1265,31 +1613,53 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
return isOutsideOfRange(chunkcoordintpair, false);
|
||||
}
|
||||
|
||||
@@ -7594,7 +7604,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
private boolean b(EntityPlayer entityplayer) {
|
||||
return entityplayer.isSpectator() && !this.world.getGameRules().getBoolean(GameRules.SPECTATORS_GENERATE_CHUNKS);
|
||||
}
|
||||
@@ -1315,13 +1722,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1315,13 +1685,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7612,7 +7622,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
|
||||
}
|
||||
|
||||
@@ -1329,11 +1734,12 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1329,11 +1697,12 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
SectionPosition sectionposition = SectionPosition.a((Entity) entityplayer);
|
||||
|
||||
entityplayer.a(sectionposition);
|
||||
@@ -7626,7 +7636,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
ObjectIterator objectiterator = this.trackedEntities.values().iterator();
|
||||
|
||||
while (objectiterator.hasNext()) {
|
||||
@@ -1345,6 +1751,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1345,6 +1714,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
playerchunkmap_entitytracker.updatePlayer(entityplayer);
|
||||
}
|
||||
}
|
||||
@@ -7634,7 +7644,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
|
||||
int i = MathHelper.floor(entityplayer.locX()) >> 4;
|
||||
int j = MathHelper.floor(entityplayer.locZ()) >> 4;
|
||||
@@ -1384,56 +1791,53 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1384,56 +1754,53 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
int k1;
|
||||
int l1;
|
||||
|
||||
@@ -7646,12 +7656,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ this.updateMaps(entityplayer); // Paper - distance maps
|
||||
+ this.updateDistanceMapsTuinity(entityplayer); // Tuinity - distance maps
|
||||
+ }
|
||||
|
||||
- for (int k2 = k1; k2 <= i2; ++k2) {
|
||||
- for (int l2 = l1; l2 <= j2; ++l2) {
|
||||
- ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(k2, l2);
|
||||
- boolean flag3 = a(chunkcoordintpair, i1, j1) <= this.viewDistance;
|
||||
- boolean flag4 = a(chunkcoordintpair, i, j) <= this.viewDistance;
|
||||
+
|
||||
+ @Override
|
||||
+ public Stream<EntityPlayer> a(ChunkCoordIntPair chunkcoordintpair, boolean flag) {
|
||||
+ // Tuinity start - per player view distance
|
||||
@@ -7675,7 +7680,12 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ EntityPlayer player = (EntityPlayer)temp;
|
||||
+ int viewDistance = this.playerViewDistanceBroadcastMap.getLastViewDistance(player);
|
||||
+ long lastPosition = this.playerViewDistanceBroadcastMap.getLastCoordinate(player);
|
||||
+
|
||||
|
||||
- for (int k2 = k1; k2 <= i2; ++k2) {
|
||||
- for (int l2 = l1; l2 <= j2; ++l2) {
|
||||
- ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(k2, l2);
|
||||
- boolean flag3 = a(chunkcoordintpair, i1, j1) <= this.viewDistance;
|
||||
- boolean flag4 = a(chunkcoordintpair, i, j) <= this.viewDistance;
|
||||
+ int distX = Math.abs(com.tuinity.tuinity.util.Util.getCoordinateX(lastPosition) - chunkcoordintpair.x);
|
||||
+ int distZ = Math.abs(com.tuinity.tuinity.util.Util.getCoordinateZ(lastPosition) - chunkcoordintpair.z);
|
||||
|
||||
@@ -7729,7 +7739,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
}
|
||||
|
||||
protected void addEntity(Entity entity) {
|
||||
@@ -1452,11 +1856,38 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1452,11 +1819,36 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker
|
||||
this.trackedEntities.put(entity.getId(), playerchunkmap_entitytracker);
|
||||
@@ -7738,10 +7748,8 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ // Tuinity start - implement optimized tracker
|
||||
+ } else {
|
||||
+ if (PlayerChunkMap.isLegacyTrackingEntity(entity)) {
|
||||
+ if (this.playerEntityTrackerLegacyMap.getObjectsInRange(com.tuinity.tuinity.util.Util.getCoordinateKey(entity)) != null) {
|
||||
+ this.activelyTrackedEntitiesLegacy.add(entity);
|
||||
+ // tracker tick will propagate updates
|
||||
+ }
|
||||
+ this.activelyTrackedEntitiesLegacy.add(entity);
|
||||
+ // tracker tick will propagate updates
|
||||
+ } else {
|
||||
+ int chunkX = com.tuinity.tuinity.util.Util.getChunkCoordinate(entity.locX());
|
||||
+ int chunkZ = com.tuinity.tuinity.util.Util.getChunkCoordinate(entity.locZ());
|
||||
@@ -7768,7 +7776,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
ObjectIterator objectiterator = this.trackedEntities.values().iterator();
|
||||
|
||||
while (objectiterator.hasNext()) {
|
||||
@@ -1466,6 +1897,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1466,6 +1858,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
playerchunkmap_entitytracker1.updatePlayer(entityplayer);
|
||||
}
|
||||
}
|
||||
@@ -7776,7 +7784,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1494,9 +1926,112 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1494,9 +1887,102 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
playerchunkmap_entitytracker1.a();
|
||||
}
|
||||
entity.tracker = null; // Paper - We're no longer tracked
|
||||
@@ -7855,7 +7863,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ Entity entity = legacyEntities[i];
|
||||
+ EntityTracker tracker = this.trackedEntities.get(entity.getId());
|
||||
+ if (tracker == null) {
|
||||
+ MinecraftServer.LOGGER.error("Entity has no tracker!" + entity);
|
||||
+ MinecraftServer.LOGGER.error("Legacy tracking entity has no tracker! No longer tracking entity " + entity);
|
||||
+ this.activelyTrackedEntitiesLegacy.remove(entity);
|
||||
+ --i;
|
||||
+ --size;
|
||||
@@ -7863,18 +7871,8 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
+ }
|
||||
+
|
||||
+ EntityTrackerEntry entry = tracker.trackerEntry;
|
||||
+ com.tuinity.tuinity.util.map.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<EntityPlayer> players = this.playerEntityTrackerLegacyMap.getObjectsInRange(com.tuinity.tuinity.util.Util.getCoordinateKey(entity));
|
||||
+ if (players != null) {
|
||||
+ tracker.updateTrackingPlayers(this, players);
|
||||
+ } else {
|
||||
+ // nothing is tracking it now, remove it
|
||||
+ tracker.clearAll();
|
||||
+ this.activelyTrackedEntitiesLegacy.remove(entity);
|
||||
+ --i;
|
||||
+ --size;
|
||||
+ continue;
|
||||
+ }
|
||||
+ entry.tick();
|
||||
+ tracker.track(this.world.getPlayers());
|
||||
+ entry.tick(); // always tick the entry, even if no player is tracking
|
||||
+ }
|
||||
+ }
|
||||
+ // Tuinity end - optimized tracker
|
||||
@@ -7889,7 +7887,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
List<EntityPlayer> list = Lists.newArrayList();
|
||||
List<EntityPlayer> list1 = this.world.getPlayers();
|
||||
|
||||
@@ -1554,6 +2089,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1554,6 +2040,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
}
|
||||
|
||||
@@ -7897,7 +7895,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
private void a(EntityPlayer entityplayer, Packet<?>[] apacket, Chunk chunk) {
|
||||
if (apacket[0] == null) {
|
||||
apacket[0] = new PacketPlayOutMapChunk(chunk, 65535, true); // Paper - Anti-Xray
|
||||
@@ -1564,6 +2100,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1564,6 +2051,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
PacketDebug.a(this.world, chunk.getPos());
|
||||
List<Entity> list = Lists.newArrayList();
|
||||
List<Entity> list1 = Lists.newArrayList();
|
||||
@@ -7905,7 +7903,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
ObjectIterator objectiterator = this.trackedEntities.values().iterator();
|
||||
|
||||
while (objectiterator.hasNext()) {
|
||||
@@ -1581,6 +2118,32 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1581,6 +2069,32 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7938,7 +7936,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
|
||||
Iterator iterator;
|
||||
Entity entity1;
|
||||
@@ -1618,7 +2181,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1618,7 +2132,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
public class EntityTracker {
|
||||
|
||||
@@ -7947,44 +7945,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
private final Entity tracker;
|
||||
private final int trackingDistance;
|
||||
private SectionPosition e;
|
||||
@@ -1635,6 +2198,36 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
this.e = SectionPosition.a(entity);
|
||||
}
|
||||
|
||||
+ // Tuinity start - optimise entity tracker tracking
|
||||
+ public void clearAll() {
|
||||
+ for (EntityPlayer player : this.trackedPlayers) {
|
||||
+ this.trackerEntry.onUntrack(player);
|
||||
+ }
|
||||
+ this.trackedPlayers.clear();
|
||||
+ }
|
||||
+
|
||||
+ void updateTrackingPlayers(PlayerChunkMap chunkMap, com.tuinity.tuinity.util.map.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<EntityPlayer> fromPlayers) {
|
||||
+ EntityTrackerEntry entry = this.trackerEntry;
|
||||
+ for (Iterator<EntityPlayer> iterator = this.trackedPlayers.iterator(); iterator.hasNext();) {
|
||||
+ EntityPlayer tracker = iterator.next();
|
||||
+ if (!fromPlayers.contains(tracker)) {
|
||||
+ // definitely out of range
|
||||
+ iterator.remove();
|
||||
+ entry.onUntrack(tracker);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ Object[] backingArray = fromPlayers.getBackingSet();
|
||||
+ for (int i = 0, len = backingArray.length; i < len; ++i) {
|
||||
+ if (backingArray[i] == null) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ EntityPlayer player = (EntityPlayer)backingArray[i];
|
||||
+ this.updatePlayer(player);
|
||||
+ }
|
||||
+ }
|
||||
+ // Tuinity end - optimise entity tracker tracking
|
||||
+
|
||||
public boolean equals(Object object) {
|
||||
return object instanceof PlayerChunkMap.EntityTracker ? ((PlayerChunkMap.EntityTracker) object).tracker.getId() == this.tracker.getId() : false;
|
||||
}
|
||||
@@ -1684,10 +2277,13 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1684,10 +2198,13 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
public void updatePlayer(EntityPlayer entityplayer) {
|
||||
org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot
|
||||
if (entityplayer != this.tracker) {
|
||||
@@ -8002,7 +7963,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
if (flag) {
|
||||
boolean flag1 = this.tracker.attachedToPlayer;
|
||||
|
||||
@@ -1696,7 +2292,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1696,7 +2213,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
PlayerChunk playerchunk = PlayerChunkMap.this.getVisibleChunk(chunkcoordintpair.pair());
|
||||
|
||||
if (playerchunk != null && playerchunk.getChunk() != null) {
|
||||
@@ -8011,7 +7972,7 @@ index 57bea926a6..aa625ce2a4 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1738,6 +2334,44 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1738,6 +2255,44 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
return i;
|
||||
}
|
||||
|
||||
@@ -9291,7 +9252,7 @@ index 5117dafbcf..5f69a018d9 100644
|
||||
if (chunk != null) {
|
||||
chunk.a(oclass, axisalignedbb, list, predicate);
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index c74b85917a..214b555e73 100644
|
||||
index c74b85917a..83ccabe710 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -55,7 +55,7 @@ public class WorldServer extends World {
|
||||
@@ -9299,7 +9260,7 @@ index c74b85917a..214b555e73 100644
|
||||
private static final Logger LOGGER = LogManager.getLogger();
|
||||
private final List<Entity> globalEntityList = Lists.newArrayList();
|
||||
- public final Int2ObjectMap<Entity> entitiesById = new Int2ObjectLinkedOpenHashMap();
|
||||
+ public final Int2ObjectLinkedOpenHashMap<Entity> entitiesById = new Int2ObjectLinkedOpenHashMap(); // Tuinity - change type for fast iterator
|
||||
+ public final Int2ObjectMap<Entity> entitiesById = new Int2ObjectLinkedOpenHashMap(); // Tuinity - diff on change, we expect Int2ObjectLinkedOpenHashMap
|
||||
private final Map<UUID, Entity> entitiesByUUID = Maps.newHashMap();
|
||||
private final Queue<Entity> entitiesToAdd = Queues.newArrayDeque();
|
||||
public final List<EntityPlayer> players = Lists.newArrayList(); // Paper - private -> public
|
||||
@@ -9736,7 +9697,7 @@ index c74b85917a..214b555e73 100644
|
||||
if (entity.inChunk && this.isChunkLoaded(entity.chunkX, entity.chunkZ)) {
|
||||
this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.chunkY);
|
||||
}
|
||||
@@ -827,6 +1199,90 @@ public class WorldServer extends World {
|
||||
@@ -827,6 +1199,83 @@ public class WorldServer extends World {
|
||||
} else {
|
||||
this.getChunkAt(i, k).a(entity);
|
||||
}
|
||||
@@ -9746,14 +9707,7 @@ index c74b85917a..214b555e73 100644
|
||||
+ if (entity.valid && (prevChunkX != newChunkX || prevChunkZ != newChunkZ)) {
|
||||
+ PlayerChunkMap chunkMap = this.getChunkProvider().playerChunkMap;
|
||||
+ if (chunkMap.playerEntityTrackerTrackMap != null) {
|
||||
+ if (PlayerChunkMap.isLegacyTrackingEntity(entity)) {
|
||||
+ if (chunkMap.playerEntityTrackerLegacyMap != null) {
|
||||
+ if (chunkMap.playerEntityTrackerLegacyMap.getObjectsInRange(newChunkX, newChunkZ) != null) {
|
||||
+ chunkMap.activelyTrackedEntitiesLegacy.add(entity); // ensure tracked
|
||||
+ // untracking is handled in tracker tick
|
||||
+ }
|
||||
+ }
|
||||
+ } else {
|
||||
+ if (!PlayerChunkMap.isLegacyTrackingEntity(entity)) {
|
||||
+ // handle tracking
|
||||
+ com.tuinity.tuinity.util.map.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<EntityPlayer> oldRange =
|
||||
+ chunkMap.playerEntityTrackerTrackMap.getObjectsInRange(prevChunkX, prevChunkZ);
|
||||
@@ -9827,7 +9781,7 @@ index c74b85917a..214b555e73 100644
|
||||
}
|
||||
|
||||
this.getMethodProfiler().exit();
|
||||
@@ -1178,6 +1634,7 @@ public class WorldServer extends World {
|
||||
@@ -1178,6 +1627,7 @@ public class WorldServer extends World {
|
||||
|
||||
this.registerEntity(entityplayer);
|
||||
this.getChunkProvider().playerChunkMap.addPlayerToDistanceMaps(entityplayer); // Paper - distance maps
|
||||
@@ -9835,7 +9789,7 @@ index c74b85917a..214b555e73 100644
|
||||
}
|
||||
|
||||
// CraftBukkit start
|
||||
@@ -1360,6 +1817,7 @@ public class WorldServer extends World {
|
||||
@@ -1360,6 +1810,7 @@ public class WorldServer extends World {
|
||||
|
||||
this.players.remove(entityplayer);
|
||||
this.getChunkProvider().playerChunkMap.removePlayerFromDistanceMaps(entityplayer); // Paper - distance maps
|
||||
@@ -9843,7 +9797,7 @@ index c74b85917a..214b555e73 100644
|
||||
}
|
||||
|
||||
this.getScoreboard().a(entity);
|
||||
@@ -1372,6 +1830,7 @@ public class WorldServer extends World {
|
||||
@@ -1372,6 +1823,7 @@ public class WorldServer extends World {
|
||||
if (entity instanceof EntityInsentient) {
|
||||
this.navigators.remove(((EntityInsentient) entity).getNavigation());
|
||||
}
|
||||
@@ -9851,7 +9805,7 @@ index c74b85917a..214b555e73 100644
|
||||
new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
|
||||
entity.valid = false; // CraftBukkit
|
||||
}
|
||||
@@ -1428,6 +1887,11 @@ public class WorldServer extends World {
|
||||
@@ -1428,6 +1880,11 @@ public class WorldServer extends World {
|
||||
}
|
||||
// Paper end
|
||||
entity.shouldBeRemoved = false; // Paper - shouldn't be removed after being re-added
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From ae0dd156cdf32c8f2221f31c81d8c5afa9389050 Mon Sep 17 00:00:00 2001
|
||||
From c485c84bef3d7371965e13ba58101a79149016c3 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Thu, 6 Feb 2020 19:53:59 -0600
|
||||
Subject: [PATCH] Ridables
|
||||
@@ -143,7 +143,7 @@ index a5c4cbb67f..efe6afde9b 100644
|
||||
|
||||
public ControllerMove(EntityInsentient entityinsentient) {
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 23e91183ef..d87bfc98e7 100644
|
||||
index 181f1742ac..8343be49d1 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -78,7 +78,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -182,7 +182,7 @@ index 23e91183ef..d87bfc98e7 100644
|
||||
private float headHeight;
|
||||
// CraftBukkit start
|
||||
public boolean persist = true;
|
||||
@@ -1337,6 +1337,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -1384,6 +1384,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
return this.inLava;
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ index 23e91183ef..d87bfc98e7 100644
|
||||
public void a(float f, Vec3D vec3d) {
|
||||
Vec3D vec3d1 = a(vec3d, f, this.yaw);
|
||||
|
||||
@@ -2165,7 +2166,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -2212,7 +2213,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
} else {
|
||||
this.passengers.add(entity);
|
||||
}
|
||||
@@ -205,7 +205,7 @@ index 23e91183ef..d87bfc98e7 100644
|
||||
}
|
||||
return true; // CraftBukkit
|
||||
}
|
||||
@@ -2200,6 +2207,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -2247,6 +2254,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
return false;
|
||||
}
|
||||
// Spigot end
|
||||
@@ -218,7 +218,7 @@ index 23e91183ef..d87bfc98e7 100644
|
||||
this.passengers.remove(entity);
|
||||
entity.j = 60;
|
||||
}
|
||||
@@ -2586,6 +2599,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -2633,6 +2646,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
|
||||
public void setHeadRotation(float f) {}
|
||||
|
||||
@@ -226,7 +226,7 @@ index 23e91183ef..d87bfc98e7 100644
|
||||
public void l(float f) {}
|
||||
|
||||
public boolean bA() {
|
||||
@@ -3431,4 +3445,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -3478,4 +3492,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
|
||||
void accept(Entity entity, double d0, double d1, double d2);
|
||||
}
|
||||
@@ -4760,7 +4760,7 @@ index eec1e26b6e..47f0b2df6c 100644
|
||||
|
||||
private final EntityWolf j;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
index 8635d4f40c..e9e2be88e3 100644
|
||||
index 07ebc1d816..8d1f04415e 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
@@ -44,11 +44,30 @@ public class EntityZombie extends EntityMonster {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 88b381b673aaea1833e1ee600fe714d168aff42d Mon Sep 17 00:00:00 2001
|
||||
From 3c70f3542a9f6762f720e1a1013b548d810b9fc2 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Sat, 4 May 2019 01:10:30 -0500
|
||||
Subject: [PATCH] Cows eat mushrooms
|
||||
@@ -11,10 +11,10 @@ Subject: [PATCH] Cows eat mushrooms
|
||||
4 files changed, 77 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index d87bfc98e..3d03e199c 100644
|
||||
index 8343be49d1..78e0c6a396 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -1089,6 +1089,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -1136,6 +1136,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ index d87bfc98e..3d03e199c 100644
|
||||
public void a(SoundEffect soundeffect, float f, float f1) {
|
||||
if (!this.isSilent()) {
|
||||
this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), soundeffect, this.getSoundCategory(), f, f1);
|
||||
@@ -2626,6 +2627,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -2673,6 +2674,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
this.invulnerable = flag;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ index d87bfc98e..3d03e199c 100644
|
||||
this.setPositionRotation(entity.locX(), entity.locY(), entity.locZ(), entity.yaw, entity.pitch);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
|
||||
index 723a9fa1e..f56fd7c01 100644
|
||||
index 723a9fa1ee..f56fd7c012 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityCow.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityCow.java
|
||||
@@ -34,6 +34,7 @@ public class EntityCow extends EntityAnimal {
|
||||
@@ -124,7 +124,7 @@ index 723a9fa1e..f56fd7c01 100644
|
||||
public EntityCow createChild(EntityAgeable entityageable) {
|
||||
return (EntityCow) EntityTypes.COW.a(this.world);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index 17ff8a9fc..6ca11091c 100644
|
||||
index 17ff8a9fc3..6ca11091c9 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -2812,8 +2812,9 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -140,7 +140,7 @@ index 17ff8a9fc..6ca11091c 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 9b60d17bd..661dcce49 100644
|
||||
index 9b60d17bdf..661dcce493 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -145,10 +145,12 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 170c795de8b12a2cbd865b3b82ac17c5e6757d2c Mon Sep 17 00:00:00 2001
|
||||
From da13d8898b59821d88c5959b9688877a86f86546 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Thu, 9 May 2019 18:26:06 -0500
|
||||
Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
|
||||
@@ -13,7 +13,7 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
|
||||
6 files changed, 228 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java
|
||||
index 816d301f1..0971f25b5 100644
|
||||
index 816d301f1c..0971f25b56 100644
|
||||
--- a/src/main/java/net/minecraft/server/DamageSource.java
|
||||
+++ b/src/main/java/net/minecraft/server/DamageSource.java
|
||||
@@ -81,6 +81,7 @@ public class DamageSource {
|
||||
@@ -25,10 +25,10 @@ index 816d301f1..0971f25b5 100644
|
||||
return (new EntityDamageSourceIndirect("indirectMagic", entity, entity1)).setIgnoreArmor().setMagic();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 3d03e199c..43d73385e 100644
|
||||
index 78e0c6a396..088380a2b0 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -1434,6 +1434,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -1481,6 +1481,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
return d3 * d3 + d4 * d4 + d5 * d5;
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ index 3d03e199c..43d73385e 100644
|
||||
public double h(Entity entity) {
|
||||
return this.c(entity.getPositionVector());
|
||||
}
|
||||
@@ -1957,14 +1958,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -2004,14 +2005,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
return this.a(new ItemStack(imaterial), (float) i);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ index 3d03e199c..43d73385e 100644
|
||||
return null;
|
||||
} else if (this.world.isClientSide) {
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityEnderCrystal.java b/src/main/java/net/minecraft/server/EntityEnderCrystal.java
|
||||
index a57d0089d..02952c3af 100644
|
||||
index a57d0089d8..02952c3af8 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityEnderCrystal.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityEnderCrystal.java
|
||||
@@ -13,6 +13,12 @@ public class EntityEnderCrystal extends Entity {
|
||||
@@ -123,7 +123,7 @@ index a57d0089d..02952c3af 100644
|
||||
@Override
|
||||
protected void b(NBTTagCompound nbttagcompound) {
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
|
||||
index 6d2984c8d..3b9cd169b 100644
|
||||
index 6d2984c8d5..3b9cd169bd 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
|
||||
@@ -8,9 +8,10 @@ import javax.annotation.Nullable;
|
||||
@@ -352,7 +352,7 @@ index 6d2984c8d..3b9cd169b 100644
|
||||
|
||||
return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false;
|
||||
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
index c522a7c2a..9622615b5 100644
|
||||
index c522a7c2a7..9622615b50 100644
|
||||
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
@@ -34,6 +34,7 @@ public interface IEntityAccess {
|
||||
@@ -364,7 +364,7 @@ index c522a7c2a..9622615b5 100644
|
||||
return this.a(oclass, axisalignedbb, IEntitySelector.f);
|
||||
}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 5bb1b90b3..076e747c5 100644
|
||||
index 5bb1b90b31..076e747c5b 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -392,6 +392,9 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 930e24e2321f18937f9b6fe97d2bfec91a26bc96 Mon Sep 17 00:00:00 2001
|
||||
From 9ed0c92f2ae19c2986670fac21c59dbee8e72d57 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Sat, 29 Jun 2019 02:32:40 -0500
|
||||
Subject: [PATCH] Controllable Minecarts
|
||||
@@ -11,10 +11,10 @@ Subject: [PATCH] Controllable Minecarts
|
||||
4 files changed, 76 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 43d73385e..4333ca032 100644
|
||||
index 088380a2b0..ca6ff6380f 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -1334,6 +1334,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -1381,6 +1381,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
this.inLava = true;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ index 43d73385e..4333ca032 100644
|
||||
return this.inLava;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
||||
index 665bbe07f..1f3e5bd28 100644
|
||||
index 665bbe07fa..1f3e5bd288 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
||||
@@ -357,12 +357,50 @@ public abstract class EntityMinecartAbstract extends Entity {
|
||||
@@ -78,7 +78,7 @@ index 665bbe07f..1f3e5bd28 100644
|
||||
this.setMot(new Vec3D(this.getMot().x * this.derailedX, this.getMot().y * this.derailedY, this.getMot().z * this.derailedZ));
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/server/ItemMinecart.java b/src/main/java/net/minecraft/server/ItemMinecart.java
|
||||
index b73e317fb..e1337a9c0 100644
|
||||
index b73e317fbb..e1337a9c04 100644
|
||||
--- a/src/main/java/net/minecraft/server/ItemMinecart.java
|
||||
+++ b/src/main/java/net/minecraft/server/ItemMinecart.java
|
||||
@@ -103,8 +103,10 @@ public class ItemMinecart extends Item {
|
||||
@@ -103,7 +103,7 @@ index b73e317fb..e1337a9c0 100644
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 85eaf1a7a..dfa631803 100644
|
||||
index 85eaf1a7aa..dfa6318039 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -1,10 +1,16 @@
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From e3cc214fd4a87ff6ad0d69f3e6a34ac6bcdec07b Mon Sep 17 00:00:00 2001
|
||||
From 07539f4ce3643cee95496fedb20ed575f77402f3 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sat, 11 Jan 2020 23:12:52 -0600
|
||||
Subject: [PATCH] Add EntityPortalReadyEvent
|
||||
@@ -11,7 +11,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent
|
||||
4 files changed, 17 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockPortal.java b/src/main/java/net/minecraft/server/BlockPortal.java
|
||||
index 09c7c1318..6880cdd7f 100644
|
||||
index 09c7c13183..6880cdd7f9 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockPortal.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockPortal.java
|
||||
@@ -54,6 +54,7 @@ public class BlockPortal extends Block {
|
||||
@@ -86,7 +86,7 @@ index 09c7c1318..6880cdd7f 100644
|
||||
break;
|
||||
// CraftBukkit start - add the block to our list
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 4333ca032..0c0af2dd3 100644
|
||||
index ca6ff6380f..3c640ec8b3 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -168,9 +168,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -102,7 +102,7 @@ index 4333ca032..0c0af2dd3 100644
|
||||
private boolean invulnerable;
|
||||
protected UUID uniqueID;
|
||||
protected String am;
|
||||
@@ -2267,6 +2267,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -2314,6 +2314,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
this.world.getMethodProfiler().enter("portal");
|
||||
this.ag = i;
|
||||
this.portalCooldown = this.ba();
|
||||
@@ -111,7 +111,7 @@ index 4333ca032..0c0af2dd3 100644
|
||||
if (this instanceof EntityPlayer) {
|
||||
((EntityPlayer) this).a(this.world.worldProvider.getDimensionManager().getType() == DimensionManager.NETHER ? DimensionManager.OVERWORLD : DimensionManager.NETHER, PlayerTeleportEvent.TeleportCause.NETHER_PORTAL);
|
||||
diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java
|
||||
index f84dd6d9b..f50e9670b 100644
|
||||
index f84dd6d9be..f50e9670bc 100644
|
||||
--- a/src/main/java/net/minecraft/server/PortalTravelAgent.java
|
||||
+++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java
|
||||
@@ -11,6 +11,7 @@ public class PortalTravelAgent {
|
||||
@@ -141,7 +141,7 @@ index f84dd6d9b..f50e9670b 100644
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 37b5a1193..2b4f2fbae 100644
|
||||
index 22a1c4ebfa..c4086ace1f 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -65,7 +65,7 @@ public class WorldServer extends World {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 0b1c3f64cab2b1d30e0413e92d74ab61fde82074 Mon Sep 17 00:00:00 2001
|
||||
From 1256a5fca2b7926b4d8feb3368906f0cf4bdd94d Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Sun, 21 Jul 2019 18:06:20 -0500
|
||||
Subject: [PATCH] Ladders should not bypass cramming gamerule
|
||||
@@ -17,10 +17,10 @@ Subject: [PATCH] Ladders should not bypass cramming gamerule
|
||||
10 files changed, 25 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 0c0af2dd3..147e30aa2 100644
|
||||
index 3c640ec8b3..945e2c0e47 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -1561,6 +1561,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -1608,6 +1608,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
}
|
||||
|
||||
public boolean isCollidable() {
|
||||
@@ -34,7 +34,7 @@ index 0c0af2dd3..147e30aa2 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
|
||||
index 8ad131e4f..dfe8c57ce 100644
|
||||
index 8ad131e4fc..dfe8c57cef 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityArmorStand.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
|
||||
@@ -318,7 +318,7 @@ public class EntityArmorStand extends EntityLiving {
|
||||
@@ -47,7 +47,7 @@ index 8ad131e4f..dfe8c57ce 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
|
||||
index dfc2ce972..440c21355 100644
|
||||
index dfc2ce9729..440c21355c 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityBat.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityBat.java
|
||||
@@ -85,7 +85,7 @@ public class EntityBat extends EntityAmbient {
|
||||
@@ -60,7 +60,7 @@ index dfc2ce972..440c21355 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java
|
||||
index fdf306e80..563fc8ced 100644
|
||||
index fdf306e80a..563fc8ced0 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityBoat.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityBoat.java
|
||||
@@ -98,7 +98,7 @@ public class EntityBoat extends Entity {
|
||||
@@ -73,7 +73,7 @@ index fdf306e80..563fc8ced 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
||||
index e7ba83f32..55e18e4c7 100644
|
||||
index e7ba83f32a..55e18e4c7a 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
|
||||
@@ -188,7 +188,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
|
||||
@@ -86,7 +86,7 @@ index e7ba83f32..55e18e4c7 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index d64e02628..cd4526039 100644
|
||||
index d64e026288..cd45260396 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -2673,7 +2673,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -112,7 +112,7 @@ index d64e02628..cd4526039 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
||||
index 1f3e5bd28..ae4758f25 100644
|
||||
index 1f3e5bd288..ae4758f251 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
|
||||
@@ -105,7 +105,7 @@ public abstract class EntityMinecartAbstract extends Entity {
|
||||
@@ -125,7 +125,7 @@ index 1f3e5bd28..ae4758f25 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
|
||||
index 7ba2f3a35..dd2cd7b21 100644
|
||||
index 7ba2f3a351..dd2cd7b219 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityParrot.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
|
||||
@@ -392,7 +392,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
|
||||
@@ -138,7 +138,7 @@ index 7ba2f3a35..dd2cd7b21 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java
|
||||
index 4665671ef..037f14e01 100644
|
||||
index 4665671ef6..037f14e010 100644
|
||||
--- a/src/main/java/net/minecraft/server/IEntitySelector.java
|
||||
+++ b/src/main/java/net/minecraft/server/IEntitySelector.java
|
||||
@@ -36,6 +36,12 @@ public final class IEntitySelector {
|
||||
@@ -155,7 +155,7 @@ index 4665671ef..037f14e01 100644
|
||||
ScoreboardTeamBase.EnumTeamPush scoreboardteambase_enumteampush = scoreboardteambase == null ? ScoreboardTeamBase.EnumTeamPush.ALWAYS : scoreboardteambase.getCollisionRule();
|
||||
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 814ff5935..9319c3b74 100644
|
||||
index 814ff59352..9319c3b74b 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -145,6 +145,7 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 09525d14594e288727a544da2e67dd9279261e96 Mon Sep 17 00:00:00 2001
|
||||
From 7842d3b75036b9fb2a925a65872e9eca80ec142b Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sat, 22 Feb 2020 15:54:08 -0600
|
||||
Subject: [PATCH] Add item entity options
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] Add item entity options
|
||||
3 files changed, 28 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 147e30aa2f..0d509e8410 100644
|
||||
index 945e2c0e47..ff42ee6eb6 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -1309,6 +1309,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -1356,6 +1356,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From aaac1acff680d1926eff0a74d6ec4c476c542a00 Mon Sep 17 00:00:00 2001
|
||||
From a3bbecb7563589578a72b322928e547f5a7d3743 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Thu, 27 Feb 2020 21:42:19 -0600
|
||||
Subject: [PATCH] Configurable void damage height
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] Configurable void damage height
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 0d509e8410..c85e794940 100644
|
||||
index ff42ee6eb6..a38a29e3d6 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -503,7 +503,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -550,7 +550,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
|
||||
// Paper start
|
||||
protected void performVoidDamage() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From a261c8fdf00902ccd72fb9032cf0bb431977588d Mon Sep 17 00:00:00 2001
|
||||
From d50854467c74f3cd32f59b4d793c1e1e12f1aa02 Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Fri, 6 Mar 2020 13:37:26 -0600
|
||||
Subject: [PATCH] Fix the dead lagging the server
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] Fix the dead lagging the server
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index c85e794940..7cc0354d57 100644
|
||||
index a38a29e3d6..6805ad2cde 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -1395,7 +1395,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -1442,7 +1442,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
this.pitch = MathHelper.a(f1, -90.0F, 90.0F) % 360.0F;
|
||||
this.lastYaw = this.yaw;
|
||||
this.lastPitch = this.pitch;
|
||||
|
||||
Reference in New Issue
Block a user