Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
0514fc4e2 Add missing effects
8f5d9effd Add getMainThreadExecutor to BukkitScheduler
313b5020b Allow adding items to BlockDropItemEvent (#5093)
9a556d9da [CI-SKIP] [Auto] Rebuild Patches
72b2768ad Inline shift fields in EnumDirection (#5082)
ffff53fa7 added option to disable pathfinding updates on block changes (#5123)
b67081fd7 add DragonEggFormEvent (fixes #5110) (#5112)
3eefafbaf Fix javadoc build
0081ed1c4 Add javadoc step to GH Actions
01082503e Add dropLeash variable to EntityUnleashEvent (#5130)
31f9f869a [CI-SKIP] Fix YourKit links in readme, fixes #5091
8ac27aa38 [Auto] Updated Upstream (CraftBukkit)
c4d9cc831 [Auto] Updated Upstream (Bukkit/CraftBukkit)
d0477d326 [Auto] Updated Upstream (CraftBukkit)
d9f5f7018 EntityMoveEvent (#4614)
This commit is contained in:
BillyGalbreath
2021-01-30 20:41:46 -06:00
parent f3644e18a2
commit e581a731bf
186 changed files with 206 additions and 451 deletions

View File

@@ -1,107 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 11 Feb 2020 21:56:38 -0600
Subject: [PATCH] EntityMoveEvent
diff --git a/src/main/java/net/pl3x/purpur/event/entity/EntityMoveEvent.java b/src/main/java/net/pl3x/purpur/event/entity/EntityMoveEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..c48c525b8ee527a5766ac679619fd88956002d64
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/event/entity/EntityMoveEvent.java
@@ -0,0 +1,95 @@
+package net.pl3x.purpur.event.entity;
+
+import com.google.common.base.Preconditions;
+import org.bukkit.Location;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Holds information for living entity movement events
+ */
+public class EntityMoveEvent extends EntityEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList();
+ private boolean canceled;
+ private Location from;
+ private Location to;
+
+ public EntityMoveEvent(@NotNull LivingEntity entity, @NotNull Location from, @NotNull Location to) {
+ super(entity);
+ this.from = from;
+ this.to = to;
+ }
+
+ @Override
+ @NotNull
+ public LivingEntity getEntity() {
+ return (LivingEntity) entity;
+ }
+
+ public boolean isCancelled() {
+ return canceled;
+ }
+
+ public void setCancelled(boolean cancel) {
+ canceled = cancel;
+ }
+
+ /**
+ * Gets the location this entity moved from
+ *
+ * @return Location the entity moved from
+ */
+ @NotNull
+ public Location getFrom() {
+ return from;
+ }
+
+ /**
+ * Sets the location to mark as where the entity moved from
+ *
+ * @param from New location to mark as the entity's previous location
+ */
+ public void setFrom(@NotNull Location from) {
+ validateLocation(from);
+ this.from = from;
+ }
+
+ /**
+ * Gets the location this entity moved to
+ *
+ * @return Location the entity moved to
+ */
+ @NotNull
+ public Location getTo() {
+ return to;
+ }
+
+ /**
+ * Sets the location that this entity will move to
+ *
+ * @param to New Location this entity will move to
+ */
+ public void setTo(@NotNull Location to) {
+ validateLocation(to);
+ this.to = to;
+ }
+
+ private void validateLocation(@NotNull Location loc) {
+ Preconditions.checkArgument(loc != null, "Cannot use null location!");
+ Preconditions.checkArgument(loc.getWorld() != null, "Cannot use null location with null world!");
+ }
+
+ @Override
+ @NotNull
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ @NotNull
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}

View File

@@ -1,59 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 30 Jul 2020 18:15:04 -0500
Subject: [PATCH] DragonEggPlaceEvent
diff --git a/src/main/java/net/pl3x/purpur/event/block/DragonEggPlaceEvent.java b/src/main/java/net/pl3x/purpur/event/block/DragonEggPlaceEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..bdabfd2b5f64b0e65c4eb09958282962620cdda2
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/event/block/DragonEggPlaceEvent.java
@@ -0,0 +1,47 @@
+package net.pl3x.purpur.event.block;
+
+import org.bukkit.Location;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList;
+import org.jetbrains.annotations.NotNull;
+
+public class DragonEggPlaceEvent extends Event implements Cancellable {
+ private static final HandlerList handlers = new HandlerList();
+ private Location location;
+ private boolean cancelled;
+
+ public DragonEggPlaceEvent(@NotNull Location location) {
+ this.location = location;
+ }
+
+ @NotNull
+ public Location getLocation() {
+ return location;
+ }
+
+ public void setLocation(@NotNull Location location) {
+ this.location = location;
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ @Override
+ public void setCancelled(boolean cancel) {
+ cancelled = cancel;
+ }
+
+ @Override
+ @NotNull
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ @NotNull
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}

View File

@@ -1157,10 +1157,10 @@ index 7d23333e71482920cc42a4d8f3f38a7525aefe1f..765aa67f4cbb535128070d3310d1be9e
/**
* When a zombie gets cured and a villager is spawned.
diff --git a/src/main/java/org/bukkit/event/entity/EntityUnleashEvent.java b/src/main/java/org/bukkit/event/entity/EntityUnleashEvent.java
index a33986a0c437a673435206fc337031a7eebdab3b..99a8e452904de21a5bd82f13f6b2d46537d07289 100644
index e0e068799a1868c8e561869015f41f553ef4fbdb..9fa0ba2f81a6724491c22446c87135841d099fb0 100644
--- a/src/main/java/org/bukkit/event/entity/EntityUnleashEvent.java
+++ b/src/main/java/org/bukkit/event/entity/EntityUnleashEvent.java
@@ -37,6 +37,9 @@ public class EntityUnleashEvent extends EntityEvent {
@@ -66,6 +66,9 @@ public class EntityUnleashEvent extends EntityEvent {
return handlers;
}

View File

@@ -10401,10 +10401,10 @@ index e97c7794e86c0518bcec0a0370bffbeab20e2623..0816ab54bc99bcf29356b56516e83759
@Override
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index eb5c3a1f0d9ff665631caf5bf579e83d1ed25e4f..7582a3a0955db2bc79daeced8e9c869f4276815a 100644
index a88521745f9f9b6935a61db52db915ea483af227..8a5e2806e68e5f4431fd9563fae780861e87632f 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -710,7 +710,13 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -711,7 +711,13 @@ public abstract class EntityInsentient extends EntityLiving {
if (this.world.getDifficulty() == EnumDifficulty.PEACEFUL && this.L()) {
this.die();
} else if (!this.isPersistent() && !this.isSpecialPersistence()) {
@@ -10433,10 +10433,10 @@ index f41aaa7623c052b9f4044898d1bdee898c03057a..d99cecc4075338d7b8f154ab94d8ac04
x = MathHelper.floorLong(x * 4096.0D) * (1 / 4096.0D);
y = MathHelper.floorLong(y * 4096.0D) * (1 / 4096.0D);
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 7b5bb97d410e20d3aa6b9222e4f8ad878e667bc8..365066cd7844261c5d437db17ebd61d0631ca140 100644
index b7a362bd9c5e9dae909b863335bae3a94d404a16..87b66c284208f12e9e7cd1c9950ada8d0fbf26a5 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2857,7 +2857,11 @@ public abstract class EntityLiving extends Entity {
@@ -2879,7 +2879,11 @@ public abstract class EntityLiving extends Entity {
return;
}
// Paper - end don't run getEntities if we're not going to use its result
@@ -10449,7 +10449,7 @@ index 7b5bb97d410e20d3aa6b9222e4f8ad878e667bc8..365066cd7844261c5d437db17ebd61d0
if (!list.isEmpty()) {
// Paper - move up
@@ -2886,6 +2890,9 @@ public abstract class EntityLiving extends Entity {
@@ -2908,6 +2912,9 @@ public abstract class EntityLiving extends Entity {
this.C(entity);
}
}
@@ -10474,10 +10474,10 @@ index 7636a51a7ef0aa05b5b2aaa9d17e7b551dedac96..480a02a8f6ec7110f9af8f2037fdc09a
double d0 = this.locX() + vec3d.x;
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index baa82134d1f56a4d370db3012207e0f2b2fcd9ed..2797941b53fa47316f90a86c8b2b4c2f059df223 100644
index a9a409eebabae11ab84cf9bcced1f9a030b4a479..173a210392d71cdfc551f095dc0d9c9040d22d3f 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -527,6 +527,185 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -528,6 +528,185 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
}
@@ -10702,10 +10702,10 @@ index 3960a975e74ed81c45819fe5e0f01c6c18252982..526c1419af7bd0b6098a8f9a0a24a64b
if (!list.equals(this.p)) {
diff --git a/src/main/java/net/minecraft/server/EnumDirection.java b/src/main/java/net/minecraft/server/EnumDirection.java
index 1aa070db60f5473576fb5d056cadde5106766489..24e6f3141ff4434f770e956a8d240bf856442933 100644
index 05b0090ae36cf61f67e26aad478df30c89f31941..30ba21ac1bced18a9d0946b7c3ed55971ada48bb 100644
--- a/src/main/java/net/minecraft/server/EnumDirection.java
+++ b/src/main/java/net/minecraft/server/EnumDirection.java
@@ -160,8 +160,8 @@ public enum EnumDirection implements INamable {
@@ -170,8 +170,8 @@ public enum EnumDirection implements INamable {
return EnumDirection.q[MathHelper.a(i % EnumDirection.q.length)];
}
@@ -11499,10 +11499,10 @@ index ff74be14512a947e81b62d53e616131ca7d7f609..e79e773f2219f9a9ae076fcbc8108b79
public static <T> void mergeSortedSets(final java.util.function.Consumer<T> consumer, final java.util.Comparator<? super T> comparator, final java.util.SortedSet<T>...sets) {
final ObjectRBTreeSet<T> all = new ObjectRBTreeSet<>(comparator);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4f8a2d742 100644
index ccf2d0b090f0c360dfc7886bb0726e099acec42c..1768554b00ea0b7a57ebbed1f0bc5d8fd6f02f76 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -151,6 +151,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -152,6 +152,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
//public ConsoleReader reader; // Paper
public static int currentTick = 0; // Paper - Further improve tick loop
@@ -11510,7 +11510,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
public int autosavePeriod;
public boolean serverAutoSave = false; // Paper
@@ -749,10 +750,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -750,10 +751,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
org.spigotmc.WatchdogThread.doStop(); // Paper
if (!isMainThread()) {
MinecraftServer.LOGGER.info("Stopping main thread (Ignore any thread death message you see! - DO NOT REPORT THREAD DEATH TO PAPER)");
@@ -11523,7 +11523,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
} catch (InterruptedException e) {}
}
// We've just obliterated the main thread, this will prevent stop from dying when removing players
@@ -951,6 +953,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -952,6 +954,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
// Paper end
PaperJvmChecker.checkJvm(); // Paper jvm version nag
@@ -11531,7 +11531,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
org.spigotmc.WatchdogThread.tick(); // Paper
org.spigotmc.WatchdogThread.hasStarted = true; // Paper
Arrays.fill( recentTps, 20 );
@@ -968,6 +971,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -969,6 +972,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.lastOverloadTime = this.nextTick;
}
@@ -11539,7 +11539,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
if ( ++MinecraftServer.currentTick % SAMPLE_INTERVAL == 0 )
{
final long diff = curTime - tickSection;
@@ -982,7 +986,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -983,7 +987,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
// Paper end
tickSection = curTime;
}
@@ -11548,7 +11548,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
// Spigot end
//MinecraftServer.currentTick = (int) (System.currentTimeMillis() / 50); // CraftBukkit // Paper - don't overwrite current tick time
@@ -1075,6 +1079,76 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1076,6 +1080,76 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
// Paper end
@@ -11625,7 +11625,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
private void executeModerately() {
this.executeAll();
java.util.concurrent.locks.LockSupport.parkNanos("executing tasks", 1000L);
@@ -1088,22 +1162,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1089,22 +1163,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
});
}
@@ -11649,7 +11649,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
@Override
protected TickTask postToMainThread(Runnable runnable) {
@@ -1130,6 +1189,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1131,6 +1190,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
private boolean bb() {
if (super.executeNext()) {
@@ -11657,7 +11657,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
return true;
} else {
if (this.canSleepForTick()) {
@@ -1197,7 +1257,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1198,7 +1258,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
// Paper start - move oversleep into full server tick
isOversleep = true;MinecraftTimings.serverOversleep.startTiming();
this.awaitTasks(() -> {
@@ -11666,7 +11666,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
return !this.canOversleep();
});
isOversleep = false;MinecraftTimings.serverOversleep.stopTiming();
@@ -1262,6 +1322,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1263,6 +1323,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
// Paper end
@@ -11675,7 +11675,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
// Paper start
long endTime = System.nanoTime();
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
@@ -1288,16 +1350,16 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1289,16 +1351,16 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
protected void b(BooleanSupplier booleansupplier) {
@@ -11695,7 +11695,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
this.methodProfiler.exitEnter("levels");
Iterator iterator = this.getWorlds().iterator();
@@ -1308,7 +1370,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1309,7 +1371,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
processQueue.remove().run();
}
MinecraftTimings.processQueueTimer.stopTiming(); // Spigot
@@ -11704,7 +11704,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
MinecraftTimings.timeUpdateTimer.startTiming(); // Spigot // Paper
// Send time updates to everyone, it will get the right time from the world the player is in.
// Paper start - optimize time updates
@@ -1350,11 +1412,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1352,11 +1414,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.methodProfiler.enter("tick");
try {
@@ -11719,7 +11719,7 @@ index 8c384171ca56a0989ffef1813ad0a9ee3ea31d29..45e310e249a83714d0001d85b2ead8d4
} catch (Throwable throwable) {
// Spigot Start
CrashReport crashreport;
@@ -1448,7 +1511,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1450,7 +1513,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {
@@ -16053,7 +16053,7 @@ index f011869880fedae4b69e505491e8bdbc5f51dfba..0d10d317cd0b60fc0866ae505c7fd71f
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 fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee78988f623 100644
index 2b94c195db43d8e7fd58301a33377e87daa16e98..9c11a6ba0384baafaec1403a6a7c3f894d5cd7b3 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -55,12 +55,13 @@ import org.bukkit.event.server.MapInitializeEvent;
@@ -16080,7 +16080,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
protected final PersistentRaid persistentRaid;
private final ObjectLinkedOpenHashSet<BlockActionData> L;
private boolean ticking;
@@ -205,6 +206,111 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -206,6 +207,111 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
// Paper end - rewrite ticklistserver
@@ -16192,7 +16192,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
// 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
@@ -265,6 +371,243 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -266,6 +372,243 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper
}
@@ -16436,7 +16436,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
// CraftBukkit start
@Override
protected TileEntity getTileEntity(BlockPosition pos, boolean validate) {
@@ -318,6 +661,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -319,6 +662,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
public void doTick(BooleanSupplier booleansupplier) {
GameProfilerFiller gameprofilerfiller = this.getMethodProfiler();
@@ -16451,7 +16451,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
this.ticking = true;
gameprofilerfiller.enter("world border");
@@ -467,7 +818,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -468,7 +819,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
timings.scheduledBlocks.stopTiming(); // Paper
@@ -16460,7 +16460,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
gameprofilerfiller.exitEnter("raid");
this.timings.raids.startTiming(); // Paper - timings
this.persistentRaid.a();
@@ -476,7 +827,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -477,7 +828,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
timings.doSounds.startTiming(); // Spigot
this.ak();
timings.doSounds.stopTiming(); // Spigot
@@ -16469,7 +16469,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
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
@@ -492,13 +843,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -493,13 +844,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
this.tickingEntities = true;
@@ -16485,7 +16485,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
Entity entity1 = entity.getVehicle();
/* CraftBukkit start - We prevent spawning in general, so this butchering is not needed
@@ -514,6 +864,15 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -515,6 +865,15 @@ public class WorldServer extends World implements GeneratorAccessSeed {
gameprofilerfiller.enter("checkDespawn");
if (!entity.dead) {
entity.checkDespawn();
@@ -16501,7 +16501,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
}
gameprofilerfiller.exit();
@@ -534,14 +893,22 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -535,14 +894,22 @@ public class WorldServer extends World implements GeneratorAccessSeed {
gameprofilerfiller.enter("remove");
if (entity.dead) {
this.removeEntityFromChunk(entity);
@@ -16525,7 +16525,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
this.tickingEntities = false;
// Paper start
for (java.lang.Runnable run : this.afterEntityTickingTasks) {
@@ -553,7 +920,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -554,7 +921,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
this.afterEntityTickingTasks.clear();
// Paper end
@@ -16534,7 +16534,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
Entity entity2;
@@ -563,7 +930,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -564,7 +931,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
timings.tickEntities.stopTiming(); // Spigot
@@ -16543,7 +16543,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
this.tickBlockEntities();
}
@@ -809,7 +1176,26 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -810,7 +1177,26 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
@@ -16570,7 +16570,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
if (!(entity instanceof EntityHuman) && !this.getChunkProvider().a(entity)) {
this.chunkCheck(entity);
} else {
@@ -862,6 +1248,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -863,6 +1249,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
//} finally { timer.stopTiming(); } // Paper - timings - move up
}
@@ -16582,7 +16582,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
}
public void a(Entity entity, Entity entity1) {
@@ -920,6 +1311,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -921,6 +1312,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
int i = MathHelper.floor(entity.locX() / 16.0D);
int j = Math.min(15, Math.max(0, MathHelper.floor(entity.locY() / 16.0D))); // Paper - stay consistent with chunk add/remove behavior
int k = MathHelper.floor(entity.locZ() / 16.0D);
@@ -16595,7 +16595,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
if (!entity.inChunk || entity.chunkX != i || entity.chunkY != j || entity.chunkZ != k) {
// Paper start - remove entity if its in a chunk more correctly.
@@ -929,6 +1326,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -930,6 +1327,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
// Paper end
@@ -16608,7 +16608,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
if (entity.inChunk && this.isChunkLoaded(entity.chunkX, entity.chunkZ)) {
this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.chunkY);
}
@@ -942,6 +1345,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -943,6 +1346,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
} else {
this.getChunkAt(i, k).a(entity);
}
@@ -16620,7 +16620,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
}
this.getMethodProfiler().exit();
@@ -1297,7 +1705,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1298,7 +1706,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
Entity entity = (Entity) iterator.next();
if (!(entity instanceof EntityPlayer)) {
@@ -16629,7 +16629,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!")));
}
@@ -1325,6 +1733,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1326,6 +1734,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
public void unregisterEntity(Entity entity) {
org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot
@@ -16637,7 +16637,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
// 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
@@ -1391,17 +1800,108 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1392,17 +1801,108 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.getScoreboard().a(entity);
// CraftBukkit start - SPIGOT-5278
if (entity instanceof EntityDrowned) {
@@ -16749,7 +16749,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
private void registerEntity(Entity entity) {
org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot
// Paper start - don't double enqueue entity registration
@@ -1412,7 +1912,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1413,7 +1913,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
return;
}
// Paper end
@@ -16758,7 +16758,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
if (!entity.isQueuedForRegister) { // Paper
this.entitiesToAdd.add(entity);
entity.isQueuedForRegister = true; // Paper
@@ -1420,6 +1920,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1421,6 +1921,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
} else {
entity.isQueuedForRegister = false; // Paper
this.entitiesById.put(entity.getId(), entity);
@@ -16766,7 +16766,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
if (entity instanceof EntityEnderDragon) {
EntityComplexPart[] aentitycomplexpart = ((EntityEnderDragon) entity).eJ();
int i = aentitycomplexpart.length;
@@ -1428,6 +1929,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1429,6 +1930,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
EntityComplexPart entitycomplexpart = aentitycomplexpart[j];
this.entitiesById.put(entitycomplexpart.getId(), entitycomplexpart);
@@ -16774,7 +16774,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
}
}
@@ -1452,12 +1954,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1453,12 +1955,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) {
@@ -16794,7 +16794,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
}
entity.valid = true; // CraftBukkit
this.getChunkProvider().addEntity(entity); // Paper - from above to be below valid=true
@@ -1473,7 +1979,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1474,7 +1980,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
public void removeEntity(Entity entity) {
@@ -16803,12 +16803,13 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("Removing entity while ticking!")));
} else {
this.removeEntityFromChunk(entity);
@@ -1569,13 +2075,32 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1570,14 +2076,33 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@Override
public void notify(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1, int i) {
+ org.spigotmc.AsyncCatcher.catchOp("notify call"); // Tuinity
this.getChunkProvider().flagDirty(blockposition);
if(this.paperConfig.updatePathfindingOnBlockUpdate) { // Paper - option to disable pathfinding updates
VoxelShape voxelshape = iblockdata.getCollisionShape(this, blockposition);
VoxelShape voxelshape1 = iblockdata1.getCollisionShape(this, blockposition);
@@ -16837,7 +16838,7 @@ index fbe7f43f6c1010e7a34114f8afb0e64934744335..6ff5ef6b710652f1c4fe6461ff230ee7
while (iterator.hasNext()) {
NavigationAbstract navigationabstract = (NavigationAbstract) iterator.next();
@@ -1583,7 +2108,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1585,7 +2110,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
if (!navigationabstract.i()) {
navigationabstract.b(blockposition);
}

View File

@@ -48,10 +48,10 @@ index 229c3b0f0c650b501f31147adaa17194af57fedd..f88cf526d272fe47b5a474c0b344b748
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 45e310e249a83714d0001d85b2ead8d4f8a2d742..af5c1479d2cb8092d84e2d3d5166060d9ff2df71 100644
index 1768554b00ea0b7a57ebbed1f0bc5d8fd6f02f76..fe4ef4ea7117a6f38e4d068aae5b5ec6de06507b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1511,7 +1511,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1513,7 +1513,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {

View File

@@ -5,10 +5,10 @@ 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 9796b4e57d6680c9f0dc76decdd985572daafb7e..f15ec5c45d95c6828ed628451917ac3426a76f1f 100644
index 59b00c78f8d92bcceca35d0f25e4d94b3ebdc6e2..e0cf2af8fcbfc66fc32aa8e693b62160b24f8672 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 {
@@ -82,6 +82,15 @@ public abstract class EntityHuman extends EntityLiving {
}
// CraftBukkit end
@@ -25,10 +25,10 @@ index 9796b4e57d6680c9f0dc76decdd985572daafb7e..f15ec5c45d95c6828ed628451917ac34
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 2797941b53fa47316f90a86c8b2b4c2f059df223..72eb4a207f67fbbeffa4ad44ead8dec176863c72 100644
index 173a210392d71cdfc551f095dc0d9c9040d22d3f..af4fb76d000594229e0c0dfdcde48fbafc087de0 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1909,8 +1909,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1927,8 +1927,54 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
public void resetIdleTimer() {
this.ca = SystemUtils.getMonotonicMillis();
@@ -193,10 +193,10 @@ index 4058c1f7ada7d0c9e4ba73a0073b4f94bf410a8f..caf9ce94a7cb6154981d42953c81b588
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 6ff5ef6b710652f1c4fe6461ff230ee78988f623..efe2a9ad2ece23bd71f4ad63b2c6f54f42345b55 100644
index 9c11a6ba0384baafaec1403a6a7c3f894d5cd7b3..e99c3ad507f1381c9aa495052d2014ba8b7e0750 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -781,7 +781,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -782,7 +782,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
// CraftBukkit end
if (this.everyoneSleeping && this.players.stream().noneMatch((entityplayer) -> {
@@ -205,7 +205,7 @@ index 6ff5ef6b710652f1c4fe6461ff230ee78988f623..efe2a9ad2ece23bd71f4ad63b2c6f54f
})) {
// CraftBukkit start
long l = this.worldData.getDayTime() + 24000L;
@@ -1118,7 +1118,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1119,7 +1119,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
while (iterator.hasNext()) {
EntityPlayer entityplayer = (EntityPlayer) iterator.next();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index af5c1479d2cb8092d84e2d3d5166060d9ff2df71..90556fca9315e71c4f3fbd231ac6d765677ca271 100644
index fe4ef4ea7117a6f38e4d068aae5b5ec6de06507b..2f5ef91a5732800d9b9a7acbb52ad29b5c0729a3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1511,7 +1511,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1513,7 +1513,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {

View File

@@ -30,10 +30,10 @@ index 2a91f07ca9c4dc0cb3b5aef5c9c1db7f69773530..7604fd83de9cfe93d427a9a1f6bbbee7
protected int getChestSlots() {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 365066cd7844261c5d437db17ebd61d0631ca140..59f0088eaa7f6682b2ddf34a2d5363b49738fdbe 100644
index 87b66c284208f12e9e7cd1c9950ada8d0fbf26a5..59699bb23a189b7e53737b2f8f5263608a64109c 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -132,6 +132,7 @@ public abstract class EntityLiving extends Entity {
@@ -133,6 +133,7 @@ public abstract class EntityLiving extends Entity {
// CraftBukkit start
public int expToDrop;
public int maxAirTicks = 300;
@@ -41,7 +41,7 @@ index 365066cd7844261c5d437db17ebd61d0631ca140..59f0088eaa7f6682b2ddf34a2d5363b4
boolean forceDrops;
ArrayList<org.bukkit.inventory.ItemStack> drops = new ArrayList<org.bukkit.inventory.ItemStack>();
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
@@ -226,8 +227,8 @@ public abstract class EntityLiving extends Entity {
@@ -227,8 +228,8 @@ public abstract class EntityLiving extends Entity {
this.cR();
}
@@ -52,7 +52,7 @@ index 365066cd7844261c5d437db17ebd61d0631ca140..59f0088eaa7f6682b2ddf34a2d5363b4
if (!iblockdata.isAir()) {
double d1 = Math.min((double) (0.2F + f / 15.0F), 2.5D);
@@ -1685,7 +1686,7 @@ public abstract class EntityLiving extends Entity {
@@ -1693,7 +1694,7 @@ public abstract class EntityLiving extends Entity {
MobEffect mobeffect = this.getEffect(MobEffects.JUMP);
float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Lagging threshold
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 90556fca9315e71c4f3fbd231ac6d765677ca271..e12fecf47798f638b85e7c6d54055a526097811c 100644
index 2f5ef91a5732800d9b9a7acbb52ad29b5c0729a3..64cd02072536e69cd219932769bbade87b47601a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -163,6 +163,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -164,6 +164,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
public static final int TICK_TIME = 1000000000 / TPS;
private static final int SAMPLE_INTERVAL = 20; // Paper
public final double[] recentTps = new double[ 3 ];
@@ -16,7 +16,7 @@ index 90556fca9315e71c4f3fbd231ac6d765677ca271..e12fecf47798f638b85e7c6d54055a52
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end
@@ -984,6 +985,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -985,6 +986,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
recentTps[1] = tps5.getAverage();
recentTps[2] = tps15.getAverage();
// Paper end

View File

@@ -1,55 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 11 Feb 2020 21:56:48 -0600
Subject: [PATCH] EntityMoveEvent
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 59f0088eaa7f6682b2ddf34a2d5363b49738fdbe..fdc0df2b08a586a584f9cfd0075aa68f129e4055 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2812,6 +2812,20 @@ public abstract class EntityLiving extends Entity {
this.collideNearby();
this.world.getMethodProfiler().exit();
+ // Purpur start
+ if (((WorldServer) world).hasEntityMoveEvent) {
+ if (lastX != locX() || lastY != locY() || lastZ != locZ() || lastYaw != yaw || lastPitch != pitch) {
+ Location from = new Location(world.getWorld(), lastX, lastY, lastZ, lastYaw, lastPitch);
+ Location to = new Location (world.getWorld(), locX(), locY(), locZ(), yaw, pitch);
+ net.pl3x.purpur.event.entity.EntityMoveEvent event = new net.pl3x.purpur.event.entity.EntityMoveEvent(getBukkitLivingEntity(), from, to.clone());
+ if (!event.callEvent()) {
+ setLocation(from.getX(), from.getY(), from.getZ(), from.getYaw(), from.getPitch());
+ } else if (!to.equals(event.getTo())) {
+ setLocation(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch());
+ }
+ }
+ }
+ // Purpur end
if (!this.world.isClientSide && this.dO() && this.aG()) {
this.damageEntity(DamageSource.DROWN, 1.0F);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index e12fecf47798f638b85e7c6d54055a526097811c..d79cf993cdadfe7fadd6c7e65b9fc691a298c702 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1398,6 +1398,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
while (iterator.hasNext()) {
WorldServer worldserver = (WorldServer) iterator.next();
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
+ worldserver.hasEntityMoveEvent = net.pl3x.purpur.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
TileEntityHopper.skipHopperEvents = worldserver.paperConfig.disableHopperMoveEvents || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper
this.methodProfiler.a(() -> {
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index efe2a9ad2ece23bd71f4ad63b2c6f54f42345b55..2315c71465e4c1ea00a4c355b43de1e3fb0ca995 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -101,6 +101,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
public final Convertable.ConversionSession convertable;
public final UUID uuid;
boolean hasPhysicsEvent = true; // Paper
+ boolean hasEntityMoveEvent = false; // Purpur
private static Throwable getAddToWorldStackTrace(Entity entity) {
return new Throwable(entity + " Added to world at " + new java.util.Date());
}

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 72eb4a207f67fbbeffa4ad44ead8dec176863c72..ca4cecece1b321e8f81fd63d40b27ef3a2f64e5d 100644
index af4fb76d000594229e0c0dfdcde48fbafc087de0..5e157aabc8326a32a6a1825fef0f9813b5abe8f6 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -150,6 +150,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -151,6 +151,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 72eb4a207f67fbbeffa4ad44ead8dec176863c72..ca4cecece1b321e8f81fd63d40b27ef3
}
// Paper start
public BlockPosition getPointInFront(double inFront) {
@@ -991,6 +993,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -992,6 +994,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
@@ -30,7 +30,7 @@ index 72eb4a207f67fbbeffa4ad44ead8dec176863c72..ca4cecece1b321e8f81fd63d40b27ef3
@Override
public boolean damageEntity(DamageSource damagesource, float f) {
if (this.isInvulnerable(damagesource)) {
@@ -998,7 +1006,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -999,7 +1007,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 72eb4a207f67fbbeffa4ad44ead8dec176863c72..ca4cecece1b321e8f81fd63d40b27ef3
return false;
} else {
if (damagesource instanceof EntityDamageSource) {
@@ -1174,6 +1182,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1175,6 +1183,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
// Paper end
@@ -47,7 +47,7 @@ index 72eb4a207f67fbbeffa4ad44ead8dec176863c72..ca4cecece1b321e8f81fd63d40b27ef3
return this;
}
}
@@ -2327,9 +2336,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -2345,9 +2354,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public boolean isFrozen() { // Paper - protected > public

View File

@@ -98,10 +98,10 @@ index 9f4f56c47ecd4b35ebf33ca0bf9a040074ababf2..565c938d879940d8e12fe320ea8524d2
}
}
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 7582a3a0955db2bc79daeced8e9c869f4276815a..7d9027d881e6e3eb0d1f8478ac7a1501dc5dec1d 100644
index 8a5e2806e68e5f4431fd9563fae780861e87632f..3936741bb8c1b3ad766d651e4bb8c9f5ddbe4f08 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -949,6 +949,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -950,6 +950,7 @@ public abstract class EntityInsentient extends EntityLiving {
return f;
}
@@ -109,7 +109,7 @@ index 7582a3a0955db2bc79daeced8e9c869f4276815a..7d9027d881e6e3eb0d1f8478ac7a1501
protected void a(DifficultyDamageScaler difficultydamagescaler) {
if (this.random.nextFloat() < 0.15F * difficultydamagescaler.d()) {
int i = this.random.nextInt(2);
@@ -1056,6 +1057,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1057,6 +1058,7 @@ public abstract class EntityInsentient extends EntityLiving {
}
}
@@ -118,10 +118,10 @@ index 7582a3a0955db2bc79daeced8e9c869f4276815a..7d9027d881e6e3eb0d1f8478ac7a1501
float f = difficultydamagescaler.d();
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index fdc0df2b08a586a584f9cfd0075aa68f129e4055..f975fcf0acd80a0a6bdf9bd6fe5b15c013e4f09f 100644
index 59699bb23a189b7e53737b2f8f5263608a64109c..8ebfc9b8cf82ba914d5e56aca330033f176be334 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -165,6 +165,7 @@ public abstract class EntityLiving extends Entity {
@@ -166,6 +166,7 @@ public abstract class EntityLiving extends Entity {
this.activeItem = ItemStack.b;
this.by = Optional.empty();
this.attributeMap = new AttributeMapBase(AttributeDefaults.a(entitytypes));
@@ -129,7 +129,7 @@ index fdc0df2b08a586a584f9cfd0075aa68f129e4055..f975fcf0acd80a0a6bdf9bd6fe5b15c0
this.craftAttributes = new CraftAttributeMap(attributeMap); // CraftBukkit
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
this.datawatcher.set(EntityLiving.HEALTH, (float) this.getAttributeInstance(GenericAttributes.MAX_HEALTH).getValue());
@@ -180,6 +181,8 @@ public abstract class EntityLiving extends Entity {
@@ -181,6 +182,8 @@ public abstract class EntityLiving extends Entity {
this.bg = this.a(new Dynamic(dynamicopsnbt, dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), dynamicopsnbt.emptyMap()))));
}
@@ -138,7 +138,7 @@ index fdc0df2b08a586a584f9cfd0075aa68f129e4055..f975fcf0acd80a0a6bdf9bd6fe5b15c0
public BehaviorController<?> getBehaviorController() {
return this.bg;
}
@@ -2171,7 +2174,7 @@ public abstract class EntityLiving extends Entity {
@@ -2179,7 +2182,7 @@ public abstract class EntityLiving extends Entity {
this.enderTeleportTo(vec3d.x, vec3d.y, vec3d.z);
}

View File

@@ -5,7 +5,7 @@ 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 2315c71465e4c1ea00a4c355b43de1e3fb0ca995..2f41a537fb1d8348b5f65a3e85da841761311744 100644
index e99c3ad507f1381c9aa495052d2014ba8b7e0750..49ae8bd50810473d121e786a06a813b777909904 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -996,12 +996,18 @@ public class WorldServer extends World implements GeneratorAccessSeed {

View File

@@ -110,10 +110,10 @@ index 42e6761c8b18b79ffd3f4d5e853ea87a2c153c23..cfb009c811bd2908d38da1b0007cb7aa
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 f975fcf0acd80a0a6bdf9bd6fe5b15c013e4f09f..403bac8d8f921eab4bc0d60fb082eadd6996602b 100644
index 8ebfc9b8cf82ba914d5e56aca330033f176be334..ac9ac19c265e4be440531656a109b0468864637e 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -80,7 +80,7 @@ public abstract class EntityLiving extends Entity {
@@ -81,7 +81,7 @@ public abstract class EntityLiving extends Entity {
public int maxNoDamageTicks;
public final float ay;
public final float az;

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 ca4cecece1b321e8f81fd63d40b27ef3a2f64e5d..24609591526a1f73c3b24ea3f3c47842d09dd870 100644
index 5e157aabc8326a32a6a1825fef0f9813b5abe8f6..c533c24aefa6693dd5c11d690930327c5d7a8802 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1434,6 +1434,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1452,6 +1452,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public void openSign(TileEntitySign tileentitysign) {

View File

@@ -22,10 +22,10 @@ index 2291135eaef64c403183724cb6e413cd7e472672..bc61aaff65a7dc1e7534452b285953b8
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 403bac8d8f921eab4bc0d60fb082eadd6996602b..49ba80902868574c6f4efcc3f80ad46fb762e4be 100644
index ac9ac19c265e4be440531656a109b0468864637e..4e2149b422a643bd30c8d8d13adc9e5f5f2a8cca 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -98,9 +98,9 @@ public abstract class EntityLiving extends Entity {
@@ -99,9 +99,9 @@ public abstract class EntityLiving extends Entity {
protected int aO;protected int getKillCount() { return this.aO; } // Paper - OBFHELPER
public float lastDamage;
public boolean jumping; // Paper protected -> public
@@ -106,10 +106,10 @@ index 022dfdc5b6af4b243e7e4da8660e8e41d04e1a30..298af30b1a7f12d42216fc1b7ee801fd
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 24609591526a1f73c3b24ea3f3c47842d09dd870..b97c2e41424efdc2d7f1684a4e64619b1dbb005a 100644
index c533c24aefa6693dd5c11d690930327c5d7a8802..26237522deb4495df374d144335a0034ba046762 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1004,6 +1004,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1005,6 +1005,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
if (this.isInvulnerable(damagesource)) {
return false;
} else {

View File

@@ -5,10 +5,10 @@ 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 49ba80902868574c6f4efcc3f80ad46fb762e4be..04bfc8cabaf0ffdb6834e01ae02cbd7b46cb4c4a 100644
index 4e2149b422a643bd30c8d8d13adc9e5f5f2a8cca..762f65d7e12c020f4acdc8a0a9a102997442a45e 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1493,8 +1493,10 @@ public abstract class EntityLiving extends Entity {
@@ -1501,8 +1501,10 @@ public abstract class EntityLiving extends Entity {
this.dropInventory(); // CraftBukkit - from below
if (this.cW() && this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT)) {

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 b97c2e41424efdc2d7f1684a4e64619b1dbb005a..e36bfda9be9874eaa5dfd6886d2bb8b9be5adbfa 100644
index 26237522deb4495df374d144335a0034ba046762..41f9b0b905fd79a9c570be601048f817aba64bbd 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1411,7 +1411,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1429,7 +1429,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public boolean isInvulnerable(DamageSource damagesource) {

View File

@@ -17,10 +17,10 @@ index 4ed4f31c8e34279f9aa9fd7bbddbb36239ea36ef..f18941c7c740959181b728ab9da06c7e
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 04bfc8cabaf0ffdb6834e01ae02cbd7b46cb4c4a..dc054574289cde53acc9eef34ac1d7c89b789d34 100644
index 762f65d7e12c020f4acdc8a0a9a102997442a45e..1ae5ac6ae52a2687469dfce547b53949f15adb28 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2492,7 +2492,7 @@ public abstract class EntityLiving extends Entity {
@@ -2500,7 +2500,7 @@ public abstract class EntityLiving extends Entity {
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index d79cf993cdadfe7fadd6c7e65b9fc691a298c702..942f556eca32ce13c6b3490ef0d6f9e960a36d06 100644
index 64cd02072536e69cd219932769bbade87b47601a..b795128c5a69f65883fdd318a8a5b2a65512bb16 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1002,7 +1002,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1003,7 +1003,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.a(this::canSleepForTick);
this.methodProfiler.exitEnter("nextTickWait");
this.X = true;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entities pick up loot bypass mob-griefing gamerule
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 7d9027d881e6e3eb0d1f8478ac7a1501dc5dec1d..72d07fd593dd9459b3ce1c238a02f3839d2e097b 100644
index 3936741bb8c1b3ad766d651e4bb8c9f5ddbe4f08..ac6460d261014bb4b9878c96e4b447f7a471752d 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -545,7 +545,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -546,7 +546,7 @@ public abstract class EntityInsentient extends EntityLiving {
public void movementTick() {
super.movementTick();
this.world.getMethodProfiler().enter("looting");

View File

@@ -5,17 +5,17 @@ Subject: [PATCH] Allow leashing villagers
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 72d07fd593dd9459b3ce1c238a02f3839d2e097b..de891e39c02ac6fbb87044d31b3eeabac1e78865 100644
index ac6460d261014bb4b9878c96e4b447f7a471752d..fe721a8aac68c07476ad44244f00dc5e1ac9c02f 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -1146,6 +1146,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1147,6 +1147,7 @@ public abstract class EntityInsentient extends EntityLiving {
if (!this.isAlive()) {
return EnumInteractionResult.PASS;
} else if (this.getLeashHolder() == entityhuman) {
+ if (enumhand == EnumHand.OFF_HAND && (world.purpurConfig.villagerCanBeLeashed || world.purpurConfig.villagerTraderCanBeLeashed) && this instanceof EntityVillagerAbstract) return EnumInteractionResult.CONSUME; // Purpur
// CraftBukkit start - fire PlayerUnleashEntityEvent
if (CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman).isCancelled()) {
((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutAttachEntity(this, this.getLeashHolder()));
// Paper start - drop leash variable
PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman, !entityhuman.abilities.canInstantlyBuild);
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 1cde71b812c7721298e7addb74de01e4ea297499..e4aedb3df5d0a47b5bb9175627aa794fc1779639 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add player death exp control options
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index f15ec5c45d95c6828ed628451917ac3426a76f1f..0ef020972494181a87c86f95aec7a4302e243f16 100644
index e0cf2af8fcbfc66fc32aa8e693b62160b24f8672..093df82d49bfa6c34f081a719b5212ec8a312657 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -85,6 +85,8 @@ public abstract class EntityHuman extends EntityLiving {
@@ -83,6 +83,8 @@ public abstract class EntityHuman extends EntityLiving {
// CraftBukkit end
// Purpur start
@@ -17,7 +17,7 @@ index f15ec5c45d95c6828ed628451917ac3426a76f1f..0ef020972494181a87c86f95aec7a430
public void setAfk(boolean setAfk){
}
@@ -1716,9 +1718,18 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1697,9 +1699,18 @@ public abstract class EntityHuman extends EntityLiving {
@Override
protected int getExpValue(EntityHuman entityhuman) {
if (!this.world.getGameRules().getBoolean(GameRules.KEEP_INVENTORY) && !this.isSpectator()) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Dispenser curse of binding protection
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index de891e39c02ac6fbb87044d31b3eeabac1e78865..c9791be9385c83c8ab626ff3661b0c6cb45822ad 100644
index fe721a8aac68c07476ad44244f00dc5e1ac9c02f..21f94651fcb47103b12806d456417882e7f84dcd 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -995,6 +995,13 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -996,6 +996,13 @@ public abstract class EntityInsentient extends EntityLiving {
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add 5 second tps average in /tps
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 942f556eca32ce13c6b3490ef0d6f9e960a36d06..e16f120544ad46995dcf695849d3634c575d65a5 100644
index b795128c5a69f65883fdd318a8a5b2a65512bb16..1296d06bd7c4abb3a43679e382e833199b5b54a2 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -162,7 +162,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -163,7 +163,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
public static final int TPS = 20;
public static final int TICK_TIME = 1000000000 / TPS;
private static final int SAMPLE_INTERVAL = 20; // Paper
@@ -17,7 +17,7 @@ index 942f556eca32ce13c6b3490ef0d6f9e960a36d06..e16f120544ad46995dcf695849d3634c
public boolean lagging = false; // Purpur
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end
@@ -885,6 +885,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -886,6 +886,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0;
private long catchupTime = 0;
@@ -25,7 +25,7 @@ index 942f556eca32ce13c6b3490ef0d6f9e960a36d06..e16f120544ad46995dcf695849d3634c
public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -977,13 +978,17 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -978,13 +979,17 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
{
final long diff = curTime - tickSection;
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index dc054574289cde53acc9eef34ac1d7c89b789d34..878199d01161953811d535ae49c817c82adf9776 100644
index 1ae5ac6ae52a2687469dfce547b53949f15adb28..ba678ad67d1a48724738a71e1ff3b4e85b672f2c 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2850,7 +2850,16 @@ public abstract class EntityLiving extends Entity {
@@ -2858,7 +2858,16 @@ public abstract class EntityLiving extends Entity {
if (itemstack.getItem() == Items.ELYTRA && ItemElytra.d(itemstack)) {
flag = true;
if (!this.world.isClientSide && (this.be + 1) % 20 == 0) {

View File

@@ -5,10 +5,10 @@ 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 c9791be9385c83c8ab626ff3661b0c6cb45822ad..c2144f78c24f015775a00b1c82de645e0e2c153a 100644
index 21f94651fcb47103b12806d456417882e7f84dcd..16a1e55bd01d0616ff04da6b1eb3e7f4f2157ae1 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 {
@@ -54,7 +54,7 @@ public abstract class EntityInsentient extends EntityLiving {
private NBTTagCompound by;
private BlockPosition bz;
private float bA;
@@ -17,7 +17,7 @@ index c9791be9385c83c8ab626ff3661b0c6cb45822ad..c2144f78c24f015775a00b1c82de645e
public boolean aware = true; // CraftBukkit
protected EntityInsentient(EntityTypes<? extends EntityInsentient> entitytypes, World world) {
@@ -205,6 +205,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -206,6 +206,7 @@ public abstract class EntityInsentient extends EntityLiving {
entityliving = null;
}
}
@@ -25,7 +25,7 @@ index c9791be9385c83c8ab626ff3661b0c6cb45822ad..c2144f78c24f015775a00b1c82de645e
this.goalTarget = entityliving;
return true;
// CraftBukkit end
@@ -249,10 +250,35 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -250,10 +251,35 @@ public abstract class EntityInsentient extends EntityLiving {
this.m();
this.F();
}
@@ -62,7 +62,7 @@ index c9791be9385c83c8ab626ff3661b0c6cb45822ad..c2144f78c24f015775a00b1c82de645e
@Override
protected void c(DamageSource damagesource) {
this.m();
@@ -426,6 +452,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -427,6 +453,7 @@ public abstract class EntityInsentient extends EntityLiving {
}
nbttagcompound.setBoolean("Bukkit.Aware", this.aware); // CraftBukkit
@@ -70,7 +70,7 @@ index c9791be9385c83c8ab626ff3661b0c6cb45822ad..c2144f78c24f015775a00b1c82de645e
}
@Override
@@ -496,6 +523,11 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -497,6 +524,11 @@ public abstract class EntityInsentient extends EntityLiving {
this.aware = nbttagcompound.getBoolean("Bukkit.Aware");
}
// CraftBukkit end
@@ -82,7 +82,7 @@ index c9791be9385c83c8ab626ff3661b0c6cb45822ad..c2144f78c24f015775a00b1c82de645e
}
@Override
@@ -1543,7 +1575,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -1553,7 +1585,7 @@ public abstract class EntityInsentient extends EntityLiving {
this.a((EntityLiving) this, entity);
this.z(entity);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 878199d01161953811d535ae49c817c82adf9776..9f3b9b42c1509bfd71206702799421dd716e61e4 100644
index ba678ad67d1a48724738a71e1ff3b4e85b672f2c..67f33647cd66c32fcc6d91edd7f66684c0e6464f 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -280,6 +280,7 @@ public abstract class EntityLiving extends Entity {
@@ -281,6 +281,7 @@ public abstract class EntityLiving extends Entity {
double d1 = this.world.getWorldBorder().getDamageAmount();
if (d1 > 0.0D) {
@@ -17,10 +17,10 @@ index 878199d01161953811d535ae49c817c82adf9776..9f3b9b42c1509bfd71206702799421dd
}
}
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index e36bfda9be9874eaa5dfd6886d2bb8b9be5adbfa..036bf70c578b7bd1201405a8517695f627a5f079 100644
index 41f9b0b905fd79a9c570be601048f817aba64bbd..fa8e8cdb2ee594fea47c32acf6013771ad1e59a5 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -2394,4 +2394,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -2412,4 +2412,26 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
return (CraftPlayer) super.getBukkitEntity();
}
// CraftBukkit end

Some files were not shown because too many files have changed in this diff Show More