mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Updated Upstream (Paper & Tuinity)
Upstream has released updates that appears to apply and compile correctly Paper Changes: 7f23e2ca [CI-SKIP] Make travis use 'build' instead of 'patch' (#4592) a7861cbb Updated Upstream (CraftBukkit) 6c512a08 Expose the Entity Counter to allow plugins to use valid and non-conflicting Entity Ids Tuinity Changes: 08581cf More validation 88a2c88 Revert usage of region manager
This commit is contained in:
2
Paper
2
Paper
Submodule Paper updated: 654b792caf...7f23e2cab1
@@ -1 +1 @@
|
||||
1.16.3--7e19ac7c8b13b5d0982f38643247de1a7535deff
|
||||
1.16.3--db6101f7db49d148b1a296a8e6de4f9ff93de134
|
||||
|
||||
@@ -242,12 +242,6 @@ Name craft scheduler threads according to the plugin using them
|
||||
Provides quick access to culprits running far more threads than
|
||||
they should be
|
||||
|
||||
Optimise WorldServer#notify
|
||||
|
||||
Iterating over all of the navigators in the world is pretty expensive.
|
||||
Instead, only iterate over navigators in the current region that are
|
||||
eligible for repathing.
|
||||
|
||||
Retain block place order when capturing blockstates
|
||||
|
||||
Fixes twisted vines not connecting properly when grown via
|
||||
@@ -294,6 +288,10 @@ method was not inlined.
|
||||
Paper recently reverted this optimisation, so it's been reintroduced
|
||||
here.
|
||||
|
||||
Temporarily Revert usage of Region Manager
|
||||
|
||||
Has some stability issues.
|
||||
|
||||
diff --git a/pom.xml b/pom.xml
|
||||
index add3a9c1a9..5e25ae55e4 100644
|
||||
--- a/pom.xml
|
||||
@@ -580,10 +578,10 @@ index 7720578796..e5db29d4ca 100644
|
||||
return Suggestions.empty();
|
||||
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 0000000000..335185168c
|
||||
index 0000000000..4cb10fe69c
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/com/tuinity/tuinity/chunk/SingleThreadChunkRegionManager.java
|
||||
@@ -0,0 +1,406 @@
|
||||
@@ -0,0 +1,408 @@
|
||||
+package com.tuinity.tuinity.chunk;
|
||||
+
|
||||
+import co.aikar.timings.MinecraftTimings;
|
||||
@@ -723,7 +721,7 @@ index 0000000000..335185168c
|
||||
+ }
|
||||
+
|
||||
+ public void addChunk(final int chunkX, final int chunkZ) {
|
||||
+ com.tuinity.tuinity.util.TickThread.softEnsureTickThread("async region manager add chunk"); // Tuinity
|
||||
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("async region manager add chunk"); // Tuinity
|
||||
+ this.addChunkTimings.startTiming();
|
||||
+ try {
|
||||
+ this.getOrCreateAndMergeSection(chunkX >> REGION_CHUNK_SIZE_SHIFT, chunkZ >> REGION_CHUNK_SIZE_SHIFT, null).addChunk(chunkX, chunkZ);
|
||||
@@ -733,13 +731,15 @@ index 0000000000..335185168c
|
||||
+ }
|
||||
+
|
||||
+ public void removeChunk(final int chunkX, final int chunkZ) {
|
||||
+ com.tuinity.tuinity.util.TickThread.softEnsureTickThread("async region manager remove chunk"); // Tuinity
|
||||
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("async region manager remove chunk"); // Tuinity
|
||||
+ this.removeChunkTimings.startTiming();
|
||||
+ try {
|
||||
+ final RegionSection<T> section = this.regionsBySection.get(
|
||||
+ MCUtil.getCoordinateKey(chunkX >> REGION_CHUNK_SIZE_SHIFT, chunkZ >> REGION_CHUNK_SIZE_SHIFT));
|
||||
+ if (section != null) {
|
||||
+ section.removeChunk(chunkX, chunkZ);
|
||||
+ } else {
|
||||
+ throw new IllegalStateException("Cannot remove chunk at (" + chunkX + "," + chunkZ + ") from region state, section does not exist");
|
||||
+ }
|
||||
+ } finally {
|
||||
+ this.removeChunkTimings.stopTiming();
|
||||
@@ -747,7 +747,7 @@ index 0000000000..335185168c
|
||||
+ }
|
||||
+
|
||||
+ public void recalculateRegions() {
|
||||
+ com.tuinity.tuinity.util.TickThread.softEnsureTickThread("async region recalculation"); // Tuinity
|
||||
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("async region recalculation"); // Tuinity
|
||||
+ for (int i = 0, len = this.needsRecalculation.size(); i < len; ++i) {
|
||||
+ final Region<T> region = this.needsRecalculation.removeFirst();
|
||||
+
|
||||
@@ -1380,10 +1380,10 @@ index 0000000000..08ed243259
|
||||
\ 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 0000000000..b0dc0ab473
|
||||
index 0000000000..6d2851ffa3
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/com/tuinity/tuinity/util/maplist/IteratorSafeOrderedReferenceSet.java
|
||||
@@ -0,0 +1,285 @@
|
||||
@@ -0,0 +1,288 @@
|
||||
+package com.tuinity.tuinity.util.maplist;
|
||||
+
|
||||
+import it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap;
|
||||
@@ -1475,6 +1475,9 @@ index 0000000000..b0dc0ab473
|
||||
+ if (this.firstInvalidIndex < 0 || index < this.firstInvalidIndex) {
|
||||
+ this.firstInvalidIndex = index;
|
||||
+ }
|
||||
+ if (this.listElements[index] != element) {
|
||||
+ throw new IllegalStateException();
|
||||
+ }
|
||||
+ this.listElements[index] = null;
|
||||
+ if (this.allowSafeIteration() && this.iteratorCount == 0 && this.getFragFactor() >= this.maxFragFactor) {
|
||||
+ this.defrag();
|
||||
@@ -2603,7 +2606,7 @@ index 3c7b225edb..1b750da9e0 100644
|
||||
|
||||
for (java.util.Iterator<Entry<ArraySetSorted<Ticket<?>>>> iterator = this.tickets.long2ObjectEntrySet().fastIterator(); iterator.hasNext();) {
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
index 45c142c227..193af8b512 100644
|
||||
index 45c142c227..b74ff6b9f3 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
@@ -22,6 +22,12 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; // Paper
|
||||
@@ -2917,7 +2920,7 @@ index 45c142c227..193af8b512 100644
|
||||
this.world.getMethodProfiler().enter("broadcast");
|
||||
this.world.timings.broadcastChunkUpdates.startTiming(); // Paper - timings
|
||||
- playerchunk.a((Chunk) optional.get());
|
||||
+ playerchunk.a(chunk); // Tuinity
|
||||
+ playerchunk.a(chunk); // Tuinity
|
||||
this.world.timings.broadcastChunkUpdates.stopTiming(); // Paper - timings
|
||||
this.world.getMethodProfiler().exit();
|
||||
- Optional<Chunk> optional1 = ((Either) playerchunk.b().getNow(PlayerChunk.UNLOADED_CHUNK)).left();
|
||||
@@ -3153,7 +3156,7 @@ index 550232cb38..229c3b0f0c 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 5e1978d1c9..0881a17d20 100644
|
||||
index ebdbbeb1b5..6bc0299d15 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -136,7 +136,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -3771,7 +3774,7 @@ index ff74be1451..653ba0f1d8 100644
|
||||
0, 2, 60L, TimeUnit.SECONDS,
|
||||
new LinkedBlockingQueue<Runnable>(),
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 883c17f00b..64f7e448ca 100644
|
||||
index 883c17f00b..93c4f29e1e 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<TickTas
|
||||
@@ -3947,7 +3950,7 @@ index 883c17f00b..64f7e448ca 100644
|
||||
+ // Tuinity - replace logic
|
||||
worldserver.timings.doTick.startTiming(); // Spigot
|
||||
worldserver.doTick(booleansupplier);
|
||||
+ worldserver.getChunkProvider().playerChunkMap.dataRegionManager.recalculateRegions(); // Tuinity
|
||||
+ //worldserver.getChunkProvider().playerChunkMap.dataRegionManager.recalculateRegions(); // Tuinity
|
||||
worldserver.timings.doTick.stopTiming(); // Spigot
|
||||
- midTickLoadChunks(); // Paper
|
||||
+ // Tuinity - replace logic
|
||||
@@ -3963,42 +3966,6 @@ index 883c17f00b..64f7e448ca 100644
|
||||
}
|
||||
|
||||
public CrashReport b(CrashReport crashreport) {
|
||||
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
index 921b60469d..b494d9c4ce 100644
|
||||
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
@@ -21,7 +21,7 @@ public abstract class NavigationAbstract {
|
||||
protected long j;
|
||||
protected double k;
|
||||
protected float l;
|
||||
- protected boolean m;
|
||||
+ protected boolean m; protected final boolean needsPathRecalculation() { return this.m; } // Tuinity - OBFHELPER
|
||||
protected long n;
|
||||
protected PathfinderAbstract o;
|
||||
private BlockPosition p;
|
||||
@@ -30,6 +30,13 @@ public abstract class NavigationAbstract {
|
||||
private final Pathfinder s; public Pathfinder getPathfinder() { return this.s; } // Paper - OBFHELPER
|
||||
private boolean t;
|
||||
|
||||
+ // Tuinity start
|
||||
+ public boolean isViableForPathRecalculationChecking() {
|
||||
+ return !this.needsPathRecalculation() &&
|
||||
+ (this.c != null && !this.c.c() && this.c.e() != 0);
|
||||
+ }
|
||||
+ // Tuinity end
|
||||
+
|
||||
public NavigationAbstract(EntityInsentient entityinsentient, World world) {
|
||||
this.g = Vec3D.ORIGIN;
|
||||
this.h = BaseBlockPosition.ZERO;
|
||||
@@ -393,7 +400,7 @@ public abstract class NavigationAbstract {
|
||||
}
|
||||
|
||||
public void b(BlockPosition blockposition) {
|
||||
- if (this.c != null && !this.c.c() && this.c.e() != 0) {
|
||||
+ if (this.c != null && !this.c.c() && this.c.e() != 0) { // Tuinity - diff on change - needed for isViableForPathRecalculationChecking()
|
||||
PathPoint pathpoint = this.c.d();
|
||||
Vec3D vec3d = new Vec3D(((double) pathpoint.a + this.a.locX()) / 2.0D, ((double) pathpoint.b + this.a.locY()) / 2.0D, ((double) pathpoint.c + this.a.locZ()) / 2.0D);
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
|
||||
index c9b36e6040..aa1597c772 100644
|
||||
--- a/src/main/java/net/minecraft/server/NetworkManager.java
|
||||
@@ -4420,7 +4387,7 @@ index 6ef71230ef..83179ef379 100644
|
||||
if (chunk != null) {
|
||||
playerchunkmap.callbackExecutor.execute(() -> {
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
index fcd3388d88..20f59df866 100644
|
||||
index fcd3388d88..a345699f49 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 {
|
||||
@@ -4490,21 +4457,13 @@ index fcd3388d88..20f59df866 100644
|
||||
int chunkX = MCUtil.getChunkCoordinate(player.locX());
|
||||
int chunkZ = MCUtil.getChunkCoordinate(player.locZ());
|
||||
// Note: players need to be explicitly added to distance maps before they can be updated
|
||||
@@ -277,6 +277,29 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -277,6 +277,21 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
+ // Tuinity start
|
||||
+ public static enum RegionData implements com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.RegionDataCreator<RegionData> {
|
||||
+ // Tuinity start - optimise notify()
|
||||
+ PATHING_NAVIGATORS() {
|
||||
+ @Override
|
||||
+ public Object createData(com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.RegionSection<RegionData> section,
|
||||
+ com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager<RegionData> regionManager) {
|
||||
+ return new com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<>(true);
|
||||
+ }
|
||||
+ }
|
||||
+ // Tuinity end - optimise notify()
|
||||
+
|
||||
+ ;
|
||||
+
|
||||
+ @Override
|
||||
@@ -4520,17 +4479,17 @@ index fcd3388d88..20f59df866 100644
|
||||
private final java.util.concurrent.ExecutorService lightThread;
|
||||
public PlayerChunkMap(WorldServer worldserver, Convertable.ConversionSession convertable_conversionsession, DataFixer datafixer, DefinedStructureManager definedstructuremanager, Executor executor, IAsyncTaskHandler<Runnable> iasynctaskhandler, ILightAccess ilightaccess, ChunkGenerator chunkgenerator, WorldLoadListener worldloadlistener, Supplier<WorldPersistentData> supplier, int i, boolean flag) {
|
||||
super(new File(convertable_conversionsession.a(worldserver.getDimensionKey()), "region"), datafixer, flag);
|
||||
@@ -444,6 +467,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -444,6 +459,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
PlayerChunkMap.this.sendChunk(player, new ChunkCoordIntPair(rangeX, rangeZ), null, true, false); // unloaded, loaded
|
||||
});
|
||||
// Paper end - no-tick view distance
|
||||
+ // Tuinity start
|
||||
+ this.dataRegionManager = new com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager<>(this.world, RegionData.class, 2, (1.0 / 3.0), "Data");
|
||||
+ this.dataRegionManager = null;//new com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager<>(this.world, RegionData.class, 2, (1.0 / 3.0), "Data");
|
||||
+ // Tuinity end
|
||||
}
|
||||
// Paper start - Chunk Prioritization
|
||||
public void queueHolderUpdate(PlayerChunk playerchunk) {
|
||||
@@ -756,6 +782,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -756,6 +774,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
@Nullable
|
||||
private PlayerChunk a(long i, int j, @Nullable PlayerChunk playerchunk, int k) {
|
||||
@@ -4539,15 +4498,15 @@ index fcd3388d88..20f59df866 100644
|
||||
if (k > PlayerChunkMap.GOLDEN_TICKET && j > PlayerChunkMap.GOLDEN_TICKET) {
|
||||
return playerchunk;
|
||||
} else {
|
||||
@@ -778,6 +806,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -778,6 +798,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
playerchunk.a(j);
|
||||
} else {
|
||||
playerchunk = new PlayerChunk(new ChunkCoordIntPair(i), j, this.lightEngine, this.p, this);
|
||||
+ this.dataRegionManager.addChunk(playerchunk.location.x, playerchunk.location.z); // Tuinity
|
||||
+ //this.dataRegionManager.addChunk(playerchunk.location.x, playerchunk.location.z); // Tuinity
|
||||
}
|
||||
|
||||
this.updatingChunks.put(i, playerchunk);
|
||||
@@ -970,7 +999,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -970,7 +991,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
|
||||
com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave(this.world, chunkPos.x, chunkPos.z,
|
||||
@@ -4556,7 +4515,7 @@ index fcd3388d88..20f59df866 100644
|
||||
|
||||
if (!chunk.isNeedsSaving()) {
|
||||
return;
|
||||
@@ -1004,7 +1033,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1004,7 +1025,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
asyncSaveData = ChunkRegionLoader.getAsyncSaveData(this.world, chunk);
|
||||
}
|
||||
|
||||
@@ -4565,7 +4524,7 @@ index fcd3388d88..20f59df866 100644
|
||||
asyncSaveData, chunk);
|
||||
|
||||
chunk.setLastSaved(this.world.getTime());
|
||||
@@ -1012,6 +1041,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1012,6 +1033,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -4574,7 +4533,7 @@ index fcd3388d88..20f59df866 100644
|
||||
private void a(long i, PlayerChunk playerchunk) {
|
||||
CompletableFuture<IChunkAccess> completablefuture = playerchunk.getChunkSave();
|
||||
Consumer<IChunkAccess> consumer = (ichunkaccess) -> { // CraftBukkit - decompile error
|
||||
@@ -1020,7 +1051,16 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1020,7 +1043,16 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
if (completablefuture1 != completablefuture) {
|
||||
this.a(i, playerchunk);
|
||||
} else {
|
||||
@@ -4592,16 +4551,16 @@ index fcd3388d88..20f59df866 100644
|
||||
if (ichunkaccess instanceof Chunk) {
|
||||
((Chunk) ichunkaccess).setLoaded(false);
|
||||
}
|
||||
@@ -1044,6 +1084,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1044,6 +1076,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
this.lightEngine.queueUpdate();
|
||||
this.worldLoadListener.a(ichunkaccess.getPos(), (ChunkStatus) null);
|
||||
}
|
||||
+ if (removed) this.dataRegionManager.removeChunk(playerchunk.location.x, playerchunk.location.z); // Tuinity
|
||||
+ //if (removed) this.dataRegionManager.removeChunk(playerchunk.location.x, playerchunk.location.z); // Tuinity
|
||||
+ } finally { this.unloadingPlayerChunk = unloadingBefore; } // Tuinity - do not allow ticket level changes while unloading chunks
|
||||
|
||||
}
|
||||
};
|
||||
@@ -1059,6 +1101,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1059,6 +1093,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
|
||||
protected boolean b() {
|
||||
@@ -4609,7 +4568,7 @@ index fcd3388d88..20f59df866 100644
|
||||
if (!this.updatingChunksModified) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -1246,7 +1289,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1246,7 +1281,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
// Paper end
|
||||
this.mailboxWorldGen.a(ChunkTaskQueueSorter.a(playerchunk, runnable));
|
||||
@@ -4621,7 +4580,7 @@ index fcd3388d88..20f59df866 100644
|
||||
}
|
||||
|
||||
protected void c(ChunkCoordIntPair chunkcoordintpair) {
|
||||
@@ -1498,6 +1544,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1498,6 +1536,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
|
||||
public void setViewDistance(int i) { // Paper - public
|
||||
@@ -4629,7 +4588,7 @@ index fcd3388d88..20f59df866 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 +1558,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -1511,6 +1550,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
// Paper start - no-tick view distance
|
||||
public final void setNoTickViewDistance(int viewDistance) {
|
||||
@@ -4637,7 +4596,7 @@ index fcd3388d88..20f59df866 100644
|
||||
viewDistance = viewDistance == -1 ? -1 : MathHelper.clamp(viewDistance, 2, 32);
|
||||
|
||||
this.noTickViewDistance = viewDistance;
|
||||
@@ -2037,22 +2085,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -2037,22 +2077,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
private final void processTrackQueue() {
|
||||
this.world.timings.tracker1.startTiming();
|
||||
try {
|
||||
@@ -6507,7 +6466,7 @@ index f011869880..26a8c4ffe2 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 95da2a5602..11b4d62c46 100644
|
||||
index 95da2a5602..215789b762 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;
|
||||
@@ -6998,35 +6957,16 @@ index 95da2a5602..11b4d62c46 100644
|
||||
Entity entity1 = entity.getVehicle();
|
||||
|
||||
/* CraftBukkit start - We prevent spawning in general, so this butchering is not needed
|
||||
@@ -510,6 +926,13 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
gameprofilerfiller.enter("checkDespawn");
|
||||
if (!entity.dead) {
|
||||
entity.checkDespawn();
|
||||
+ // Tuinity start - optimise notify()
|
||||
+ if (entity.inChunk && entity.valid) {
|
||||
+ this.updateNavigatorsInRegion(entity);
|
||||
+ } else {
|
||||
+ this.removeNavigatorsFromData(entity);
|
||||
+ }
|
||||
+ // Tuinity end - optimise notify()
|
||||
}
|
||||
|
||||
gameprofilerfiller.exit();
|
||||
@@ -530,14 +953,20 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -530,7 +946,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
gameprofilerfiller.enter("remove");
|
||||
if (entity.dead) {
|
||||
this.removeEntityFromChunk(entity);
|
||||
- objectiterator.remove();
|
||||
+ this.entitiesById.remove(entity.getId()); // Tuinity
|
||||
this.unregisterEntity(entity);
|
||||
+ } else if (entity.inChunk && entity.valid) { // Tuinity start - optimise notify()
|
||||
+ this.updateNavigatorsInRegion(entity);
|
||||
+ } else {
|
||||
+ this.removeNavigatorsFromData(entity);
|
||||
}
|
||||
+ // Tuinity end - optimise notify()
|
||||
|
||||
gameprofilerfiller.exit();
|
||||
@@ -538,6 +954,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
timings.entityTick.stopTiming(); // Spigot
|
||||
|
||||
@@ -7034,7 +6974,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
this.tickingEntities = false;
|
||||
// Paper start
|
||||
for (java.lang.Runnable run : this.afterEntityTickingTasks) {
|
||||
@@ -549,7 +978,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -549,7 +966,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
this.afterEntityTickingTasks.clear();
|
||||
// Paper end
|
||||
@@ -7043,7 +6983,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
|
||||
Entity entity2;
|
||||
|
||||
@@ -559,7 +988,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -559,7 +976,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
|
||||
timings.tickEntities.stopTiming(); // Spigot
|
||||
@@ -7052,7 +6992,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
this.tickBlockEntities();
|
||||
}
|
||||
|
||||
@@ -805,7 +1234,26 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -805,7 +1222,26 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
}
|
||||
|
||||
@@ -7079,7 +7019,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) {
|
||||
this.chunkCheck(entity);
|
||||
} else {
|
||||
@@ -858,6 +1306,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -858,6 +1294,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
//} finally { timer.stopTiming(); } // Paper - timings - move up
|
||||
|
||||
}
|
||||
@@ -7091,45 +7031,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
}
|
||||
|
||||
public void a(Entity entity, Entity entity1) {
|
||||
@@ -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);
|
||||
+ // Tuinity start
|
||||
+ int oldRegionX = entity.chunkX >> com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.REGION_CHUNK_SIZE_SHIFT;
|
||||
+ int oldRegionZ = entity.chunkZ >> com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.REGION_CHUNK_SIZE_SHIFT;
|
||||
+ int newRegionX = i >> com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.REGION_CHUNK_SIZE_SHIFT;
|
||||
+ int newRegionZ = k >> com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.REGION_CHUNK_SIZE_SHIFT;
|
||||
+ // Tuinity end
|
||||
|
||||
if (!entity.inChunk || entity.chunkX != i || entity.chunkY != j || entity.chunkZ != k) {
|
||||
// Paper start - remove entity if its in a chunk more correctly.
|
||||
@@ -924,6 +1383,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
+ // Tuinity start
|
||||
+ if (oldRegionX != newRegionX || oldRegionZ != newRegionZ) {
|
||||
+ this.removeNavigatorsFromData(entity);
|
||||
+ }
|
||||
+ // Tuinity end
|
||||
+
|
||||
if (entity.inChunk && this.isChunkLoaded(entity.chunkX, entity.chunkZ)) {
|
||||
this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.chunkY);
|
||||
}
|
||||
@@ -937,6 +1402,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
} else {
|
||||
this.getChunkAt(i, k).a(entity);
|
||||
}
|
||||
+ // Tuinity start
|
||||
+ if (entity.inChunk && (oldRegionX != newRegionX || oldRegionZ != newRegionZ)) {
|
||||
+ this.addNavigatorsIfPathingToRegion(entity);
|
||||
+ }
|
||||
+ // Tuinity end
|
||||
}
|
||||
|
||||
this.getMethodProfiler().exit();
|
||||
@@ -1295,7 +1765,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1295,7 +1736,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
Entity entity = (Entity) iterator.next();
|
||||
|
||||
if (!(entity instanceof EntityPlayer)) {
|
||||
@@ -7138,7 +7040,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!")));
|
||||
}
|
||||
|
||||
@@ -1323,6 +1793,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1323,6 +1764,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
public void unregisterEntity(Entity entity) {
|
||||
org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot
|
||||
@@ -7146,7 +7048,7 @@ index 95da2a5602..11b4d62c46 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
|
||||
@@ -1389,17 +1860,108 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1389,12 +1831,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
this.getScoreboard().a(entity);
|
||||
// CraftBukkit start - SPIGOT-5278
|
||||
if (entity instanceof EntityDrowned) {
|
||||
@@ -7164,101 +7066,9 @@ index 95da2a5602..11b4d62c46 100644
|
||||
+ this.navigators.remove(((EntityInsentient) entity).getNavigation()); this.navigatorsForIteration.remove(((EntityInsentient) entity).getNavigation());
|
||||
+ // Tuinity end
|
||||
}
|
||||
+ this.removeNavigatorsFromData(entity); // Tuinity - optimise notify()
|
||||
new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
|
||||
entity.valid = false; // CraftBukkit
|
||||
}
|
||||
|
||||
+ // Tuinity start - optimise notify()
|
||||
+ void removeNavigatorsIfNotPathingFromRegion(Entity entity) {
|
||||
+ com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.RegionSection<PlayerChunkMap.RegionData> section =
|
||||
+ this.getChunkProvider().playerChunkMap.dataRegionManager.getRegionSection(entity.chunkX, entity.chunkZ);
|
||||
+ if (section != null) {
|
||||
+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<NavigationAbstract> navigators = (com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet)section.getOrCreateData(PlayerChunkMap.RegionData.PATHING_NAVIGATORS);
|
||||
+ // Copied from above
|
||||
+ if (entity instanceof EntityDrowned) {
|
||||
+ if (!((EntityDrowned)entity).navigationWater.isViableForPathRecalculationChecking()) {
|
||||
+ navigators.remove(((EntityDrowned)entity).navigationWater);
|
||||
+ }
|
||||
+ if (!((EntityDrowned)entity).navigationLand.isViableForPathRecalculationChecking()) {
|
||||
+ navigators.remove(((EntityDrowned)entity).navigationLand);
|
||||
+ }
|
||||
+ } else if (entity instanceof EntityInsentient) {
|
||||
+ if (!((EntityInsentient)entity).getNavigation().isViableForPathRecalculationChecking()) {
|
||||
+ navigators.remove(((EntityInsentient)entity).getNavigation());
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ void removeNavigatorsFromData(Entity entity) {
|
||||
+ com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.RegionSection<PlayerChunkMap.RegionData> section =
|
||||
+ this.getChunkProvider().playerChunkMap.dataRegionManager.getRegionSection(entity.chunkX, entity.chunkZ);
|
||||
+ if (section != null) {
|
||||
+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<NavigationAbstract> navigators = (com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet)section.getOrCreateData(PlayerChunkMap.RegionData.PATHING_NAVIGATORS);
|
||||
+ // Copied from above
|
||||
+ if (entity instanceof EntityDrowned) {
|
||||
+ navigators.remove(((EntityDrowned)entity).navigationWater);
|
||||
+ navigators.remove(((EntityDrowned)entity).navigationLand);
|
||||
+ } else if (entity instanceof EntityInsentient) {
|
||||
+ navigators.remove(((EntityInsentient)entity).getNavigation());
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ void addNavigatorsIfPathingToRegion(Entity entity) {
|
||||
+ com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.RegionSection<PlayerChunkMap.RegionData> section =
|
||||
+ this.getChunkProvider().playerChunkMap.dataRegionManager.getRegionSection(entity.chunkX, entity.chunkZ);
|
||||
+ if (section != null) {
|
||||
+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<NavigationAbstract> navigators = (com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet)section.getOrCreateData(PlayerChunkMap.RegionData.PATHING_NAVIGATORS);
|
||||
+ // Copied from above
|
||||
+ if (entity instanceof EntityDrowned) {
|
||||
+ if (((EntityDrowned)entity).navigationWater.isViableForPathRecalculationChecking()) {
|
||||
+ navigators.add(((EntityDrowned)entity).navigationWater);
|
||||
+ }
|
||||
+ if (((EntityDrowned)entity).navigationLand.isViableForPathRecalculationChecking()) {
|
||||
+ navigators.add(((EntityDrowned)entity).navigationLand);
|
||||
+ }
|
||||
+ } else if (entity instanceof EntityInsentient) {
|
||||
+ if (((EntityInsentient)entity).getNavigation().isViableForPathRecalculationChecking()) {
|
||||
+ navigators.add(((EntityInsentient)entity).getNavigation());
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ void updateNavigatorsInRegion(Entity entity) {
|
||||
+ com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.RegionSection<PlayerChunkMap.RegionData> section =
|
||||
+ this.getChunkProvider().playerChunkMap.dataRegionManager.getRegionSection(entity.chunkX, entity.chunkZ);
|
||||
+ if (section != null) {
|
||||
+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<NavigationAbstract> navigators = (com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet)section.getOrCreateData(PlayerChunkMap.RegionData.PATHING_NAVIGATORS);
|
||||
+ // Copied from above
|
||||
+ if (entity instanceof EntityDrowned) {
|
||||
+ if (((EntityDrowned)entity).navigationWater.isViableForPathRecalculationChecking()) {
|
||||
+ navigators.add(((EntityDrowned)entity).navigationWater);
|
||||
+ } else {
|
||||
+ navigators.remove(((EntityDrowned)entity).navigationWater);
|
||||
+ }
|
||||
+ if (((EntityDrowned)entity).navigationLand.isViableForPathRecalculationChecking()) {
|
||||
+ navigators.add(((EntityDrowned)entity).navigationLand);
|
||||
+ } else {
|
||||
+ navigators.remove(((EntityDrowned)entity).navigationLand);
|
||||
+ }
|
||||
+ } else if (entity instanceof EntityInsentient) {
|
||||
+ if (((EntityInsentient)entity).getNavigation().isViableForPathRecalculationChecking()) {
|
||||
+ navigators.add(((EntityInsentient)entity).getNavigation());
|
||||
+ } else {
|
||||
+ navigators.remove(((EntityInsentient)entity).getNavigation());
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ // Tuinity end - optimise notify()
|
||||
+
|
||||
private void registerEntity(Entity entity) {
|
||||
org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot
|
||||
// Paper start - don't double enqueue entity registration
|
||||
@@ -1410,7 +1972,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1410,7 +1856,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
return;
|
||||
}
|
||||
// Paper end
|
||||
@@ -7267,7 +7077,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
if (!entity.isQueuedForRegister) { // Paper
|
||||
this.entitiesToAdd.add(entity);
|
||||
entity.isQueuedForRegister = true; // Paper
|
||||
@@ -1418,6 +1980,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1418,6 +1864,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
} else {
|
||||
entity.isQueuedForRegister = false; // Paper
|
||||
this.entitiesById.put(entity.getId(), entity);
|
||||
@@ -7275,7 +7085,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
if (entity instanceof EntityEnderDragon) {
|
||||
EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eJ();
|
||||
int i = aentitycomplexpart.length;
|
||||
@@ -1426,6 +1989,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1426,6 +1873,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
EntityComplexPart entitycomplexpart = aentitycomplexpart[j];
|
||||
|
||||
this.entitiesById.put(entitycomplexpart.getId(), entitycomplexpart);
|
||||
@@ -7283,7 +7093,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1450,12 +2014,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1450,12 +1898,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) {
|
||||
@@ -7303,7 +7113,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
}
|
||||
entity.valid = true; // CraftBukkit
|
||||
this.getChunkProvider().addEntity(entity); // Paper - from above to be below valid=true
|
||||
@@ -1471,7 +2039,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1471,7 +1923,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
|
||||
public void removeEntity(Entity entity) {
|
||||
@@ -7312,7 +7122,7 @@ index 95da2a5602..11b4d62c46 100644
|
||||
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!")));
|
||||
} else {
|
||||
this.removeEntityFromChunk(entity);
|
||||
@@ -1567,13 +2135,32 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1567,13 +2019,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
|
||||
@Override
|
||||
public void notify(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) {
|
||||
@@ -7322,50 +7132,21 @@ index 95da2a5602..11b4d62c46 100644
|
||||
VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition);
|
||||
|
||||
if (VoxelShapes.c(voxelshape, voxelshape1, OperatorBoolean.NOT_SAME)) {
|
||||
+ // Tuinity start - optimise notify()
|
||||
+ com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.Region<PlayerChunkMap.RegionData> region = this.getChunkProvider().playerChunkMap.dataRegionManager.getRegion(blockposition.getX() >> 4, blockposition.getZ() >> 4);
|
||||
+ if (region == null) {
|
||||
+ return;
|
||||
+ }
|
||||
+ // Tuinity end - optimise notify()
|
||||
boolean wasTicking = this.tickingEntities; this.tickingEntities = true; // Paper
|
||||
- Iterator iterator = this.navigators.iterator();
|
||||
+ // Tuinity start
|
||||
+ // Tuinity start - optimise notify()
|
||||
+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator<com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.RegionSection<PlayerChunkMap.RegionData>> sectionIterator = null;
|
||||
+ try {
|
||||
+ for (sectionIterator = region.getSections(); sectionIterator.hasNext();) {
|
||||
+ com.tuinity.tuinity.chunk.SingleThreadChunkRegionManager.RegionSection<PlayerChunkMap.RegionData> section = sectionIterator.next();
|
||||
+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet<NavigationAbstract> navigators = (com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet)section.getData(PlayerChunkMap.RegionData.PATHING_NAVIGATORS);
|
||||
+ if (navigators == null) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator iterator = navigators.iterator();
|
||||
+ // Tuinity end - optimise notify()
|
||||
+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator iterator = this.navigatorsForIteration.iterator();
|
||||
+ try { // Tuinity end
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
NavigationAbstract navigationabstract = (NavigationAbstract) iterator.next();
|
||||
@@ -1581,7 +2168,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
if (!navigationabstract.i()) {
|
||||
@@ -1582,6 +2037,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
navigationabstract.b(blockposition);
|
||||
}
|
||||
- }
|
||||
+ // Tuinity start - optimise notify()
|
||||
+ if (!navigationabstract.isViableForPathRecalculationChecking()) {
|
||||
+ navigators.remove(navigationabstract);
|
||||
+ }
|
||||
+ // Tuinity end - optimise notify()
|
||||
+ }
|
||||
}
|
||||
+ } finally { // Tuinity start
|
||||
+ iterator.finishedIterating();
|
||||
+ } // Tuinity end
|
||||
+ } // Tuinity start - optimise notify()
|
||||
+ } finally {
|
||||
+ if (sectionIterator != null) {
|
||||
+ sectionIterator.finishedIterating();
|
||||
+ }
|
||||
+ } // Tuinity end - optimise notify()
|
||||
|
||||
this.tickingEntities = wasTicking; // Paper
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] AFK API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
index ce4ebc96c..eb62555cb 100644
|
||||
index ce4ebc96c0..eb62555cb2 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
@@ -84,6 +84,15 @@ public abstract class EntityHuman extends EntityLiving {
|
||||
@@ -25,7 +25,7 @@ index ce4ebc96c..eb62555cb 100644
|
||||
super(EntityTypes.PLAYER, world);
|
||||
this.bL = ItemStack.b;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index 8b1e866b3..237b85135 100644
|
||||
index 8e1655a975..3d77298806 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -1719,8 +1719,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -84,7 +84,7 @@ index 8b1e866b3..237b85135 100644
|
||||
return this.serverStatisticManager;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
index 882b82d89..90c37e4a8 100644
|
||||
index 882b82d895..90c37e4a8e 100644
|
||||
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
@@ -149,28 +149,18 @@ public interface IEntityAccess {
|
||||
@@ -129,7 +129,7 @@ index 882b82d89..90c37e4a8 100644
|
||||
|
||||
@Nullable
|
||||
diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java
|
||||
index a9b0c78d6..c8e384ab6 100644
|
||||
index a9b0c78d6d..c8e384ab69 100644
|
||||
--- a/src/main/java/net/minecraft/server/IEntitySelector.java
|
||||
+++ b/src/main/java/net/minecraft/server/IEntitySelector.java
|
||||
@@ -7,6 +7,7 @@ import javax.annotation.Nullable;
|
||||
@@ -154,7 +154,7 @@ index a9b0c78d6..c8e384ab6 100644
|
||||
// Paper start
|
||||
public static final Predicate<Entity> affectsSpawning = (entity) -> {
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
index 602ed9aaa..43a88b728 100644
|
||||
index e4aab53484..02feb7beca 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
@@ -236,6 +236,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
@@ -198,7 +198,7 @@ index 602ed9aaa..43a88b728 100644
|
||||
if (from.getX() != Double.MAX_VALUE) {
|
||||
Location oldTo = to.clone();
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 14318d046..ebf78f2cc 100644
|
||||
index 215789b762..aac4e489a5 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -843,7 +843,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -210,7 +210,7 @@ index 14318d046..ebf78f2cc 100644
|
||||
})) {
|
||||
// CraftBukkit start
|
||||
long l = this.worldData.getDayTime() + 24000L;
|
||||
@@ -1176,7 +1176,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1164,7 +1164,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
while (iterator.hasNext()) {
|
||||
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
|
||||
|
||||
@@ -220,7 +220,7 @@ index 14318d046..ebf78f2cc 100644
|
||||
} else if (entityplayer.isSleeping()) {
|
||||
++j;
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
index 803a7ff92..d699a9168 100644
|
||||
index 803a7ff92a..d699a91685 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
@@ -1,6 +1,7 @@
|
||||
@@ -248,7 +248,7 @@ index 803a7ff92..d699a9168 100644
|
||||
private static void timingsSettings() {
|
||||
timingsUrl = getString("settings.timings.url", timingsUrl);
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 361f7857e..2578a4677 100644
|
||||
index 361f7857e4..2578a4677d 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -56,4 +56,15 @@ public class PurpurWorldConfig {
|
||||
@@ -268,7 +268,7 @@ index 361f7857e..2578a4677 100644
|
||||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 715d2c5e8..4904cb2ff 100644
|
||||
index 715d2c5e88..4904cb2ff1 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -2155,4 +2155,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -294,7 +294,7 @@ index 715d2c5e8..4904cb2ff 100644
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index 37e930e0c..89dc611cd 100644
|
||||
index 0b93635ba5..b47d6fa2de 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -207,6 +207,7 @@ public class ActivationRange
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index ebf78f2cc..646f9180f 100644
|
||||
index aac4e489a5..b75bbca4da 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -1053,12 +1053,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -1041,12 +1041,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
boolean flag1 = this.getGameRules().getBoolean(GameRules.DO_MOB_SPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.b() * paperConfig.skeleHorseSpawnChance; // Paper
|
||||
|
||||
if (flag1) {
|
||||
@@ -34,7 +34,7 @@ index ebf78f2cc..646f9180f 100644
|
||||
|
||||
EntityLightning entitylightning = (EntityLightning) EntityTypes.LIGHTNING_BOLT.a((World) this);
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 0073e3b85..b652bfbdc 100644
|
||||
index 0073e3b85a..b652bfbdc3 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -145,4 +145,9 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Cat spawning options
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
index 90c37e4a8..7a42feb16 100644
|
||||
index 90c37e4a8e..7a42feb16e 100644
|
||||
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
|
||||
@@ -44,6 +44,7 @@ public interface IEntityAccess {
|
||||
@@ -17,7 +17,7 @@ index 90c37e4a8..7a42feb16 100644
|
||||
return this.a(oclass, axisalignedbb, IEntitySelector.g);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MobSpawnerCat.java b/src/main/java/net/minecraft/server/MobSpawnerCat.java
|
||||
index 5e17868a7..6d0ebd8af 100644
|
||||
index 5e17868a76..6d0ebd8afe 100644
|
||||
--- a/src/main/java/net/minecraft/server/MobSpawnerCat.java
|
||||
+++ b/src/main/java/net/minecraft/server/MobSpawnerCat.java
|
||||
@@ -16,7 +16,7 @@ public class MobSpawnerCat implements MobSpawner {
|
||||
@@ -62,7 +62,7 @@ index 5e17868a7..6d0ebd8af 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java
|
||||
index adacfce6f..21e401acd 100644
|
||||
index adacfce6f3..21e401acd7 100644
|
||||
--- a/src/main/java/net/minecraft/server/VillagePlace.java
|
||||
+++ b/src/main/java/net/minecraft/server/VillagePlace.java
|
||||
@@ -45,6 +45,7 @@ public class VillagePlace extends RegionFileSection<VillagePlaceSection> {
|
||||
@@ -74,7 +74,7 @@ index adacfce6f..21e401acd 100644
|
||||
return this.c(predicate, blockposition, i, villageplace_occupancy).count();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/VillagePlaceType.java b/src/main/java/net/minecraft/server/VillagePlaceType.java
|
||||
index a5718af9b..b6b4c8c49 100644
|
||||
index a5718af9b6..b6b4c8c491 100644
|
||||
--- a/src/main/java/net/minecraft/server/VillagePlaceType.java
|
||||
+++ b/src/main/java/net/minecraft/server/VillagePlaceType.java
|
||||
@@ -44,7 +44,7 @@ public class VillagePlaceType {
|
||||
@@ -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 07b91db7e..27913bb9c 100644
|
||||
index b75bbca4da..e2f714382c 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -2565,6 +2565,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
@@ -2422,6 +2422,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ index 07b91db7e..27913bb9c 100644
|
||||
return this.getChunkProvider().j();
|
||||
}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index f01c74a2e..b32f4d74a 100644
|
||||
index f01c74a2ea..b32f4d74a0 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -118,6 +118,15 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Ridables
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/AttributeDefaults.java b/src/main/java/net/minecraft/server/AttributeDefaults.java
|
||||
index da66cf0a4..3aa05a80f 100644
|
||||
index da66cf0a45..3aa05a80fe 100644
|
||||
--- a/src/main/java/net/minecraft/server/AttributeDefaults.java
|
||||
+++ b/src/main/java/net/minecraft/server/AttributeDefaults.java
|
||||
@@ -9,7 +9,80 @@ import org.apache.logging.log4j.Logger;
|
||||
@@ -91,7 +91,7 @@ index da66cf0a4..3aa05a80f 100644
|
||||
public static AttributeProvider a(EntityTypes<? extends EntityLiving> entitytypes) {
|
||||
return (AttributeProvider) AttributeDefaults.b.get(entitytypes);
|
||||
diff --git a/src/main/java/net/minecraft/server/AttributeProvider.java b/src/main/java/net/minecraft/server/AttributeProvider.java
|
||||
index dd235a6fc..ac902c614 100644
|
||||
index dd235a6fc4..ac902c614d 100644
|
||||
--- a/src/main/java/net/minecraft/server/AttributeProvider.java
|
||||
+++ b/src/main/java/net/minecraft/server/AttributeProvider.java
|
||||
@@ -101,6 +101,7 @@ public class AttributeProvider {
|
||||
@@ -103,7 +103,7 @@ index dd235a6fc..ac902c614 100644
|
||||
this.b = true;
|
||||
return new AttributeProvider(this.a);
|
||||
diff --git a/src/main/java/net/minecraft/server/ControllerLookDolphin.java b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
|
||||
index e5bdddfc1..8200ba60b 100644
|
||||
index e5bdddfc14..8200ba60b7 100644
|
||||
--- a/src/main/java/net/minecraft/server/ControllerLookDolphin.java
|
||||
+++ b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -124,7 +124,7 @@ index e5bdddfc1..8200ba60b 100644
|
||||
this.d = false;
|
||||
this.a.aC = this.a(this.a.aC, this.h() + 20.0F, this.b);
|
||||
diff --git a/src/main/java/net/minecraft/server/ControllerMove.java b/src/main/java/net/minecraft/server/ControllerMove.java
|
||||
index 8f9fb058c..eaf446946 100644
|
||||
index 8f9fb058c1..eaf4469468 100644
|
||||
--- a/src/main/java/net/minecraft/server/ControllerMove.java
|
||||
+++ b/src/main/java/net/minecraft/server/ControllerMove.java
|
||||
@@ -6,9 +6,9 @@ public class ControllerMove {
|
||||
@@ -141,7 +141,7 @@ index 8f9fb058c..eaf446946 100644
|
||||
|
||||
public ControllerMove(EntityInsentient entityinsentient) {
|
||||
diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java
|
||||
index bd0267ee4..8b36ac2b0 100644
|
||||
index bd0267ee4b..8b36ac2b09 100644
|
||||
--- a/src/main/java/net/minecraft/server/DamageSource.java
|
||||
+++ b/src/main/java/net/minecraft/server/DamageSource.java
|
||||
@@ -56,6 +56,7 @@ public class DamageSource {
|
||||
@@ -161,7 +161,7 @@ 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 1f8ea2eeb..ade77f6fe 100644
|
||||
index abe17d1535..976faf3bf1 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -80,7 +80,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@@ -278,10 +278,10 @@ index 1f8ea2eeb..ade77f6fe 100644
|
||||
@Override
|
||||
public void sendMessage(IChatBaseComponent ichatbasecomponent, UUID uuid) {}
|
||||
|
||||
@@ -3612,4 +3641,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
|
||||
void accept(Entity entity, double d0, double d1, double d2);
|
||||
@@ -3618,4 +3647,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
return entityCount.incrementAndGet();
|
||||
}
|
||||
// Paper end
|
||||
+
|
||||
+ // Purpur start
|
||||
+ private EntityHuman rider;
|
||||
@@ -327,7 +327,7 @@ index 1f8ea2eeb..ade77f6fe 100644
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
|
||||
index f230d84fa..bbf61d011 100644
|
||||
index f230d84faa..bbf61d0111 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 {
|
||||
@@ -403,7 +403,7 @@ index f230d84fa..bbf61d011 100644
|
||||
BlockPosition blockposition = this.getChunkCoordinates();
|
||||
BlockPosition blockposition1 = blockposition.up();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityBee.java b/src/main/java/net/minecraft/server/EntityBee.java
|
||||
index b1ff30fb1..0ed37e18f 100644
|
||||
index b1ff30fb15..0ed37e18f7 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityBee.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityBee.java
|
||||
@@ -37,6 +37,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB
|
||||
@@ -534,7 +534,7 @@ index b1ff30fb1..0ed37e18f 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java
|
||||
index f55f12530..22b9c84b0 100644
|
||||
index f55f125306..22b9c84b02 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityBlaze.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityBlaze.java
|
||||
@@ -10,6 +10,7 @@ public class EntityBlaze extends EntityMonster {
|
||||
@@ -614,7 +614,7 @@ index f55f12530..22b9c84b0 100644
|
||||
if (this.c <= 0) {
|
||||
this.c = 100;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
|
||||
index 79de11ce2..eba8e77ca 100644
|
||||
index 79de11ce2f..eba8e77ca7 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityCat.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityCat.java
|
||||
@@ -41,6 +41,25 @@ public class EntityCat extends EntityTameableAnimal {
|
||||
@@ -694,7 +694,7 @@ index 79de11ce2..eba8e77ca 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityCaveSpider.java b/src/main/java/net/minecraft/server/EntityCaveSpider.java
|
||||
index 776f3d25a..2e1f2dec1 100644
|
||||
index 776f3d25a6..2e1f2dec17 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityCaveSpider.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityCaveSpider.java
|
||||
@@ -8,6 +8,18 @@ public class EntityCaveSpider extends EntitySpider {
|
||||
@@ -717,7 +717,7 @@ index 776f3d25a..2e1f2dec1 100644
|
||||
return EntitySpider.eK().a(GenericAttributes.MAX_HEALTH, 12.0D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java
|
||||
index 26dee32bf..feca1b369 100644
|
||||
index 26dee32bfe..feca1b3693 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityChicken.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityChicken.java
|
||||
@@ -18,6 +18,16 @@ public class EntityChicken extends EntityAnimal {
|
||||
@@ -754,7 +754,7 @@ index 26dee32bf..feca1b369 100644
|
||||
} else {
|
||||
this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.4D));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityCod.java b/src/main/java/net/minecraft/server/EntityCod.java
|
||||
index 9a99af6e9..039fae4c2 100644
|
||||
index 9a99af6e9c..039fae4c29 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityCod.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityCod.java
|
||||
@@ -6,6 +6,18 @@ public class EntityCod extends EntityFishSchool {
|
||||
@@ -777,7 +777,7 @@ index 9a99af6e9..039fae4c2 100644
|
||||
protected ItemStack eK() {
|
||||
return new ItemStack(Items.COD_BUCKET);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityComplexPart.java b/src/main/java/net/minecraft/server/EntityComplexPart.java
|
||||
index c1b1bd123..26ff230ef 100644
|
||||
index c1b1bd123e..26ff230ef7 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityComplexPart.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityComplexPart.java
|
||||
@@ -47,4 +47,11 @@ public class EntityComplexPart extends Entity {
|
||||
@@ -793,7 +793,7 @@ index c1b1bd123..26ff230ef 100644
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
|
||||
index cfb009c81..18c2d5393 100644
|
||||
index cfb009c811..18c2d53937 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityCow.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityCow.java
|
||||
@@ -11,9 +11,22 @@ public class EntityCow extends EntityAnimal {
|
||||
@@ -877,7 +877,7 @@ index cfb009c81..18c2d5393 100644
|
||||
this.world.addEntity(mooshroom);
|
||||
this.die();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
|
||||
index 013639cc9..3ddfb5f34 100644
|
||||
index 013639cc90..3ddfb5f340 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
|
||||
@@ -18,12 +18,27 @@ public class EntityCreeper extends EntityMonster {
|
||||
@@ -995,7 +995,7 @@ index 013639cc9..3ddfb5f34 100644
|
||||
}
|
||||
// Paper end
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java
|
||||
index cde5c46fe..306454060 100644
|
||||
index cde5c46fee..3064540602 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityDolphin.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityDolphin.java
|
||||
@@ -17,6 +17,7 @@ public class EntityDolphin extends EntityWaterAnimal {
|
||||
@@ -1128,7 +1128,7 @@ index cde5c46fe..306454060 100644
|
||||
this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityDrowned.java b/src/main/java/net/minecraft/server/EntityDrowned.java
|
||||
index 6853ba319..8aa53c617 100644
|
||||
index 6853ba3194..8aa53c617b 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityDrowned.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityDrowned.java
|
||||
@@ -22,6 +22,16 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity {
|
||||
@@ -1184,7 +1184,7 @@ index 6853ba319..8aa53c617 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
||||
index d617b5345..088aede37 100644
|
||||
index d617b5345d..088aede370 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
|
||||
@@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
|
||||
@@ -1334,7 +1334,7 @@ index d617b5345..088aede37 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
index fde60d6c8..768764930 100644
|
||||
index fde60d6c89..7687649300 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
|
||||
@@ -30,9 +30,22 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
|
||||
@@ -1402,7 +1402,7 @@ index fde60d6c8..768764930 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java
|
||||
index c4b1f318f..30f602bbc 100644
|
||||
index c4b1f318f7..30f602bbc4 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityEndermite.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityEndermite.java
|
||||
@@ -12,14 +12,28 @@ public class EntityEndermite extends EntityMonster {
|
||||
@@ -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 ae7b269de..9abbbd59f 100644
|
||||
index ae7b269def..9abbbd59f4 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 {
|
||||
@@ -1496,7 +1496,7 @@ index ae7b269de..9abbbd59f 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java
|
||||
index 27d0f9351..d281114e5 100644
|
||||
index 27d0f93510..d281114e5a 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityFish.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityFish.java
|
||||
@@ -70,13 +70,12 @@ public abstract class EntityFish extends EntityWaterAnimal {
|
||||
@@ -1558,7 +1558,7 @@ index 27d0f9351..d281114e5 100644
|
||||
this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityFishSchool.java b/src/main/java/net/minecraft/server/EntityFishSchool.java
|
||||
index 08372b722..6a8e15f01 100644
|
||||
index 08372b7226..6a8e15f016 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityFishSchool.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityFishSchool.java
|
||||
@@ -16,7 +16,7 @@ public abstract class EntityFishSchool extends EntityFish {
|
||||
@@ -1571,7 +1571,7 @@ index 08372b722..6a8e15f01 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
|
||||
index 04b2bbea0..a73335e36 100644
|
||||
index 04b2bbea0c..a73335e362 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityFox.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityFox.java
|
||||
@@ -55,6 +55,39 @@ public class EntityFox extends EntityAnimal {
|
||||
@@ -1695,7 +1695,7 @@ index 04b2bbea0..a73335e36 100644
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java
|
||||
index a67611c4f..e857d6f85 100644
|
||||
index a67611c4f9..e857d6f854 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityGhast.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityGhast.java
|
||||
@@ -14,11 +14,42 @@ public class EntityGhast extends EntityFlying implements IMonster {
|
||||
@@ -1769,7 +1769,7 @@ index a67611c4f..e857d6f85 100644
|
||||
if (this.j-- <= 0) {
|
||||
this.j += this.i.getRandom().nextInt(5) + 2;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
|
||||
index 8dce2aad7..24eb6dca5 100644
|
||||
index 8dce2aad77..24eb6dca5e 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
|
||||
@@ -11,16 +11,28 @@ public class EntityGiantZombie extends EntityMonster {
|
||||
@@ -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 d42750fdd..881b2dd45 100644
|
||||
index d42750fdd4..881b2dd45f 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 {
|
||||
@@ -1898,7 +1898,7 @@ index d42750fdd..881b2dd45 100644
|
||||
Vec3D vec3d = new Vec3D(this.b - this.i.locX(), this.c - this.i.locY(), this.d - this.i.locZ());
|
||||
double d0 = vec3d.f();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityGuardianElder.java b/src/main/java/net/minecraft/server/EntityGuardianElder.java
|
||||
index 5d2870f0e..8148bc8b4 100644
|
||||
index 5d2870f0e8..8148bc8b4e 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityGuardianElder.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityGuardianElder.java
|
||||
@@ -16,6 +16,18 @@ public class EntityGuardianElder extends EntityGuardian {
|
||||
@@ -1921,7 +1921,7 @@ index 5d2870f0e..8148bc8b4 100644
|
||||
return EntityGuardian.eM().a(GenericAttributes.MOVEMENT_SPEED, 0.30000001192092896D).a(GenericAttributes.ATTACK_DAMAGE, 8.0D).a(GenericAttributes.MAX_HEALTH, 80.0D);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHoglin.java b/src/main/java/net/minecraft/server/EntityHoglin.java
|
||||
index cf64c8ca2..7f642fe67 100644
|
||||
index cf64c8ca2c..7f642fe674 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHoglin.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHoglin.java
|
||||
@@ -13,13 +13,25 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin {
|
||||
@@ -1978,7 +1978,7 @@ index cf64c8ca2..7f642fe67 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java
|
||||
index 069111952..bd63a25e2 100644
|
||||
index 069111952a..bd63a25e2c 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHorse.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHorse.java
|
||||
@@ -12,6 +12,13 @@ public class EntityHorse extends EntityHorseAbstract {
|
||||
@@ -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 c7757f9d0..a490d0715 100644
|
||||
index c7757f9d0a..a490d0715d 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
|
||||
@@ -2036,7 +2036,7 @@ index c7757f9d0..a490d0715 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHorseDonkey.java b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
|
||||
index 767d18d5a..cb8aee569 100644
|
||||
index 767d18d5a0..cb8aee5691 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHorseDonkey.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
|
||||
@@ -8,6 +8,13 @@ public class EntityHorseDonkey extends EntityHorseChestedAbstract {
|
||||
@@ -2054,7 +2054,7 @@ index 767d18d5a..cb8aee569 100644
|
||||
protected SoundEffect getSoundAmbient() {
|
||||
super.getSoundAmbient();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHorseMule.java b/src/main/java/net/minecraft/server/EntityHorseMule.java
|
||||
index 3dd4d4f0f..243aeb736 100644
|
||||
index 3dd4d4f0f3..243aeb736e 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHorseMule.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHorseMule.java
|
||||
@@ -8,6 +8,12 @@ public class EntityHorseMule extends EntityHorseChestedAbstract {
|
||||
@@ -2071,7 +2071,7 @@ index 3dd4d4f0f..243aeb736 100644
|
||||
protected SoundEffect getSoundAmbient() {
|
||||
super.getSoundAmbient();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
|
||||
index abbc12c8e..b39feed7a 100644
|
||||
index abbc12c8e0..b39feed7a9 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
|
||||
@@ -12,6 +12,18 @@ public class EntityHorseSkeleton extends EntityHorseAbstract {
|
||||
@@ -2112,7 +2112,7 @@ index abbc12c8e..b39feed7a 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java
|
||||
index acc5b8ca9..6e9806662 100644
|
||||
index acc5b8ca90..6e9806662d 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHorseZombie.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHorseZombie.java
|
||||
@@ -8,6 +8,18 @@ public class EntityHorseZombie extends EntityHorseAbstract {
|
||||
@@ -2142,7 +2142,7 @@ index acc5b8ca9..6e9806662 100644
|
||||
+ protected void eV() { if (world.purpurConfig.zombieHorseCanSwim) goalSelector.a(0, new PathfinderGoalFloat(this)); } // Purpur
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
index 48f9feaea..6c2b57a29 100644
|
||||
index 48f9feaea1..6c2b57a294 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
@@ -2148,4 +2148,15 @@ public abstract class EntityHuman extends EntityLiving {
|
||||
@@ -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 f5c9e4e0a..5e6c7e317 100644
|
||||
index f5c9e4e0ae..5e6c7e317a 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 f5c9e4e0a..5e6c7e317 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 7465e867b..2bda9d6c6 100644
|
||||
index 7465e867ba..2bda9d6c6c 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 {
|
||||
@@ -2320,7 +2320,7 @@ index 7465e867b..2bda9d6c6 100644
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
|
||||
index bdff23688..954000a7b 100644
|
||||
index bdff236883..954000a7b4 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityIronGolem.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityIronGolem.java
|
||||
@@ -22,9 +22,22 @@ public class EntityIronGolem extends EntityGolem implements IEntityAngerable {
|
||||
@@ -2371,7 +2371,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 a2d50a1fe..b8f59f29a 100644
|
||||
index a2d50a1fef..b8f59f29a4 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 {
|
||||
@@ -2406,7 +2406,7 @@ index a2d50a1fe..b8f59f29a 100644
|
||||
this.bu = f;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
|
||||
index e90ff597d..a6ca8e68e 100644
|
||||
index e90ff597d1..a6ca8e68e4 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLlama.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
|
||||
@@ -18,7 +18,46 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
||||
@@ -2482,7 +2482,7 @@ index e90ff597d..a6ca8e68e 100644
|
||||
|
||||
return i == -1 ? null : EnumColor.fromColorIndex(i);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
||||
index 665a9e852..f65e93b74 100644
|
||||
index 665a9e8524..f65e93b742 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
|
||||
@@ -11,6 +11,23 @@ public class EntityLlamaTrader extends EntityLlama {
|
||||
@@ -2510,7 +2510,7 @@ index 665a9e852..f65e93b74 100644
|
||||
protected EntityLlama fz() {
|
||||
return (EntityLlama) EntityTypes.TRADER_LLAMA.a(this.world);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityMagmaCube.java b/src/main/java/net/minecraft/server/EntityMagmaCube.java
|
||||
index 8f9813ddd..9babff772 100644
|
||||
index 8f9813ddd6..9babff772b 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityMagmaCube.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityMagmaCube.java
|
||||
@@ -8,6 +8,23 @@ public class EntityMagmaCube extends EntitySlime {
|
||||
@@ -2552,7 +2552,7 @@ index 8f9813ddd..9babff772 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
index 38df17bd2..7966b34f8 100644
|
||||
index 38df17bd20..7966b34f8d 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
|
||||
@@ -20,6 +20,18 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
|
||||
@@ -2593,7 +2593,7 @@ index 38df17bd2..7966b34f8 100644
|
||||
|
||||
Pair<MobEffectList, Integer> pair = (Pair) optional.get();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java
|
||||
index 9dc55b783..9bd6bc7d1 100644
|
||||
index 9dc55b7832..9bd6bc7d18 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityOcelot.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityOcelot.java
|
||||
@@ -16,6 +16,18 @@ public class EntityOcelot extends EntityAnimal {
|
||||
@@ -2631,7 +2631,7 @@ index 9dc55b783..9bd6bc7d1 100644
|
||||
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, false, false, EntityTurtle.bo));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java
|
||||
index 01cc3d94d..4379380c2 100644
|
||||
index 01cc3d94d3..4379380c25 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPanda.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPanda.java
|
||||
@@ -46,6 +46,27 @@ public class EntityPanda extends EntityAnimal {
|
||||
@@ -2767,7 +2767,7 @@ index 01cc3d94d..4379380c2 100644
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
|
||||
index 6bb73f869..822fe2691 100644
|
||||
index 6bb73f869b..822fe26913 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityParrot.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
|
||||
@@ -65,12 +65,58 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
|
||||
@@ -2843,7 +2843,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 03c9a8d0c..ee1ff6dc1 100644
|
||||
index 03c9a8d0c2..ee1ff6dc17 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 {
|
||||
@@ -3014,7 +3014,7 @@ index 03c9a8d0c..ee1ff6dc1 100644
|
||||
EntityPhantom.this.yaw += 180.0F;
|
||||
this.j = 0.1F;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java
|
||||
index 87caac62b..43eaba96e 100644
|
||||
index 87caac62b0..43eaba96e1 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPig.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPig.java
|
||||
@@ -19,9 +19,22 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable {
|
||||
@@ -3041,7 +3041,7 @@ index 87caac62b..43eaba96e 100644
|
||||
this.goalSelector.a(3, new PathfinderGoalBreed(this, 1.0D));
|
||||
this.goalSelector.a(4, new PathfinderGoalTempt(this, 1.2D, RecipeItemStack.a(Items.CARROT_ON_A_STICK), false));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
|
||||
index 194b76059..dbc5a74f6 100644
|
||||
index 194b76059c..dbc5a74f6e 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
|
||||
@@ -22,6 +22,16 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
|
||||
@@ -3062,7 +3062,7 @@ index 194b76059..dbc5a74f6 100644
|
||||
public boolean jockeyOnlyBaby() {
|
||||
return world.purpurConfig.zombifiedPiglinJockeyOnlyBaby;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPiglin.java b/src/main/java/net/minecraft/server/EntityPiglin.java
|
||||
index e1b433007..55739e52e 100644
|
||||
index e1b4330074..55739e52e1 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPiglin.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPiglin.java
|
||||
@@ -25,6 +25,18 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow {
|
||||
@@ -3113,7 +3113,7 @@ index e1b433007..55739e52e 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPiglinBrute.java b/src/main/java/net/minecraft/server/EntityPiglinBrute.java
|
||||
index 00db2d166..c672e31fc 100644
|
||||
index 00db2d1668..c672e31fcb 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPiglinBrute.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPiglinBrute.java
|
||||
@@ -15,6 +15,18 @@ public class EntityPiglinBrute extends EntityPiglinAbstract {
|
||||
@@ -3155,7 +3155,7 @@ index 00db2d166..c672e31fc 100644
|
||||
PiglinBruteAI.b(this);
|
||||
PiglinBruteAI.c(this);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPillager.java b/src/main/java/net/minecraft/server/EntityPillager.java
|
||||
index a3a428da9..bf5669c30 100644
|
||||
index a3a428da99..bf5669c305 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPillager.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPillager.java
|
||||
@@ -13,15 +13,29 @@ public class EntityPillager extends EntityIllagerAbstract implements ICrossbow {
|
||||
@@ -3189,7 +3189,7 @@ index a3a428da9..bf5669c30 100644
|
||||
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
|
||||
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java
|
||||
index cd6d2e07e..c74a10d9b 100644
|
||||
index cd6d2e07ec..c74a10d9b6 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPolarBear.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPolarBear.java
|
||||
@@ -18,12 +18,34 @@ public class EntityPolarBear extends EntityAnimal implements IEntityAngerable {
|
||||
@@ -3264,7 +3264,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 639af6bd3..81e918572 100644
|
||||
index 639af6bd3d..81e9185726 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 {
|
||||
@@ -3296,7 +3296,7 @@ index 639af6bd3..81e918572 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java
|
||||
index 98baf24bd..c5a9d7310 100644
|
||||
index 98baf24bde..c5a9d7310f 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityRabbit.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityRabbit.java
|
||||
@@ -20,6 +20,18 @@ public class EntityRabbit extends EntityAnimal {
|
||||
@@ -3461,7 +3461,7 @@ index 98baf24bd..c5a9d7310 100644
|
||||
this.d = flag;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java
|
||||
index 7064a12c8..c6d149061 100644
|
||||
index 7064a12c89..c6d1490618 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityRavager.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityRavager.java
|
||||
@@ -20,14 +20,37 @@ public class EntityRavager extends EntityRaider {
|
||||
@@ -3512,7 +3512,7 @@ index 7064a12c8..c6d149061 100644
|
||||
this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.0D);
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySalmon.java b/src/main/java/net/minecraft/server/EntitySalmon.java
|
||||
index 51ec63413..6dfcee2c9 100644
|
||||
index 51ec634133..6dfcee2c9b 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySalmon.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySalmon.java
|
||||
@@ -6,6 +6,18 @@ public class EntitySalmon extends EntityFishSchool {
|
||||
@@ -3535,7 +3535,7 @@ index 51ec63413..6dfcee2c9 100644
|
||||
public int eN() {
|
||||
return 5;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java
|
||||
index 2908e9cc4..04e585f44 100644
|
||||
index 2908e9cc47..04e585f44c 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySheep.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySheep.java
|
||||
@@ -56,10 +56,23 @@ public class EntitySheep extends EntityAnimal implements IShearable {
|
||||
@@ -3563,7 +3563,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 f0394fe52..c5853f9f5 100644
|
||||
index f0394fe521..c5853f9f51 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 {
|
||||
@@ -3603,7 +3603,7 @@ index f0394fe52..c5853f9f5 100644
|
||||
@Override
|
||||
public boolean a() {
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java
|
||||
index 35f15c8dd..0ea7af085 100644
|
||||
index 35f15c8ddd..0ea7af0850 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySilverfish.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySilverfish.java
|
||||
@@ -11,13 +11,27 @@ public class EntitySilverfish extends EntityMonster {
|
||||
@@ -3643,7 +3643,7 @@ index 35f15c8dd..0ea7af085 100644
|
||||
|
||||
public void g() {
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySkeleton.java b/src/main/java/net/minecraft/server/EntitySkeleton.java
|
||||
index 7c39bec83..3f130e03b 100644
|
||||
index 7c39bec831..3f130e03bf 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySkeleton.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySkeleton.java
|
||||
@@ -6,6 +6,18 @@ public class EntitySkeleton extends EntitySkeletonAbstract {
|
||||
@@ -3666,7 +3666,7 @@ index 7c39bec83..3f130e03b 100644
|
||||
protected SoundEffect getSoundAmbient() {
|
||||
return SoundEffects.ENTITY_SKELETON_AMBIENT;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
|
||||
index 513bb3087..e21dbf46d 100644
|
||||
index 513bb3087e..e21dbf46d6 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
|
||||
@@ -28,12 +28,14 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR
|
||||
@@ -3685,7 +3685,7 @@ index 513bb3087..e21dbf46d 100644
|
||||
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
|
||||
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, true));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonStray.java b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
|
||||
index f985caada..d123fb82b 100644
|
||||
index f985caada0..d123fb82b6 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySkeletonStray.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
|
||||
@@ -8,6 +8,18 @@ public class EntitySkeletonStray extends EntitySkeletonAbstract {
|
||||
@@ -3708,7 +3708,7 @@ index f985caada..d123fb82b 100644
|
||||
return b(entitytypes, worldaccess, enummobspawn, blockposition, random) && (enummobspawn == EnumMobSpawn.SPAWNER || worldaccess.e(blockposition));
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
|
||||
index c872be77a..96cb080d9 100644
|
||||
index c872be77a6..96cb080d94 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySkeletonWither.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
|
||||
@@ -9,6 +9,18 @@ public class EntitySkeletonWither extends EntitySkeletonAbstract {
|
||||
@@ -3731,7 +3731,7 @@ index c872be77a..96cb080d9 100644
|
||||
protected void initPathfinder() {
|
||||
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityPiglinAbstract.class, true));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
index f74c82785..8483458e4 100644
|
||||
index f74c827850..8483458e41 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
@@ -34,12 +34,45 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
@@ -3847,7 +3847,7 @@ index f74c82785..8483458e4 100644
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
index dfe615814..bc3ac62b4 100644
|
||||
index dfe615814d..bc3ac62b45 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
|
||||
@@ -14,12 +14,26 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
|
||||
@@ -3904,7 +3904,7 @@ index dfe615814..bc3ac62b4 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java
|
||||
index 42f02b03b..889712b79 100644
|
||||
index 42f02b03b1..889712b799 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySpider.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySpider.java
|
||||
@@ -11,14 +11,28 @@ public class EntitySpider extends EntityMonster {
|
||||
@@ -3937,7 +3937,7 @@ index 42f02b03b..889712b79 100644
|
||||
this.targetSelector.a(2, new EntitySpider.PathfinderGoalSpiderNearestAttackableTarget<>(this, EntityHuman.class));
|
||||
this.targetSelector.a(3, new EntitySpider.PathfinderGoalSpiderNearestAttackableTarget<>(this, EntityIronGolem.class));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
|
||||
index 028a7fe2c..c9d246131 100644
|
||||
index 028a7fe2cd..c9d2461318 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySquid.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
|
||||
@@ -26,17 +26,38 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
@@ -4037,7 +4037,7 @@ index 028a7fe2c..c9d246131 100644
|
||||
|
||||
if (i > 100) {
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityStrider.java b/src/main/java/net/minecraft/server/EntityStrider.java
|
||||
index 3bd9b53d4..3069a408a 100644
|
||||
index 3bd9b53d4c..3069a408a4 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityStrider.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityStrider.java
|
||||
@@ -28,6 +28,18 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab
|
||||
@@ -4077,7 +4077,7 @@ index 3bd9b53d4..3069a408a 100644
|
||||
if (flag && !this.isSilent()) {
|
||||
this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_STRIDER_EAT, this.getSoundCategory(), 1.0F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
|
||||
index 9e008d56b..8f227678d 100644
|
||||
index 9e008d56bb..8f227678dc 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
|
||||
@@ -130,6 +130,7 @@ public abstract class EntityTameableAnimal extends EntityAnimal {
|
||||
@@ -4089,7 +4089,7 @@ index 9e008d56b..8f227678d 100644
|
||||
return entityliving == this.getOwner();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityTropicalFish.java b/src/main/java/net/minecraft/server/EntityTropicalFish.java
|
||||
index 495c28ccb..2c9df356e 100644
|
||||
index 495c28ccb8..2c9df356e6 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityTropicalFish.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityTropicalFish.java
|
||||
@@ -19,6 +19,18 @@ public class EntityTropicalFish extends EntityFishSchool {
|
||||
@@ -4112,7 +4112,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 e025eef47..c29803367 100644
|
||||
index e025eef476..c298033679 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 {
|
||||
@@ -4194,7 +4194,7 @@ index e025eef47..c29803367 100644
|
||||
if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().m()) {
|
||||
double d0 = this.b - this.i.locX();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
|
||||
index ae05856f2..a70855235 100644
|
||||
index ae05856f25..a708552358 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVex.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVex.java
|
||||
@@ -19,6 +19,45 @@ public class EntityVex extends EntityMonster {
|
||||
@@ -4291,7 +4291,7 @@ index ae05856f2..a70855235 100644
|
||||
Vec3D vec3d = new Vec3D(this.b - EntityVex.this.locX(), this.c - EntityVex.this.locY(), this.d - EntityVex.this.locZ());
|
||||
double d0 = vec3d.f();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
index 7add2fca1..a5f114933 100644
|
||||
index 7add2fca10..a5f114933d 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
@@ -75,8 +75,19 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
@@ -4335,7 +4335,7 @@ index 7add2fca1..a5f114933 100644
|
||||
this.h(entityhuman);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
index 96dda6a14..7420ec2ea 100644
|
||||
index 96dda6a14f..7420ec2eae 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
|
||||
@@ -23,6 +23,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
|
||||
@@ -4375,7 +4375,7 @@ index 96dda6a14..7420ec2ea 100644
|
||||
this.setTradingPlayer(entityhuman);
|
||||
this.openTrade(entityhuman, this.getScoreboardDisplayName(), 1);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java
|
||||
index a945a0a07..5e702f97a 100644
|
||||
index a945a0a073..5e702f97a1 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVindicator.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVindicator.java
|
||||
@@ -17,14 +17,28 @@ public class EntityVindicator extends EntityIllagerAbstract {
|
||||
@@ -4408,7 +4408,7 @@ index a945a0a07..5e702f97a 100644
|
||||
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
|
||||
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, true));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
|
||||
index 0ef981e5a..76fd72f33 100644
|
||||
index 0ef981e5ad..76fd72f33c 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityWitch.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
|
||||
@@ -24,6 +24,18 @@ public class EntityWitch extends EntityRaider implements IRangedEntity {
|
||||
@@ -4444,7 +4444,7 @@ index 0ef981e5a..76fd72f33 100644
|
||||
this.targetSelector.a(2, this.br);
|
||||
this.targetSelector.a(3, this.bs);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
|
||||
index 29bb74e51..1054b492c 100644
|
||||
index 29bb74e51e..1054b492c2 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityWither.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityWither.java
|
||||
@@ -32,6 +32,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
|
||||
@@ -4652,7 +4652,7 @@ index 29bb74e51..1054b492c 100644
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
|
||||
index 5779d1c9f..506b2a96f 100644
|
||||
index 5779d1c9f9..506b2a96f2 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityWolf.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityWolf.java
|
||||
@@ -33,9 +33,27 @@ public class EntityWolf extends EntityTameableAnimal implements IEntityAngerable
|
||||
@@ -4692,7 +4692,7 @@ index 5779d1c9f..506b2a96f 100644
|
||||
this.targetSelector.a(2, new PathfinderGoalOwnerHurtTarget(this));
|
||||
this.targetSelector.a(3, (new PathfinderGoalHurtByTarget(this, new Class[0])).a(new Class[0])); // CraftBukkit - decompile error
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityZoglin.java b/src/main/java/net/minecraft/server/EntityZoglin.java
|
||||
index 55df54733..ce4072f6e 100644
|
||||
index 55df54733d..ce4072f6ea 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityZoglin.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityZoglin.java
|
||||
@@ -21,6 +21,18 @@ public class EntityZoglin extends EntityMonster implements IMonster, IOglin {
|
||||
@@ -4756,7 +4756,7 @@ index 55df54733..ce4072f6e 100644
|
||||
this.eL();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
index 3e5c69287..d08747c66 100644
|
||||
index 3e5c692876..d08747c66a 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
@@ -46,6 +46,16 @@ public class EntityZombie extends EntityMonster {
|
||||
@@ -4789,7 +4789,7 @@ index 3e5c69287..d08747c66 100644
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java
|
||||
index ce6d79780..02b0ae550 100644
|
||||
index ce6d797801..02b0ae550a 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityZombieHusk.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityZombieHusk.java
|
||||
@@ -9,6 +9,16 @@ public class EntityZombieHusk extends EntityZombie {
|
||||
@@ -4810,7 +4810,7 @@ index ce6d79780..02b0ae550 100644
|
||||
public boolean jockeyOnlyBaby() {
|
||||
return world.purpurConfig.huskJockeyOnlyBaby;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
||||
index 69e98dceb..cdcf3d1cf 100644
|
||||
index 69e98dcebe..cdcf3d1cf5 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java
|
||||
@@ -29,6 +29,16 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
|
||||
@@ -4831,7 +4831,7 @@ index 69e98dceb..cdcf3d1cf 100644
|
||||
public boolean jockeyOnlyBaby() {
|
||||
return world.purpurConfig.zombieVillagerJockeyOnlyBaby;
|
||||
diff --git a/src/main/java/net/minecraft/server/GeneratorAccess.java b/src/main/java/net/minecraft/server/GeneratorAccess.java
|
||||
index b67aede00..ed09fe7fd 100644
|
||||
index b67aede005..ed09fe7fdd 100644
|
||||
--- a/src/main/java/net/minecraft/server/GeneratorAccess.java
|
||||
+++ b/src/main/java/net/minecraft/server/GeneratorAccess.java
|
||||
@@ -37,6 +37,7 @@ public interface GeneratorAccess extends ICombinedAccess, IWorldTime {
|
||||
@@ -4843,7 +4843,7 @@ index b67aede00..ed09fe7fd 100644
|
||||
|
||||
default int getHeight() {
|
||||
diff --git a/src/main/java/net/minecraft/server/IProjectile.java b/src/main/java/net/minecraft/server/IProjectile.java
|
||||
index 0bac6b050..9a17eb606 100644
|
||||
index 0bac6b0506..9a17eb6066 100644
|
||||
--- a/src/main/java/net/minecraft/server/IProjectile.java
|
||||
+++ b/src/main/java/net/minecraft/server/IProjectile.java
|
||||
@@ -12,7 +12,7 @@ public abstract class IProjectile extends Entity {
|
||||
@@ -4873,7 +4873,7 @@ index 0bac6b050..9a17eb606 100644
|
||||
Entity entity1 = this.getShooter();
|
||||
// Paper start - Cancel hit for vanished players
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
index 1ff07a08d..5b5e9211c 100644
|
||||
index 1ff07a08dc..5b5e9211cd 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
@@ -2149,6 +2149,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
||||
@@ -4886,7 +4886,7 @@ index 1ff07a08d..5b5e9211c 100644
|
||||
if ((entity instanceof EntityFish && origItem != null && origItem.getItem() == Items.WATER_BUCKET) && (event.isCancelled() || this.player.inventory.getItemInHand() == null || this.player.inventory.getItemInHand().getItem() != origItem)) {
|
||||
this.sendPacket(new PacketPlayOutSpawnEntityLiving((EntityFish) entity));
|
||||
diff --git a/src/main/java/net/minecraft/server/ProjectileHelper.java b/src/main/java/net/minecraft/server/ProjectileHelper.java
|
||||
index b2c64b314..515ba50ae 100644
|
||||
index b2c64b3144..515ba50aec 100644
|
||||
--- a/src/main/java/net/minecraft/server/ProjectileHelper.java
|
||||
+++ b/src/main/java/net/minecraft/server/ProjectileHelper.java
|
||||
@@ -7,6 +7,7 @@ import javax.annotation.Nullable;
|
||||
@@ -4898,7 +4898,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 5af554870..c59305ef7 100644
|
||||
index 5af554870b..c59305ef7d 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 {
|
||||
@@ -4926,7 +4926,7 @@ index 5af554870..c59305ef7 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 caaab5015..c3dbe7802 100644
|
||||
index caaab50153..c3dbe78027 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 {
|
||||
@@ -4941,7 +4941,7 @@ index caaab5015..c3dbe7802 100644
|
||||
// Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
index 8714d1574..af3739c79 100644
|
||||
index 8714d1574d..af3739c79a 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
@@ -134,11 +134,13 @@ public class PurpurConfig {
|
||||
@@ -4959,7 +4959,7 @@ index 8714d1574..af3739c79 100644
|
||||
|
||||
public static int dungeonSeed = -1;
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index b070eed98..a0684f16c 100644
|
||||
index b070eed986..a0684f16cb 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -42,11 +42,6 @@ public class PurpurWorldConfig {
|
||||
@@ -5610,7 +5610,7 @@ index b070eed98..a0684f16c 100644
|
||||
zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens);
|
||||
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
|
||||
new file mode 100644
|
||||
index 000000000..0b16a7b63
|
||||
index 0000000000..0b16a7b634
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
|
||||
@@ -0,0 +1,76 @@
|
||||
@@ -5692,7 +5692,7 @@ index 000000000..0b16a7b63
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
|
||||
new file mode 100644
|
||||
index 000000000..426688b3a
|
||||
index 0000000000..426688b3a6
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
|
||||
@@ -0,0 +1,92 @@
|
||||
@@ -5790,7 +5790,7 @@ index 000000000..426688b3a
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
|
||||
new file mode 100644
|
||||
index 000000000..33c51460a
|
||||
index 0000000000..33c51460ab
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
|
||||
@@ -0,0 +1,61 @@
|
||||
@@ -5857,7 +5857,7 @@ index 000000000..33c51460a
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java
|
||||
new file mode 100644
|
||||
index 000000000..f75375936
|
||||
index 0000000000..f753759361
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java
|
||||
@@ -0,0 +1,61 @@
|
||||
@@ -5924,7 +5924,7 @@ index 000000000..f75375936
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
|
||||
new file mode 100644
|
||||
index 000000000..1b08a0905
|
||||
index 0000000000..1b08a0905b
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
|
||||
@@ -0,0 +1,50 @@
|
||||
@@ -5980,7 +5980,7 @@ index 000000000..1b08a0905
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java
|
||||
new file mode 100644
|
||||
index 000000000..3b777c54f
|
||||
index 0000000000..3b777c54f9
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java
|
||||
@@ -0,0 +1,115 @@
|
||||
@@ -6101,7 +6101,7 @@ index 000000000..3b777c54f
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java b/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java
|
||||
new file mode 100644
|
||||
index 000000000..f5da00b10
|
||||
index 0000000000..f5da00b100
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java
|
||||
@@ -0,0 +1,120 @@
|
||||
@@ -6227,7 +6227,7 @@ index 000000000..f5da00b10
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
|
||||
new file mode 100644
|
||||
index 000000000..68acd09a6
|
||||
index 0000000000..68acd09a6e
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
|
||||
@@ -0,0 +1,21 @@
|
||||
@@ -6254,7 +6254,7 @@ index 000000000..68acd09a6
|
||||
+}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
|
||||
new file mode 100644
|
||||
index 000000000..c0ead608e
|
||||
index 0000000000..c0ead608ed
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
|
||||
@@ -0,0 +1,18 @@
|
||||
@@ -6277,7 +6277,7 @@ index 000000000..c0ead608e
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 407c03408..d9a979fa6 100644
|
||||
index 407c03408a..d9a979fa6d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -1133,4 +1133,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
@@ -6308,7 +6308,7 @@ index 407c03408..d9a979fa6 100644
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index 8d5b08cbe..cfee9ee75 100644
|
||||
index 8d5b08cbeb..cfee9ee753 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -502,6 +502,18 @@ public class CraftEventFactory {
|
||||
|
||||
Reference in New Issue
Block a user