diff --git a/Paper b/Paper index 54890033d..7d85344ef 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 54890033d570f5bd0eff1ada5dbb5441dd65496d +Subproject commit 7d85344efd873c58947be779015124cb18f87f92 diff --git a/current-paper b/current-paper index df8ac859a..9d692dfc1 100644 --- a/current-paper +++ b/current-paper @@ -1 +1 @@ -1.16.2--20c1e6cad902fdd2b57434676b239614c0333c79 +1.16.3--5e33549a0469a6a8e7c2423751f46c056f5ac87c diff --git a/patches/api/0001-Tuinity-API-Changes.patch b/patches/api/0001-Tuinity-API-Changes.patch index 05a23eb8a..d4e1696c3 100644 --- a/patches/api/0001-Tuinity-API-Changes.patch +++ b/patches/api/0001-Tuinity-API-Changes.patch @@ -8,7 +8,7 @@ Tuinity config API to retrieve raw YamlConfiguration + timing exports diff --git a/pom.xml b/pom.xml -index 1a34f6880..95a99b7b5 100644 +index 29dafd4b..3b5dcb43 100644 --- a/pom.xml +++ b/pom.xml @@ -3,18 +3,18 @@ @@ -26,7 +26,7 @@ index 1a34f6880..95a99b7b5 100644 - com.destroystokyo.paper - paper-api + tuinity-api - 1.16.2-R0.1-SNAPSHOT + 1.16.3-R0.1-SNAPSHOT jar - Paper-API @@ -37,7 +37,7 @@ index 1a34f6880..95a99b7b5 100644 diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index bacb3ee9a..e9fb263b6 100644 +index 7c0a7889..740a86a8 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -1456,6 +1456,14 @@ public interface Server extends PluginMessageRecipient { diff --git a/patches/api/0002-Rebrand.patch b/patches/api/0002-Rebrand.patch index 24dc33063..e14bf8426 100644 --- a/patches/api/0002-Rebrand.patch +++ b/patches/api/0002-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/pom.xml b/pom.xml -index 95a99b7b..a7aca07e 100644 +index 3b5dcb43..d6060229 100644 --- a/pom.xml +++ b/pom.xml @@ -1,20 +1,19 @@ @@ -24,7 +24,7 @@ index 95a99b7b..a7aca07e 100644 - tuinity-api + purpur-api - 1.16.2-R0.1-SNAPSHOT + 1.16.3-R0.1-SNAPSHOT jar - Tuinity-API diff --git a/patches/server/0001-Tuinity-Server-Changes.patch b/patches/server/0001-Tuinity-Server-Changes.patch index b6fce8419..8c9ece19b 100644 --- a/patches/server/0001-Tuinity-Server-Changes.patch +++ b/patches/server/0001-Tuinity-Server-Changes.patch @@ -279,24 +279,18 @@ Simply return. Do not run vanilla update logic when eigencraft is enabled -Fix missing block property portal crash - -Looks like it appears when the portal isn't created (cancelled -event). So, just use the original direction and call it a day. - diff --git a/pom.xml b/pom.xml -index d018f900d..4f45b8158 100644 +index 838f199b6..f009b05e4 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ -- 4.0.0 - paper + tuinity jar - 1.16.2-R0.1-SNAPSHOT + 1.16.3-R0.1-SNAPSHOT - Paper - https://papermc.io + Tuinity-Server @@ -345,7 +339,7 @@ index d018f900d..4f45b8158 100644 diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java -index dd0722397..85b25eace 100644 +index 884b59d47..68ab5ccb2 100644 --- a/src/main/java/co/aikar/timings/MinecraftTimings.java +++ b/src/main/java/co/aikar/timings/MinecraftTimings.java @@ -43,6 +43,9 @@ public final class MinecraftTimings { @@ -489,10 +483,10 @@ index e7624948e..77df68888 100644 diff --git a/src/main/java/com/tuinity/tuinity/chunk/SingleThreadChunkRegionManager.java b/src/main/java/com/tuinity/tuinity/chunk/SingleThreadChunkRegionManager.java new file mode 100644 -index 000000000..f599725e1 +index 000000000..b57006d04 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/chunk/SingleThreadChunkRegionManager.java -@@ -0,0 +1,329 @@ +@@ -0,0 +1,349 @@ +package com.tuinity.tuinity.chunk; + +import co.aikar.timings.MinecraftTimings; @@ -502,6 +496,7 @@ index 000000000..f599725e1 +import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.ReferenceLinkedOpenHashSet; +import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; ++import net.minecraft.server.ChunkCoordIntPair; +import net.minecraft.server.MCUtil; +import net.minecraft.server.WorldServer; +import java.util.ArrayList; @@ -659,6 +654,7 @@ index 000000000..f599725e1 + protected void recalculateRegion(final Region region) { + this.regionRecalculateTimings.startTiming(); + try { ++ region.markedForRecalc = false; + // clear unused regions + for (final Iterator> iterator = region.deadSections.iterator(); iterator.hasNext(); ) { + final RegionSection deadRegion = iterator.next(); @@ -745,7 +741,7 @@ index 000000000..f599725e1 + + protected void markRegionDead(final RegionSection section) { + this.deadSections.add(section); -+ if (!this.markedForRecalc && this.sections.size() >= this.regionManager.minSectionRecalcCount && this.getDeadSectionPercent() >= this.regionManager.maxDeadRegionPercent) { ++ if (!this.markedForRecalc && (this.sections.size() >= this.regionManager.minSectionRecalcCount || this.sections.size() == this.deadSections.size()) && this.getDeadSectionPercent() >= this.regionManager.maxDeadRegionPercent) { + this.regionManager.addToRecalcQueue(this); + this.markedForRecalc = true; + } @@ -798,9 +794,16 @@ index 000000000..f599725e1 + this.data.put(key, data); + } + ++ private static long getChunkIndex(final int chunkX, final int chunkZ) { ++ return 1L << ((chunkX & (REGION_CHUNK_SIZE - 1)) | ((chunkZ & (REGION_CHUNK_SIZE - 1)) << REGION_CHUNK_SIZE_SHIFT)); ++ } ++ + protected void addChunk(final int chunkX, final int chunkZ) { + final long bitset = this.chunksBitset; -+ this.chunksBitset = bitset | (1L << ((chunkX & (REGION_CHUNK_SIZE - 1)) | ((chunkZ & (REGION_CHUNK_SIZE - 1)) << REGION_CHUNK_SIZE_SHIFT))); ++ final long after = this.chunksBitset = bitset | getChunkIndex(chunkX, chunkZ); ++ if (after == bitset) { ++ throw new IllegalStateException("Cannot add a chunk to a region which already has the chunk! RegionSection: " + this + ", global chunk: " + new ChunkCoordIntPair(chunkX, chunkZ).toString()); ++ } + if (bitset != 0L) { + return; + } @@ -808,12 +811,23 @@ index 000000000..f599725e1 + } + + protected void removeChunk(final int chunkX, final int chunkZ) { -+ final long bitset = this.chunksBitset |= ~(1L << ((chunkX & (REGION_CHUNK_SIZE - 1)) | ((chunkZ & (REGION_CHUNK_SIZE - 1)) << REGION_CHUNK_SIZE_SHIFT))); ++ final long before = this.chunksBitset; ++ final long bitset = this.chunksBitset = before & ~getChunkIndex(chunkX, chunkZ); ++ if (before == bitset) { ++ throw new IllegalStateException("Cannot remove a chunk from a region which does not have that chunk! RegionSection: " + this + ", global chunk: " + new ChunkCoordIntPair(chunkX, chunkZ).toString()); ++ } + if (bitset != 0L) { + return; + } + this.region.markRegionDead(this); + } ++ ++ @Override ++ public String toString() { ++ return "RegionSection{" + ++ "regionCoordinate=" + new ChunkCoordIntPair(this.regionCoordinate).toString() + ++ '}'; ++ } + } + + public static interface RegionDataCreator & RegionDataCreator> { @@ -1212,10 +1226,10 @@ index 000000000..08ed24325 \ No newline at end of file diff --git a/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java b/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java new file mode 100644 -index 000000000..b0f1e21e6 +index 000000000..67fb1b533 --- /dev/null +++ b/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java -@@ -0,0 +1,271 @@ +@@ -0,0 +1,274 @@ +package com.tuinity.tuinity.util.maplist; + +import it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap; @@ -1314,6 +1328,9 @@ index 000000000..b0f1e21e6 + this.firstInvalidIndex = index; + } + this.listElements[index] = null; ++ if (this.iteratorCount == 0 && this.getFragFactor() >= this.maxFragFactor) { ++ this.defrag(); ++ } + return true; + } else { + return this.pendingAdditions.remove(element); @@ -1870,7 +1887,7 @@ index 6b655b744..e811295b4 100644 } diff --git a/src/main/java/net/minecraft/server/BlockBase.java b/src/main/java/net/minecraft/server/BlockBase.java -index 8265ed4da..2db488aba 100644 +index 505d40278..9d85ce027 100644 --- a/src/main/java/net/minecraft/server/BlockBase.java +++ b/src/main/java/net/minecraft/server/BlockBase.java @@ -182,8 +182,8 @@ public abstract class BlockBase { @@ -2005,19 +2022,6 @@ index 12a023044..9e5e6de52 100644 if (tileentity instanceof IInventory) { InventoryUtils.dropInventory(world, blockposition, (IInventory) tileentity); -diff --git a/src/main/java/net/minecraft/server/BlockPortalShape.java b/src/main/java/net/minecraft/server/BlockPortalShape.java -index 6ef81aeb4..a84844726 100644 ---- a/src/main/java/net/minecraft/server/BlockPortalShape.java -+++ b/src/main/java/net/minecraft/server/BlockPortalShape.java -@@ -227,7 +227,7 @@ public class BlockPortalShape { - public static ShapeDetectorShape a(WorldServer worldserver, BlockUtil.Rectangle blockutil_rectangle, EnumDirection.EnumAxis enumdirection_enumaxis, Vec3D vec3d, EntitySize entitysize, Vec3D vec3d1, float f, float f1, CraftPortalEvent portalEventInfo) { // CraftBukkit // PAIL rename toDetectorShape - BlockPosition blockposition = blockutil_rectangle.origin; - IBlockData iblockdata = worldserver.getType(blockposition); -- EnumDirection.EnumAxis enumdirection_enumaxis1 = (EnumDirection.EnumAxis) iblockdata.get(BlockProperties.E); -+ EnumDirection.EnumAxis enumdirection_enumaxis1 = !iblockdata.contains(BlockProperties.E) ? enumdirection_enumaxis : (EnumDirection.EnumAxis) iblockdata.get(BlockProperties.E); // Tuinity - use provided direction if the block doesn't have one - double d0 = (double) blockutil_rectangle.side1; - double d1 = (double) blockutil_rectangle.side2; - int i = enumdirection_enumaxis == enumdirection_enumaxis1 ? 0 : 90; diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java index 2d887af90..2291135ea 100644 --- a/src/main/java/net/minecraft/server/BlockPosition.java @@ -2980,7 +2984,7 @@ index 95ef96286..73163b417 100644 T t0 = this.h.a(this.a.a(i)); diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 1c878265b..5907caa74 100644 +index 0eabd62ad..c4bbe4463 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -170,6 +170,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -3005,10 +3009,10 @@ index 550232cb3..229c3b0f0 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 1ee01486f..630fb5265 100644 +index cfb14c54d..3c63327ca 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -137,7 +137,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -135,7 +135,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public double D; public double E; public double F; @@ -3017,7 +3021,7 @@ index 1ee01486f..630fb5265 100644 public boolean noclip; public float I; protected final Random random; -@@ -208,6 +208,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -205,6 +205,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } // CraftBukkit end @@ -3032,7 +3036,7 @@ index 1ee01486f..630fb5265 100644 // Paper start - optimise entity tracking final org.spigotmc.TrackingRange.TrackingRangeType trackingRangeType = org.spigotmc.TrackingRange.getTrackingRangeType(this); -@@ -223,6 +231,41 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -220,6 +228,41 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } // Paper end - optimise entity tracking @@ -3074,7 +3078,7 @@ index 1ee01486f..630fb5265 100644 public Entity(EntityTypes entitytypes, World world) { this.id = Entity.entityCount.incrementAndGet(); this.passengers = Lists.newArrayList(); -@@ -591,7 +634,39 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -588,7 +631,39 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.onGround; } @@ -3114,7 +3118,7 @@ index 1ee01486f..630fb5265 100644 if (this.noclip) { this.a(this.getBoundingBox().c(vec3d)); this.recalcPosition(); -@@ -619,7 +694,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -616,7 +691,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke // Paper end vec3d = this.a(vec3d, enummovetype); @@ -3123,7 +3127,7 @@ index 1ee01486f..630fb5265 100644 if (vec3d1.g() > 1.0E-7D) { this.a(this.getBoundingBox().c(vec3d1)); -@@ -735,6 +810,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -732,6 +807,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.world.getMethodProfiler().exit(); } @@ -3137,7 +3141,7 @@ index 1ee01486f..630fb5265 100644 } protected BlockPosition ao() { -@@ -815,6 +897,132 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -812,6 +894,132 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return d0; } @@ -3270,7 +3274,7 @@ index 1ee01486f..630fb5265 100644 private Vec3D g(Vec3D vec3d) { AxisAlignedBB axisalignedbb = this.getBoundingBox(); VoxelShapeCollision voxelshapecollision = VoxelShapeCollision.a(this); -@@ -850,6 +1058,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -847,6 +1055,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return vec3d1; } @@ -3278,7 +3282,7 @@ index 1ee01486f..630fb5265 100644 public static double c(Vec3D vec3d) { return vec3d.x * vec3d.x + vec3d.z * vec3d.z; } -@@ -1934,11 +2143,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1931,11 +2140,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return EnumInteractionResult.PASS; } @@ -3294,7 +3298,7 @@ index 1ee01486f..630fb5265 100644 return false; } -@@ -3275,12 +3486,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3273,12 +3484,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.locBlock; } @@ -3311,7 +3315,7 @@ index 1ee01486f..630fb5265 100644 } public void setMot(double d0, double d1, double d2) { -@@ -3335,7 +3550,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3333,7 +3548,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } // Paper end if (this.loc.x != d0 || this.loc.y != d1 || this.loc.z != d2) { @@ -3335,10 +3339,10 @@ index 314886398..79de11ce2 100644 this.setPersistent(); } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index c622fb704..ec9174206 100644 +index 76185f042..0e000c718 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2846,7 +2846,11 @@ public abstract class EntityLiving extends Entity { +@@ -2847,7 +2847,11 @@ public abstract class EntityLiving extends Entity { return; } // Paper - end don't run getEntities if we're not going to use its result @@ -3351,7 +3355,7 @@ index c622fb704..ec9174206 100644 if (!list.isEmpty()) { // Paper - move up -@@ -2875,6 +2879,9 @@ public abstract class EntityLiving extends Entity { +@@ -2876,6 +2880,9 @@ public abstract class EntityLiving extends Entity { this.C(entity); } } @@ -3362,7 +3366,7 @@ index c622fb704..ec9174206 100644 } diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 831298e3b..7ab013058 100644 +index 4efc40c01..f322dccd8 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -74,6 +74,7 @@ public class EntityTrackerEntry { @@ -3636,7 +3640,7 @@ index ff74be145..653ba0f1d 100644 0, 2, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue(), diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 65e8dc340..106661fae 100644 +index 883c17f00..64f7e448c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -985,7 +985,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index fcd3388d8..1887b93e5 100644 +index fcd3388d8..6016a7bc5 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -121,31 +121,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { @@ -4415,15 +4419,26 @@ index fcd3388d8..1887b93e5 100644 asyncSaveData, chunk); chunk.setLastSaved(this.world.getTime()); -@@ -1043,6 +1071,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - this.lightEngine.a(ichunkaccess.getPos()); +@@ -1020,7 +1048,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + if (completablefuture1 != completablefuture) { + this.a(i, playerchunk); + } else { +- if (this.pendingUnload.remove(i, playerchunk) && ichunkaccess != null) { ++ // Tuinity start ++ boolean removed; ++ if ((removed = this.pendingUnload.remove(i, playerchunk)) && ichunkaccess != null) { // Tuinity end + if (ichunkaccess instanceof Chunk) { + ((Chunk) ichunkaccess).setLoaded(false); + } +@@ -1044,6 +1074,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { this.lightEngine.queueUpdate(); this.worldLoadListener.a(ichunkaccess.getPos(), (ChunkStatus) null); -+ this.dataRegionManager.removeChunk(playerchunk.location.x, playerchunk.location.z); // Tuinity } ++ if (removed) this.dataRegionManager.removeChunk(playerchunk.location.x, playerchunk.location.z); // Tuinity } -@@ -1059,6 +1088,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + }; +@@ -1059,6 +1090,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } protected boolean b() { @@ -4431,7 +4446,7 @@ index fcd3388d8..1887b93e5 100644 if (!this.updatingChunksModified) { return false; } else { -@@ -1246,7 +1276,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1246,7 +1278,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } // Paper end this.mailboxWorldGen.a(ChunkTaskQueueSorter.a(playerchunk, runnable)); @@ -4443,7 +4458,7 @@ index fcd3388d8..1887b93e5 100644 } protected void c(ChunkCoordIntPair chunkcoordintpair) { -@@ -1498,6 +1531,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1498,6 +1533,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { } public void setViewDistance(int i) { // Paper - public @@ -4451,7 +4466,7 @@ index fcd3388d8..1887b93e5 100644 int j = MathHelper.clamp(i + 1, 3, 33); // Paper - diff on change, these make the lower view distance limit 2 and the upper 32 if (j != this.viewDistance) { -@@ -1511,6 +1545,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1511,6 +1547,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { // Paper start - no-tick view distance public final void setNoTickViewDistance(int viewDistance) { @@ -4459,7 +4474,7 @@ index fcd3388d8..1887b93e5 100644 viewDistance = viewDistance == -1 ? -1 : MathHelper.clamp(viewDistance, 2, 32); this.noTickViewDistance = viewDistance; -@@ -2037,23 +2072,20 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -2037,23 +2074,20 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { private final void processTrackQueue() { this.world.timings.tracker1.startTiming(); try { @@ -5804,15 +5819,15 @@ index 2484293b1..1496c43fc 100644 private static JsonElement a(UserCache.UserCacheEntry usercache_usercacheentry, DateFormat dateformat) { diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java -index 3048ba008..84858ba39 100644 +index 7f05587d4..5af554870 100644 --- a/src/main/java/net/minecraft/server/Vec3D.java +++ b/src/main/java/net/minecraft/server/Vec3D.java @@ -4,7 +4,7 @@ import java.util.EnumSet; public class Vec3D implements IPosition { -- public static final Vec3D a = new Vec3D(0.0D, 0.0D, 0.0D); -+ public static final Vec3D a = new Vec3D(0.0D, 0.0D, 0.0D); public static Vec3D getZeroVector() { return Vec3D.a; } // Tuinity - OBFHELPER +- public static final Vec3D ORIGIN = new Vec3D(0.0D, 0.0D, 0.0D); ++ public static final Vec3D ORIGIN = new Vec3D(0.0D, 0.0D, 0.0D); public static Vec3D getZeroVector() { return Vec3D.ORIGIN; } // Tuinity - OBFHELPER public final double x; public final double y; public final double z; @@ -6137,7 +6152,7 @@ index e21c747b6..4bdadffee 100644 return voxelshape != b() && voxelshape1 != b() ? (voxelshape.isEmpty() && voxelshape1.isEmpty() ? false : !c(b(), b(voxelshape, voxelshape1, OperatorBoolean.OR), OperatorBoolean.ONLY_FIRST)) : true; } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 724aec660..699dc4343 100644 +index eaa285393..a490662e0 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -75,7 +75,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { @@ -6308,7 +6323,7 @@ index f01186988..26a8c4ffe 100644 return this.j.d(); } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index efe10b7f5..37c4abec6 100644 +index 25cdd7b0f..2eff22ed5 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -51,12 +51,13 @@ import org.bukkit.event.server.MapInitializeEvent; @@ -6880,8 +6895,8 @@ index efe10b7f5..37c4abec6 100644 if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) { this.chunkCheck(entity); } else { -@@ -851,6 +1299,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { - } // Paper - timings +@@ -858,6 +1306,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { + //} finally { timer.stopTiming(); } // Paper - timings - move up } + // Tuinity start - log detailed entity tick information @@ -6892,7 +6907,7 @@ index efe10b7f5..37c4abec6 100644 } public void a(Entity entity, Entity entity1) { -@@ -894,6 +1347,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -915,6 +1368,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { int i = MathHelper.floor(entity.locX() / 16.0D); int j = Math.min(15, Math.max(0, MathHelper.floor(entity.locY() / 16.0D))); // Paper - stay consistent with chunk add/remove behavior int k = MathHelper.floor(entity.locZ() / 16.0D); @@ -6905,7 +6920,7 @@ index efe10b7f5..37c4abec6 100644 if (!entity.inChunk || entity.chunkX != i || entity.chunkY != j || entity.chunkZ != k) { // Paper start - remove entity if its in a chunk more correctly. -@@ -903,6 +1362,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -924,6 +1383,12 @@ public class WorldServer extends World implements GeneratorAccessSeed { } // Paper end @@ -6918,7 +6933,7 @@ index efe10b7f5..37c4abec6 100644 if (entity.inChunk && this.isChunkLoaded(entity.chunkX, entity.chunkZ)) { this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.chunkY); } -@@ -916,6 +1381,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -937,6 +1402,11 @@ public class WorldServer extends World implements GeneratorAccessSeed { } else { this.getChunkAt(i, k).a(entity); } @@ -6930,7 +6945,7 @@ index efe10b7f5..37c4abec6 100644 } this.getMethodProfiler().exit(); -@@ -1267,7 +1737,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1288,7 +1758,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { Entity entity = (Entity) iterator.next(); if (!(entity instanceof EntityPlayer)) { @@ -6939,7 +6954,7 @@ index efe10b7f5..37c4abec6 100644 throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!"))); } -@@ -1295,6 +1765,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1316,6 +1786,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { public void unregisterEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot @@ -6947,7 +6962,7 @@ index efe10b7f5..37c4abec6 100644 // Paper start - fix entity registration issues if (entity instanceof EntityComplexPart) { // Usually this is a no-op for complex parts, and ID's should be removed, but go ahead and remove it anyways -@@ -1361,17 +1832,108 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1382,17 +1853,108 @@ public class WorldServer extends World implements GeneratorAccessSeed { this.getScoreboard().a(entity); // CraftBukkit start - SPIGOT-5278 if (entity instanceof EntityDrowned) { @@ -7059,7 +7074,7 @@ index efe10b7f5..37c4abec6 100644 private void registerEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot // Paper start - don't double enqueue entity registration -@@ -1382,7 +1944,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1403,7 +1965,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { return; } // Paper end @@ -7068,7 +7083,7 @@ index efe10b7f5..37c4abec6 100644 if (!entity.isQueuedForRegister) { // Paper this.entitiesToAdd.add(entity); entity.isQueuedForRegister = true; // Paper -@@ -1390,6 +1952,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1411,6 +1973,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } else { entity.isQueuedForRegister = false; // Paper this.entitiesById.put(entity.getId(), entity); @@ -7076,7 +7091,7 @@ index efe10b7f5..37c4abec6 100644 if (entity instanceof EntityEnderDragon) { EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eJ(); int i = aentitycomplexpart.length; -@@ -1398,6 +1961,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1419,6 +1982,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { EntityComplexPart entitycomplexpart = aentitycomplexpart[j]; this.entitiesById.put(entitycomplexpart.getId(), entitycomplexpart); @@ -7084,7 +7099,7 @@ index efe10b7f5..37c4abec6 100644 } } -@@ -1422,12 +1986,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1443,12 +2007,16 @@ public class WorldServer extends World implements GeneratorAccessSeed { // this.getChunkProvider().addEntity(entity); // Paper - moved down below valid=true // CraftBukkit start - SPIGOT-5278 if (entity instanceof EntityDrowned) { @@ -7104,7 +7119,7 @@ index efe10b7f5..37c4abec6 100644 } entity.valid = true; // CraftBukkit this.getChunkProvider().addEntity(entity); // Paper - from above to be below valid=true -@@ -1443,7 +2011,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1464,7 +2032,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } public void removeEntity(Entity entity) { @@ -7113,7 +7128,7 @@ index efe10b7f5..37c4abec6 100644 throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!"))); } else { this.removeEntityFromChunk(entity); -@@ -1544,8 +2112,26 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1565,8 +2133,26 @@ public class WorldServer extends World implements GeneratorAccessSeed { VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition); if (VoxelShapes.c(voxelshape, voxelshape1, OperatorBoolean.NOT_SAME)) { @@ -7141,7 +7156,7 @@ index efe10b7f5..37c4abec6 100644 while (iterator.hasNext()) { NavigationAbstract navigationabstract = (NavigationAbstract) iterator.next(); -@@ -1553,7 +2139,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -1574,7 +2160,21 @@ public class WorldServer extends World implements GeneratorAccessSeed { if (!navigationabstract.i()) { navigationabstract.b(blockposition); } @@ -7191,7 +7206,7 @@ index ff8ba5457..ecedc167d 100644 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5f5b39b3b..2b0e1e698 100644 +index fd649a0d2..77adc7528 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -230,7 +230,7 @@ import javax.annotation.Nullable; // Paper @@ -7299,7 +7314,7 @@ index 299f57ca2..4de6252f0 100644 }, MinecraftServer.getServer()); } diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index bac292e6d..b4e65963e 100644 +index 9118f0542..a9c96d45c 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -138,6 +138,13 @@ public class Main { @@ -7326,7 +7341,7 @@ index bac292e6d..b4e65963e 100644 //Thread.sleep(TimeUnit.SECONDS.toMillis(20)); // Paper End diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 3584d20c7..f336f4ecf 100644 +index 3524b6775..b668b7c03 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -214,7 +214,7 @@ public class CraftBlock implements Block { diff --git a/patches/server/0002-Rebrand.patch b/patches/server/0002-Rebrand.patch index 37ac493cc..113abd03b 100644 --- a/patches/server/0002-Rebrand.patch +++ b/patches/server/0002-Rebrand.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Rebrand diff --git a/pom.xml b/pom.xml -index 4f45b8158..02ee19722 100644 +index f009b05e4..c6bd3d4fd 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ - 4.0.0 - tuinity + purpur jar - 1.16.2-R0.1-SNAPSHOT + 1.16.3-R0.1-SNAPSHOT - Tuinity-Server - https://github.com/Spottedleaf/Tuinity + Purpur-Server @@ -98,7 +98,7 @@ index 74ed02fa9..c1280478e 100644 .completer(new ConsoleCommandCompleter(this.server)) ); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 106661fae..045c21d00 100644 +index 64f7e448c..bab892a93 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1510,7 +1510,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { @@ -25,7 +25,7 @@ index e23247e0a..2faa83fad 100644 public static MinecraftKey getName(EntityTypes entitytypes) { return IRegistry.ENTITY_TYPE.getKey(entitytypes); } -@@ -276,6 +286,16 @@ public class EntityTypes { +@@ -286,6 +296,16 @@ public class EntityTypes { return this.bg; } @@ -42,7 +42,7 @@ index e23247e0a..2faa83fad 100644 public String getDescriptionId() { return f(); } // Paper - OBFHELPER public String f() { if (this.bo == null) { -@@ -285,6 +305,7 @@ public class EntityTypes { +@@ -295,6 +315,7 @@ public class EntityTypes { return this.bo; } diff --git a/patches/server/0016-EMC-MonsterEggSpawnEvent.patch b/patches/server/0016-EMC-MonsterEggSpawnEvent.patch index 0281c0266..650e17059 100644 --- a/patches/server/0016-EMC-MonsterEggSpawnEvent.patch +++ b/patches/server/0016-EMC-MonsterEggSpawnEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] EMC - MonsterEggSpawnEvent diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index 2faa83fad..c03b0b58b 100644 +index bf5436510..b089c8a3f 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java -@@ -177,19 +177,45 @@ public class EntityTypes { +@@ -187,19 +187,45 @@ public class EntityTypes { @Nullable public Entity spawnCreature(WorldServer worldserver, @Nullable ItemStack itemstack, @Nullable EntityHuman entityhuman, BlockPosition blockposition, EnumMobSpawn enummobspawn, boolean flag, boolean flag1) { diff --git a/patches/server/0020-EntityMoveEvent.patch b/patches/server/0020-EntityMoveEvent.patch index ef32077fa..d72e93a0c 100644 --- a/patches/server/0020-EntityMoveEvent.patch +++ b/patches/server/0020-EntityMoveEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] EntityMoveEvent diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index c9cff4c07..c7c452e7f 100644 +index baf35465b..84e4c754a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2801,6 +2801,20 @@ public abstract class EntityLiving extends Entity { +@@ -2802,6 +2802,20 @@ public abstract class EntityLiving extends Entity { this.collideNearby(); this.world.getMethodProfiler().exit(); diff --git a/patches/server/0031-Giants-AI-settings.patch b/patches/server/0031-Giants-AI-settings.patch index ee7a7b21c..6906ac767 100644 --- a/patches/server/0031-Giants-AI-settings.patch +++ b/patches/server/0031-Giants-AI-settings.patch @@ -17,10 +17,10 @@ index c57e23e16..92aa104dc 100644 public AttributeModifiable a(AttributeBase attributebase) { return (AttributeModifiable) this.b.computeIfAbsent(attributebase, (attributebase1) -> { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 5dd2a52d3..6bf087bd2 100644 +index 3c63327ca..ebe5dc115 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -137,7 +137,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -135,7 +135,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public double D; public double E; public double F; @@ -112,7 +112,7 @@ index 9f4f56c47..8dce2aad7 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 9cf496b5e..be23120a2 100644 +index 04eff0182..7c58c8238 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -940,6 +940,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -146,10 +146,10 @@ index 9cf496b5e..be23120a2 100644 return false; } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index c7c452e7f..cf56621ba 100644 +index 84e4c754a..39f5ef025 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2159,7 +2159,7 @@ public abstract class EntityLiving extends Entity { +@@ -2160,7 +2160,7 @@ public abstract class EntityLiving extends Entity { this.enderTeleportTo(vec3d.x, vec3d.y, vec3d.z); } diff --git a/patches/server/0043-Cat-spawning-options.patch b/patches/server/0043-Cat-spawning-options.patch index 08cb569f4..6bfba8f5f 100644 --- a/patches/server/0043-Cat-spawning-options.patch +++ b/patches/server/0043-Cat-spawning-options.patch @@ -95,10 +95,10 @@ index a5718af9b..b6b4c8c49 100644 return this.E; } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 646f9180f..53ab03a29 100644 +index 006ebc113..18af94ceb 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java -@@ -2536,6 +2536,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { +@@ -2557,6 +2557,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { } } diff --git a/patches/server/0045-Cows-eat-mushrooms.patch b/patches/server/0045-Cows-eat-mushrooms.patch index a131c0ae4..359b7b4ba 100644 --- a/patches/server/0045-Cows-eat-mushrooms.patch +++ b/patches/server/0045-Cows-eat-mushrooms.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Cows eat mushrooms diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 6bf087bd2..2be922a71 100644 +index ebe5dc115..9ab0572f2 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2729,6 +2729,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2727,6 +2727,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.invulnerable = flag; } @@ -110,7 +110,7 @@ index 42e6761c8..cfb009c81 100644 public EntityCow createChild(WorldServer worldserver, EntityAgeable entityageable) { return (EntityCow) EntityTypes.COW.a((World) worldserver); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index cf56621ba..76575ea5f 100644 +index 39f5ef025..ff412471c 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -81,7 +81,7 @@ public abstract class EntityLiving extends Entity { diff --git a/patches/server/0061-Fix-the-dead-lagging-the-server.patch b/patches/server/0061-Fix-the-dead-lagging-the-server.patch index 41fffd801..f91b0ac12 100644 --- a/patches/server/0061-Fix-the-dead-lagging-the-server.patch +++ b/patches/server/0061-Fix-the-dead-lagging-the-server.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix the dead lagging the server diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 2be922a71..5bb1d8e51 100644 +index 9ab0572f2..d978f2b08 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1501,6 +1501,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1498,6 +1498,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; @@ -17,10 +17,10 @@ index 2be922a71..5bb1d8e51 100644 public void f(double d0, double d1, double d2) { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index d9c19f8f5..91fc7ba76 100644 +index 75005b00d..3193e7172 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2477,7 +2477,7 @@ public abstract class EntityLiving extends Entity { +@@ -2478,7 +2478,7 @@ public abstract class EntityLiving extends Entity { } } diff --git a/patches/server/0076-Add-option-to-disable-saving-projectiles-to-disk.patch b/patches/server/0076-Add-option-to-disable-saving-projectiles-to-disk.patch index 8a483746c..532bc4388 100644 --- a/patches/server/0076-Add-option-to-disable-saving-projectiles-to-disk.patch +++ b/patches/server/0076-Add-option-to-disable-saving-projectiles-to-disk.patch @@ -17,10 +17,10 @@ index c2adc7f52..24a6102b3 100644 // Paper start if (asyncsavedata == null && !entity.dead && (int) Math.floor(entity.locX()) >> 4 != chunk.getPos().x || (int) Math.floor(entity.locZ()) >> 4 != chunk.getPos().z) { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 5bb1d8e51..49cf334fc 100644 +index d978f2b08..204d9e004 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -309,6 +309,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -306,6 +306,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.headHeight = this.getHeadHeight(EntityPose.STANDING, this.size); } @@ -34,7 +34,7 @@ index 5bb1d8e51..49cf334fc 100644 return false; } diff --git a/src/main/java/net/minecraft/server/EntityEnderSignal.java b/src/main/java/net/minecraft/server/EntityEnderSignal.java -index e3865a9b4..de55acd1c 100644 +index 08da58677..3ff61434c 100644 --- a/src/main/java/net/minecraft/server/EntityEnderSignal.java +++ b/src/main/java/net/minecraft/server/EntityEnderSignal.java @@ -19,6 +19,13 @@ public class EntityEnderSignal extends Entity { @@ -48,7 +48,7 @@ index e3865a9b4..de55acd1c 100644 + } + // Purpur end + - public void b(ItemStack itemstack) { + public void setItem(ItemStack itemstack) { if (true || itemstack.getItem() != Items.ENDER_EYE || itemstack.hasTag()) { // CraftBukkit - always allow item changing this.getDataWatcher().set(EntityEnderSignal.b, SystemUtils.a(itemstack.cloneItemStack(), (itemstack1) -> { // CraftBukkit - decompile error diff --git a/src/main/java/net/minecraft/server/IProjectile.java b/src/main/java/net/minecraft/server/IProjectile.java diff --git a/patches/server/0077-Configurable-void-damage-height.patch b/patches/server/0077-Configurable-void-damage-height.patch index c53582f54..17d0e04f3 100644 --- a/patches/server/0077-Configurable-void-damage-height.patch +++ b/patches/server/0077-Configurable-void-damage-height.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 49cf334fc..dfc54b6c1 100644 +index 204d9e004..55e765a3e 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -612,7 +612,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -609,7 +609,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke // Paper start protected void performVoidDamage() { diff --git a/patches/server/0083-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0083-Climbing-should-not-bypass-cramming-gamerule.patch index 155905be4..b8df87ade 100644 --- a/patches/server/0083-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0083-Climbing-should-not-bypass-cramming-gamerule.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index dfc54b6c1..98b62223b 100644 +index 55e765a3e..6628a15bf 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1693,6 +1693,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1690,6 +1690,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean isCollidable() { @@ -22,7 +22,7 @@ index dfc54b6c1..98b62223b 100644 } diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java -index afa23395c..4f950c6aa 100644 +index ab5d61848..484a5261c 100644 --- a/src/main/java/net/minecraft/server/EntityArmorStand.java +++ b/src/main/java/net/minecraft/server/EntityArmorStand.java @@ -320,7 +320,7 @@ public class EntityArmorStand extends EntityLiving { @@ -35,7 +35,7 @@ index afa23395c..4f950c6aa 100644 } diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java -index a726dd676..b84aa1db8 100644 +index af67cf868..f230d84fa 100644 --- a/src/main/java/net/minecraft/server/EntityBat.java +++ b/src/main/java/net/minecraft/server/EntityBat.java @@ -50,7 +50,7 @@ public class EntityBat extends EntityAmbient { @@ -48,7 +48,7 @@ index a726dd676..b84aa1db8 100644 } diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java -index 0f25d7cd6..5887b7a26 100644 +index 8d5594651..d8d4b6abf 100644 --- a/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java @@ -106,7 +106,7 @@ public class EntityBoat extends Entity { @@ -61,7 +61,7 @@ index 0f25d7cd6..5887b7a26 100644 } diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index da79c7e63..8cfbf8abf 100644 +index 9f74d6e88..c7757f9d0 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -165,7 +165,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -74,10 +74,10 @@ index da79c7e63..8cfbf8abf 100644 } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 91fc7ba76..ba4e4ace5 100644 +index 3193e7172..8346d8f3d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2865,7 +2865,7 @@ public abstract class EntityLiving extends Entity { +@@ -2866,7 +2866,7 @@ public abstract class EntityLiving extends Entity { // Paper - end don't run getEntities if we're not going to use its result // Tuinity start - reduce memory allocation from collideNearby List list = com.tuinity.tuinity.util.CachedLists.getTempGetEntitiesList(); @@ -86,7 +86,7 @@ index 91fc7ba76..ba4e4ace5 100644 try { // Tuinity end - reduce memory allocation from collideNearby -@@ -3010,7 +3010,14 @@ public abstract class EntityLiving extends Entity { +@@ -3011,7 +3011,14 @@ public abstract class EntityLiving extends Entity { @Override public boolean isCollidable() { @@ -103,7 +103,7 @@ index 91fc7ba76..ba4e4ace5 100644 // CraftBukkit start - collidable API diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java -index d5e129678..5e64ca8a0 100644 +index 44eabc4ee..d6cb8becc 100644 --- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java +++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java @@ -107,7 +107,7 @@ public abstract class EntityMinecartAbstract extends Entity { @@ -131,7 +131,7 @@ index 34e08dda2..6bb73f869 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index a99429080..2b22029ea 100644 +index 1f41d101e..e30dbf51d 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -1772,8 +1772,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0085-Implement-elytra-settings.patch b/patches/server/0085-Implement-elytra-settings.patch index b25b987e3..394489a77 100644 --- a/patches/server/0085-Implement-elytra-settings.patch +++ b/patches/server/0085-Implement-elytra-settings.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index ba4e4ace5..11abe8a93 100644 +index 8346d8f3d..45a297938 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2836,7 +2836,16 @@ public abstract class EntityLiving extends Entity { +@@ -2837,7 +2837,16 @@ public abstract class EntityLiving extends Entity { if (itemstack.getItem() == Items.ELYTRA && ItemElytra.d(itemstack)) { flag = true; if (!this.world.isClientSide && (this.be + 1) % 20 == 0) { diff --git a/patches/server/0086-Item-entity-immunities.patch b/patches/server/0086-Item-entity-immunities.patch index 2d5700d01..b4157e05c 100644 --- a/patches/server/0086-Item-entity-immunities.patch +++ b/patches/server/0086-Item-entity-immunities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 98b62223b..5e010d115 100644 +index 6628a15bf..e8199db7b 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1450,6 +1450,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1447,6 +1447,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } @@ -68,7 +68,7 @@ index bc4f84c88..b6cb52c10 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index c64bbde28..3c1cf5903 100644 +index aea72b0db..29731da08 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -106,6 +106,15 @@ public class EntityTrackerEntry { diff --git a/patches/server/0089-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0089-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index e8c559068..2b08dae5c 100644 --- a/patches/server/0089-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0089-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -17,10 +17,10 @@ index 6fe5678cf..bd0267ee4 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 5e010d115..a15bcfc0b 100644 +index e8199db7b..617ab96f1 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -1569,6 +1569,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1566,6 +1566,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return d3 * d3 + d4 * d4 + d5 * d5; } @@ -28,7 +28,7 @@ index 5e010d115..a15bcfc0b 100644 public double h(Entity entity) { return this.e(entity.getPositionVector()); } -@@ -2100,8 +2101,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2097,8 +2098,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.a(new ItemStack(imaterial), (float) i); } @@ -108,7 +108,7 @@ index 362ca695d..1942fae27 100644 @Override protected void saveData(NBTTagCompound nbttagcompound) { diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index 550f80bfd..b3616185d 100644 +index 3a70900c7..92704a078 100644 --- a/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java @@ -9,9 +9,10 @@ import javax.annotation.Nullable; diff --git a/patches/server/0118-Stop-squids-floating-on-top-of-water.patch b/patches/server/0118-Stop-squids-floating-on-top-of-water.patch index 8052447d2..af9bf5884 100644 --- a/patches/server/0118-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0118-Stop-squids-floating-on-top-of-water.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index a15bcfc0b..a5e639361 100644 +index 617ab96f1..1fa6791cc 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -3399,8 +3399,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3397,8 +3397,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.lastYaw = this.yaw; } diff --git a/patches/server/0119-Ridables.patch b/patches/server/0119-Ridables.patch index 55cfe0d70..ae71a9680 100644 --- a/patches/server/0119-Ridables.patch +++ b/patches/server/0119-Ridables.patch @@ -161,10 +161,10 @@ index bd0267ee4..8b36ac2b0 100644 this.B = true; return this; diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index a5e639361..75e8b3367 100644 +index 1fa6791cc..2cff6eb90 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -81,7 +81,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -79,7 +79,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper private CraftEntity bukkitEntity; @@ -173,7 +173,7 @@ index a5e639361..75e8b3367 100644 boolean collisionLoadChunks = false; // Paper Throwable addedToWorldStack; // Paper - entity debug public CraftEntity getBukkitEntity() { -@@ -106,7 +106,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -104,7 +104,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke private int id; public boolean i; public final boolean blocksEntitySpawning() { return this.i; } // Paper - OBFHELPER public final List passengers; @@ -182,7 +182,7 @@ index a5e639361..75e8b3367 100644 @Nullable private Entity vehicle; public boolean attachedToPlayer; -@@ -122,7 +122,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -120,7 +120,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public float lastYaw; public float lastPitch; private AxisAlignedBB boundingBox; @@ -191,7 +191,7 @@ index a5e639361..75e8b3367 100644 public boolean positionChanged; public boolean v; public boolean velocityChanged; -@@ -178,7 +178,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -176,7 +176,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke private boolean az; private final double[] aA; private long aB; @@ -200,7 +200,7 @@ index a5e639361..75e8b3367 100644 private float headHeight; // CraftBukkit start public boolean persist = true; -@@ -1460,6 +1460,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1457,6 +1457,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return !this.justCreated && this.M.getDouble(TagsFluid.LAVA) > 0.0D; } @@ -208,7 +208,7 @@ index a5e639361..75e8b3367 100644 public void a(float f, Vec3D vec3d) { Vec3D vec3d1 = a(vec3d, f, this.yaw); -@@ -2200,6 +2201,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2198,6 +2199,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return this.a(entity, false); } @@ -216,7 +216,7 @@ index a5e639361..75e8b3367 100644 public boolean a(Entity entity, boolean flag) { for (Entity entity1 = entity; entity1.vehicle != null; entity1 = entity1.vehicle) { if (entity1.vehicle == this) { -@@ -2295,6 +2297,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2293,6 +2295,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.passengers.add(entity); } @@ -230,7 +230,7 @@ index a5e639361..75e8b3367 100644 } return true; // CraftBukkit } -@@ -2335,6 +2344,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2333,6 +2342,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } // Spigot end @@ -243,7 +243,7 @@ index a5e639361..75e8b3367 100644 this.passengers.remove(entity); entity.j = 60; } -@@ -2500,6 +2515,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2498,6 +2513,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.setFlag(4, flag); } @@ -251,7 +251,7 @@ index a5e639361..75e8b3367 100644 public boolean bD() { return this.glowing || this.world.isClientSide && this.getFlag(6); } -@@ -2718,6 +2734,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2716,6 +2732,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public void setHeadRotation(float f) {} @@ -259,7 +259,7 @@ index a5e639361..75e8b3367 100644 public void n(float f) {} public boolean bK() { -@@ -3152,6 +3169,18 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3150,6 +3167,18 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } @@ -278,7 +278,7 @@ index a5e639361..75e8b3367 100644 @Override public void sendMessage(IChatBaseComponent ichatbasecomponent, UUID uuid) {} -@@ -3594,4 +3623,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3592,4 +3621,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke void accept(Entity entity, double d0, double d1, double d2); } @@ -327,7 +327,7 @@ index a5e639361..75e8b3367 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java -index b84aa1db8..34b7424c4 100644 +index f230d84fa..bbf61d011 100644 --- a/src/main/java/net/minecraft/server/EntityBat.java +++ b/src/main/java/net/minecraft/server/EntityBat.java @@ -14,9 +14,48 @@ public class EntityBat extends EntityAmbient { @@ -1436,7 +1436,7 @@ index c4b1f318f..30f602bbc 100644 } diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java -index 9f3922b18..6864b9956 100644 +index ae7b269de..9abbbd59f 100644 --- a/src/main/java/net/minecraft/server/EntityEvoker.java +++ b/src/main/java/net/minecraft/server/EntityEvoker.java @@ -12,10 +12,23 @@ public class EntityEvoker extends EntityIllagerWizard { @@ -1802,7 +1802,7 @@ index 8dce2aad7..24eb6dca5 100644 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillager.class, false)); diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java -index 2d0f64d3b..be060cfbd 100644 +index d42750fdd..881b2dd45 100644 --- a/src/main/java/net/minecraft/server/EntityGuardian.java +++ b/src/main/java/net/minecraft/server/EntityGuardian.java @@ -24,15 +24,36 @@ public class EntityGuardian extends EntityMonster { @@ -1996,7 +1996,7 @@ index 069111952..bd63a25e2 100644 protected void eK() { this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue((double) this.fp()); diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 8cfbf8abf..c14889b09 100644 +index c7757f9d0..a490d0715 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -39,12 +39,27 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -2162,7 +2162,7 @@ index 48f9feaea..6c2b57a29 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java -index 66bfebe1c..f23721c26 100644 +index f5c9e4e0a..5e6c7e317 100644 --- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java +++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java @@ -20,6 +20,16 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan @@ -2199,7 +2199,7 @@ index 66bfebe1c..f23721c26 100644 this.targetSelector.a(2, (new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)).a(300)); this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)).a(300)); diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 0ecc5bd28..6b0f7f399 100644 +index 7465e867b..0dc811ff7 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java @@ -29,7 +29,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -2362,7 +2362,7 @@ index bdff23688..954000a7b 100644 float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F; diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index ad17c3d27..4fb2bd443 100644 +index a2d50a1fe..b8f59f29a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -466,7 +466,7 @@ public abstract class EntityLiving extends Entity { @@ -2374,7 +2374,7 @@ index ad17c3d27..4fb2bd443 100644 } protected void cT() { -@@ -2185,7 +2185,7 @@ public abstract class EntityLiving extends Entity { +@@ -2186,7 +2186,7 @@ public abstract class EntityLiving extends Entity { return 0.42F * this.getBlockJumpFactor(); } @@ -2383,7 +2383,7 @@ index ad17c3d27..4fb2bd443 100644 float f = this.dI(); if (this.hasEffect(MobEffects.JUMP)) { -@@ -2434,10 +2434,12 @@ public abstract class EntityLiving extends Entity { +@@ -2435,10 +2435,12 @@ public abstract class EntityLiving extends Entity { return this.onGround ? this.dM() * (0.21600002F / (f * f * f)) : this.aE; } @@ -2834,7 +2834,7 @@ index 6bb73f869..822fe2691 100644 this.goalSelector.a(2, new PathfinderGoalSit(this)); this.goalSelector.a(2, new PathfinderGoalFollowOwner(this, 1.0D, 5.0F, 1.0F, true)); diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index 706760bae..aea27a098 100644 +index 03c9a8d0c..ee1ff6dc1 100644 --- a/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java @@ -25,6 +25,58 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -3255,7 +3255,7 @@ index cd6d2e07e..c74a10d9b 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java -index 10c8e2288..b22d5b377 100644 +index 639af6bd3..81e918572 100644 --- a/src/main/java/net/minecraft/server/EntityPufferFish.java +++ b/src/main/java/net/minecraft/server/EntityPufferFish.java @@ -17,6 +17,18 @@ public class EntityPufferFish extends EntityFish { @@ -3554,7 +3554,7 @@ index 2908e9cc4..04e585f44 100644 this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D)); this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.1D, RecipeItemStack.a(Items.WHEAT), false)); diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java -index a990af15d..11bf731d7 100644 +index f0394fe52..c5853f9f5 100644 --- a/src/main/java/net/minecraft/server/EntityShulker.java +++ b/src/main/java/net/minecraft/server/EntityShulker.java @@ -29,12 +29,26 @@ public class EntityShulker extends EntityGolem implements IMonster { @@ -4103,7 +4103,7 @@ index 495c28ccb..2c9df356e 100644 protected void initDatawatcher() { super.initDatawatcher(); diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java -index 430f9d23a..2f7570dd6 100644 +index e025eef47..c29803367 100644 --- a/src/main/java/net/minecraft/server/EntityTurtle.java +++ b/src/main/java/net/minecraft/server/EntityTurtle.java @@ -27,6 +27,18 @@ public class EntityTurtle extends EntityAnimal { @@ -4889,7 +4889,7 @@ index b2c64b314..515ba50ae 100644 Vec3D vec3d = entity.getMot(); World world = entity.world; diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java -index 84858ba39..9b8114d76 100644 +index 5af554870..c59305ef7 100644 --- a/src/main/java/net/minecraft/server/Vec3D.java +++ b/src/main/java/net/minecraft/server/Vec3D.java @@ -39,6 +39,7 @@ public class Vec3D implements IPosition { @@ -4917,7 +4917,7 @@ index 84858ba39..9b8114d76 100644 return new Vec3D(this.x * d0, this.y * d1, this.z * d2); } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 640bcc566..77c72ec9f 100644 +index d6cdb329c..d13684c3d 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1516,5 +1516,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable { diff --git a/patches/server/0122-Entities-can-use-portals-configuration.patch b/patches/server/0122-Entities-can-use-portals-configuration.patch index d62013c68..299a2cf4e 100644 --- a/patches/server/0122-Entities-can-use-portals-configuration.patch +++ b/patches/server/0122-Entities-can-use-portals-configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 75e8b3367..a73ecbc07 100644 +index 2cff6eb90..6f1537e82 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -2376,7 +2376,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2374,7 +2374,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public void d(BlockPosition blockposition) { if (this.ah()) { this.resetPortalCooldown(); @@ -17,7 +17,7 @@ index 75e8b3367..a73ecbc07 100644 if (!this.world.isClientSide && !blockposition.equals(this.ac)) { this.ac = blockposition.immutableCopy(); } -@@ -2945,7 +2945,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2943,7 +2943,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } public boolean canPortal() {