Update to 1.16.4 ^_^

This commit is contained in:
William Blake Galbreath
2020-11-03 01:27:33 -06:00
parent 0fa478d031
commit 03654a6880
58 changed files with 472 additions and 477 deletions

2
Paper

Submodule Paper updated: 4bcebab167...e792da723a

View File

@@ -1 +1 @@
1.16.3--5d1ec391cabd3077454828f223e4557e9158f106
1.16.4--f9bea490afd845c306ca04ec55f614880ca5d4d8

View File

@@ -8,7 +8,7 @@ Tuinity config
API to retrieve raw YamlConfiguration + timing exports
diff --git a/pom.xml b/pom.xml
index a22e6517d..c4168709b 100644
index 1c33b1f4d..4516ba097 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,18 +3,18 @@
@@ -26,7 +26,7 @@ index a22e6517d..c4168709b 100644
- <groupId>com.destroystokyo.paper</groupId>
- <artifactId>paper-api</artifactId>
+ <artifactId>tuinity-api</artifactId>
<version>1.16.3-R0.1-SNAPSHOT</version>
<version>1.16.4-R0.1-SNAPSHOT</version>
<packaging>jar</packaging>
- <name>Paper-API</name>

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
diff --git a/pom.xml b/pom.xml
index 3b5dcb43..d6060229 100644
index 4516ba097..b4fe4d61b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,20 +1,19 @@
@@ -24,7 +24,7 @@ index 3b5dcb43..d6060229 100644
- <artifactId>tuinity-api</artifactId>
+ <artifactId>purpur-api</artifactId>
<version>1.16.3-R0.1-SNAPSHOT</version>
<version>1.16.4-R0.1-SNAPSHOT</version>
<packaging>jar</packaging>
- <name>Tuinity-API</name>

View File

@@ -288,7 +288,7 @@ and an action can be defined: DROP or KICK
If interval or rate are less-than 0, the limit is ignored
diff --git a/pom.xml b/pom.xml
index 9211fac206..e5b74fbf25 100644
index 80f1652913..1f265fb038 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,11 +1,11 @@
@@ -298,7 +298,7 @@ index 9211fac206..e5b74fbf25 100644
- <artifactId>paper</artifactId>
+ <artifactId>tuinity</artifactId>
<packaging>jar</packaging>
<version>1.16.3-R0.1-SNAPSHOT</version>
<version>1.16.4-R0.1-SNAPSHOT</version>
- <name>Paper</name>
- <url>https://papermc.io</url>
+ <name>Tuinity-Server</name>
@@ -2250,7 +2250,7 @@ index 6b655b744d..e811295b4d 100644
}
diff --git a/src/main/java/net/minecraft/server/BlockBase.java b/src/main/java/net/minecraft/server/BlockBase.java
index 5131d2172d..2c2fea8e3f 100644
index 1f334d6328..0172e2396b 100644
--- a/src/main/java/net/minecraft/server/BlockBase.java
+++ b/src/main/java/net/minecraft/server/BlockBase.java
@@ -182,8 +182,8 @@ public abstract class BlockBase {
@@ -2261,7 +2261,7 @@ index 5131d2172d..2c2fea8e3f 100644
- public int f(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition) {
+ @Deprecated public final int getOpacity(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition) { return this.f(iblockdata, iblockaccess, blockposition); } // Tuinity - OBFHELPER
+ @Deprecated public int f(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition) { // Tuinity - OBFHELPER
return iblockdata.i(iblockaccess, blockposition) ? iblockaccess.J() : (iblockdata.a(iblockaccess, blockposition) ? 0 : 1);
return iblockdata.i(iblockaccess, blockposition) ? iblockaccess.K() : (iblockdata.a(iblockaccess, blockposition) ? 0 : 1);
}
@@ -295,14 +295,14 @@ public abstract class BlockBase {
@@ -2743,7 +2743,7 @@ index 3c7b225edb..43cbb77caf 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..b74ff6b9f3 100644
index 6acb5f05a0..6e65842172 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
@@ -3268,10 +3268,10 @@ index 95ef962868..73163b417a 100644
T t0 = this.h.a(this.a.a(i));
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index f55dc28f3e..8542f2f4d2 100644
index 5504facd2e..fcba187bbd 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -166,6 +166,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -169,6 +169,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
com.destroystokyo.paper.PaperConfig.registerCommands();
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
// Paper end
@@ -3293,7 +3293,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 b845e488e3..86903aaa02 100644
index 0c952fea30..4fb01d835b 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
@@ -3362,7 +3362,7 @@ index b845e488e3..86903aaa02 100644
public Entity(EntityTypes<?> entitytypes, World world) {
this.id = Entity.entityCount.incrementAndGet();
this.passengers = Lists.newArrayList();
@@ -590,7 +633,39 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -591,7 +634,39 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.onGround;
}
@@ -3402,7 +3402,7 @@ index b845e488e3..86903aaa02 100644
if (this.noclip) {
this.a(this.getBoundingBox().c(vec3d));
this.recalcPosition();
@@ -618,7 +693,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -619,7 +694,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
// Paper end
vec3d = this.a(vec3d, enummovetype);
@@ -3411,7 +3411,7 @@ index b845e488e3..86903aaa02 100644
if (vec3d1.g() > 1.0E-7D) {
this.a(this.getBoundingBox().c(vec3d1));
@@ -734,6 +809,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -735,6 +810,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.world.getMethodProfiler().exit();
}
@@ -3424,8 +3424,8 @@ index b845e488e3..86903aaa02 100644
+ // Tuinity end - detailed watchdog information
}
protected BlockPosition ao() {
@@ -814,6 +896,132 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
protected BlockPosition ap() {
@@ -815,6 +897,132 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return d0;
}
@@ -3558,7 +3558,7 @@ index b845e488e3..86903aaa02 100644
private Vec3D g(Vec3D vec3d) {
AxisAlignedBB axisalignedbb = this.getBoundingBox();
VoxelShapeCollision voxelshapecollision = VoxelShapeCollision.a(this);
@@ -849,6 +1057,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -850,6 +1058,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return vec3d1;
}
@@ -3566,23 +3566,23 @@ index b845e488e3..86903aaa02 100644
public static double c(Vec3D vec3d) {
return vec3d.x * vec3d.x + vec3d.z * vec3d.z;
}
@@ -1947,11 +2156,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1948,11 +2157,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return EnumInteractionResult.PASS;
}
- public boolean j(Entity entity) {
+ public final boolean hardCollidesWith(Entity other) { return this.j(other); } // Tuinity - OBFHELPER
+ public boolean j(Entity entity) { // Tuinity - diff on change, hard colliding entities override this
return entity.aY() && !this.isSameVehicle(entity);
return entity.aZ() && !this.isSameVehicle(entity);
}
- public boolean aY() {
+ public final boolean collisionBoxIsHard() { return this.aY(); } // Tuinity - OBFHELPER
+ public boolean aY() { // Tuinity - diff on change, hard colliding entities override this
- public boolean aZ() {
+ public final boolean collisionBoxIsHard() { return this.aZ(); } // Tuinity - OBFHELPER
+ public boolean aZ() { // Tuinity - diff on change, hard colliding entities override this
return false;
}
@@ -3293,12 +3504,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -3294,12 +3505,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.locBlock;
}
@@ -3599,7 +3599,7 @@ index b845e488e3..86903aaa02 100644
}
public void setMot(double d0, double d1, double d2) {
@@ -3353,7 +3568,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -3354,7 +3569,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
// Paper end
if (this.loc.x != d0 || this.loc.y != d1 || this.loc.z != d2) {
@@ -3610,7 +3610,7 @@ index b845e488e3..86903aaa02 100644
int j = MathHelper.floor(d1);
int k = MathHelper.floor(d2);
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
index 3148863984..79de11ce2f 100644
index 957a351c3f..57166a543a 100644
--- a/src/main/java/net/minecraft/server/EntityCat.java
+++ b/src/main/java/net/minecraft/server/EntityCat.java
@@ -292,7 +292,7 @@ public class EntityCat extends EntityTameableAnimal {
@@ -3623,7 +3623,7 @@ index 3148863984..79de11ce2f 100644
this.setPersistent();
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 76185f042d..0e000c7186 100644
index fe0334b505..87cd6fb0c0 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2847,7 +2847,11 @@ public abstract class EntityLiving extends Entity {
@@ -3775,7 +3775,7 @@ index 25e54a1fad..b66c802d5e 100644
return this.d(entity, axisalignedbb, predicate).allMatch(VoxelShape::isEmpty);
} finally { if (entity != null) entity.collisionLoadChunks = false; } // Paper
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
index 1cb8ba7cd2..882b82d895 100644
index 07dbdd5609..150daa725a 100644
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
@@ -52,16 +52,26 @@ public interface IEntityAccess {
@@ -3861,7 +3861,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 26bbfeba13..c5a8d6d3fb 100644
index 9c4ea5265e..75d36eb3ee 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
@@ -3976,7 +3976,7 @@ index 26bbfeba13..c5a8d6d3fb 100644
protected TickTask postToMainThread(Runnable runnable) {
@@ -1133,6 +1188,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
private boolean ba() {
private boolean bb() {
if (super.executeNext()) {
+ this.executeMidTickTasks(); // Tuinity - execute chunk tasks mid tick
return true;
@@ -4054,7 +4054,7 @@ index 26bbfeba13..c5a8d6d3fb 100644
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index c9b36e6040..ab6fb2d027 100644
index 7a84ea4116..450e63270d 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -71,6 +71,39 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@@ -4764,10 +4764,10 @@ index 6c399bcea0..087bbad025 100644
}
// Paper end - optimised tracker
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 4b0ff3e1ac..da2039b536 100644
index 7abf55f532..10f3c97180 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -372,7 +372,9 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -415,7 +415,9 @@ public class PlayerConnection implements PacketListenerPlayIn {
speed *= 2f; // TODO: Get the speed of the vehicle instead of the player
// Paper start - Prevent moving into unloaded chunks
@@ -4778,7 +4778,7 @@ index 4b0ff3e1ac..da2039b536 100644
this.networkManager.sendPacket(new PacketPlayOutVehicleMove(entity));
return;
}
@@ -978,7 +980,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1052,7 +1054,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
if (this.teleportPos != null) {
@@ -4787,7 +4787,7 @@ index 4b0ff3e1ac..da2039b536 100644
this.A = this.e;
this.a(this.teleportPos.x, this.teleportPos.y, this.teleportPos.z, this.player.yaw, this.player.pitch);
}
@@ -1048,7 +1050,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1122,7 +1124,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
speed = player.abilities.walkSpeed * 10f;
}
// Paper start - Prevent moving into unloaded chunks
@@ -4796,7 +4796,7 @@ index 4b0ff3e1ac..da2039b536 100644
this.internalTeleport(this.player.locX(), this.player.locY(), this.player.locZ(), this.player.yaw, this.player.pitch, Collections.emptySet());
return;
}
@@ -1104,6 +1106,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1178,6 +1180,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
this.player.move(EnumMoveType.PLAYER, new Vec3D(d7, d8, d9));
@@ -4804,7 +4804,7 @@ index 4b0ff3e1ac..da2039b536 100644
this.player.setOnGround(packetplayinflying.b()); // CraftBukkit - SPIGOT-5810, SPIGOT-5835: reset by this.player.move
// Paper start - prevent position desync
if (this.teleportPos != null) {
@@ -1128,7 +1131,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1202,7 +1205,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
this.player.setLocation(d4, d5, d6, f, f1);
@@ -4862,7 +4862,7 @@ index 7ea293f38d..e698dd2260 100644
});
throw CancelledPacketHandleException.INSTANCE;
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index ac3bee9dfb..06a1b4b977 100644
index 485b609bb5..614cfacb1e 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -21,14 +21,29 @@ public class PlayerInteractManager {
@@ -6352,7 +6352,7 @@ index e21c747b6c..4bdadffee0 100644
return voxelshape != b() && voxelshape1 != b() ? (voxelshape.isEmpty() && voxelshape1.isEmpty() ? false : !c(b(), b(voxelshape, voxelshape1, OperatorBoolean.OR), OperatorBoolean.ONLY_FIRST)) : true;
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index d91124bc85..db90920c8d 100644
index d64d94b8c3..3804758a62 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -94,6 +94,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -6412,7 +6412,7 @@ index d91124bc85..db90920c8d 100644
}
// Paper start - Prevent armor stands from doing entity lookups
@Override
@@ -1072,10 +1087,44 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1076,10 +1091,44 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return this.getChunkAt(i, j, ChunkStatus.FULL, false);
}
@@ -6530,10 +6530,10 @@ 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..215789b762 100644
index b196810316..dcf28739fc 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;
@@ -55,12 +55,13 @@ import org.bukkit.event.server.MapInitializeEvent;
import org.bukkit.event.weather.LightningStrikeEvent;
import org.bukkit.event.world.TimeSkipEvent;
// CraftBukkit end
@@ -6548,7 +6548,7 @@ index 95da2a5602..215789b762 100644
private final Map<UUID, Entity> entitiesByUUID = Maps.newHashMap();
private final Queue<Entity> entitiesToAdd = Queues.newArrayDeque();
public final List<EntityPlayer> players = Lists.newArrayList(); // Paper - private -> public
@@ -80,7 +81,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -84,7 +85,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
private final PortalTravelAgent portalTravelAgent;
private final TickListServer<Block> nextTickListBlock;
private final TickListServer<FluidType> nextTickListFluid;
@@ -6557,7 +6557,7 @@ index 95da2a5602..215789b762 100644
protected final PersistentRaid persistentRaid;
private final ObjectLinkedOpenHashSet<BlockActionData> L;
private boolean ticking;
@@ -201,6 +202,100 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -205,6 +206,100 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
// Paper end - rewrite ticklistserver
@@ -6658,7 +6658,7 @@ index 95da2a5602..215789b762 100644
// Add env and gen to constructor, WorldData -> WorldDataServer
public WorldServer(MinecraftServer minecraftserver, Executor executor, Convertable.ConversionSession convertable_conversionsession, IWorldDataServer iworlddataserver, ResourceKey<World> resourcekey, DimensionManager dimensionmanager, WorldLoadListener worldloadlistener, ChunkGenerator chunkgenerator, boolean flag, long i, List<MobSpawner> list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) {
super(iworlddataserver, resourcekey, dimensionmanager, minecraftserver::getMethodProfiler, false, flag, i, gen, env, executor); // Paper pass executor
@@ -261,6 +356,328 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -265,6 +360,328 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper
}
@@ -6987,7 +6987,7 @@ index 95da2a5602..215789b762 100644
// CraftBukkit start
@Override
protected TileEntity getTileEntity(BlockPosition pos, boolean validate) {
@@ -463,7 +880,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -467,7 +884,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
timings.scheduledBlocks.stopTiming(); // Paper
@@ -6996,16 +6996,16 @@ index 95da2a5602..215789b762 100644
gameprofilerfiller.exitEnter("raid");
this.timings.raids.startTiming(); // Paper - timings
this.persistentRaid.a();
@@ -472,7 +889,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -476,7 +893,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
timings.doSounds.startTiming(); // Spigot
this.aj();
this.ak();
timings.doSounds.stopTiming(); // Spigot
- this.getMinecraftServer().midTickLoadChunks(); // Paper
+ // Tuinity - replace logic
this.ticking = false;
gameprofilerfiller.exitEnter("entities");
boolean flag3 = true || !this.players.isEmpty() || !this.getForceLoadedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
@@ -488,13 +905,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -492,13 +909,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
this.tickingEntities = true;
@@ -7021,7 +7021,7 @@ index 95da2a5602..215789b762 100644
Entity entity1 = entity.getVehicle();
/* CraftBukkit start - We prevent spawning in general, so this butchering is not needed
@@ -530,7 +946,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -534,7 +950,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
gameprofilerfiller.enter("remove");
if (entity.dead) {
this.removeEntityFromChunk(entity);
@@ -7030,7 +7030,7 @@ index 95da2a5602..215789b762 100644
this.unregisterEntity(entity);
}
@@ -538,6 +954,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -542,6 +958,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
timings.entityTick.stopTiming(); // Spigot
@@ -7038,7 +7038,7 @@ index 95da2a5602..215789b762 100644
this.tickingEntities = false;
// Paper start
for (java.lang.Runnable run : this.afterEntityTickingTasks) {
@@ -549,7 +966,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -553,7 +970,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
this.afterEntityTickingTasks.clear();
// Paper end
@@ -7047,7 +7047,7 @@ index 95da2a5602..215789b762 100644
Entity entity2;
@@ -559,7 +976,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -563,7 +980,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
timings.tickEntities.stopTiming(); // Spigot
@@ -7056,7 +7056,7 @@ index 95da2a5602..215789b762 100644
this.tickBlockEntities();
}
@@ -805,7 +1222,26 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -809,7 +1226,26 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
@@ -7083,7 +7083,7 @@ index 95da2a5602..215789b762 100644
if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) {
this.chunkCheck(entity);
} else {
@@ -858,6 +1294,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -862,6 +1298,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
//} finally { timer.stopTiming(); } // Paper - timings - move up
}
@@ -7095,7 +7095,7 @@ index 95da2a5602..215789b762 100644
}
public void a(Entity entity, Entity entity1) {
@@ -1295,7 +1736,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1299,7 +1740,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
Entity entity = (Entity) iterator.next();
if (!(entity instanceof EntityPlayer)) {
@@ -7104,7 +7104,7 @@ index 95da2a5602..215789b762 100644
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!")));
}
@@ -1323,6 +1764,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1327,6 +1768,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
public void unregisterEntity(Entity entity) {
org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot
@@ -7112,7 +7112,7 @@ index 95da2a5602..215789b762 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,12 +1831,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1393,12 +1835,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.getScoreboard().a(entity);
// CraftBukkit start - SPIGOT-5278
if (entity instanceof EntityDrowned) {
@@ -7132,7 +7132,7 @@ index 95da2a5602..215789b762 100644
}
new com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent(entity.getBukkitEntity()).callEvent(); // Paper - fire while valid
entity.valid = false; // CraftBukkit
@@ -1410,7 +1856,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1414,7 +1860,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
return;
}
// Paper end
@@ -7141,7 +7141,7 @@ index 95da2a5602..215789b762 100644
if (!entity.isQueuedForRegister) { // Paper
this.entitiesToAdd.add(entity);
entity.isQueuedForRegister = true; // Paper
@@ -1418,6 +1864,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1422,6 +1868,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
} else {
entity.isQueuedForRegister = false; // Paper
this.entitiesById.put(entity.getId(), entity);
@@ -7149,7 +7149,7 @@ index 95da2a5602..215789b762 100644
if (entity instanceof EntityEnderDragon) {
EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eJ();
int i = aentitycomplexpart.length;
@@ -1426,6 +1873,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1430,6 +1877,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
EntityComplexPart entitycomplexpart = aentitycomplexpart[j];
this.entitiesById.put(entitycomplexpart.getId(), entitycomplexpart);
@@ -7157,7 +7157,7 @@ index 95da2a5602..215789b762 100644
}
}
@@ -1450,12 +1898,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1454,12 +1902,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) {
@@ -7177,7 +7177,7 @@ index 95da2a5602..215789b762 100644
}
entity.valid = true; // CraftBukkit
this.getChunkProvider().addEntity(entity); // Paper - from above to be below valid=true
@@ -1471,7 +1923,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1475,7 +1927,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
public void removeEntity(Entity entity) {
@@ -7186,7 +7186,7 @@ index 95da2a5602..215789b762 100644
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!")));
} else {
this.removeEntityFromChunk(entity);
@@ -1567,13 +2019,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1571,13 +2023,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@Override
public void notify(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) {
@@ -7204,7 +7204,7 @@ index 95da2a5602..215789b762 100644
while (iterator.hasNext()) {
NavigationAbstract navigationabstract = (NavigationAbstract) iterator.next();
@@ -1582,6 +2037,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1586,6 +2041,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
navigationabstract.b(blockposition);
}
}
@@ -7336,7 +7336,7 @@ index 299f57ca2a..4de6252f07 100644
}, MinecraftServer.getServer());
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index e8f52003f3..27cfaf6acf 100644
index 9118f05424..a9c96d45c6 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -138,6 +138,13 @@ public class Main {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
diff --git a/pom.xml b/pom.xml
index 5e25ae55e4..ce4989e93f 100644
index 1f265fb038..17dbe85eb3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,11 +1,11 @@
@@ -15,7 +15,7 @@ index 5e25ae55e4..ce4989e93f 100644
- <artifactId>tuinity</artifactId>
+ <artifactId>purpur</artifactId>
<packaging>jar</packaging>
<version>1.16.3-R0.1-SNAPSHOT</version>
<version>1.16.4-R0.1-SNAPSHOT</version>
- <name>Tuinity-Server</name>
- <url>https://github.com/Spottedleaf/Tuinity</url>
+ <name>Purpur-Server</name>
@@ -111,7 +111,7 @@ index 229c3b0f0c..f88cf526d2 100644
throwable = throwable1;
throw throwable1;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c5a8d6d3fb..651817e87e 100644
index 75d36eb3ee..e2474dff72 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1510,7 +1510,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -245,7 +245,7 @@ index 0000000000..d8b408f061
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 786ddcee7e..c7a9b31e3a 100644
index 9bf854b5a2..260d3513ec 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -232,7 +232,7 @@ import javax.annotation.Nullable; // Paper
@@ -258,7 +258,7 @@ index 786ddcee7e..c7a9b31e3a 100644
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 3ebaa9463e..91cba8e6ac 100644
index ed926fc6eb..3d2fcb5e8a 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -347,7 +347,7 @@ public final class CraftMagicNumbers implements UnsafeValues {

View File

@@ -29,10 +29,10 @@ index 8a19c96499..de75e33a68 100644
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 8542f2f4d2..050e0d7ec2 100644
index fcba187bbd..c1eb8e8679 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -164,6 +164,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -167,6 +167,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
return false;
}
com.destroystokyo.paper.PaperConfig.registerCommands();
@@ -49,7 +49,7 @@ index 8542f2f4d2..050e0d7ec2 100644
// Paper end
com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index db90920c8d..11a408d3ae 100644
index 3804758a62..3159d51bba 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -95,6 +95,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -391,7 +391,7 @@ index 260d3513ec..51ef4ab09e 100644
public void restart() {
org.spigotmc.RestartCommand.restart();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 27cfaf6acf..3313d316fa 100644
index a9c96d45c6..b65629cac7 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -146,6 +146,14 @@ public class Main {

View File

@@ -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 caaa01b20e..335cb9c4a9 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,10 +25,10 @@ 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 8e1655a97..3d7729880 100644
index 500d8914cc..656d30bbbb 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 {
@@ -1722,8 +1722,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
public void resetIdleTimer() {
this.ca = SystemUtils.getMonotonicMillis();
@@ -84,7 +84,7 @@ index 8e1655a97..3d7729880 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 150daa725a..87f700298f 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 31eb6868c2..9f9d9b2de8 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,10 +154,10 @@ 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 da2039b53..ecc0e2e40 100644
index 10f3c97180..cd37d71986 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 {
@@ -247,6 +247,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
if (this.player.F() > 0L && this.minecraftServer.getIdleTimeout() > 0 && SystemUtils.getMonotonicMillis() - this.player.F() > (long) (this.minecraftServer.getIdleTimeout() * 1000 * 60)) {
@@ -170,7 +170,7 @@ index da2039b53..ecc0e2e40 100644
this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854
this.disconnect(new ChatMessage("multiplayer.disconnect.idling"));
}
@@ -459,6 +465,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -502,6 +508,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -179,7 +179,7 @@ index da2039b53..ecc0e2e40 100644
// Skip the first time we do this
if (true) { // Spigot - don't skip any move events
Location oldTo = to.clone();
@@ -1127,7 +1135,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1201,7 +1209,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
if (!this.player.H() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative() && this.player.playerInteractManager.getGameMode() != EnumGamemode.SPECTATOR) { // Spigot
flag1 = true;
@@ -188,7 +188,7 @@ index da2039b53..ecc0e2e40 100644
}
this.player.setLocation(d4, d5, d6, f, f1);
@@ -1166,6 +1174,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1240,6 +1248,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -198,10 +198,10 @@ index da2039b53..ecc0e2e40 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 215789b76..aac4e489a 100644
index dcf28739fc..1780e6a5bc 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 {
@@ -847,7 +847,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
// CraftBukkit end
if (this.everyoneSleeping && this.players.stream().noneMatch((entityplayer) -> {
@@ -210,7 +210,7 @@ index 215789b76..aac4e489a 100644
})) {
// CraftBukkit start
long l = this.worldData.getDayTime() + 24000L;
@@ -1164,7 +1164,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1168,7 +1168,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
while (iterator.hasNext()) {
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
@@ -220,7 +220,7 @@ index 215789b76..aac4e489a 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 9f04172fb..6db07713e 100644
index 9f04172fb2..6db07713ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2192,4 +2192,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -294,7 +294,7 @@ index 9f04172fb..6db07713e 100644
+ // Purpur end
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 0b93635ba..b47d6fa2d 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

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity safeFallDistance
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
index 702242653..9f4f56c47 100644
index 702242653a..9f4f56c47e 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -4,6 +4,7 @@ public class EntityGiantZombie extends EntityMonster {
@@ -17,7 +17,7 @@ index 702242653..9f4f56c47 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index 191d9cb82..9f74d6e88 100644
index 8af1fe5d82..345e1df09e 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -210,7 +210,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -30,7 +30,7 @@ index 191d9cb82..9f74d6e88 100644
protected int getChestSlots() {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 0e000c718..baf35465b 100644
index 87cd6fb0c0..27e6d39a2f 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -133,6 +133,7 @@ public abstract class EntityLiving extends Entity {
@@ -42,7 +42,7 @@ index 0e000c718..baf35465b 100644
ArrayList<org.bukkit.inventory.ItemStack> drops = new ArrayList<org.bukkit.inventory.ItemStack>();
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
@@ -227,8 +228,8 @@ public abstract class EntityLiving extends Entity {
this.cQ();
this.cR();
}
- if (!this.world.isClientSide && this.fallDistance > 3.0F && flag) {
@@ -62,7 +62,7 @@ index 0e000c718..baf35465b 100644
protected void playBlockStepSound() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 9e9bdf9bc..2fd4bc818 100644
index 9e9bdf9bc2..2fd4bc818a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -809,4 +809,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] EntityMoveEvent
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index baf35465b..84e4c754a 100644
index 27e6d39a2f..5228a11a55 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2802,6 +2802,20 @@ public abstract class EntityLiving extends Entity {
@@ -26,6 +26,6 @@ index baf35465b..84e4c754a 100644
+ }
+ }
+ // Purpur end
if (!this.world.isClientSide && this.dN() && this.aF()) {
if (!this.world.isClientSide && this.dO() && this.aG()) {
this.damageEntity(DamageSource.DROWN, 1.0F);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 3d7729880..58d042b47 100644
index 656d30bbbb..7eb0f515aa 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -144,6 +144,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -147,6 +147,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
this.canPickUpLoot = true;
this.maxHealthCache = this.getMaxHealth();
this.cachedSingleMobDistanceMap = new com.destroystokyo.paper.util.PooledHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper
@@ -17,7 +17,7 @@ index 3d7729880..58d042b47 100644
}
// Paper start
public BlockPosition getPointInFront(double inFront) {
@@ -806,6 +808,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -809,6 +811,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
@@ -30,7 +30,7 @@ index 3d7729880..58d042b47 100644
@Override
public boolean damageEntity(DamageSource damagesource, float f) {
if (this.isInvulnerable(damagesource)) {
@@ -813,7 +821,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -816,7 +824,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
} else {
boolean flag = this.server.j() && this.canPvP() && "fall".equals(damagesource.translationIndex);
@@ -39,7 +39,7 @@ index 3d7729880..58d042b47 100644
return false;
} else {
if (damagesource instanceof EntityDamageSource) {
@@ -984,6 +992,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -987,6 +995,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
// CraftBukkit end
}
@@ -47,7 +47,7 @@ index 3d7729880..58d042b47 100644
return this;
}
}
@@ -2122,9 +2131,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -2130,9 +2139,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public boolean isFrozen() { // Paper - protected > public
@@ -67,10 +67,10 @@ index 3d7729880..58d042b47 100644
public Scoreboard getScoreboard() {
return getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index ecc0e2e40..88254f69e 100644
index cd37d71986..c783d583f0 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1576,6 +1576,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1650,6 +1650,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
PlayerConnectionUtils.ensureMainThread(packetplayinresourcepackstatus, this, this.player.getWorldServer());
// Paper start
PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packetplayinresourcepackstatus.status.ordinal()];
@@ -79,7 +79,7 @@ index ecc0e2e40..88254f69e 100644
this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus));
// Paper end
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 38f26e25c..c92a703da 100644
index 38f26e25cb..c92a703da4 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -905,6 +905,8 @@ public abstract class PlayerList {
@@ -92,7 +92,7 @@ index 38f26e25c..c92a703da 100644
return entityplayer1;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 2578a4677..c441fcea9 100644
index 2578a4677d..c441fcea9b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -67,4 +67,11 @@ public class PurpurWorldConfig {
@@ -108,7 +108,7 @@ index 2578a4677..c441fcea9 100644
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 6db07713e..7d04913f9 100644
index 6db07713ef..7d04913f9b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2208,5 +2208,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Alternative Keepalive Handling
diff --git a/src/main/java/net/minecraft/server/PacketPlayInKeepAlive.java b/src/main/java/net/minecraft/server/PacketPlayInKeepAlive.java
index 8e93f1540..470f92c4f 100644
index 8e93f1540b..470f92c4fb 100644
--- a/src/main/java/net/minecraft/server/PacketPlayInKeepAlive.java
+++ b/src/main/java/net/minecraft/server/PacketPlayInKeepAlive.java
@@ -22,6 +22,7 @@ public class PacketPlayInKeepAlive implements Packet<PacketListenerPlayIn> {
@@ -17,10 +17,10 @@ index 8e93f1540..470f92c4f 100644
return this.a;
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 8b2f7d1f8..307ffb21d 100644
index c783d583f0..22e17944ae 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -77,6 +77,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -83,6 +83,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
private long lastKeepAlive = SystemUtils.getMonotonicMillis(); private void setLastPing(long lastPing) { this.lastKeepAlive = lastPing;}; private long getLastPing() { return this.lastKeepAlive;}; // Paper - OBFHELPER
private boolean awaitingKeepAlive; private void setPendingPing(boolean isPending) { this.awaitingKeepAlive = isPending;}; private boolean isPendingPing() { return this.awaitingKeepAlive;}; // Paper - OBFHELPER
private long h; private void setKeepAliveID(long keepAliveID) { this.h = keepAliveID;}; private long getKeepAliveID() {return this.h; }; // Paper - OBFHELPER
@@ -28,7 +28,7 @@ index 8b2f7d1f8..307ffb21d 100644
// CraftBukkit start - multithreaded fields
private volatile int chatThrottle;
private static final AtomicIntegerFieldUpdater chatSpamField = AtomicIntegerFieldUpdater.newUpdater(PlayerConnection.class, "chatThrottle");
@@ -205,6 +206,21 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -216,6 +217,21 @@ public class PlayerConnection implements PacketListenerPlayIn {
long currentTime = SystemUtils.getMonotonicMillis();
long elapsedTime = currentTime - this.getLastPing();
@@ -50,7 +50,7 @@ index 8b2f7d1f8..307ffb21d 100644
if (this.isPendingPing()) {
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
PlayerConnection.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); // more info
@@ -2723,6 +2739,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -2817,6 +2833,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInKeepAlive packetplayinkeepalive) {
@@ -68,7 +68,7 @@ index 8b2f7d1f8..307ffb21d 100644
if (this.awaitingKeepAlive && packetplayinkeepalive.b() == this.h) {
int i = (int) (SystemUtils.getMonotonicMillis() - this.lastKeepAlive);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 6ff5e0783..f1d6c32fd 100644
index 6ff5e07834..f1d6c32fde 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -154,6 +154,11 @@ public class PurpurConfig {

View File

@@ -5,14 +5,14 @@ Subject: [PATCH] Disable outdated build check
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 3313d316fa..94aa512c45 100644
index b65629cac7..71f8435e4a 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -259,7 +259,7 @@ public class Main {
System.setProperty(TerminalConsoleAppender.JLINE_OVERRIDE_PROPERTY, "false"); // Paper
}
- if (false && Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
- if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
+ if (false) { // Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) { // Purpur
Date buildDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(Main.class.getPackage().getImplementationVendor()); // Paper

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Giants AI settings
diff --git a/src/main/java/net/minecraft/server/AttributeMapBase.java b/src/main/java/net/minecraft/server/AttributeMapBase.java
index c57e23e16..92aa104dc 100644
index c57e23e16b..92aa104dc5 100644
--- a/src/main/java/net/minecraft/server/AttributeMapBase.java
+++ b/src/main/java/net/minecraft/server/AttributeMapBase.java
@@ -41,6 +41,7 @@ public class AttributeMapBase {
@@ -17,7 +17,7 @@ index c57e23e16..92aa104dc 100644
public AttributeModifiable a(AttributeBase attributebase) {
return (AttributeModifiable) this.b.computeIfAbsent(attributebase, (attributebase1) -> {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 0881a17d2..9bb1c4313 100644
index 4fb01d835b..8f011d00de 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
@@ -30,7 +30,7 @@ index 0881a17d2..9bb1c4313 100644
public float I;
protected final Random random;
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
index 9f4f56c47..8dce2aad7 100644
index 9f4f56c47e..8dce2aad77 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -4,9 +4,68 @@ public class EntityGiantZombie extends EntityMonster {
@@ -112,7 +112,7 @@ index 9f4f56c47..8dce2aad7 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 04eff0182..7c58c8238 100644
index 7ddf276732..9806be3de2 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -940,6 +940,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -146,20 +146,20 @@ index 04eff0182..7c58c8238 100644
return false;
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 84e4c754a..39f5ef025 100644
index 5228a11a55..76ff4dd90e 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2160,7 +2160,7 @@ public abstract class EntityLiving extends Entity {
this.enderTeleportTo(vec3d.x, vec3d.y, vec3d.z);
}
- protected float dI() {
+ protected float dI() { return getJumpHeight(); } public float getJumpHeight() { // Purpur - OBFHELPER
- protected float dJ() {
+ protected float dJ() { return getJumpHeight(); } public float getJumpHeight() { // Purpur - OBFHELPER
return 0.42F * this.getBlockJumpFactor();
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f403f9dc6..f5004f221 100644
index f403f9dc6c..f5004f221e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -113,6 +113,23 @@ public class PurpurWorldConfig {

View File

@@ -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 aac4e489a5..b75bbca4da 100644
index 1780e6a5bc..146b1baee3 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1041,12 +1041,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1045,12 +1045,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) {

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Tulips change fox type
diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
index 0ac0364ff..04b2bbea0 100644
index 56c119e8d1..8845afd83d 100644
--- a/src/main/java/net/minecraft/server/EntityFox.java
+++ b/src/main/java/net/minecraft/server/EntityFox.java
@@ -37,9 +37,9 @@ public class EntityFox extends EntityAnimal {
private static final Predicate<Entity> bv = (entity) -> {
return !entity.bw() && IEntitySelector.e.test(entity);
return !entity.bx() && IEntitySelector.e.test(entity);
};
- private PathfinderGoal bw;
- private PathfinderGoal bx;
@@ -70,7 +70,7 @@ index 0ac0364ff..04b2bbea0 100644
protected org.bukkit.event.entity.EntityDeathEvent d(DamageSource damagesource) { // Paper
ItemStack itemstack = this.getEquipment(EnumItemSlot.MAINHAND).cloneItemStack(); // Paper
diff --git a/src/main/java/net/minecraft/server/Items.java b/src/main/java/net/minecraft/server/Items.java
index 67ebcbe4d..4c379916d 100644
index 67ebcbe4da..4c379916d8 100644
--- a/src/main/java/net/minecraft/server/Items.java
+++ b/src/main/java/net/minecraft/server/Items.java
@@ -119,8 +119,8 @@ public class Items {
@@ -85,7 +85,7 @@ index 67ebcbe4d..4c379916d 100644
public static final Item bq = a(Blocks.OXEYE_DAISY, CreativeModeTab.c);
public static final Item br = a(Blocks.CORNFLOWER, CreativeModeTab.c);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index fd552adb9..40bc4cc77 100644
index fd552adb95..40bc4cc77b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -118,6 +118,11 @@ public class PurpurWorldConfig {

View File

@@ -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 90c37e4a8e..7a42feb16e 100644
index 87f700298f..1176d5f415 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 {
@@ -95,10 +95,10 @@ index a5718af9b6..b6b4c8c491 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 b75bbca4da..e2f714382c 100644
index 146b1baee3..413604b8ae 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -2422,6 +2422,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -2426,6 +2426,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Cows eat mushrooms
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 9bb1c4313..c50655631 100644
index 8f011d00de..a3b406938b 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -2747,6 +2747,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2748,6 +2748,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.invulnerable = flag;
}
@@ -17,7 +17,7 @@ index 9bb1c4313..c50655631 100644
this.setPositionRotation(entity.locX(), entity.locY(), entity.locZ(), entity.yaw, entity.pitch);
}
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
index 42e6761c8..cfb009c81 100644
index 42e6761c8b..cfb009c811 100644
--- a/src/main/java/net/minecraft/server/EntityCow.java
+++ b/src/main/java/net/minecraft/server/EntityCow.java
@@ -16,6 +16,7 @@ public class EntityCow extends EntityAnimal {
@@ -110,7 +110,7 @@ index 42e6761c8..cfb009c81 100644
public EntityCow createChild(WorldServer worldserver, EntityAgeable entityageable) {
return (EntityCow) EntityTypes.COW.a((World) worldserver);
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 39f5ef025..ff412471c 100644
index 76ff4dd90e..5c79c50acd 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -81,7 +81,7 @@ public abstract class EntityLiving extends Entity {
@@ -123,7 +123,7 @@ index 39f5ef025..ff412471c 100644
public float aC;
public float aD;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b32f4d74a..d8bd7ffd5 100644
index b32f4d74a0..d8bd7ffd5f 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -132,6 +132,11 @@ public class PurpurWorldConfig {

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Pigs give saddle back
diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java
index 684867010..87caac62b 100644
index ee94c2827c..7f52c39234 100644
--- a/src/main/java/net/minecraft/server/EntityPig.java
+++ b/src/main/java/net/minecraft/server/EntityPig.java
@@ -109,6 +109,18 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable {
if (!flag && this.hasSaddle() && !this.isVehicle() && !entityhuman.ep()) {
if (!flag && this.hasSaddle() && !this.isVehicle() && !entityhuman.eq()) {
if (!this.world.isClientSide) {
+ // Purpur start
+ if (world.purpurConfig.pigGiveSaddleBack && entityhuman.isSneaking()) {
@@ -28,7 +28,7 @@ index 684867010..87caac62b 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d8bd7ffd5..7d6c624ac 100644
index d8bd7ffd5f..7d6c624ac2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -178,6 +178,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Signs allow color codes
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 0ed9ab78c..698a2623b 100644
index 7eb0f515aa..b514dddbe6 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1244,6 +1244,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1247,6 +1247,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public void openSign(TileEntitySign tileentitysign) {
@@ -17,26 +17,25 @@ index 0ed9ab78c..698a2623b 100644
this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition()));
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 307ffb21d..3a7014d30 100644
index 22e17944ae..047d47f974 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2720,6 +2720,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
@@ -2814,6 +2814,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
// Paper end
// Paper TODO(Proximyst): Add obfhelper when 1.16.4 runs
+ // Purpur start
+ if (worldserver.purpurConfig.signAllowColors) {
+ lines[i] = astring[i];
+ if (player.hasPermission("purpur.sign.color")) lines[i] = lines[i].replaceAll("(?i)&([0-9a-fr])", "\u00a7$1");
+ if (player.hasPermission("purpur.sign.style")) lines[i] = lines[i].replaceAll("(?i)&([l-or])", "\u00a7$1");
+ if (player.hasPermission("purpur.sign.magic")) lines[i] = lines[i].replaceAll("(?i)&([kr])", "\u00a7$1");
+ if (player.hasPermission("purpur.sign.color")) currentLine = currentLine.replaceAll("(?i)&([0-9a-fr])", "\u00a7$1");
+ if (player.hasPermission("purpur.sign.style")) currentLine = currentLine.replaceAll("(?i)&([l-or])", "\u00a7$1");
+ if (player.hasPermission("purpur.sign.magic")) currentLine = currentLine.replaceAll("(?i)&([kr])", "\u00a7$1");
+ } else
+ // Purpur end
lines[i] = SharedConstants.a(astring[i]); //Paper - Replaced with anvil color stripping method to stop exploits that allow colored signs to be created.
lines[i] = SharedConstants.a(currentLine); // Paper - Replaced with anvil color stripping method to stop exploits that allow colored signs to be created.
}
SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines);
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
index 316766970..852bb5db8 100644
index 3167669702..852bb5db84 100644
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
@@ -93,6 +93,18 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
@@ -59,10 +58,10 @@ index 316766970..852bb5db8 100644
@Override
public PacketPlayOutTileEntityData getUpdatePacket() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f14e88313..f21597743 100644
index f14e883133..bc5cba3074 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -109,9 +109,12 @@ public class PurpurWorldConfig {
@@ -109,8 +109,10 @@ public class PurpurWorldConfig {
});
}
@@ -71,7 +70,5 @@ index f14e88313..f21597743 100644
private void signSettings() {
+ signAllowColors = getBoolean("blocks.sign.allow-colors", signAllowColors);
signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
+
}
public boolean turtleEggsBreakFromExpOrbs = true;

View File

@@ -22,7 +22,7 @@ index 2291135eae..bc61aaff65 100644
super(i, j, k);
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index ff412471c8..c5b4ee6ed3 100644
index 5c79c50acd..4f75fe92bb 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -99,9 +99,9 @@ public abstract class EntityLiving extends Entity {
@@ -39,7 +39,7 @@ index ff412471c8..c5b4ee6ed3 100644
protected double aV;
protected double aW;
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
index 9bc21ef8a1..a39b596afb 100644
index 9af2bb3928..28808712e2 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
@@ -445,16 +445,62 @@ public abstract class EntityMinecartAbstract extends Entity {
@@ -106,10 +106,10 @@ index 9bc21ef8a1..a39b596afb 100644
this.move(EnumMoveType.SELF, this.getMot());
if (!this.onGround) {
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index b59b52633a..3c7313591f 100644
index b514dddbe6..8077a3af19 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -819,6 +819,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -822,6 +822,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
if (this.isInvulnerable(damagesource)) {
return false;
} else {
@@ -143,7 +143,7 @@ index ceef7aaf92..002651aaf3 100644
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 2763cc943a..e490a561c6 100644
index 3721bd745e..4c3e13cf66 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1,5 +1,7 @@

View File

@@ -5,13 +5,13 @@ Subject: [PATCH] Disable loot drops on death by cramming
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index c5b4ee6ed3..75005b00d3 100644
index 4f75fe92bb..ace0743eb1 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1485,8 +1485,10 @@ public abstract class EntityLiving extends Entity {
this.dropInventory(); // CraftBukkit - from below
if (this.cV() && this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT)) {
if (this.cW() && this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT)) {
+ if (!(damagesource == DamageSource.CRAMMING && world.purpurConfig.disableDropsOnCrammingDeath)) { // Purpur
this.a(damagesource, flag);
this.dropDeathLoot(damagesource, i, flag);
@@ -20,7 +20,7 @@ index c5b4ee6ed3..75005b00d3 100644
// CraftBukkit start - Call death event
org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops); // Paper
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e490a561c6..a1dc171252 100644
index 4c3e13cf66..189b32a6f8 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -112,6 +112,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Players should not cram to death
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 3c7313591f..fb11882362 100644
index 8077a3af19..add0a4d600 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1221,7 +1221,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1224,7 +1224,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public boolean isInvulnerable(DamageSource damagesource) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix the dead lagging the server
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index c50655631..e4be94d78 100644
index a3b406938b..4b120e7049 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1500,6 +1500,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1501,6 +1501,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.pitch = MathHelper.a(f1, -90.0F, 90.0F) % 360.0F;
this.lastYaw = this.yaw;
this.lastPitch = this.pitch;
@@ -17,7 +17,7 @@ index c50655631..e4be94d78 100644
public void f(double d0, double d1, double d2) {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 75005b00d..3193e7172 100644
index ace0743eb1..b30abd4c90 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2478,7 +2478,7 @@ public abstract class EntityLiving extends Entity {

View File

@@ -17,10 +17,10 @@ index 1ae9910fef..c872be77a6 100644
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4d74d2d051..9353264c53 100644
index 11af56df60..79a87a1a16 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -272,6 +272,11 @@ public class PurpurWorldConfig {
@@ -271,6 +271,11 @@ public class PurpurWorldConfig {
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add enderman and creeper griefing controls
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
index 8338afa7ca..013639cc90 100644
index eb4a0ef0e7..2256b81624 100644
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
@@ -215,7 +215,7 @@ public class EntityCreeper extends EntityMonster {
@@ -18,7 +18,7 @@ index 8338afa7ca..013639cc90 100644
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index 03176e83ae..b45a75a451 100644
index f53525eb32..7b175240e4 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -369,6 +369,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
@@ -47,10 +47,10 @@ index 03176e83ae..b45a75a451 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 646d3ae33d..cc99d6d67d 100644
index 72374b9e76..94fc3230a3 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -192,8 +192,10 @@ public class PurpurWorldConfig {
@@ -191,8 +191,10 @@ public class PurpurWorldConfig {
cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms);
}
@@ -61,7 +61,7 @@ index 646d3ae33d..cc99d6d67d 100644
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
}
@@ -204,6 +206,11 @@ public class PurpurWorldConfig {
@@ -203,6 +205,11 @@ public class PurpurWorldConfig {
enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp);
}

View File

@@ -18,10 +18,10 @@ index 54a555509e..0ff202c0d7 100644
} else if (entityvillager.getVillagerData().getProfession() != VillagerProfession.FARMER) {
return false;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 1900cf3177..51c8cdc1fb 100644
index ef7ca798ab..e31094bd17 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -278,9 +278,11 @@ public class PurpurWorldConfig {
@@ -277,9 +277,11 @@ public class PurpurWorldConfig {
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Villagers follow emerald blocks
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index f880a38bf6..1fbba526c5 100644
index 7f75be31cb..12bb9e8aac 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -74,6 +74,13 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -23,7 +23,7 @@ index f880a38bf6..1fbba526c5 100644
public BehaviorController<EntityVillager> getBehaviorController() {
return (BehaviorController<EntityVillager>) super.getBehaviorController(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
index ced893452e..a96533e0c1 100644
index df2ebd3646..a82c9ae418 100644
--- a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
@@ -14,6 +14,8 @@ import org.bukkit.event.entity.VillagerAcquireTradeEvent;
@@ -48,10 +48,10 @@ index f1a509063c..74c2d89af5 100644
this.goalSelector.a(8, new PathfinderGoalRandomStrollLand(this, 0.35D));
this.goalSelector.a(9, new PathfinderGoalInteract(this, EntityHuman.class, 3.0F, 1.0F));
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 51c8cdc1fb..e44082511f 100644
index e31094bd17..2c334ecb60 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -279,10 +279,17 @@ public class PurpurWorldConfig {
@@ -278,10 +278,17 @@ public class PurpurWorldConfig {
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerFarmingBypassMobGriefing = false;

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index ff23ca2a1d..71644c3d99 100644
index a272d353e3..3468e096b5 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -892,6 +892,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -18,10 +18,10 @@ index ff23ca2a1d..71644c3d99 100644
for (int i = 0; i < 10; ++i) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 5bdc0cb4ee..478e6af841 100644
index 0ca84d650e..13fc46d441 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -281,12 +281,16 @@ public class PurpurWorldConfig {
@@ -280,12 +280,16 @@ public class PurpurWorldConfig {
public boolean villagerCanBeLeashed = false;
public boolean villagerFarmingBypassMobGriefing = false;
public boolean villagerFollowEmeraldBlock = false;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index d862f88528..8dc40e8159 100644
index f5cca4af46..322a259702 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1698,6 +1698,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1699,6 +1699,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
public boolean isCollidable() {
@@ -22,7 +22,7 @@ index d862f88528..8dc40e8159 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
index ab5d61848d..484a5261c3 100644
index 5cde0f0d3c..0b19859019 100644
--- a/src/main/java/net/minecraft/server/EntityArmorStand.java
+++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
@@ -320,7 +320,7 @@ public class EntityArmorStand extends EntityLiving {
@@ -35,7 +35,7 @@ index ab5d61848d..484a5261c3 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
index af67cf8683..f230d84faa 100644
index 38ce356310..85371542e4 100644
--- a/src/main/java/net/minecraft/server/EntityBat.java
+++ b/src/main/java/net/minecraft/server/EntityBat.java
@@ -50,7 +50,7 @@ public class EntityBat extends EntityAmbient {
@@ -48,7 +48,7 @@ index af67cf8683..f230d84faa 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java
index 8d55946517..d8d4b6abf3 100644
index 78428539f9..939a5fb880 100644
--- a/src/main/java/net/minecraft/server/EntityBoat.java
+++ b/src/main/java/net/minecraft/server/EntityBoat.java
@@ -106,7 +106,7 @@ public class EntityBoat extends Entity {
@@ -61,7 +61,7 @@ index 8d55946517..d8d4b6abf3 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index 9f74d6e887..c7757f9d0a 100644
index 345e1df09e..573d4a5c78 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -165,7 +165,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -74,7 +74,7 @@ index 9f74d6e887..c7757f9d0a 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 3193e71723..8346d8f3dd 100644
index b30abd4c90..67543e3940 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2866,7 +2866,7 @@ public abstract class EntityLiving extends Entity {
@@ -103,7 +103,7 @@ index 3193e71723..8346d8f3dd 100644
// CraftBukkit start - collidable API
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
index a39b596afb..ca54db4b8f 100644
index 28808712e2..b698ca7e47 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
@@ -107,7 +107,7 @@ public abstract class EntityMinecartAbstract extends Entity {
@@ -116,7 +116,7 @@ index a39b596afb..ca54db4b8f 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
index 34e08dda2e..6bb73f869b 100644
index 1c682a62b8..f7b92078ea 100644
--- a/src/main/java/net/minecraft/server/EntityParrot.java
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
@@ -314,8 +314,8 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
@@ -131,10 +131,10 @@ index 34e08dda2e..6bb73f869b 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index fb11882362..3524f231a1 100644
index add0a4d600..f6d30a243b 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1773,8 +1773,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1776,8 +1776,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
@Override
@@ -146,7 +146,7 @@ index fb11882362..3524f231a1 100644
// Purpur end
diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java
index c8e384ab69..44fb1e1f77 100644
index 9f9d9b2de8..5a05f2abdd 100644
--- a/src/main/java/net/minecraft/server/IEntitySelector.java
+++ b/src/main/java/net/minecraft/server/IEntitySelector.java
@@ -45,11 +45,17 @@ public final class IEntitySelector {
@@ -166,10 +166,10 @@ index c8e384ab69..44fb1e1f77 100644
- if (!entity1.canCollideWith(entity) || !entity.canCollideWith(entity1)) { // CraftBukkit - collidable API
+ if (!entity1.isCollidable(ignoreClimbing) || !entity1.canCollideWith(entity) || !entity.canCollideWith(entity1)) { // CraftBukkit - collidable API
return false;
} else if (entity.world.isClientSide && (!(entity1 instanceof EntityHuman) || !((EntityHuman) entity1).ey())) {
} else if (entity.world.isClientSide && (!(entity1 instanceof EntityHuman) || !((EntityHuman) entity1).ez())) {
return false;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c95040b1dd..4670cf7909 100644
index d795b8fced..521b4d4e1e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -116,6 +116,7 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 8dc40e815..53b297247 100644
index 322a259702..8dd1b5bc3c 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1449,6 +1449,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1450,6 +1450,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
@@ -17,7 +17,7 @@ index 8dc40e815..53b297247 100644
return this.O == tag;
}
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
index bc4f84c88..b6cb52c10 100644
index ba73d14437..f55d40c981 100644
--- a/src/main/java/net/minecraft/server/EntityItem.java
+++ b/src/main/java/net/minecraft/server/EntityItem.java
@@ -23,6 +23,8 @@ public class EntityItem extends Entity {
@@ -68,7 +68,7 @@ index bc4f84c88..b6cb52c10 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index aea72b0db..29731da08 100644
index aea72b0db1..29731da08d 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -106,6 +106,15 @@ public class EntityTrackerEntry {
@@ -88,7 +88,7 @@ index aea72b0db..29731da08 100644
int i;
int j;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d0e410ad5..59f5e91df 100644
index 998751ab80..bc7124b911 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -101,6 +101,21 @@ public class PurpurWorldConfig {
@@ -114,7 +114,7 @@ index d0e410ad5..59f5e91df 100644
public boolean idleTimeoutTickNearbyEntities = true;
public boolean idleTimeoutCountAsSleeping = false;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
index d6a64e4ec..3e9f2f662 100644
index d6a64e4ecf..3e9f2f6626 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
@@ -88,4 +88,26 @@ public class CraftItem extends CraftEntity implements Item {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable jockey options
diff --git a/src/main/java/net/minecraft/server/EntityDrowned.java b/src/main/java/net/minecraft/server/EntityDrowned.java
index ea7934060d..6853ba3194 100644
index 9ae0897bfd..1a10281692 100644
--- a/src/main/java/net/minecraft/server/EntityDrowned.java
+++ b/src/main/java/net/minecraft/server/EntityDrowned.java
@@ -21,6 +21,23 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity {
@@ -33,7 +33,7 @@ index ea7934060d..6853ba3194 100644
protected void m() {
this.goalSelector.a(1, new EntityDrowned.c(this, 1.0D));
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
index 96a8abb183..194b76059c 100644
index 65bae8c9f2..32b75f710b 100644
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
@@ -21,6 +21,23 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
@@ -61,7 +61,7 @@ index 96a8abb183..194b76059c 100644
public void setAngerTarget(@Nullable UUID uuid) {
this.br = uuid;
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index a11612fa05..3e5c692876 100644
index e3606722cb..b90ea31440 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -3,6 +3,7 @@ package net.minecraft.server;
@@ -165,7 +165,7 @@ index 2d2830adc5..ce6d797801 100644
return b(entitytypes, worldaccess, enummobspawn, blockposition, random) && (enummobspawn == EnumMobSpawn.SPAWNER || worldaccess.e(blockposition));
}
diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java
index b52b8d0d84..69e98dcebe 100644
index a5214914a1..b86816205c 100644
--- a/src/main/java/net/minecraft/server/EntityZombieVillager.java
+++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java
@@ -28,6 +28,23 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
@@ -193,10 +193,10 @@ index b52b8d0d84..69e98dcebe 100644
protected void initDatawatcher() {
super.initDatawatcher();
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 59f5e91df4..37829231e5 100644
index bc7124b911..5969cbb052 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -269,6 +269,15 @@ public class PurpurWorldConfig {
@@ -268,6 +268,15 @@ public class PurpurWorldConfig {
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
}
@@ -212,7 +212,7 @@ index 59f5e91df4..37829231e5 100644
public boolean enderDragonAlwaysDropsEggBlock = false;
public boolean enderDragonAlwaysDropsFullExp = false;
private void enderDragonSettings() {
@@ -303,6 +312,15 @@ public class PurpurWorldConfig {
@@ -302,6 +311,15 @@ public class PurpurWorldConfig {
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
}
@@ -228,7 +228,7 @@ index 59f5e91df4..37829231e5 100644
public double illusionerMaxHealth = 32.0D;
public double illusionerMovementSpeed = 0.5D;
public double illusionerFollowRange = 18.0D;
@@ -373,8 +391,35 @@ public class PurpurWorldConfig {
@@ -372,8 +390,35 @@ public class PurpurWorldConfig {
witherSkeletonTakesWitherDamage = getBoolean("mobs.wither_skeleton.takes-wither-damage", witherSkeletonTakesWitherDamage);
}

View File

@@ -17,10 +17,10 @@ index 6fe5678cff..bd0267ee4b 100644
return (new EntityDamageSourceIndirect("indirectMagic", entity, entity1)).setIgnoreArmor().setMagic();
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 53b297247e..08ceba1559 100644
index 8dd1b5bc3c..a3cfb5cc31 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1574,6 +1574,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1575,6 +1575,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return d3 * d3 + d4 * d4 + d5 * d5;
}
@@ -28,7 +28,7 @@ index 53b297247e..08ceba1559 100644
public double h(Entity entity) {
return this.e(entity.getPositionVector());
}
@@ -2113,8 +2114,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2114,8 +2115,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.a(new ItemStack(imaterial), (float) i);
}
@@ -329,10 +329,10 @@ index 3a70900c73..92704a0789 100644
return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 37829231e5..34fbf95966 100644
index 5969cbb052..bb6c243473 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -335,6 +335,15 @@ public class PurpurWorldConfig {
@@ -334,6 +334,15 @@ public class PurpurWorldConfig {
ironGolemCanSwim = getBoolean("mobs.iron_golem.can-swim", ironGolemCanSwim);
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Customizable EnderDragon Health
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index 0e74794d3a..d617b5345d 100644
index a5a2182455..d2fcd0bc16 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -62,6 +62,16 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -26,10 +26,10 @@ index 0e74794d3a..d617b5345d 100644
return EntityInsentient.p().a(GenericAttributes.MAX_HEALTH, 200.0D);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 34fbf95966..47204751d7 100644
index bb6c243473..32a233ceb5 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -280,9 +280,11 @@ public class PurpurWorldConfig {
@@ -279,9 +279,11 @@ public class PurpurWorldConfig {
public boolean enderDragonAlwaysDropsEggBlock = false;
public boolean enderDragonAlwaysDropsFullExp = false;

View File

@@ -37,7 +37,7 @@ index e0e72779c0..386eae71a1 100644
return this.f;
}
diff --git a/src/main/java/net/minecraft/server/IBlockLightAccess.java b/src/main/java/net/minecraft/server/IBlockLightAccess.java
index 5d5fe14129..6d9181cd65 100644
index 03a89301f2..fa5eb188da 100644
--- a/src/main/java/net/minecraft/server/IBlockLightAccess.java
+++ b/src/main/java/net/minecraft/server/IBlockLightAccess.java
@@ -12,6 +12,7 @@ public interface IBlockLightAccess extends IBlockAccess {
@@ -46,7 +46,7 @@ index 5d5fe14129..6d9181cd65 100644
+ default boolean isSkyVisible(BlockPosition blockposition) { return e(blockposition); } // Purpur - OBFHELPER
default boolean e(BlockPosition blockposition) {
return this.getBrightness(EnumSkyBlock.SKY, blockposition) >= this.J();
return this.getBrightness(EnumSkyBlock.SKY, blockposition) >= this.K();
}
diff --git a/src/main/java/net/minecraft/server/MobSpawnerPhantom.java b/src/main/java/net/minecraft/server/MobSpawnerPhantom.java
index 4e3f01bc79..ac1ea2f0c1 100644
@@ -233,10 +233,10 @@ index beaea041dc..ce8834980f 100644
return iblockdata.r(iblockaccess, blockposition) ? false : (iblockdata.isPowerSource() ? false : (!fluid.isEmpty() ? false : (iblockdata.a((Tag) TagsBlock.PREVENT_MOB_SPAWNING_INSIDE) ? false : !entitytypes.a(iblockdata))));
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 856f422e58..63f2dee384 100644
index 3159d51bba..f84d9f5ca1 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1432,6 +1432,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1436,6 +1436,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return new DifficultyDamageScaler(this.getDifficulty(), this.getDayTime(), i, f);
}
@@ -245,10 +245,10 @@ index 856f422e58..63f2dee384 100644
public int c() {
return this.d;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 47204751d7..43342fcc60 100644
index 32a233ceb5..01bc1a020d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -340,10 +340,34 @@ public class PurpurWorldConfig {
@@ -339,10 +339,34 @@ public class PurpurWorldConfig {
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
public double phantomOrbitCrystalRadius = 0.0D;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add allow water in end world option
diff --git a/src/main/java/net/minecraft/server/BlockIce.java b/src/main/java/net/minecraft/server/BlockIce.java
index aba5c6b87..b75f6ded5 100644
index aba5c6b871..b75f6ded5d 100644
--- a/src/main/java/net/minecraft/server/BlockIce.java
+++ b/src/main/java/net/minecraft/server/BlockIce.java
@@ -13,7 +13,7 @@ public class BlockIce extends BlockHalfTransparent {
@@ -27,7 +27,7 @@ index aba5c6b87..b75f6ded5 100644
} else {
world.setTypeUpdate(blockposition, Blocks.WATER.getBlockData());
diff --git a/src/main/java/net/minecraft/server/ItemBucket.java b/src/main/java/net/minecraft/server/ItemBucket.java
index 120bf8436..848a185c0 100644
index 120bf8436f..848a185c04 100644
--- a/src/main/java/net/minecraft/server/ItemBucket.java
+++ b/src/main/java/net/minecraft/server/ItemBucket.java
@@ -122,7 +122,7 @@ public class ItemBucket extends Item {
@@ -49,10 +49,10 @@ index 120bf8436..848a185c0 100644
return true;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 63f2dee38..caaab5015 100644
index f84d9f5ca1..41ba7beac4 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1507,4 +1507,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1511,4 +1511,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public final boolean isDebugWorld() {
return this.debugWorld;
}
@@ -68,7 +68,7 @@ index 63f2dee38..caaab5015 100644
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 10fdbf496..9d5246de9 100644
index 10fdbf4967..9d5246de95 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -1,7 +1,6 @@

View File

@@ -1,59 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 10 Jul 2020 09:40:30 -0500
Subject: [PATCH] ALlow color codes in books
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 668bd7261c..de3d692084 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -937,12 +937,13 @@ public class PlayerConnection implements PacketListenerPlayIn {
itemstack2.setTag(nbttagcompound.clone());
}
+ boolean hasPerm = getPlayer().hasPermission("purpur.book.color.edit") || getPlayer().hasPermission("purpur.book.color.sign");
itemstack2.a("author", (NBTBase) NBTTagString.a(this.player.getDisplayName().getString()));
- itemstack2.a("title", (NBTBase) NBTTagString.a(itemstack.getTag().getString("title")));
+ itemstack2.a("title", (NBTBase) NBTTagString.a(color(itemstack.getTag().getString("title"), hasPerm))); // Purpur - sign book
NBTTagList nbttaglist = itemstack.getTag().getList("pages", 8);
for (int i = 0; i < nbttaglist.size(); ++i) {
- String s = nbttaglist.getString(i);
+ String s = color(nbttaglist.getString(i), hasPerm);// Purpur - sign book
ChatComponentText chatcomponenttext = new ChatComponentText(s);
s = IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) chatcomponenttext);
@@ -954,7 +955,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
} else {
// Paper start - dont mutate players current item, set it from the event
ItemStack newBook = itemstack1.cloneItemStack();
- newBook.getOrCreateTagAndSet("pages", (NBTBase)itemstack.getTag().getList("pages", 8));
+ // Purpur start - edit book
+ boolean hasPerm = getPlayer().hasPermission("purpur.book.color.edit");
+ NBTTagList nbttaglist = itemstack.getTag().getList("pages", 8);
+ for (int i = 0; i < nbttaglist.size(); ++i) {
+ nbttaglist.set(i, NBTTagString.create(color(nbttaglist.getString(i), hasPerm, false)));
+ }
+ newBook.getOrCreateTagAndSet("pages", nbttaglist);
+ // Purpur end - edit book
this.player.setSlot(enumitemslot, CraftEventFactory.handleEditBookEvent(player, enumitemslot, itemstack1, newBook));
// Paper end
}
@@ -964,6 +972,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
}
+ // Purpur start
+ private String color(String str, boolean hasPerm) {
+ return color(str, hasPerm, true);
+ }
+
+ private String color(String str, boolean hasPerm, boolean parseHex) {
+ return hasPerm ? org.bukkit.ChatColor.color(str, parseHex) : str;
+ }
+ // Purpur end
+
@Override
public void a(PacketPlayInEntityNBTQuery packetplayinentitynbtquery) {
PlayerConnectionUtils.ensureMainThread(packetplayinentitynbtquery, this, this.player.getWorldServer());

View File

@@ -0,0 +1,57 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 3 Nov 2020 01:25:06 -0600
Subject: [PATCH] Allow color codes in books
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 047d47f974..a55d721a92 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1003,8 +1003,10 @@ public class PlayerConnection implements PacketListenerPlayIn {
if (itemstack.getItem() == Items.WRITABLE_BOOK) {
NBTTagList nbttaglist = new NBTTagList();
-
- list.stream().map(NBTTagString::a).forEach(nbttaglist::add);
+ // Purpur start - edit book
+ boolean hasPerm = getPlayer().hasPermission("purpur.book.color.edit");
+ list.stream().map(s -> s = color(s, hasPerm, false)).map(NBTTagString::a).forEach(nbttaglist::add);
+ // Purpur end - edit book
itemstack.a("pages", (NBTBase) nbttaglist);
}
}
@@ -1020,13 +1022,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
itemstack1.setTag(nbttagcompound.clone());
}
+ boolean hasPerm = getPlayer().hasPermission("purpur.book.color.edit") || getPlayer().hasPermission("purpur.book.color.sign"); // Purpur
itemstack1.a("author", (NBTBase) NBTTagString.a(this.player.getDisplayName().getString()));
- itemstack1.a("title", (NBTBase) NBTTagString.a(s));
+ itemstack1.a("title", (NBTBase) NBTTagString.a(color(itemstack.getTag().getString("title"), hasPerm))); // Purpur - sign book
NBTTagList nbttaglist = new NBTTagList();
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
- String s1 = (String) iterator.next();
+ String s1 = color((String) iterator.next(), hasPerm);// Purpur - sign book
ChatComponentText chatcomponenttext = new ChatComponentText(s1);
String s2 = IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) chatcomponenttext);
@@ -1038,6 +1041,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
}
+ // Purpur start
+ private String color(String str, boolean hasPerm) {
+ return color(str, hasPerm, true);
+ }
+
+ private String color(String str, boolean hasPerm, boolean parseHex) {
+ return hasPerm ? org.bukkit.ChatColor.color(str, parseHex) : str;
+ }
+ // Purpur end
+
@Override
public void a(PacketPlayInEntityNBTQuery packetplayinentitynbtquery) {
PlayerConnectionUtils.ensureMainThread(packetplayinentitynbtquery, this, this.player.getWorldServer());

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 78ee45767a..7465e867ba 100644
index f52b4d69c6..11002b5950 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -53,7 +53,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -92,10 +92,10 @@ index 78ee45767a..7465e867ba 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index de3d692084..f7a4ced160 100644
index a55d721a92..f6ee20c3d4 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2132,6 +2132,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -2214,6 +2214,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
boolean triggerLeashUpdate = itemInHand != null && itemInHand.getItem() == Items.LEAD && entity instanceof EntityInsentient;
Item origItem = this.player.inventory.getItemInHand() == null ? null : this.player.inventory.getItemInHand().getItem();
PlayerInteractEntityEvent event;
@@ -104,7 +104,7 @@ index de3d692084..f7a4ced160 100644
event = new PlayerInteractEntityEvent((Player) this.getPlayer(), entity.getBukkitEntity(), (packetplayinuseentity.c() == EnumHand.OFF_HAND) ? EquipmentSlot.OFF_HAND : EquipmentSlot.HAND);
} else {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 294d8d6711..fca8ef39a9 100644
index 5a4642f1cd..77bb46f911 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -103,6 +103,11 @@ public class PurpurWorldConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 92a2e907ca..ebc0c4745e 100644
index 371addede0..62b3d7ff0d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -441,6 +441,11 @@ public class PurpurWorldConfig {
@@ -440,6 +440,11 @@ public class PurpurWorldConfig {
snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack);
}

View File

@@ -70,10 +70,10 @@ index 4c379916d8..ea6b61c9b8 100644
public static final Item dr = a(Blocks.JACK_O_LANTERN, CreativeModeTab.b);
public static final Item ds = a(Blocks.OAK_TRAPDOOR, CreativeModeTab.d);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ebc0c4745e..ea35ead0f6 100644
index 62b3d7ff0d..3b8058890b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -396,6 +396,9 @@ public class PurpurWorldConfig {
@@ -395,6 +395,9 @@ public class PurpurWorldConfig {
public int phantomSpawnOverheadRadius = 10;
public int phantomSpawnMinPerAttempt = 1;
public int phantomSpawnMaxPerAttempt = -1;
@@ -83,7 +83,7 @@ index ebc0c4745e..ea35ead0f6 100644
private void phantomSettings() {
phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius);
phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage);
@@ -412,6 +415,9 @@ public class PurpurWorldConfig {
@@ -411,6 +414,9 @@ public class PurpurWorldConfig {
phantomSpawnOverheadRadius = getInt("mobs.phantom.spawn.overhead.radius", phantomSpawnOverheadRadius);
phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt);
phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager breeding
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 71644c3d99..0467020bbb 100644
index 3468e096b5..d1a260a3b2 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -640,7 +640,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -18,10 +18,10 @@ index 71644c3d99..0467020bbb 100644
private boolean fr() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index ea35ead0f6..c2f425b479 100644
index 3b8058890b..ce7b2b7ab9 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -459,6 +459,7 @@ public class PurpurWorldConfig {
@@ -458,6 +458,7 @@ public class PurpurWorldConfig {
public boolean villagerFollowEmeraldBlock = false;
public int villagerSpawnIronGolemRadius = 0;
public int villagerSpawnIronGolemLimit = 0;
@@ -29,7 +29,7 @@ index ea35ead0f6..c2f425b479 100644
private void villagerSettings() {
villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
@@ -467,6 +468,7 @@ public class PurpurWorldConfig {
@@ -466,6 +467,7 @@ public class PurpurWorldConfig {
villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock);
villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius);
villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit);

View File

@@ -26,11 +26,11 @@ index c2e830db7a..3b4cc9871c 100644
public abstract BlockPosition b();
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c2f425b479..4c1e8559d9 100644
index ce7b2b7ab9..1b5e14de89 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -278,6 +278,11 @@ public class PurpurWorldConfig {
@@ -277,6 +277,11 @@ public class PurpurWorldConfig {
signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit);
}
+ public boolean spawnerDeactivateByRedstone = false;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix death message colors
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index c7be886e78..bc588af921 100644
index f6d30a243b..faa59d3315 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -667,7 +667,24 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -670,7 +670,24 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
IChatBaseComponent defaultMessage = this.getCombatTracker().getDeathMessage();

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Duplicate paper's vanilla scoreboard colors patch to sync
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index f7a4ced160..1ff07a08dc 100644
index f6ee20c3d4..0ff98adfcb 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1891,7 +1891,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1973,7 +1973,15 @@ public class PlayerConnection implements PacketListenerPlayIn {
return null;
}
@@ -26,7 +26,7 @@ index f7a4ced160..1ff07a08dc 100644
PlayerConnection.this.minecraftServer.console.sendMessage(message);
if (((LazyPlayerSet) queueEvent.getRecipients()).isLazy()) {
for (Object player : PlayerConnection.this.minecraftServer.getPlayerList().players) {
@@ -1924,7 +1932,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -2006,7 +2014,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
// Paper Start - (Meh) Support for vanilla world scoreboard name coloring
String displayName = event.getPlayer().getDisplayName();
if (this.player.getWorld().paperConfig.useVanillaScoreboardColoring) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add no-tick block list
diff --git a/src/main/java/net/minecraft/server/BlockBase.java b/src/main/java/net/minecraft/server/BlockBase.java
index 9d85ce027a..2165de63b1 100644
index 0172e2396b..d719e35043 100644
--- a/src/main/java/net/minecraft/server/BlockBase.java
+++ b/src/main/java/net/minecraft/server/BlockBase.java
@@ -572,10 +572,12 @@ public abstract class BlockBase {
@@ -22,10 +22,10 @@ index 9d85ce027a..2165de63b1 100644
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index e2f714382c..34a4ae5ce0 100644
index 413604b8ae..4b086de17b 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -305,14 +305,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -309,14 +309,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
// CraftBukkit end
if (com.destroystokyo.paper.PaperConfig.useOptimizedTickList) {
this.nextTickListBlock = new com.destroystokyo.paper.server.ticklist.PaperTickList<>(this, (block) -> {
@@ -43,7 +43,7 @@ index e2f714382c..34a4ae5ce0 100644
this.nextTickListFluid = new TickListServer<>(this, (fluidtype) -> {
return fluidtype == null || fluidtype == FluidTypes.EMPTY;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4d54378aa5..bc18657172 100644
index 21b8e004cd..f9df4c5aa3 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -11,8 +11,10 @@ import org.bukkit.configuration.ConfigurationSection;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add option to disable dolphin treasure searching
diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java
index b5191eb0b1..cde5c46fee 100644
index 2916ee89ef..664f969336 100644
--- a/src/main/java/net/minecraft/server/EntityDolphin.java
+++ b/src/main/java/net/minecraft/server/EntityDolphin.java
@@ -329,6 +329,7 @@ public class EntityDolphin extends EntityWaterAnimal {
@@ -17,10 +17,10 @@ index b5191eb0b1..cde5c46fee 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index bc18657172..0a50698fa2 100644
index f9df4c5aa3..8496be8704 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -347,6 +347,11 @@ public class PurpurWorldConfig {
@@ -346,6 +346,11 @@ public class PurpurWorldConfig {
creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance);
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add option to reset reputation when villager is cured
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 0467020bbb..7add2fca10 100644
index d1a260a3b2..a95bf56823 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -39,7 +39,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -26,10 +26,10 @@ index 0467020bbb..7add2fca10 100644
this.by.a(entity.getUniqueID(), ReputationType.MINOR_POSITIVE, 25);
} else if (reputationevent == ReputationEvent.e) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 0a50698fa2..f9a87d0bff 100644
index 8496be8704..806ef0bb48 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -548,9 +548,11 @@ public class PurpurWorldConfig {
@@ -547,9 +547,11 @@ public class PurpurWorldConfig {
public boolean zombieVillagerJockeyOnlyBaby = true;
public double zombieVillagerJockeyChance = 0.05D;
public boolean zombieVillagerJockeyTryExistingChickens = true;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 08ceba1559..2b2911ca8e 100644
index a3cfb5cc31..932d694cc4 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -3417,8 +3417,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -3418,8 +3418,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.lastYaw = this.yaw;
}
@@ -24,7 +24,7 @@ index 08ceba1559..2b2911ca8e 100644
int j = MathHelper.f(axisalignedbb.maxX);
int k = MathHelper.floor(axisalignedbb.minY);
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
index 03d707ed09..028a7fe2cd 100644
index b21605a623..148e4b1587 100644
--- a/src/main/java/net/minecraft/server/EntitySquid.java
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
@@ -25,6 +25,14 @@ public class EntitySquid extends EntityWaterAnimal {
@@ -43,10 +43,10 @@ index 03d707ed09..028a7fe2cd 100644
protected void initPathfinder() {
this.goalSelector.a(0, new EntitySquid.PathfinderGoalSquid(this));
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f9a87d0bff..86a4ce5288 100644
index 806ef0bb48..6ee0a3179b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -487,8 +487,10 @@ public class PurpurWorldConfig {
@@ -486,8 +486,10 @@ public class PurpurWorldConfig {
}
public boolean squidImmuneToEAR = true;

View File

@@ -5,16 +5,16 @@ Subject: [PATCH] Ridables
diff --git a/src/main/java/net/minecraft/server/AttributeDefaults.java b/src/main/java/net/minecraft/server/AttributeDefaults.java
index da66cf0a45..3aa05a80fe 100644
index 8f95a4e497..ab05b5e403 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;
public class AttributeDefaults {
private static final Logger LOGGER = LogManager.getLogger();
- private static final Map<EntityTypes<? extends EntityLiving>, AttributeProvider> b = ImmutableMap.builder().put(EntityTypes.ARMOR_STAND, EntityLiving.cK().a()).put(EntityTypes.BAT, EntityBat.m().a()).put(EntityTypes.BEE, EntityBee.eZ().a()).put(EntityTypes.BLAZE, EntityBlaze.m().a()).put(EntityTypes.CAT, EntityCat.fa().a()).put(EntityTypes.CAVE_SPIDER, EntityCaveSpider.m().a()).put(EntityTypes.CHICKEN, EntityChicken.eK().a()).put(EntityTypes.COD, EntityFish.m().a()).put(EntityTypes.COW, EntityCow.eK().a()).put(EntityTypes.CREEPER, EntityCreeper.m().a()).put(EntityTypes.DOLPHIN, EntityDolphin.eM().a()).put(EntityTypes.DONKEY, EntityHorseChestedAbstract.eL().a()).put(EntityTypes.DROWNED, EntityZombie.eS().a()).put(EntityTypes.ELDER_GUARDIAN, EntityGuardianElder.m().a()).put(EntityTypes.ENDERMAN, EntityEnderman.m().a()).put(EntityTypes.ENDERMITE, EntityEndermite.m().a()).put(EntityTypes.ENDER_DRAGON, EntityEnderDragon.m().a()).put(EntityTypes.EVOKER, EntityEvoker.eK().a()).put(EntityTypes.FOX, EntityFox.eK().a()).put(EntityTypes.GHAST, EntityGhast.eJ().a()).put(EntityTypes.GIANT, EntityGiantZombie.m().a()).put(EntityTypes.GUARDIAN, EntityGuardian.eM().a()).put(EntityTypes.HOGLIN, EntityHoglin.eK().a()).put(EntityTypes.HORSE, EntityHorseAbstract.fi().a()).put(EntityTypes.HUSK, EntityZombie.eS().a()).put(EntityTypes.ILLUSIONER, EntityIllagerIllusioner.eK().a()).put(EntityTypes.IRON_GOLEM, EntityIronGolem.m().a()).put(EntityTypes.LLAMA, EntityLlama.fw().a()).put(EntityTypes.MAGMA_CUBE, EntityMagmaCube.m().a()).put(EntityTypes.MOOSHROOM, EntityCow.eK().a()).put(EntityTypes.MULE, EntityHorseChestedAbstract.eL().a()).put(EntityTypes.OCELOT, EntityOcelot.eK().a()).put(EntityTypes.PANDA, EntityPanda.eY().a()).put(EntityTypes.PARROT, EntityParrot.eU().a()).put(EntityTypes.PHANTOM, EntityMonster.eR().a()).put(EntityTypes.PIG, EntityPig.eK().a()).put(EntityTypes.PIGLIN, EntityPiglin.eT().a()).put(EntityTypes.PIGLIN_BRUTE, EntityPiglinBrute.eS().a()).put(EntityTypes.PILLAGER, EntityPillager.eK().a()).put(EntityTypes.PLAYER, EntityHuman.eo().a()).put(EntityTypes.POLAR_BEAR, EntityPolarBear.eK().a()).put(EntityTypes.PUFFERFISH, EntityFish.m().a()).put(EntityTypes.RABBIT, EntityRabbit.eL().a()).put(EntityTypes.RAVAGER, EntityRavager.m().a()).put(EntityTypes.SALMON, EntityFish.m().a()).put(EntityTypes.SHEEP, EntitySheep.eK().a()).put(EntityTypes.SHULKER, EntityShulker.m().a()).put(EntityTypes.SILVERFISH, EntitySilverfish.m().a()).put(EntityTypes.SKELETON, EntitySkeletonAbstract.m().a()).put(EntityTypes.SKELETON_HORSE, EntityHorseSkeleton.eL().a()).put(EntityTypes.SLIME, EntityMonster.eR().a()).put(EntityTypes.SNOW_GOLEM, EntitySnowman.m().a()).put(EntityTypes.SPIDER, EntitySpider.eK().a()).put(EntityTypes.SQUID, EntitySquid.m().a()).put(EntityTypes.STRAY, EntitySkeletonAbstract.m().a()).put(EntityTypes.STRIDER, EntityStrider.eM().a()).put(EntityTypes.TRADER_LLAMA, EntityLlama.fw().a()).put(EntityTypes.TROPICAL_FISH, EntityFish.m().a()).put(EntityTypes.TURTLE, EntityTurtle.eM().a()).put(EntityTypes.VEX, EntityVex.m().a()).put(EntityTypes.VILLAGER, EntityVillager.eY().a()).put(EntityTypes.VINDICATOR, EntityVindicator.eK().a()).put(EntityTypes.WANDERING_TRADER, EntityInsentient.p().a()).put(EntityTypes.WITCH, EntityWitch.eK().a()).put(EntityTypes.WITHER, EntityWither.eK().a()).put(EntityTypes.WITHER_SKELETON, EntitySkeletonAbstract.m().a()).put(EntityTypes.WOLF, EntityWolf.eU().a()).put(EntityTypes.ZOGLIN, EntityZoglin.m().a()).put(EntityTypes.ZOMBIE, EntityZombie.eS().a()).put(EntityTypes.ZOMBIE_HORSE, EntityHorseZombie.eL().a()).put(EntityTypes.ZOMBIE_VILLAGER, EntityZombie.eS().a()).put(EntityTypes.ZOMBIFIED_PIGLIN, EntityPigZombie.eW().a()).build();
- private static final Map<EntityTypes<? extends EntityLiving>, AttributeProvider> b = ImmutableMap.builder().put(EntityTypes.ARMOR_STAND, EntityLiving.cL().a()).put(EntityTypes.BAT, EntityBat.m().a()).put(EntityTypes.BEE, EntityBee.eZ().a()).put(EntityTypes.BLAZE, EntityBlaze.m().a()).put(EntityTypes.CAT, EntityCat.fa().a()).put(EntityTypes.CAVE_SPIDER, EntityCaveSpider.m().a()).put(EntityTypes.CHICKEN, EntityChicken.eK().a()).put(EntityTypes.COD, EntityFish.m().a()).put(EntityTypes.COW, EntityCow.eK().a()).put(EntityTypes.CREEPER, EntityCreeper.m().a()).put(EntityTypes.DOLPHIN, EntityDolphin.eM().a()).put(EntityTypes.DONKEY, EntityHorseChestedAbstract.eL().a()).put(EntityTypes.DROWNED, EntityZombie.eS().a()).put(EntityTypes.ELDER_GUARDIAN, EntityGuardianElder.m().a()).put(EntityTypes.ENDERMAN, EntityEnderman.m().a()).put(EntityTypes.ENDERMITE, EntityEndermite.m().a()).put(EntityTypes.ENDER_DRAGON, EntityEnderDragon.m().a()).put(EntityTypes.EVOKER, EntityEvoker.eK().a()).put(EntityTypes.FOX, EntityFox.eK().a()).put(EntityTypes.GHAST, EntityGhast.eJ().a()).put(EntityTypes.GIANT, EntityGiantZombie.m().a()).put(EntityTypes.GUARDIAN, EntityGuardian.eM().a()).put(EntityTypes.HOGLIN, EntityHoglin.eK().a()).put(EntityTypes.HORSE, EntityHorseAbstract.fi().a()).put(EntityTypes.HUSK, EntityZombie.eS().a()).put(EntityTypes.ILLUSIONER, EntityIllagerIllusioner.eK().a()).put(EntityTypes.IRON_GOLEM, EntityIronGolem.m().a()).put(EntityTypes.LLAMA, EntityLlama.fw().a()).put(EntityTypes.MAGMA_CUBE, EntityMagmaCube.m().a()).put(EntityTypes.MOOSHROOM, EntityCow.eK().a()).put(EntityTypes.MULE, EntityHorseChestedAbstract.eL().a()).put(EntityTypes.OCELOT, EntityOcelot.eK().a()).put(EntityTypes.PANDA, EntityPanda.eY().a()).put(EntityTypes.PARROT, EntityParrot.eU().a()).put(EntityTypes.PHANTOM, EntityMonster.eR().a()).put(EntityTypes.PIG, EntityPig.eK().a()).put(EntityTypes.PIGLIN, EntityPiglin.eT().a()).put(EntityTypes.PIGLIN_BRUTE, EntityPiglinBrute.eS().a()).put(EntityTypes.PILLAGER, EntityPillager.eK().a()).put(EntityTypes.PLAYER, EntityHuman.ep().a()).put(EntityTypes.POLAR_BEAR, EntityPolarBear.eK().a()).put(EntityTypes.PUFFERFISH, EntityFish.m().a()).put(EntityTypes.RABBIT, EntityRabbit.eL().a()).put(EntityTypes.RAVAGER, EntityRavager.m().a()).put(EntityTypes.SALMON, EntityFish.m().a()).put(EntityTypes.SHEEP, EntitySheep.eK().a()).put(EntityTypes.SHULKER, EntityShulker.m().a()).put(EntityTypes.SILVERFISH, EntitySilverfish.m().a()).put(EntityTypes.SKELETON, EntitySkeletonAbstract.m().a()).put(EntityTypes.SKELETON_HORSE, EntityHorseSkeleton.eL().a()).put(EntityTypes.SLIME, EntityMonster.eR().a()).put(EntityTypes.SNOW_GOLEM, EntitySnowman.m().a()).put(EntityTypes.SPIDER, EntitySpider.eK().a()).put(EntityTypes.SQUID, EntitySquid.m().a()).put(EntityTypes.STRAY, EntitySkeletonAbstract.m().a()).put(EntityTypes.STRIDER, EntityStrider.eM().a()).put(EntityTypes.TRADER_LLAMA, EntityLlama.fw().a()).put(EntityTypes.TROPICAL_FISH, EntityFish.m().a()).put(EntityTypes.TURTLE, EntityTurtle.eM().a()).put(EntityTypes.VEX, EntityVex.m().a()).put(EntityTypes.VILLAGER, EntityVillager.eY().a()).put(EntityTypes.VINDICATOR, EntityVindicator.eK().a()).put(EntityTypes.WANDERING_TRADER, EntityInsentient.p().a()).put(EntityTypes.WITCH, EntityWitch.eK().a()).put(EntityTypes.WITHER, EntityWither.eK().a()).put(EntityTypes.WITHER_SKELETON, EntitySkeletonAbstract.m().a()).put(EntityTypes.WOLF, EntityWolf.eU().a()).put(EntityTypes.ZOGLIN, EntityZoglin.m().a()).put(EntityTypes.ZOMBIE, EntityZombie.eS().a()).put(EntityTypes.ZOMBIE_HORSE, EntityHorseZombie.eL().a()).put(EntityTypes.ZOMBIE_VILLAGER, EntityZombie.eS().a()).put(EntityTypes.ZOMBIFIED_PIGLIN, EntityPigZombie.eW().a()).build();
+ private static final Map<EntityTypes<? extends EntityLiving>, AttributeProvider> b = ImmutableMap.<EntityTypes<? extends EntityLiving>, AttributeProvider>builder() // Purpur decompile error
+ .put(EntityTypes.ARMOR_STAND, EntityLiving.cK().a())
+ .put(EntityTypes.ARMOR_STAND, EntityLiving.cL().a())
+ .put(EntityTypes.BAT, EntityBat.m().a())
+ .put(EntityTypes.BEE, EntityBee.eZ().a())
+ .put(EntityTypes.BLAZE, EntityBlaze.m().a())
@@ -53,7 +53,7 @@ index da66cf0a45..3aa05a80fe 100644
+ .put(EntityTypes.PIGLIN, EntityPiglin.eT().a())
+ .put(EntityTypes.PIGLIN_BRUTE, EntityPiglinBrute.eS().a())
+ .put(EntityTypes.PILLAGER, EntityPillager.eK().a())
+ .put(EntityTypes.PLAYER, EntityHuman.eo().a())
+ .put(EntityTypes.PLAYER, EntityHuman.ep().a())
+ .put(EntityTypes.POLAR_BEAR, EntityPolarBear.eK().a())
+ .put(EntityTypes.PUFFERFISH, EntityFish.m().a())
+ .put(EntityTypes.RABBIT, EntityRabbit.eL().a())
@@ -161,7 +161,7 @@ index bd0267ee4b..8b36ac2b09 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 2b2911ca8e..48cd541912 100644
index 932d694cc4..1d4078f5a1 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
@@ -200,7 +200,7 @@ index 2b2911ca8e..48cd541912 100644
private float headHeight;
// CraftBukkit start
public boolean persist = true;
@@ -1459,6 +1459,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1460,6 +1460,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return !this.justCreated && this.M.getDouble(TagsFluid.LAVA) > 0.0D;
}
@@ -208,7 +208,7 @@ index 2b2911ca8e..48cd541912 100644
public void a(float f, Vec3D vec3d) {
Vec3D vec3d1 = a(vec3d, f, this.yaw);
@@ -2214,6 +2215,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2215,6 +2216,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.a(entity, false);
}
@@ -216,7 +216,7 @@ index 2b2911ca8e..48cd541912 100644
public boolean a(Entity entity, boolean flag) {
for (Entity entity1 = entity; entity1.vehicle != null; entity1 = entity1.vehicle) {
if (entity1.vehicle == this) {
@@ -2309,6 +2311,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2310,6 +2312,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.passengers.add(entity);
}
@@ -230,7 +230,7 @@ index 2b2911ca8e..48cd541912 100644
}
return true; // CraftBukkit
}
@@ -2349,6 +2358,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2350,6 +2359,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
// Spigot end
@@ -243,23 +243,23 @@ index 2b2911ca8e..48cd541912 100644
this.passengers.remove(entity);
entity.j = 60;
}
@@ -2514,6 +2529,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2515,6 +2530,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.setFlag(4, flag);
}
+ public boolean isGlowing() { return bD(); } // Purpur - OBFHELPER
public boolean bD() {
+ public boolean isGlowing() { return bE(); } // Purpur - OBFHELPER
public boolean bE() {
return this.glowing || this.world.isClientSide && this.getFlag(6);
}
@@ -2736,6 +2752,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2737,6 +2753,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public void setHeadRotation(float f) {}
+ public void setBodyYaw(float yaw) { n(yaw); } // Purpur - OBFHELPER
public void n(float f) {}
public boolean bK() {
@@ -3170,6 +3187,18 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public boolean bL() {
@@ -3171,6 +3188,18 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
@@ -278,7 +278,7 @@ index 2b2911ca8e..48cd541912 100644
@Override
public void sendMessage(IChatBaseComponent ichatbasecomponent, UUID uuid) {}
@@ -3622,4 +3651,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -3623,4 +3652,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return ((ChunkProviderServer) world.getChunkProvider()).isInEntityTickingChunk(this);
}
// Paper end
@@ -327,7 +327,7 @@ index 2b2911ca8e..48cd541912 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
index f230d84faa..bbf61d0111 100644
index 85371542e4..a031f8778c 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 f230d84faa..bbf61d0111 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 b1ff30fb15..eab72c1d7c 100644
index f73641ddb3..d8354ec4d1 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 b1ff30fb15..eab72c1d7c 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java
index f55f125306..0536fc8bf3 100644
index 74082136b3..dcfad16e06 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 f55f125306..0536fc8bf3 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 79de11ce2f..ff99ee04df 100644
index 57166a543a..05929d5c53 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 {
@@ -717,7 +717,7 @@ index 776f3d25a6..2e1f2dec17 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 26dee32bfe..7ad6190fa8 100644
index 11a612fa39..a16ecd7edc 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 {
@@ -877,7 +877,7 @@ index cfb009c811..1219b0aa9c 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 013639cc90..d0bcf4b5fa 100644
index 2256b81624..d186f257fa 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 013639cc90..d0bcf4b5fa 100644
}
// Paper end
diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java
index cde5c46fee..991e7f5930 100644
index 664f969336..9d5d143a99 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 {
@@ -1085,7 +1085,7 @@ index cde5c46fee..991e7f5930 100644
+ spitCooldown--;
+ }
if (this.isNoAI()) {
this.setAirTicks(this.bG());
this.setAirTicks(this.bH());
} else {
@@ -468,7 +513,7 @@ public class EntityDolphin extends EntityWaterAnimal {
@@ -1128,7 +1128,7 @@ index cde5c46fee..991e7f5930 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 6853ba3194..8aa53c617b 100644
index 1a10281692..125eab60f2 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 6853ba3194..8aa53c617b 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index d617b5345d..088aede370 100644
index d2fcd0bc16..fd1e966d1a 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 {
@@ -1280,7 +1280,7 @@ index d617b5345d..088aede370 100644
@@ -125,6 +191,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
this.bp = this.bq;
if (this.dk()) {
if (this.dl()) {
+ if (hasRider) ejectPassengers(); // Purpur
f = (this.random.nextFloat() - 0.5F) * 8.0F;
f1 = (this.random.nextFloat() - 0.5F) * 4.0F;
@@ -1334,7 +1334,7 @@ index d617b5345d..088aede370 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index fde60d6c89..d8117df531 100644
index e336403266..995849212c 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 {
@@ -1374,7 +1374,7 @@ index fde60d6c89..d8117df531 100644
protected void mobTick() {
- if (this.world.isDay() && this.ticksLived >= this.bs + 600) {
+ if (!hasRider() && this.world.isDay() && this.ticksLived >= this.bs + 600) { // Purpur - no random teleporting
float f = this.aQ();
float f = this.aR();
if (f > 0.5F && this.world.e(this.getChunkCoordinates()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper
@@ -322,6 +336,7 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
@@ -1402,7 +1402,7 @@ index fde60d6c89..d8117df531 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java
index c4b1f318f7..3ded8d0025 100644
index fcebf36312..7eef7f523a 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 c4b1f318f7..3ded8d0025 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java
index ae7b269def..e045d167bc 100644
index f40fbef32f..c75dc75611 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 ae7b269def..e045d167bc 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java
index 27d0f93510..dd25e80cc5 100644
index 9b84564401..668f9d61b7 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 {
@@ -1571,7 +1571,7 @@ index 08372b7226..6a8e15f016 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
index 04b2bbea0c..bb929ac7b7 100644
index 8845afd83d..f5defe4713 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 {
@@ -1802,7 +1802,7 @@ index 8dce2aad77..2c0a696b8d 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 d42750fdd4..803f8e8aa5 100644
index 27ec46c0b2..0a7f51a2a1 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 d42750fdd4..803f8e8aa5 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 5d2870f0e8..8148bc8b4e 100644
index b691e84495..f6f8827469 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 5d2870f0e8..8148bc8b4e 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 cf64c8ca2c..7f642fe674 100644
index f679792536..548ff4449f 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 cf64c8ca2c..7f642fe674 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java
index 069111952a..bd63a25e2c 100644
index e0e60bb6d8..0415a4d1f3 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 069111952a..bd63a25e2c 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 c7757f9d0a..5b10c2d9a9 100644
index 573d4a5c78..4b41a58833 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
@@ -2071,7 +2071,7 @@ index 3dd4d4f0f3..243aeb736e 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 abbc12c8e0..b39feed7a9 100644
index a53d335f3a..e2c6a5807a 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 {
@@ -2105,14 +2105,14 @@ index abbc12c8e0..b39feed7a9 100644
@@ -117,7 +129,7 @@ public class EntityHorseSkeleton extends EntityHorseAbstract {
@Override
public boolean bs() {
public boolean bt() {
- return true;
+ return super.bs(); // Purpur
+ return super.bt(); // Purpur
}
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java
index acc5b8ca90..6e9806662d 100644
index 0e98173607..559ba50977 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 acc5b8ca90..6e9806662d 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 48f9feaea1..6c2b57a294 100644
index 75f9874115..deb6c93426 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 48f9feaea1..6c2b57a294 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
index f5c9e4e0ae..1acb85869b 100644
index b6c6b4d54e..f5b6d83f87 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 f5c9e4e0ae..1acb85869b 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 7465e867ba..2bda9d6c6c 100644
index 11002b5950..99c4606105 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 {
@@ -2238,7 +2238,7 @@ index 7465e867ba..2bda9d6c6c 100644
return; // feature disabled
}
@@ -552,14 +552,17 @@ public abstract class EntityInsentient extends EntityLiving {
return super.do_();
return super.dp();
}
+ public void setForwardSpeed(float speed) { this.t(speed); } // Purpur - OBFHELPER
@@ -2371,33 +2371,33 @@ index bdff236883..9ee03b233b 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 a2d50a1fef..b8f59f29a4 100644
index 1e47a741cf..c33909e20a 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 {
@Override
public boolean bs() {
public boolean bt() {
- return false;
+ return isRidableInWater(); // Purpur
}
protected void cT() {
protected void cU() {
@@ -2186,7 +2186,7 @@ public abstract class EntityLiving extends Entity {
return 0.42F * this.getBlockJumpFactor();
}
- protected void jump() {
+ public void jump() { // Purpur - protected -> public
float f = this.dI();
float f = this.dJ();
if (this.hasEffect(MobEffects.JUMP)) {
@@ -2435,10 +2435,12 @@ public abstract class EntityLiving extends Entity {
return this.onGround ? this.dM() * (0.21600002F / (f * f * f)) : this.aE;
return this.onGround ? this.dN() * (0.21600002F / (f * f * f)) : this.aE;
}
+ public float getSpeed() { return dM(); } // Purpur - OBFHELPER
public float dM() {
+ public float getSpeed() { return dN(); } // Purpur - OBFHELPER
public float dN() {
return this.bu;
}
@@ -2406,7 +2406,7 @@ index a2d50a1fef..b8f59f29a4 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 e90ff597d1..f8cff07d07 100644
index e61f53816c..1099277868 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 e90ff597d1..f8cff07d07 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 665a9e8524..f65e93b742 100644
index 7d30e5c237..b6aae5cdee 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 665a9e8524..f65e93b742 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 8f9813ddd6..9babff772b 100644
index 874dd39825..cd28463e2b 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 {
@@ -2545,7 +2545,7 @@ index 8f9813ddd6..9babff772b 100644
+ public void jump() { // Purpur - protected -> public
Vec3D vec3d = this.getMot();
this.setMot(vec3d.x, (double) (this.dI() + (float) this.getSize() * 0.1F), vec3d.z);
this.setMot(vec3d.x, (double) (this.dJ() + (float) this.getSize() * 0.1F), vec3d.z);
this.impulse = true;
+ this.actualJump = false; // Purpur
}
@@ -2593,7 +2593,7 @@ index 38df17bd20..7966b34f8d 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 9dc55b7832..5a05ae0178 100644
index 7bd3fea6e0..2f8275cd6b 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 9dc55b7832..5a05ae0178 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 01cc3d94d3..3bf8522b14 100644
index b36cc95168..eafae5516b 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 01cc3d94d3..3bf8522b14 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
index 6bb73f869b..24d78bb2ec 100644
index f7b92078ea..66c1d666cd 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 {
@@ -3014,7 +3014,7 @@ index 03c9a8d0c2..e8900e9a5c 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 87caac62b0..2b7ab2d7a9 100644
index 7f52c39234..dade0bb294 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 87caac62b0..2b7ab2d7a9 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 194b76059c..dbc5a74f6e 100644
index 32b75f710b..3327dbbf87 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 194b76059c..dbc5a74f6e 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 e1b4330074..55739e52e1 100644
index ca7f9dc54e..334e0f73e6 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 e1b4330074..55739e52e1 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPiglinBrute.java b/src/main/java/net/minecraft/server/EntityPiglinBrute.java
index 00db2d1668..c672e31fcb 100644
index 3e9a4af09d..f6b1708111 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 {
@@ -3189,10 +3189,10 @@ index a3a428da99..cf7de01271 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/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 0bf86369bc..5e5e183da1 100644
index faa59d3315..426e632260 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -502,6 +502,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -505,6 +505,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
this.advancementDataPlayer.b(this);
@@ -3209,7 +3209,7 @@ index 0bf86369bc..5e5e183da1 100644
public void playerTick() {
diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java
index cd6d2e07ec..1575aaa764 100644
index 99f0bd8f82..3d649843f5 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 {
@@ -3284,7 +3284,7 @@ index cd6d2e07ec..1575aaa764 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java
index 639af6bd3d..81e9185726 100644
index 330ec38d09..16a4df27c5 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 {
@@ -3316,7 +3316,7 @@ index 639af6bd3d..81e9185726 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java
index 98baf24bde..9cd737d16b 100644
index 25a9b7906b..b766a27e98 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 {
@@ -3352,7 +3352,7 @@ index 98baf24bde..9cd737d16b 100644
}
@Override
- protected float dI() {
- protected float dJ() {
+ // Purpur start
+ public float getJumpHeight() {
+ if (hasRider()) {
@@ -3434,7 +3434,7 @@ index 98baf24bde..9cd737d16b 100644
+ // Purpur end
+
@Override
public boolean aN() {
public boolean aO() {
return false;
@@ -485,7 +547,7 @@ public class EntityRabbit extends EntityAnimal {
}
@@ -3481,7 +3481,7 @@ index 98baf24bde..9cd737d16b 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 7064a12c89..16d302f44b 100644
index fd1ac7df68..a902145881 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 {
@@ -3583,7 +3583,7 @@ index 2908e9cc47..a151d4295c 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 f0394fe521..36617c9732 100644
index 7bedaf02c4..30e0e14162 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 {
@@ -3623,7 +3623,7 @@ index f0394fe521..36617c9732 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 35f15c8ddd..dd2dfdff59 100644
index 28b490cc14..ad428e0900 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 {
@@ -3686,7 +3686,7 @@ index 7c39bec831..3f130e03bf 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 513bb3087e..a50d43cf79 100644
index ced89af70c..4d5af11734 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
@@ -3751,7 +3751,7 @@ index c872be77a6..96cb080d94 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 f74c827850..b9080fa0a2 100644
index e99fd88118..4602636298 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 {
@@ -3808,7 +3808,7 @@ index f74c827850..b9080fa0a2 100644
+ public void jump() { // Purpur - protected -> public
Vec3D vec3d = this.getMot();
this.setMot(vec3d.x, (double) this.dI(), vec3d.z);
this.setMot(vec3d.x, (double) this.dJ(), vec3d.z);
this.impulse = true;
+ this.actualJump = false; // Purpur
}
@@ -3867,7 +3867,7 @@ index f74c827850..b9080fa0a2 100644
}
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index dfe615814d..105bd8d0c8 100644
index 95ee716fc9..e980da14cf 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
@@ -3924,7 +3924,7 @@ index dfe615814d..105bd8d0c8 100644
}
diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java
index 42f02b03b1..7610ba7712 100644
index bf68efd52f..92d7413787 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 {
@@ -3957,7 +3957,7 @@ index 42f02b03b1..7610ba7712 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 028a7fe2cd..8c749c50bf 100644
index 148e4b1587..70b952f10a 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 {
@@ -4053,11 +4053,11 @@ index 028a7fe2cd..8c749c50bf 100644
+ return;
+ }
+ // Purpur end
int i = this.b.dc();
int i = this.b.dd();
if (i > 100) {
diff --git a/src/main/java/net/minecraft/server/EntityStrider.java b/src/main/java/net/minecraft/server/EntityStrider.java
index 3bd9b53d4c..c065f04678 100644
index 6d4c6a8f1c..172867f50d 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
@@ -4132,7 +4132,7 @@ index 495c28ccb8..2c9df356e6 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 e025eef476..1edd0953ae 100644
index 4ad393bc99..2b34e6cf3b 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 {
@@ -4214,7 +4214,7 @@ index e025eef476..1edd0953ae 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 ae05856f25..712bece54f 100644
index ed6a47ad2f..ac75ed3e2e 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 {
@@ -4311,7 +4311,7 @@ index ae05856f25..712bece54f 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 7add2fca10..1b707558fc 100644
index a95bf56823..cead15b075 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
@@ -4395,7 +4395,7 @@ index 96dda6a14f..3ea66955df 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 a945a0a073..63b68e9285 100644
index 8f812aa913..9950bda50f 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 {
@@ -4428,7 +4428,7 @@ index a945a0a073..63b68e9285 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 0ef981e5ad..2ff6de67e5 100644
index ca3c5150bc..323d79a994 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 {
@@ -4464,11 +4464,11 @@ index 0ef981e5ad..2ff6de67e5 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 29bb74e51e..e563cd47f3 100644
index 53482a420c..f68cf834aa 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 {
return entityliving.getMonsterType() != EnumMonsterType.UNDEAD && entityliving.eh();
return entityliving.getMonsterType() != EnumMonsterType.UNDEAD && entityliving.ei();
};
private static final PathfinderTargetCondition bz = (new PathfinderTargetCondition()).a(20.0D).a(EntityWither.by);
+ private int shootCooldown = 0; // Purpur
@@ -4672,7 +4672,7 @@ index 29bb74e51e..e563cd47f3 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
index 5779d1c9f9..950598db7b 100644
index dcbb34313f..9ae7168595 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
@@ -4712,7 +4712,7 @@ index 5779d1c9f9..950598db7b 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 55df54733d..ce4072f6ea 100644
index e76e6ebde7..d92fe8013f 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 {
@@ -4732,7 +4732,7 @@ index 55df54733d..ce4072f6ea 100644
+ // Purpur end
+
@Override
protected BehaviorController.b<EntityZoglin> cJ() {
protected BehaviorController.b<EntityZoglin> cK() {
return BehaviorController.a((Collection) EntityZoglin.c, (Collection) EntityZoglin.b);
@@ -52,10 +64,10 @@ public class EntityZoglin extends EntityMonster implements IMonster, IOglin {
}
@@ -4776,7 +4776,7 @@ index 55df54733d..ce4072f6ea 100644
this.eL();
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 3e5c692876..7d4598a944 100644
index b90ea31440..e2f68d843c 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 {
@@ -4830,7 +4830,7 @@ index ce6d797801..02b0ae550a 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 69e98dcebe..cdcf3d1cf5 100644
index b86816205c..7db942c659 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
@@ -4851,7 +4851,7 @@ index 69e98dcebe..cdcf3d1cf5 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 b67aede005..ed09fe7fdd 100644
index cbc0b8bc85..89d64ea0d1 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 {
@@ -4939,10 +4939,10 @@ index 0000000000..44929182df
+ }
+}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 666115743c..6a81fec9f7 100644
index 0ff98adfcb..55e74c7026 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 {
@@ -2231,6 +2231,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
this.server.getPluginManager().callEvent(event);
@@ -4992,10 +4992,10 @@ index 5af554870b..c59305ef7d 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 856d849aba..e1c232d59d 100644
index 41ba7beac4..94d1dafec6 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 {
@@ -1520,5 +1520,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean isTheEnd() {
return getWorld().getEnvironment() == org.bukkit.World.Environment.THE_END;
}
@@ -5025,7 +5025,7 @@ index 8714d1574d..af3739c79a 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 86a4ce5288..35bb5d3e34 100644
index 6ee0a3179b..1a606b426b 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 {
@@ -5040,7 +5040,7 @@ index 86a4ce5288..35bb5d3e34 100644
private ConfigurationSection getConfigurationSection(String path) {
ConfigurationSection section = PurpurConfig.config.getConfigurationSection("world-settings." + worldName + "." + path);
return section != null ? section : PurpurConfig.config.getConfigurationSection("world-settings.default." + path);
@@ -321,65 +316,190 @@ public class PurpurWorldConfig {
@@ -320,65 +315,190 @@ public class PurpurWorldConfig {
turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts);
}
@@ -5231,7 +5231,7 @@ index 86a4ce5288..35bb5d3e34 100644
public float giantStepHeight = 2.0F;
public float giantJumpHeight = 1.0F;
public double giantMaxHealth = 100.0D;
@@ -388,6 +508,8 @@ public class PurpurWorldConfig {
@@ -387,6 +507,8 @@ public class PurpurWorldConfig {
public boolean giantHaveAI = false;
public boolean giantHaveHostileAI = false;
private void giantSettings() {
@@ -5240,7 +5240,7 @@ index 86a4ce5288..35bb5d3e34 100644
giantStepHeight = (float) getDouble("mobs.giant.step-height", giantStepHeight);
giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight);
giantMaxHealth = getDouble("mobs.giant.max-health", giantMaxHealth);
@@ -397,29 +519,119 @@ public class PurpurWorldConfig {
@@ -396,29 +518,119 @@ public class PurpurWorldConfig {
giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI);
}
@@ -5360,7 +5360,7 @@ index 86a4ce5288..35bb5d3e34 100644
public double phantomAttackedByCrystalRadius = 0.0D;
public float phantomAttackedByCrystalDamage = 1.0F;
public double phantomOrbitCrystalRadius = 0.0D;
@@ -439,6 +651,11 @@ public class PurpurWorldConfig {
@@ -438,6 +650,11 @@ public class PurpurWorldConfig {
public boolean phantomIgnorePlayersWithTorch = false;
public boolean phantomBurnInDaylight = true;
private void phantomSettings() {
@@ -5372,7 +5372,7 @@ index 86a4ce5288..35bb5d3e34 100644
phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius);
phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage);
phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius);
@@ -459,40 +676,184 @@ public class PurpurWorldConfig {
@@ -458,40 +675,184 @@ public class PurpurWorldConfig {
phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch);
}
@@ -5557,7 +5557,7 @@ index 86a4ce5288..35bb5d3e34 100644
public int villagerBrainTicks = 1;
public boolean villagerUseBrainTicksOnlyWhenLagging = true;
public boolean villagerCanBeLeashed = false;
@@ -502,6 +863,8 @@ public class PurpurWorldConfig {
@@ -501,6 +862,8 @@ public class PurpurWorldConfig {
public int villagerSpawnIronGolemLimit = 0;
public boolean villagerCanBreed = true;
private void villagerSettings() {
@@ -5566,7 +5566,7 @@ index 86a4ce5288..35bb5d3e34 100644
villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed);
@@ -512,46 +875,109 @@ public class PurpurWorldConfig {
@@ -511,46 +874,109 @@ public class PurpurWorldConfig {
villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed);
}
@@ -6325,7 +6325,7 @@ index f4d48753a7..76e59ec1d8 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 0f0d70c062..23df99e3ff 100644
index 90d8631ddd..8bb9449a69 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 {

View File

@@ -5,19 +5,19 @@ Subject: [PATCH] Entities can use portals configuration
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 48cd541912..deaa8b8371 100644
index 1d4078f5a1..5c3cfeab78 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -2390,7 +2390,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2391,7 +2391,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public void d(BlockPosition blockposition) {
if (this.ah()) {
if (this.ai()) {
this.resetPortalCooldown();
- } else {
+ } else if (world.purpurConfig.entitiesCanUsePortals || this instanceof EntityPlayer) { // Purpur
if (!this.world.isClientSide && !blockposition.equals(this.ac)) {
this.ac = blockposition.immutableCopy();
}
@@ -2963,7 +2963,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2964,7 +2964,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
public boolean canPortal() {
@@ -27,7 +27,7 @@ index 48cd541912..deaa8b8371 100644
public float a(Explosion explosion, IBlockAccess iblockaccess, BlockPosition blockposition, IBlockData iblockdata, Fluid fluid, float f) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 30fdfa6aa5..039a205045 100644
index 1a606b426b..f80f115690 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -140,6 +140,7 @@ public class PurpurWorldConfig {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Customizable WitherBoss Health and Healing
Adds the ability to customize the health of the Wither Boss, as well as the amount that it heals, and how often in the PurpurWorldConfig.
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index 1054b492c..2a288d372 100644
index f68cf834aa..4cac2bd091 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -145,6 +145,12 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -53,10 +53,10 @@ index 1054b492c..2a288d372 100644
@Override
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 82cc321a0..3c3e48c9c 100644
index f80f115690..0d4d9ce345 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -907,10 +907,16 @@ public class PurpurWorldConfig {
@@ -906,10 +906,16 @@ public class PurpurWorldConfig {
public boolean witherRidable = false;
public boolean witherRidableInWater = false;
public double witherMaxY = 256D;

View File

@@ -29,7 +29,7 @@ index 502cb0ea40..f88c7b5480 100644
if (SpawnerCreature.a(EntityPositionTypes.Surface.ON_GROUND, iworldreader, blockposition2, EntityTypes.WANDERING_TRADER)) {
blockposition1 = blockposition2;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c3dbe78027..dcf03067e1 100644
index 94d1dafec6..2df0ddded3 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -128,7 +128,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -42,10 +42,10 @@ index c3dbe78027..dcf03067e1 100644
this.generator = gen;
this.world = new CraftWorld((WorldServer) this, gen, env);
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 34a4ae5ce0..0fb41962c8 100644
index 4b086de17b..37423fd9c4 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -322,7 +322,24 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -326,7 +326,24 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.L = new ObjectLinkedOpenHashSet();
this.Q = flag1;
this.server = minecraftserver;
@@ -72,7 +72,7 @@ index 34a4ae5ce0..0fb41962c8 100644
this.worldDataServer = (WorldDataServer) iworlddataserver;
worldDataServer.world = this;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c905d95a8c..b360186b3a 100644
index 0d4d9ce345..3c91ab0a58 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -7,6 +7,8 @@ import net.minecraft.server.IRegistry;

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Despawn rate config options per projectile type
Default values of -1 respect vanilla behaviour.
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
index b0218959a0..cecaa6e70e 100644
index 1e7f5957d8..7f89b269e3 100644
--- a/src/main/java/net/minecraft/server/EntityArrow.java
+++ b/src/main/java/net/minecraft/server/EntityArrow.java
@@ -23,7 +23,7 @@ public abstract class EntityArrow extends IProjectile {
@@ -96,10 +96,10 @@ index 63b4a449b5..e8650c1bfa 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityFireworks.java b/src/main/java/net/minecraft/server/EntityFireworks.java
index 36729e4783..a9418cbe36 100644
index a646dc9f03..9789d480ad 100644
--- a/src/main/java/net/minecraft/server/EntityFireworks.java
+++ b/src/main/java/net/minecraft/server/EntityFireworks.java
@@ -296,4 +296,11 @@ public class EntityFireworks extends IProjectile {
@@ -298,4 +298,11 @@ public class EntityFireworks extends IProjectile {
public Packet<?> P() {
return new PacketPlayOutSpawnEntity(this);
}
@@ -112,7 +112,7 @@ index 36729e4783..a9418cbe36 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
index 25ec9e9319..978de43ef9 100644
index 3cee6beaba..ae590c8993 100644
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
@@ -564,4 +564,11 @@ public class EntityFishingHook extends IProjectile {
@@ -144,7 +144,7 @@ index b4b0dfbc70..d12de20cf4 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityLlamaSpit.java b/src/main/java/net/minecraft/server/EntityLlamaSpit.java
index 29d1db053c..77925e9e16 100644
index 7636a51a7e..3e6438c977 100644
--- a/src/main/java/net/minecraft/server/EntityLlamaSpit.java
+++ b/src/main/java/net/minecraft/server/EntityLlamaSpit.java
@@ -71,4 +71,11 @@ public class EntityLlamaSpit extends IProjectile {
@@ -160,7 +160,7 @@ index 29d1db053c..77925e9e16 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityPotion.java b/src/main/java/net/minecraft/server/EntityPotion.java
index c7416602c1..b189e2d8e9 100644
index d57da221c1..6d4b1e58df 100644
--- a/src/main/java/net/minecraft/server/EntityPotion.java
+++ b/src/main/java/net/minecraft/server/EntityPotion.java
@@ -240,4 +240,11 @@ public class EntityPotion extends EntityProjectileThrowable {
@@ -176,7 +176,7 @@ index c7416602c1..b189e2d8e9 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityShulkerBullet.java b/src/main/java/net/minecraft/server/EntityShulkerBullet.java
index 226b346436..b482dce83b 100644
index 23017b5486..0b16473aed 100644
--- a/src/main/java/net/minecraft/server/EntityShulkerBullet.java
+++ b/src/main/java/net/minecraft/server/EntityShulkerBullet.java
@@ -313,4 +313,11 @@ public class EntityShulkerBullet extends IProjectile {
@@ -300,7 +300,7 @@ index 9a17eb6066..f0b8982893 100644
public boolean checkIfLeftOwner() { return this.h(); } // Purpur - OBFHELPER
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 07c1b2ca63..8ff4e3127b 100644
index 5386affbae..21ac732313 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -147,6 +147,35 @@ public class PurpurWorldConfig {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Add option to disable zombie aggressiveness towards villagers
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
index 89b56de75..ded483ace 100644
index 89b56de756..ded483ace0 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
@@ -131,6 +131,10 @@ public class MobGoalHelper {
@@ -21,7 +21,7 @@ index 89b56de75..ded483ace 100644
ignored.add("selector_1");
ignored.add("selector_2");
diff --git a/src/main/java/net/minecraft/server/EntityDrowned.java b/src/main/java/net/minecraft/server/EntityDrowned.java
index 8aa53c617..99f615c64 100644
index 125eab60f2..638efc67d6 100644
--- a/src/main/java/net/minecraft/server/EntityDrowned.java
+++ b/src/main/java/net/minecraft/server/EntityDrowned.java
@@ -58,7 +58,18 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity {
@@ -45,7 +45,7 @@ index 8aa53c617..99f615c64 100644
this.targetSelector.a(5, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, true, false, EntityTurtle.bo));
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index d08747c66..7b2a66d6d 100644
index e2f68d843c..3ad8bd0847 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -85,7 +85,18 @@ public class EntityZombie extends EntityMonster {
@@ -69,10 +69,10 @@ index d08747c66..7b2a66d6d 100644
this.targetSelector.a(5, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, true, false, EntityTurtle.bo));
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 8ff4e3127..14c1e0d1f 100644
index 21ac732313..2c1ef95e8d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1004,12 +1004,14 @@ public class PurpurWorldConfig {
@@ -1003,12 +1003,14 @@ public class PurpurWorldConfig {
public boolean zombieJockeyOnlyBaby = true;
public double zombieJockeyChance = 0.05D;
public boolean zombieJockeyTryExistingChickens = true;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Flying squids! Oh my!
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
index 8c749c50bf..7526a18c53 100644
index 70b952f10a..cee2265016 100644
--- a/src/main/java/net/minecraft/server/EntitySquid.java
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
@@ -51,6 +51,11 @@ public class EntitySquid extends EntityWaterAnimal {
@@ -23,7 +23,7 @@ index 8c749c50bf..7526a18c53 100644
@@ -116,6 +121,7 @@ public class EntitySquid extends EntityWaterAnimal {
}
if (this.aG()) {
if (this.aH()) {
+ if (world.purpurConfig.squidsCanFly) setNoGravity(!inWater); // Purpur
if (this.bp < 3.1415927F) {
float f = this.bp / 3.1415927F;
@@ -38,10 +38,10 @@ index 8c749c50bf..7526a18c53 100644
float f1 = MathHelper.cos(f) * 0.2F;
float f2 = -0.1F + this.b.getRandom().nextFloat() * 0.2F;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3aa8f34ecc..4678b19e30 100644
index c540e9b5af..d827a365a7 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -865,10 +865,12 @@ public class PurpurWorldConfig {
@@ -864,10 +864,12 @@ public class PurpurWorldConfig {
public boolean squidRidable = false;
public boolean squidImmuneToEAR = true;
public double squidOffsetWaterCheck = 0.0D;

View File

@@ -26,7 +26,7 @@ index 3e57abd33e..08ba9e1c4e 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/PathfinderNormal.java b/src/main/java/net/minecraft/server/PathfinderNormal.java
index 7341b5afd3..c708a15498 100644
index 74e81e1e4a..76ff61e386 100644
--- a/src/main/java/net/minecraft/server/PathfinderNormal.java
+++ b/src/main/java/net/minecraft/server/PathfinderNormal.java
@@ -467,7 +467,7 @@ public class PathfinderNormal extends PathfinderAbstract {
@@ -39,10 +39,10 @@ index 7341b5afd3..c708a15498 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 31e803b268..fd07c9f213 100644
index 400d793b15..8e97eb92dd 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -377,6 +377,11 @@ public class PurpurWorldConfig {
@@ -376,6 +376,11 @@ public class PurpurWorldConfig {
spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone);
}

View File

@@ -18,10 +18,10 @@ index 15af5927f3..c9c2e9774a 100644
public PacketPlayOutUpdateTime() {}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 0fb41962c8..86b6442292 100644
index 37423fd9c4..8f6f42ef52 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -90,6 +90,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -94,6 +94,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
private final EnderDragonBattle dragonBattle;
private final StructureManager structureManager;
private final boolean Q;
@@ -29,7 +29,7 @@ index 0fb41962c8..86b6442292 100644
// CraftBukkit start
@@ -371,6 +372,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -375,6 +376,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.getServer().addWorld(this.getWorld()); // CraftBukkit
this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper
@@ -37,7 +37,7 @@ index 0fb41962c8..86b6442292 100644
}
// Tuinity start - optimise collision
@@ -1008,7 +1010,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1012,7 +1014,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.nextTickListBlock.nextTick(); // Paper
this.nextTickListFluid.nextTick(); // Paper
this.worldDataServer.u().a(this.server, i);
@@ -60,7 +60,7 @@ index 0fb41962c8..86b6442292 100644
this.setDayTime(this.worldData.getDayTime() + 1L);
}
@@ -1017,6 +1033,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1021,6 +1037,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
public void setDayTime(long i) {
this.worldDataServer.setDayTime(i);
@@ -74,7 +74,7 @@ index 0fb41962c8..86b6442292 100644
public void doMobSpawning(boolean flag, boolean flag1) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index fd07c9f213..3f7c2d7e23 100644
index 8e97eb92dd..013f1cfb48 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -116,6 +116,13 @@ public class PurpurWorldConfig {