Updated Upstream (Paper & Tuinity)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
2e37979 Use cause and cancel component in PlayerGameModeChanteEvent (#6192)
b41b5b5 Catch desynced block breaks (#6193)
5a9c14b Fix distanceSq check on block breaking (#6195)
a5acf36 Fix PaperTickList (#6191)

Tuinity Changes:
08c0050 Update paper
9cabf00 Do not run filtered rebuild
23229b9 Add async catchers to chunk ticking status change
ab2aeb0 Update paper
bdd7bb4 Update paper
This commit is contained in:
William Blake Galbreath
2021-07-16 14:18:57 -05:00
parent 7b591f462c
commit 0713758d86
16 changed files with 82 additions and 97 deletions

View File

@@ -4,7 +4,7 @@ version = 1.17.1-R0.1-SNAPSHOT
mcVersion = 1.17.1 mcVersion = 1.17.1
packageVersion = 1_17_R1 packageVersion = 1_17_R1
paperCommit = 377a60db0701fa2dcaafaf16bb6f44423c2422d9 paperCommit = a5acf367a37549ea3b7cb0eb8c0115973d0c58de
org.gradle.parallel = true org.gradle.parallel = true
org.gradle.vfs.watch = false org.gradle.vfs.watch = false

View File

@@ -67,7 +67,7 @@ index 8ae9198ba7fdb006dc420504a984627add20dbb5..4017cc64532a9a8e42c3a6492878cd96
// Spigot start // Spigot start
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 37ad0c478b83ecf63edfe62b5b2dcd81d6fe1e77..252f6220f7cb8dd4bf9c19ec4079819e5b052f44 100644 index 5e8814cc317a705eaf8bdd9f3876a5366c0a0226..7be8c47bdb8cc73c039efe05d81085cdbe0bef58 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1818,23 +1818,63 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -1818,23 +1818,63 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM

View File

@@ -3937,7 +3937,7 @@ index 580bae0d414d371a07a6bfeefc41fdd989dc0083..d50b61876f15d95b836b3dd81d9c3492
switch (distance) { switch (distance) {
case -1: case -1:
diff --git a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java diff --git a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java
index da13ff17609b7bc8076d9297edf8decf01a2ed88..b4c69d39eee19339b1de295151d7ed3bf61635c1 100644 index 5fdaefc128956581be4bb9b34199fd6410563991..8203524862c309bd52fd3a8a47b219aca570f0b1 100644
--- a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java --- a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java
+++ b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java +++ b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java
@@ -312,6 +312,7 @@ public final class PaperTickList<T> extends ServerTickList<T> { // extend to avo @@ -312,6 +312,7 @@ public final class PaperTickList<T> extends ServerTickList<T> { // extend to avo
@@ -12667,7 +12667,7 @@ index 1cc4e0a1f3d8235ef88b48e01ca8b78a263d2676..428d94c60b826ddf3797d6713661dff1
+ */ // Tuinity - replace old loader system + */ // Tuinity - replace old loader system
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1b35d680e 100644 index c5a73dee1c1c4724f01be44399f52cd2f711256c..6d9497655bd568157f83f30c38a0bf254a5330d7 100644
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
@@ -47,6 +47,7 @@ import net.minecraft.world.level.storage.LevelStorageSource; @@ -47,6 +47,7 @@ import net.minecraft.world.level.storage.LevelStorageSource;
@@ -12699,7 +12699,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
} }
} catch (Throwable thr) { } catch (Throwable thr) {
if (thr instanceof ThreadDeath) { if (thr instanceof ThreadDeath) {
@@ -226,6 +227,166 @@ public class ServerChunkCache extends ChunkSource { @@ -227,6 +228,166 @@ public class ServerChunkCache extends ChunkSource {
} }
// Paper end - rewrite ticklistserver // Paper end - rewrite ticklistserver
@@ -12866,7 +12866,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
public ServerChunkCache(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureManager structureManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, boolean flag, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkstatusupdatelistener, Supplier<DimensionDataStorage> supplier) { public ServerChunkCache(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureManager structureManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, boolean flag, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkstatusupdatelistener, Supplier<DimensionDataStorage> supplier) {
this.level = world; this.level = world;
this.mainThreadProcessor = new ServerChunkCache.MainThreadExecutor(world); this.mainThreadProcessor = new ServerChunkCache.MainThreadExecutor(world);
@@ -569,6 +730,8 @@ public class ServerChunkCache extends ChunkSource { @@ -570,6 +731,8 @@ public class ServerChunkCache extends ChunkSource {
return completablefuture; return completablefuture;
} }
@@ -12875,7 +12875,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
private CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> getChunkFutureMainThread(int i, int j, ChunkStatus chunkstatus, boolean flag) { private CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> getChunkFutureMainThread(int i, int j, ChunkStatus chunkstatus, boolean flag) {
// Paper start - add isUrgent - old sig left in place for dirty nms plugins // Paper start - add isUrgent - old sig left in place for dirty nms plugins
return getChunkFutureMainThread(i, j, chunkstatus, flag, false); return getChunkFutureMainThread(i, j, chunkstatus, flag, false);
@@ -587,9 +750,12 @@ public class ServerChunkCache extends ChunkSource { @@ -588,9 +751,12 @@ public class ServerChunkCache extends ChunkSource {
ChunkHolder.FullChunkStatus currentChunkState = ChunkHolder.getFullChunkStatus(playerchunk.getTicketLevel()); ChunkHolder.FullChunkStatus currentChunkState = ChunkHolder.getFullChunkStatus(playerchunk.getTicketLevel());
currentlyUnloading = (oldChunkState.isOrAfter(ChunkHolder.FullChunkStatus.BORDER) && !currentChunkState.isOrAfter(ChunkHolder.FullChunkStatus.BORDER)); currentlyUnloading = (oldChunkState.isOrAfter(ChunkHolder.FullChunkStatus.BORDER) && !currentChunkState.isOrAfter(ChunkHolder.FullChunkStatus.BORDER));
} }
@@ -12888,7 +12888,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
if (isUrgent) this.distanceManager.markUrgent(chunkcoordintpair); // Paper - Chunk priority if (isUrgent) this.distanceManager.markUrgent(chunkcoordintpair); // Paper - Chunk priority
if (this.chunkAbsent(playerchunk, l)) { if (this.chunkAbsent(playerchunk, l)) {
ProfilerFiller gameprofilerfiller = this.level.getProfiler(); ProfilerFiller gameprofilerfiller = this.level.getProfiler();
@@ -600,12 +766,20 @@ public class ServerChunkCache extends ChunkSource { @@ -601,12 +767,20 @@ public class ServerChunkCache extends ChunkSource {
playerchunk = this.getVisibleChunkIfPresent(k); playerchunk = this.getVisibleChunkIfPresent(k);
gameprofilerfiller.pop(); gameprofilerfiller.pop();
if (this.chunkAbsent(playerchunk, l)) { if (this.chunkAbsent(playerchunk, l)) {
@@ -12910,7 +12910,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
if (isUrgent) { if (isUrgent) {
future.thenAccept(either -> this.distanceManager.clearUrgent(chunkcoordintpair)); future.thenAccept(either -> this.distanceManager.clearUrgent(chunkcoordintpair));
} }
@@ -663,6 +837,8 @@ public class ServerChunkCache extends ChunkSource { @@ -664,6 +838,8 @@ public class ServerChunkCache extends ChunkSource {
public boolean runDistanceManagerUpdates() { public boolean runDistanceManagerUpdates() {
if (distanceManager.delayDistanceManagerTick) return false; // Paper - Chunk priority if (distanceManager.delayDistanceManagerTick) return false; // Paper - Chunk priority
@@ -12919,7 +12919,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
boolean flag = this.distanceManager.runAllUpdates(this.chunkMap); boolean flag = this.distanceManager.runAllUpdates(this.chunkMap);
boolean flag1 = this.chunkMap.promoteChunkMap(); boolean flag1 = this.chunkMap.promoteChunkMap();
@@ -672,6 +848,7 @@ public class ServerChunkCache extends ChunkSource { @@ -673,6 +849,7 @@ public class ServerChunkCache extends ChunkSource {
this.clearCache(); this.clearCache();
return true; return true;
} }
@@ -12927,7 +12927,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
} }
// Paper start - helper // Paper start - helper
@@ -729,6 +906,7 @@ public class ServerChunkCache extends ChunkSource { @@ -730,6 +907,7 @@ public class ServerChunkCache extends ChunkSource {
// CraftBukkit start - modelled on below // CraftBukkit start - modelled on below
public void purgeUnload() { public void purgeUnload() {
@@ -12935,7 +12935,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
this.level.getProfiler().push("purge"); this.level.getProfiler().push("purge");
this.distanceManager.purgeStaleTickets(); this.distanceManager.purgeStaleTickets();
this.runDistanceManagerUpdates(); this.runDistanceManagerUpdates();
@@ -744,17 +922,18 @@ public class ServerChunkCache extends ChunkSource { @@ -745,17 +923,18 @@ public class ServerChunkCache extends ChunkSource {
this.level.getProfiler().push("purge"); this.level.getProfiler().push("purge");
this.level.timings.doChunkMap.startTiming(); // Spigot this.level.timings.doChunkMap.startTiming(); // Spigot
this.distanceManager.purgeStaleTickets(); this.distanceManager.purgeStaleTickets();
@@ -12956,7 +12956,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
this.level.timings.doChunkUnload.stopTiming(); // Spigot this.level.timings.doChunkUnload.stopTiming(); // Spigot
this.level.getProfiler().pop(); this.level.getProfiler().pop();
this.clearCache(); this.clearCache();
@@ -832,18 +1011,26 @@ public class ServerChunkCache extends ChunkSource { @@ -833,18 +1012,26 @@ public class ServerChunkCache extends ChunkSource {
//Collections.shuffle(list); // Paper //Collections.shuffle(list); // Paper
// Paper - moved up // Paper - moved up
this.level.timings.chunkTicks.startTiming(); // Paper this.level.timings.chunkTicks.startTiming(); // Paper
@@ -12990,7 +12990,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
} }
// this.level.timings.doTickTiles.startTiming(); // Spigot // Paper // this.level.timings.doTickTiles.startTiming(); // Spigot // Paper
@@ -851,7 +1038,11 @@ public class ServerChunkCache extends ChunkSource { @@ -852,7 +1039,11 @@ public class ServerChunkCache extends ChunkSource {
// this.level.timings.doTickTiles.stopTiming(); // Spigot // Paper // this.level.timings.doTickTiles.stopTiming(); // Spigot // Paper
} }
} }
@@ -13003,7 +13003,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
this.level.timings.chunkTicks.stopTiming(); // Paper this.level.timings.chunkTicks.stopTiming(); // Paper
this.level.getProfiler().push("customSpawners"); this.level.getProfiler().push("customSpawners");
if (flag1) { if (flag1) {
@@ -860,25 +1051,28 @@ public class ServerChunkCache extends ChunkSource { @@ -861,25 +1052,28 @@ public class ServerChunkCache extends ChunkSource {
} // Paper - timings } // Paper - timings
} }
@@ -13047,7 +13047,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
} }
private void getFullChunk(long pos, Consumer<LevelChunk> chunkConsumer) { private void getFullChunk(long pos, Consumer<LevelChunk> chunkConsumer) {
@@ -1025,46 +1219,14 @@ public class ServerChunkCache extends ChunkSource { @@ -1026,46 +1220,14 @@ public class ServerChunkCache extends ChunkSource {
super.doRunTask(task); super.doRunTask(task);
} }
@@ -13110,7 +13110,7 @@ index 2f3e69ad809199ffc2661d524bb627ec8dbc2e80..0fcd6a9162f5bddb3c4fc42b3a64efde
if (flag2) { if (flag2) {
packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.isOnGround()); packet1 = new ClientboundMoveEntityPacket.Pos(this.entity.getId(), (short) ((int) k), (short) ((int) l), (short) ((int) i1), this.entity.isOnGround());
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b1ae84e16 100644 index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..631bc406d9bb193ac2d1d433519c2c3a7f4589e4 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -114,6 +114,7 @@ import net.minecraft.world.level.block.Block; @@ -114,6 +114,7 @@ import net.minecraft.world.level.block.Block;
@@ -13322,18 +13322,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
StructureManager definedstructuremanager = minecraftserver.getStructureManager(); StructureManager definedstructuremanager = minecraftserver.getStructureManager();
int j = this.spigotConfig.viewDistance; // Spigot int j = this.spigotConfig.viewDistance; // Spigot
PersistentEntitySectionManager persistententitysectionmanager = this.entityManager; PersistentEntitySectionManager persistententitysectionmanager = this.entityManager;
@@ -382,6 +552,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -400,6 +570,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.asyncChunkTaskManager = new com.destroystokyo.paper.io.chunk.ChunkTaskManager(this); // Paper
}
+ // Tuinity start - optimise collision
+
+ // Tuinity end - optimise collision
+
public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) {
this.serverLevelData.setClearWeatherTime(clearDuration);
this.serverLevelData.setRainTime(rainDuration);
@@ -400,6 +574,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
public void tick(BooleanSupplier shouldKeepTicking) { public void tick(BooleanSupplier shouldKeepTicking) {
@@ -13348,7 +13337,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
ProfilerFiller gameprofilerfiller = this.getProfiler(); ProfilerFiller gameprofilerfiller = this.getProfiler();
this.handlingTick = true; this.handlingTick = true;
@@ -545,7 +727,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -545,7 +723,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
timings.scheduledBlocks.stopTiming(); // Paper timings.scheduledBlocks.stopTiming(); // Paper
@@ -13357,7 +13346,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
gameprofilerfiller.popPush("raid"); gameprofilerfiller.popPush("raid");
this.timings.raids.startTiming(); // Paper - timings this.timings.raids.startTiming(); // Paper - timings
this.raids.tick(); this.raids.tick();
@@ -558,7 +740,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -558,7 +736,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
timings.doSounds.startTiming(); // Spigot timings.doSounds.startTiming(); // Spigot
this.runBlockEvents(); this.runBlockEvents();
timings.doSounds.stopTiming(); // Spigot timings.doSounds.stopTiming(); // Spigot
@@ -13366,7 +13355,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
this.handlingTick = false; this.handlingTick = false;
gameprofilerfiller.pop(); gameprofilerfiller.pop();
boolean flag3 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players boolean flag3 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
@@ -605,12 +787,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -605,12 +783,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
timings.entityTick.stopTiming(); // Spigot timings.entityTick.stopTiming(); // Spigot
timings.tickEntities.stopTiming(); // Spigot timings.tickEntities.stopTiming(); // Spigot
gameprofilerfiller.pop(); gameprofilerfiller.pop();
@@ -13381,7 +13370,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
this.entityManager.tick(); this.entityManager.tick();
gameprofilerfiller.pop(); gameprofilerfiller.pop();
} }
@@ -655,6 +837,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -655,6 +833,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
entityplayer.stopSleepInBed(false, false); entityplayer.stopSleepInBed(false, false);
}); });
} }
@@ -13392,7 +13381,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
public void tickChunk(LevelChunk chunk, int randomTickSpeed) { public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
ChunkPos chunkcoordintpair = chunk.getPos(); ChunkPos chunkcoordintpair = chunk.getPos();
@@ -664,10 +850,10 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -664,10 +846,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
ProfilerFiller gameprofilerfiller = this.getProfiler(); ProfilerFiller gameprofilerfiller = this.getProfiler();
gameprofilerfiller.push("thunder"); gameprofilerfiller.push("thunder");
@@ -13405,7 +13394,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
if (this.isRainingAt(blockposition)) { if (this.isRainingAt(blockposition)) {
DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition); DifficultyInstance difficultydamagescaler = this.getCurrentDifficultyAt(blockposition);
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
@@ -690,64 +876,78 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -690,64 +872,78 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
gameprofilerfiller.popPush("iceandsnow"); gameprofilerfiller.popPush("iceandsnow");
@@ -13516,7 +13505,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
timings.chunkTicksBlocks.stopTiming(); // Paper timings.chunkTicksBlocks.stopTiming(); // Paper
gameprofilerfiller.pop(); gameprofilerfiller.pop();
} }
@@ -873,7 +1073,27 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -873,7 +1069,27 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
@@ -13544,7 +13533,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
++TimingHistory.entityTicks; // Paper - timings ++TimingHistory.entityTicks; // Paper - timings
// Spigot start // Spigot start
co.aikar.timings.Timing timer; // Paper co.aikar.timings.Timing timer; // Paper
@@ -914,7 +1134,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -914,7 +1130,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
} }
// } finally { timer.stopTiming(); } // Paper - timings - move up // } finally { timer.stopTiming(); } // Paper - timings - move up
@@ -13559,7 +13548,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
} }
private void tickPassenger(Entity vehicle, Entity passenger) { private void tickPassenger(Entity vehicle, Entity passenger) {
@@ -1206,9 +1432,13 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1206,9 +1428,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot Start // Spigot Start
for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) { for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) {
if (tileentity instanceof net.minecraft.world.Container) { if (tileentity instanceof net.minecraft.world.Container) {
@@ -13574,7 +13563,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
} }
} }
// Spigot End // Spigot End
@@ -1305,9 +1535,19 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1305,9 +1531,19 @@ public class ServerLevel extends Level implements WorldGenLevel {
VoxelShape voxelshape1 = newState.getCollisionShape(this, pos); VoxelShape voxelshape1 = newState.getCollisionShape(this, pos);
if (Shapes.joinIsNotEmpty(voxelshape, voxelshape1, BooleanOp.NOT_SAME)) { if (Shapes.joinIsNotEmpty(voxelshape, voxelshape1, BooleanOp.NOT_SAME)) {
@@ -13596,7 +13585,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
// CraftBukkit start - fix SPIGOT-6362 // CraftBukkit start - fix SPIGOT-6362
Mob entityinsentient; Mob entityinsentient;
try { try {
@@ -1326,6 +1566,11 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1326,6 +1562,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
navigationabstract.recomputePath(pos); navigationabstract.recomputePath(pos);
} }
} }
@@ -13608,7 +13597,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
} }
} // Paper } // Paper
@@ -2107,10 +2352,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2107,10 +2348,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void onTickingStart(Entity entity) { public void onTickingStart(Entity entity) {
ServerLevel.this.entityTickList.add(entity); ServerLevel.this.entityTickList.add(entity);
@@ -13672,7 +13661,7 @@ index 8e2bccc3a9ddb17a4978596056189eb776976338..dcba69c0ad3288ddc64dacc58b6fb857
public void doCloseContainer() { public void doCloseContainer() {
this.containerMenu.removed((Player) this); this.containerMenu.removed((Player) this);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b1b3bb0ad 100644 index c607cbae6306bea4eaf9c7abc55c59e92e3304c8..800f6f7c6e7d0d5922fc8b8de2aab72dca8514df 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -56,14 +56,28 @@ public class ServerPlayerGameMode { @@ -56,14 +56,28 @@ public class ServerPlayerGameMode {
@@ -13737,7 +13726,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
float f = state.getDestroyProgress(this.player, this.player.level, pos) * (float) (j + 1); float f = state.getDestroyProgress(this.player, this.player.level, pos) * (float) (j + 1);
int k = (int) (f * 10.0F); int k = (int) (f * 10.0F);
@@ -225,7 +245,7 @@ public class ServerPlayerGameMode { @@ -230,7 +250,7 @@ public class ServerPlayerGameMode {
return; return;
} }
@@ -13746,7 +13735,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
float f = 1.0F; float f = 1.0F;
iblockdata = this.level.getBlockState(pos); iblockdata = this.level.getBlockState(pos);
@@ -278,12 +298,12 @@ public class ServerPlayerGameMode { @@ -283,12 +303,12 @@ public class ServerPlayerGameMode {
int j = (int) (f * 10.0F); int j = (int) (f * 10.0F);
this.level.destroyBlockProgress(this.player.getId(), pos, j); this.level.destroyBlockProgress(this.player.getId(), pos, j);
@@ -13761,7 +13750,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
iblockdata = this.level.getBlockState(pos); iblockdata = this.level.getBlockState(pos);
if (!iblockdata.isAir()) { if (!iblockdata.isAir()) {
@@ -300,12 +320,18 @@ public class ServerPlayerGameMode { @@ -305,12 +325,18 @@ public class ServerPlayerGameMode {
this.isDestroyingBlock = false; this.isDestroyingBlock = false;
this.hasDelayedDestroy = true; this.hasDelayedDestroy = true;
this.delayedDestroyPos = pos; this.delayedDestroyPos = pos;
@@ -13781,7 +13770,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
} else if (action == ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK) { } else if (action == ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK) {
this.isDestroyingBlock = false; this.isDestroyingBlock = false;
if (!Objects.equals(this.destroyPos, pos) && !BlockPos.ZERO.equals(this.destroyPos)) { if (!Objects.equals(this.destroyPos, pos) && !BlockPos.ZERO.equals(this.destroyPos)) {
@@ -317,7 +343,7 @@ public class ServerPlayerGameMode { @@ -322,7 +348,7 @@ public class ServerPlayerGameMode {
} }
this.level.destroyBlockProgress(this.player.getId(), pos, -1); this.level.destroyBlockProgress(this.player.getId(), pos, -1);
@@ -13790,7 +13779,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
} }
} }
@@ -327,7 +353,13 @@ public class ServerPlayerGameMode { @@ -332,7 +358,13 @@ public class ServerPlayerGameMode {
public void destroyAndAck(BlockPos pos, ServerboundPlayerActionPacket.Action action, String reason) { public void destroyAndAck(BlockPos pos, ServerboundPlayerActionPacket.Action action, String reason) {
if (this.destroyBlock(pos)) { if (this.destroyBlock(pos)) {
@@ -14161,7 +14150,7 @@ index 0f6b534a4c789a2f09f6c4624e5d58b99c7ed0e6..fea852674098fe411841d8e5ebeace7d
this.generatingStatus = chunkstatus; this.generatingStatus = chunkstatus;
this.writeRadiusCutoff = i; this.writeRadiusCutoff = i;
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 098e221d61a8279a4d2eb67ac3fe9ded9b63d322..733ba23aa8f8d84eba556604fd743449a313a659 100644 index 45b57cbd619cec8a77014f977df9778f0ff88917..de56756afcd90eff9a1f7fbfa0feb33e4284c3d7 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -536,6 +536,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -536,6 +536,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -16782,7 +16771,7 @@ index 554474d4b2e57d8a005b3c3b9b23f32a62243058..ebeb3e3b0619b034a9681da999e9ac33
+ // Paper end + // Paper end
} }
diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java diff --git a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..27dcaafbc090bac4cad2607a0961378fbc51092e 100644 index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..f6d05372f592a3b7619ad6989630c140ffd4f03b 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java --- a/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/ProtoChunk.java
@@ -1,5 +1,7 @@ @@ -1,5 +1,7 @@
@@ -16847,15 +16836,7 @@ index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..27dcaafbc090bac4cad2607a0961378f
@Deprecated // Paper start - add level @Deprecated // Paper start - add level
public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor world) { public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor world) {
// Paper start // Paper start
@@ -81,6 +130,7 @@ public class ProtoChunk implements ChunkAccess { @@ -100,6 +149,10 @@ public class ProtoChunk implements ChunkAccess {
PRINTED_OUTDATED_CTOR_MSG = true;
}
}
+
public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor world, net.minecraft.server.level.ServerLevel level) {
// Paper end
this(pos, upgradeData, (LevelChunkSection[])null, new ProtoTickList<>((block) -> {
@@ -100,6 +150,10 @@ public class ProtoChunk implements ChunkAccess {
} }
} }
public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, @Nullable LevelChunkSection[] levelChunkSections, ProtoTickList<Block> blockTickScheduler, ProtoTickList<Fluid> fluidTickScheduler, LevelHeightAccessor world, net.minecraft.server.level.ServerLevel level) { public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, @Nullable LevelChunkSection[] levelChunkSections, ProtoTickList<Block> blockTickScheduler, ProtoTickList<Fluid> fluidTickScheduler, LevelHeightAccessor world, net.minecraft.server.level.ServerLevel level) {
@@ -16866,7 +16847,7 @@ index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..27dcaafbc090bac4cad2607a0961378f
this.level = level; this.level = level;
// Paper end // Paper end
this.chunkPos = pos; this.chunkPos = pos;
@@ -197,7 +251,7 @@ public class ProtoChunk implements ChunkAccess { @@ -197,7 +250,7 @@ public class ProtoChunk implements ChunkAccess {
LevelChunkSection levelChunkSection = this.getOrCreateSection(l); LevelChunkSection levelChunkSection = this.getOrCreateSection(l);
BlockState blockState = levelChunkSection.setBlockState(i & 15, j & 15, k & 15, state); BlockState blockState = levelChunkSection.setBlockState(i & 15, j & 15, k & 15, state);
@@ -17827,10 +17808,10 @@ index 90f7b06bd2c558be35c4577044fa033e1fb5cc22..8f244db7e46ac1a3d2c8358f001d4889
return Optional.empty(); return Optional.empty();
} else { } else {
diff --git a/src/main/java/net/minecraft/world/level/entity/EntityTickList.java b/src/main/java/net/minecraft/world/level/entity/EntityTickList.java diff --git a/src/main/java/net/minecraft/world/level/entity/EntityTickList.java b/src/main/java/net/minecraft/world/level/entity/EntityTickList.java
index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..2cfc54a577d0a63a504e24bc54fd763fe51083e5 100644 index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..6ba8b50b59d3f81ec4c974defc319b1bab27c04b 100644
--- a/src/main/java/net/minecraft/world/level/entity/EntityTickList.java --- a/src/main/java/net/minecraft/world/level/entity/EntityTickList.java
+++ b/src/main/java/net/minecraft/world/level/entity/EntityTickList.java +++ b/src/main/java/net/minecraft/world/level/entity/EntityTickList.java
@@ -9,54 +9,40 @@ import javax.annotation.Nullable; @@ -9,54 +9,42 @@ import javax.annotation.Nullable;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
public class EntityTickList { public class EntityTickList {
@@ -17857,12 +17838,14 @@ index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..2cfc54a577d0a63a504e24bc54fd763f
} }
public void add(Entity entity) { public void add(Entity entity) {
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("Asynchronous entity ticklist addition"); // Tuinity
this.ensureActiveIsNotIterated(); this.ensureActiveIsNotIterated();
- this.active.put(entity.getId(), entity); - this.active.put(entity.getId(), entity);
+ this.entities.add(entity); // Tuinity - replace with better logic, do not delay removals/additions + this.entities.add(entity); // Tuinity - replace with better logic, do not delay removals/additions
} }
public void remove(Entity entity) { public void remove(Entity entity) {
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("Asynchronous entity ticklist removal"); // Tuinity
this.ensureActiveIsNotIterated(); this.ensureActiveIsNotIterated();
- this.active.remove(entity.getId()); - this.active.remove(entity.getId());
+ this.entities.remove(entity); // Tuinity - replace with better logic, do not delay removals/additions + this.entities.remove(entity); // Tuinity - replace with better logic, do not delay removals/additions
@@ -17885,6 +17868,7 @@ index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..2cfc54a577d0a63a504e24bc54fd763f
- } - }
- } finally { - } finally {
- this.iterated = null; - this.iterated = null;
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("Asynchronous entity ticklist iteration"); // Tuinity
+ // Tuinity start - replace with better logic, do not delay removals/additions + // Tuinity start - replace with better logic, do not delay removals/additions
+ // To ensure nothing weird happens with dimension travelling, do not iterate over new entries... + // To ensure nothing weird happens with dimension travelling, do not iterate over new entries...
+ // (by dfl iterator() is configured to not iterate over new entries) + // (by dfl iterator() is configured to not iterate over new entries)
@@ -17897,12 +17881,11 @@ index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..2cfc54a577d0a63a504e24bc54fd763f
+ } finally { + } finally {
+ iterator.finishedIterating(); + iterator.finishedIterating();
} }
+
+ // Tuinity end - replace with better logic, do not delay removals/additions + // Tuinity end - replace with better logic, do not delay removals/additions
} }
} }
diff --git a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java diff --git a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
index 5a0a1b01e89b122811b0b567e1ee27081953e638..a40af675d594c0c3a24f61948c28bd682115263e 100644 index 5a0a1b01e89b122811b0b567e1ee27081953e638..3cb190d38eeb978a7c7ebc37259be0c56d07823d 100644
--- a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java --- a/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
+++ b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java +++ b/src/main/java/net/minecraft/world/level/entity/PersistentEntitySectionManager.java
@@ -41,8 +41,10 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A @@ -41,8 +41,10 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
@@ -17991,15 +17974,17 @@ index 5a0a1b01e89b122811b0b567e1ee27081953e638..a40af675d594c0c3a24f61948c28bd68
entity.setLevelCallback(new PersistentEntitySectionManager.Callback(entity, l, entitySection)); entity.setLevelCallback(new PersistentEntitySectionManager.Callback(entity, l, entitySection));
if (!existing) { if (!existing) {
this.callbacks.onCreated(entity); this.callbacks.onCreated(entity);
@@ -147,6 +209,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A @@ -146,7 +208,9 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
}
public void updateChunkStatus(ChunkPos chunkPos, ChunkHolder.FullChunkStatus levelType) { public void updateChunkStatus(ChunkPos chunkPos, ChunkHolder.FullChunkStatus levelType) {
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("Asynchronous chunk ticking status update"); // Tuinity
Visibility visibility = Visibility.fromFullChunkStatus(levelType); Visibility visibility = Visibility.fromFullChunkStatus(levelType);
+ this.entitySliceManager.chunkStatusChange(chunkPos.x, chunkPos.z, levelType); // Tuinity + this.entitySliceManager.chunkStatusChange(chunkPos.x, chunkPos.z, levelType); // Tuinity
this.updateChunkStatus(chunkPos, visibility); this.updateChunkStatus(chunkPos, visibility);
} }
@@ -382,18 +445,38 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A @@ -382,18 +446,38 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
@Override @Override
public void onMove() { public void onMove() {
BlockPos blockPos = this.entity.blockPosition(); BlockPos blockPos = this.entity.blockPosition();
@@ -18041,7 +18026,7 @@ index 5a0a1b01e89b122811b0b567e1ee27081953e638..a40af675d594c0c3a24f61948c28bd68
this.updateStatus(visibility, entitySection.getStatus()); this.updateStatus(visibility, entitySection.getStatus());
} }
@@ -427,6 +510,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A @@ -427,6 +511,7 @@ public class PersistentEntitySectionManager<T extends EntityAccess> implements A
if (!this.currentSection.remove(this.entity)) { if (!this.currentSection.remove(this.entity)) {
PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", this.entity, SectionPos.of(this.currentSectionKey), reason); PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", this.entity, SectionPos.of(this.currentSectionKey), reason);
} }

View File

@@ -34,7 +34,7 @@ index be1bc7fda4104d61f91c2815c6ba3c612a019bed..2ede76a55c72840d915ed282609b1ca1
this.profiler.push(() -> { this.profiler.push(() -> {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 8207f0fd2c0b5cd60d02714108eab47b1ae84e16..e1b1e88cc383c99e701f5a661a98d29db031aba7 100644 index 631bc406d9bb193ac2d1d433519c2c3a7f4589e4..7c45fdbd9f389e8b74de5a672a9520ede93d6217 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -201,6 +201,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -201,6 +201,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -73,10 +73,10 @@ index 57200e6b419ab0793df6498467325b6d5690c17f..bd787b4122502eacacadd8d47ea5aa5d
+ +
} }
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 733ba23aa8f8d84eba556604fd743449a313a659..0a7d339a1b52f5b70830708d5eabac3f8d85f888 100644 index de56756afcd90eff9a1f7fbfa0feb33e4284c3d7..e43239fd04e81b3653c07cc441be1a4036b96b97 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2412,6 +2412,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -2422,6 +2422,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);

View File

@@ -66,10 +66,10 @@ index 22366098d0a3f6df2ba650ef01ed4be77bee0496..156f04fab90d44775ec8036da1b9a763
public Scoreboard getScoreboard() { public Scoreboard getScoreboard() {
return this.getBukkitEntity().getScoreboard().getHandle(); return this.getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index d2270b53e6a8f74f7382d5c4dc4474a3a8d83fa4..77a0ad0ab7291f50e8d3bf864595a0f52a4114bf 100644 index 8414826f6f9204bdda832efcb00e24ab0115bd59..a99199212618dc41e86bb9c4402e21672d52128b 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1918,6 +1918,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -1928,6 +1928,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
} }
// Paper start // Paper start
PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()]; PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()];

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Alternative Keepalive Handling
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 77a0ad0ab7291f50e8d3bf864595a0f52a4114bf..f4e4ca801a585b8c0335cc3c59f1278d1c108f2b 100644 index a99199212618dc41e86bb9c4402e21672d52128b..453bc25de957d007930c2708c5cbebd533298e17 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -228,6 +228,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -228,6 +228,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -38,7 +38,7 @@ index 77a0ad0ab7291f50e8d3bf864595a0f52a4114bf..f4e4ca801a585b8c0335cc3c59f1278d
if (this.keepAlivePending) { if (this.keepAlivePending) {
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
@@ -3074,6 +3090,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -3084,6 +3100,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@Override @Override
public void handleKeepAlive(ServerboundKeepAlivePacket packet) { public void handleKeepAlive(ServerboundKeepAlivePacket packet) {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index e1b1e88cc383c99e701f5a661a98d29db031aba7..f3a6b6713843e4b600440c8845fe10938920869b 100644 index 7c45fdbd9f389e8b74de5a672a9520ede93d6217..d53497ca3ada4c1205695f54dd7e163f3cc63afb 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -860,9 +860,15 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -856,9 +856,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
if (flag1) { if (flag1) {

View File

@@ -17,10 +17,10 @@ index 156f04fab90d44775ec8036da1b9a763544c8ccb..18b21258e39cbc54eaeaa44a4398a3b1
this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos()));
this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos()));
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index f4e4ca801a585b8c0335cc3c59f1278d1c108f2b..0be0d27e2534fccf0f8ff828476e2a0612c60d71 100644 index 453bc25de957d007930c2708c5cbebd533298e17..98fd21a74038c5d0ea5b18d6a5534c12b84a7861 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3064,11 +3064,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -3074,11 +3074,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
} }
} }
// Paper end // Paper end

View File

@@ -18,7 +18,7 @@ index 689ad22925b2561f7c8db961743eb1f821dbb25f..fa3c960992cc240161817e54659d83fe
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) { public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time % 192000; // Paper - fix guardian beam this.gameTime = time % 192000; // Paper - fix guardian beam
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index bfbcdaa117fd8860aa3e287a7e311f2f3bb42281..6a5d2cb99cb4793ef165bfdaf521eb468c447834 100644 index 7944a33cf36878c9e4853637bfb9cba22ba8bc4d..3bc63f24bf8c07b89562887bdc8cf7569d7b33b4 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -196,6 +196,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -196,6 +196,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -36,8 +36,8 @@ index bfbcdaa117fd8860aa3e287a7e311f2f3bb42281..6a5d2cb99cb4793ef165bfdaf521eb46
+ this.fakeTime = this.serverLevelData.getDayTime(); // Purpur + this.fakeTime = this.serverLevelData.getDayTime(); // Purpur
} }
// Tuinity start - optimise collision public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) {
@@ -829,6 +831,18 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -825,6 +827,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.liquidTicks.nextTick(); // Paper this.liquidTicks.nextTick(); // Paper
this.serverLevelData.getScheduledEvents().tick(this.server, i); this.serverLevelData.getScheduledEvents().tick(this.server, i);
if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) { if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
@@ -56,7 +56,7 @@ index bfbcdaa117fd8860aa3e287a7e311f2f3bb42281..6a5d2cb99cb4793ef165bfdaf521eb46
this.setDayTime(this.levelData.getDayTime() + 1L); this.setDayTime(this.levelData.getDayTime() + 1L);
} }
@@ -837,6 +851,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -833,6 +847,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void setDayTime(long timeOfDay) { public void setDayTime(long timeOfDay) {
this.serverLevelData.setDayTime(timeOfDay); this.serverLevelData.setDayTime(timeOfDay);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Sneak to bulk process composter
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index b2c8cae1a777cd63a35ed1340caf205b1b3bb0ad..26bd2c7f52189e94ba45d0d9e9b697226cb7b9fb 100644 index 800f6f7c6e7d0d5922fc8b8de2aab72dca8514df..94f723c00133673890e6da6b5858d10dd4c99bae 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -581,7 +581,7 @@ public class ServerPlayerGameMode { @@ -586,7 +586,7 @@ public class ServerPlayerGameMode {
boolean flag1 = player.isSecondaryUseActive() && flag; boolean flag1 = player.isSecondaryUseActive() && flag;
ItemStack itemstack1 = stack.copy(); ItemStack itemstack1 = stack.copy();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config for skipping night
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 6a5d2cb99cb4793ef165bfdaf521eb468c447834..d682f0b69757b0f4e3120066e25170264ba1f289 100644 index 3bc63f24bf8c07b89562887bdc8cf7569d7b33b4..27d41f7e03404d349a465848235c63b1f5e3200c 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -721,7 +721,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -717,7 +717,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// CraftBukkit end // CraftBukkit end
i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Break individual slabs when sneaking
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index b2c8cae1a777cd63a35ed1340caf205b1b3bb0ad..11270c763dc5e260074260e10a6dd9a9b7a09c8f 100644 index 94f723c00133673890e6da6b5858d10dd4c99bae..fcc9f73654857a9cc88a80e2182d12fde9261fd2 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -419,6 +419,7 @@ public class ServerPlayerGameMode { @@ -424,6 +424,7 @@ public class ServerPlayerGameMode {
} }
return false; return false;
} }

View File

@@ -9,10 +9,10 @@ creating an itemstack using the TileEntity's NBT data (how it handles it for
creative players) instead of routing it through the LootableBuilder. creative players) instead of routing it through the LootableBuilder.
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index 11270c763dc5e260074260e10a6dd9a9b7a09c8f..a25e4eeb1ce4e18c7cb14e269ad3852715209cb9 100644 index fcc9f73654857a9cc88a80e2182d12fde9261fd2..55a9c1d13484c4ce5e3d8f2dd270df01480add87 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -448,7 +448,7 @@ public class ServerPlayerGameMode { @@ -453,7 +453,7 @@ public class ServerPlayerGameMode {
block.destroy(this.level, pos, iblockdata); block.destroy(this.level, pos, iblockdata);
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Make lightning rod range configurable
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index d682f0b69757b0f4e3120066e25170264ba1f289..cee1f74edf069da54d15b7fc7d10c437afa47b2a 100644 index 27d41f7e03404d349a465848235c63b1f5e3200c..da0095bf9f2237dc4846f655e4698b0976224771 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1006,7 +1006,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1002,7 +1002,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
return villageplacetype == PoiType.LIGHTNING_ROD; return villageplacetype == PoiType.LIGHTNING_ROD;
}, (blockposition1) -> { }, (blockposition1) -> {
return blockposition1.getY() == this.getLevel().getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1; return blockposition1.getY() == this.getLevel().getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Armor click equip options
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index a25e4eeb1ce4e18c7cb14e269ad3852715209cb9..111779c0a614b29bea5ad7a8301d704efaf62bf1 100644 index 55a9c1d13484c4ce5e3d8f2dd270df01480add87..a513e60c9bf96c6863926b608c0c46706700c096 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -498,7 +498,7 @@ public class ServerPlayerGameMode { @@ -503,7 +503,7 @@ public class ServerPlayerGameMode {
return interactionresultwrapper.getResult(); return interactionresultwrapper.getResult();
} else { } else {
player.setItemInHand(hand, itemstack1); player.setItemInHand(hand, itemstack1);
@@ -18,7 +18,7 @@ index a25e4eeb1ce4e18c7cb14e269ad3852715209cb9..111779c0a614b29bea5ad7a8301d704e
if (itemstack1.isDamageableItem() && itemstack1.getDamageValue() != j) { if (itemstack1.isDamageableItem() && itemstack1.getDamageValue() != j) {
itemstack1.setDamageValue(j); itemstack1.setDamageValue(j);
diff --git a/src/main/java/net/minecraft/world/item/ArmorItem.java b/src/main/java/net/minecraft/world/item/ArmorItem.java diff --git a/src/main/java/net/minecraft/world/item/ArmorItem.java b/src/main/java/net/minecraft/world/item/ArmorItem.java
index ad095c6bc7e00d286c83e37f84d8ed5d4a2c6881..1d1723873be1ec61c34e22e4f709f207abf593a6 100644 index dba3b8e0671ee63ff077155a8964f3e245740e7e..1efe3252465030570b253010e47ad12c5f1aa57f 100644
--- a/src/main/java/net/minecraft/world/item/ArmorItem.java --- a/src/main/java/net/minecraft/world/item/ArmorItem.java
+++ b/src/main/java/net/minecraft/world/item/ArmorItem.java +++ b/src/main/java/net/minecraft/world/item/ArmorItem.java
@@ -146,7 +146,14 @@ public class ArmorItem extends Item implements Wearable { @@ -146,7 +146,14 @@ public class ArmorItem extends Item implements Wearable {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Customizable sleeping actionbar messages
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index cee1f74edf069da54d15b7fc7d10c437afa47b2a..92b1709b96fe1e8d71e4de675e4c11f5c3f1469e 100644 index da0095bf9f2237dc4846f655e4698b0976224771..287e0b565566d36aea0a023ccccd2f12fd4643cd 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1049,11 +1049,29 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1045,11 +1045,29 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (this.canSleepThroughNights()) { if (this.canSleepThroughNights()) {
if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) { if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) {
int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
@@ -40,7 +40,7 @@ index cee1f74edf069da54d15b7fc7d10c437afa47b2a..92b1709b96fe1e8d71e4de675e4c11f5
} }
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index e59b8ab1ba5d47663ff174752b1a9a81bf0780e7..cc1f549b8a3825dcf9f0fcdac1260e156663cdfd 100644 index 0fada677e0aa6ffa4b654d7eae307863d8fc6e59..8244f362f551ed2bdef4df8e6b83cb176b4a4e59 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -168,6 +168,8 @@ public class PurpurConfig { @@ -168,6 +168,8 @@ public class PurpurConfig {