mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Updated Upstream (Paper & Tuinity)
Upstream has released updates that 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:
@@ -4,7 +4,7 @@ version = 1.17.1-R0.1-SNAPSHOT
|
||||
mcVersion = 1.17.1
|
||||
packageVersion = 1_17_R1
|
||||
|
||||
paperCommit = 377a60db0701fa2dcaafaf16bb6f44423c2422d9
|
||||
paperCommit = a5acf367a37549ea3b7cb0eb8c0115973d0c58de
|
||||
|
||||
org.gradle.parallel = true
|
||||
org.gradle.vfs.watch = false
|
||||
|
||||
@@ -67,7 +67,7 @@ index 8ae9198ba7fdb006dc420504a984627add20dbb5..4017cc64532a9a8e42c3a6492878cd96
|
||||
|
||||
// Spigot start
|
||||
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
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -1818,23 +1818,63 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
|
||||
@@ -3937,7 +3937,7 @@ index 580bae0d414d371a07a6bfeefc41fdd989dc0083..d50b61876f15d95b836b3dd81d9c3492
|
||||
switch (distance) {
|
||||
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
|
||||
index da13ff17609b7bc8076d9297edf8decf01a2ed88..b4c69d39eee19339b1de295151d7ed3bf61635c1 100644
|
||||
index 5fdaefc128956581be4bb9b34199fd6410563991..8203524862c309bd52fd3a8a47b219aca570f0b1 100644
|
||||
--- a/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
|
||||
@@ -12667,7 +12667,7 @@ index 1cc4e0a1f3d8235ef88b48e01ca8b78a263d2676..428d94c60b826ddf3797d6713661dff1
|
||||
+ */ // 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
|
||||
index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1b35d680e 100644
|
||||
index c5a73dee1c1c4724f01be44399f52cd2f711256c..6d9497655bd568157f83f30c38a0bf254a5330d7 100644
|
||||
--- a/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;
|
||||
@@ -12699,7 +12699,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
}
|
||||
} catch (Throwable thr) {
|
||||
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
|
||||
|
||||
@@ -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) {
|
||||
this.level = 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;
|
||||
}
|
||||
|
||||
@@ -12875,7 +12875,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
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
|
||||
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());
|
||||
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 (this.chunkAbsent(playerchunk, l)) {
|
||||
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);
|
||||
gameprofilerfiller.pop();
|
||||
if (this.chunkAbsent(playerchunk, l)) {
|
||||
@@ -12910,7 +12910,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
if (isUrgent) {
|
||||
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() {
|
||||
if (distanceManager.delayDistanceManagerTick) return false; // Paper - Chunk priority
|
||||
@@ -12919,7 +12919,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
boolean flag = this.distanceManager.runAllUpdates(this.chunkMap);
|
||||
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();
|
||||
return true;
|
||||
}
|
||||
@@ -12927,7 +12927,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
}
|
||||
|
||||
// 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
|
||||
public void purgeUnload() {
|
||||
@@ -12935,7 +12935,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
this.level.getProfiler().push("purge");
|
||||
this.distanceManager.purgeStaleTickets();
|
||||
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.timings.doChunkMap.startTiming(); // Spigot
|
||||
this.distanceManager.purgeStaleTickets();
|
||||
@@ -12956,7 +12956,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
this.level.timings.doChunkUnload.stopTiming(); // Spigot
|
||||
this.level.getProfiler().pop();
|
||||
this.clearCache();
|
||||
@@ -832,18 +1011,26 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -833,18 +1012,26 @@ public class ServerChunkCache extends ChunkSource {
|
||||
//Collections.shuffle(list); // Paper
|
||||
// Paper - moved up
|
||||
this.level.timings.chunkTicks.startTiming(); // Paper
|
||||
@@ -12990,7 +12990,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
}
|
||||
|
||||
// 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
|
||||
}
|
||||
}
|
||||
@@ -13003,7 +13003,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
this.level.timings.chunkTicks.stopTiming(); // Paper
|
||||
this.level.getProfiler().push("customSpawners");
|
||||
if (flag1) {
|
||||
@@ -860,25 +1051,28 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -861,25 +1052,28 @@ public class ServerChunkCache extends ChunkSource {
|
||||
} // Paper - timings
|
||||
}
|
||||
|
||||
@@ -13047,7 +13047,7 @@ index c5d77b446afc162adb4b64d23f34596363b990b6..db39671881b622189961b39309a323a1
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -13110,7 +13110,7 @@ index 2f3e69ad809199ffc2661d524bb627ec8dbc2e80..0fcd6a9162f5bddb3c4fc42b3a64efde
|
||||
if (flag2) {
|
||||
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
|
||||
index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b1ae84e16 100644
|
||||
index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..631bc406d9bb193ac2d1d433519c2c3a7f4589e4 100644
|
||||
--- a/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;
|
||||
@@ -13322,18 +13322,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
StructureManager definedstructuremanager = minecraftserver.getStructureManager();
|
||||
int j = this.spigotConfig.viewDistance; // Spigot
|
||||
PersistentEntitySectionManager persistententitysectionmanager = this.entityManager;
|
||||
@@ -382,6 +552,10 @@ 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 {
|
||||
@@ -400,6 +570,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
|
||||
public void tick(BooleanSupplier shouldKeepTicking) {
|
||||
@@ -13348,7 +13337,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
ProfilerFiller gameprofilerfiller = this.getProfiler();
|
||||
|
||||
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
|
||||
|
||||
@@ -13357,7 +13346,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
gameprofilerfiller.popPush("raid");
|
||||
this.timings.raids.startTiming(); // Paper - timings
|
||||
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
|
||||
this.runBlockEvents();
|
||||
timings.doSounds.stopTiming(); // Spigot
|
||||
@@ -13366,7 +13355,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
this.handlingTick = false;
|
||||
gameprofilerfiller.pop();
|
||||
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.tickEntities.stopTiming(); // Spigot
|
||||
gameprofilerfiller.pop();
|
||||
@@ -13381,7 +13370,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
this.entityManager.tick();
|
||||
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);
|
||||
});
|
||||
}
|
||||
@@ -13392,7 +13381,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
|
||||
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
|
||||
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();
|
||||
|
||||
gameprofilerfiller.push("thunder");
|
||||
@@ -13405,7 +13394,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
if (this.isRainingAt(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
|
||||
@@ -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");
|
||||
@@ -13516,7 +13505,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
timings.chunkTicksBlocks.stopTiming(); // Paper
|
||||
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
|
||||
// Spigot start
|
||||
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
|
||||
@@ -13559,7 +13548,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
}
|
||||
|
||||
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
|
||||
for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) {
|
||||
if (tileentity instanceof net.minecraft.world.Container) {
|
||||
@@ -13574,7 +13563,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
}
|
||||
}
|
||||
// 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);
|
||||
|
||||
if (Shapes.joinIsNotEmpty(voxelshape, voxelshape1, BooleanOp.NOT_SAME)) {
|
||||
@@ -13596,7 +13585,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
// CraftBukkit start - fix SPIGOT-6362
|
||||
Mob entityinsentient;
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -13608,7 +13597,7 @@ index c2e0417ee15018ec31c4aa8eec3dff7a0d16aa9e..8207f0fd2c0b5cd60d02714108eab47b
|
||||
|
||||
}
|
||||
} // 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) {
|
||||
ServerLevel.this.entityTickList.add(entity);
|
||||
@@ -13672,7 +13661,7 @@ index 8e2bccc3a9ddb17a4978596056189eb776976338..dcba69c0ad3288ddc64dacc58b6fb857
|
||||
public void doCloseContainer() {
|
||||
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
|
||||
index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b1b3bb0ad 100644
|
||||
index c607cbae6306bea4eaf9c7abc55c59e92e3304c8..800f6f7c6e7d0d5922fc8b8de2aab72dca8514df 100644
|
||||
--- a/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 {
|
||||
@@ -13737,7 +13726,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
|
||||
float f = state.getDestroyProgress(this.player, this.player.level, pos) * (float) (j + 1);
|
||||
int k = (int) (f * 10.0F);
|
||||
|
||||
@@ -225,7 +245,7 @@ public class ServerPlayerGameMode {
|
||||
@@ -230,7 +250,7 @@ public class ServerPlayerGameMode {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -13746,7 +13735,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
|
||||
float f = 1.0F;
|
||||
|
||||
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);
|
||||
|
||||
this.level.destroyBlockProgress(this.player.getId(), pos, j);
|
||||
@@ -13761,7 +13750,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
|
||||
|
||||
iblockdata = this.level.getBlockState(pos);
|
||||
if (!iblockdata.isAir()) {
|
||||
@@ -300,12 +320,18 @@ public class ServerPlayerGameMode {
|
||||
@@ -305,12 +325,18 @@ public class ServerPlayerGameMode {
|
||||
this.isDestroyingBlock = false;
|
||||
this.hasDelayedDestroy = true;
|
||||
this.delayedDestroyPos = pos;
|
||||
@@ -13781,7 +13770,7 @@ index e572088cad8b9e09b1d64f7971bacac2f10c5b17..b2c8cae1a777cd63a35ed1340caf205b
|
||||
} else if (action == ServerboundPlayerActionPacket.Action.ABORT_DESTROY_BLOCK) {
|
||||
this.isDestroyingBlock = false;
|
||||
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);
|
||||
@@ -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) {
|
||||
if (this.destroyBlock(pos)) {
|
||||
@@ -14161,7 +14150,7 @@ index 0f6b534a4c789a2f09f6c4624e5d58b99c7ed0e6..fea852674098fe411841d8e5ebeace7d
|
||||
this.generatingStatus = chunkstatus;
|
||||
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
|
||||
index 098e221d61a8279a4d2eb67ac3fe9ded9b63d322..733ba23aa8f8d84eba556604fd743449a313a659 100644
|
||||
index 45b57cbd619cec8a77014f977df9778f0ff88917..de56756afcd90eff9a1f7fbfa0feb33e4284c3d7 100644
|
||||
--- a/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
|
||||
@@ -16782,7 +16771,7 @@ index 554474d4b2e57d8a005b3c3b9b23f32a62243058..ebeb3e3b0619b034a9681da999e9ac33
|
||||
+ // 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
|
||||
index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..27dcaafbc090bac4cad2607a0961378fbc51092e 100644
|
||||
index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..f6d05372f592a3b7619ad6989630c140ffd4f03b 100644
|
||||
--- a/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 @@
|
||||
@@ -16847,15 +16836,7 @@ index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..27dcaafbc090bac4cad2607a0961378f
|
||||
@Deprecated // Paper start - add level
|
||||
public ProtoChunk(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccessor world) {
|
||||
// Paper start
|
||||
@@ -81,6 +130,7 @@ 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 {
|
||||
@@ -100,6 +149,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) {
|
||||
@@ -16866,7 +16847,7 @@ index 7dc3d806a680150c6a2fffa1436fd63bbdc31eb3..27dcaafbc090bac4cad2607a0961378f
|
||||
this.level = level;
|
||||
// Paper end
|
||||
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);
|
||||
BlockState blockState = levelChunkSection.setBlockState(i & 15, j & 15, k & 15, state);
|
||||
@@ -17827,10 +17808,10 @@ index 90f7b06bd2c558be35c4577044fa033e1fb5cc22..8f244db7e46ac1a3d2c8358f001d4889
|
||||
return Optional.empty();
|
||||
} 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
|
||||
index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..2cfc54a577d0a63a504e24bc54fd763fe51083e5 100644
|
||||
index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..6ba8b50b59d3f81ec4c974defc319b1bab27c04b 100644
|
||||
--- a/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;
|
||||
|
||||
public class EntityTickList {
|
||||
@@ -17857,12 +17838,14 @@ index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..2cfc54a577d0a63a504e24bc54fd763f
|
||||
}
|
||||
|
||||
public void add(Entity entity) {
|
||||
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("Asynchronous entity ticklist addition"); // Tuinity
|
||||
this.ensureActiveIsNotIterated();
|
||||
- this.active.put(entity.getId(), entity);
|
||||
+ this.entities.add(entity); // Tuinity - replace with better logic, do not delay removals/additions
|
||||
}
|
||||
|
||||
public void remove(Entity entity) {
|
||||
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("Asynchronous entity ticklist removal"); // Tuinity
|
||||
this.ensureActiveIsNotIterated();
|
||||
- this.active.remove(entity.getId());
|
||||
+ this.entities.remove(entity); // Tuinity - replace with better logic, do not delay removals/additions
|
||||
@@ -17885,6 +17868,7 @@ index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..2cfc54a577d0a63a504e24bc54fd763f
|
||||
- }
|
||||
- } finally {
|
||||
- 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
|
||||
+ // 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)
|
||||
@@ -17897,12 +17881,11 @@ index f01182a0ac8a14bcd5b1deb778306e7bf1bf70ed..2cfc54a577d0a63a504e24bc54fd763f
|
||||
+ } finally {
|
||||
+ iterator.finishedIterating();
|
||||
}
|
||||
+
|
||||
+ // 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
|
||||
index 5a0a1b01e89b122811b0b567e1ee27081953e638..a40af675d594c0c3a24f61948c28bd682115263e 100644
|
||||
index 5a0a1b01e89b122811b0b567e1ee27081953e638..3cb190d38eeb978a7c7ebc37259be0c56d07823d 100644
|
||||
--- a/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
|
||||
@@ -17991,15 +17974,17 @@ index 5a0a1b01e89b122811b0b567e1ee27081953e638..a40af675d594c0c3a24f61948c28bd68
|
||||
entity.setLevelCallback(new PersistentEntitySectionManager.Callback(entity, l, entitySection));
|
||||
if (!existing) {
|
||||
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) {
|
||||
+ com.tuinity.tuinity.util.TickThread.ensureTickThread("Asynchronous chunk ticking status update"); // Tuinity
|
||||
Visibility visibility = Visibility.fromFullChunkStatus(levelType);
|
||||
+ this.entitySliceManager.chunkStatusChange(chunkPos.x, chunkPos.z, levelType); // Tuinity
|
||||
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
|
||||
public void onMove() {
|
||||
BlockPos blockPos = this.entity.blockPosition();
|
||||
@@ -18041,7 +18026,7 @@ index 5a0a1b01e89b122811b0b567e1ee27081953e638..a40af675d594c0c3a24f61948c28bd68
|
||||
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)) {
|
||||
PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", this.entity, SectionPos.of(this.currentSectionKey), reason);
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ index be1bc7fda4104d61f91c2815c6ba3c612a019bed..2ede76a55c72840d915ed282609b1ca1
|
||||
|
||||
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
|
||||
index 8207f0fd2c0b5cd60d02714108eab47b1ae84e16..e1b1e88cc383c99e701f5a661a98d29db031aba7 100644
|
||||
index 631bc406d9bb193ac2d1d433519c2c3a7f4589e4..7c45fdbd9f389e8b74de5a672a9520ede93d6217 100644
|
||||
--- a/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 {
|
||||
@@ -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
|
||||
index 733ba23aa8f8d84eba556604fd743449a313a659..0a7d339a1b52f5b70830708d5eabac3f8d85f888 100644
|
||||
index de56756afcd90eff9a1f7fbfa0feb33e4284c3d7..e43239fd04e81b3653c07cc441be1a4036b96b97 100644
|
||||
--- a/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);
|
||||
|
||||
|
||||
@@ -66,10 +66,10 @@ index 22366098d0a3f6df2ba650ef01ed4be77bee0496..156f04fab90d44775ec8036da1b9a763
|
||||
public Scoreboard getScoreboard() {
|
||||
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
|
||||
index d2270b53e6a8f74f7382d5c4dc4474a3a8d83fa4..77a0ad0ab7291f50e8d3bf864595a0f52a4114bf 100644
|
||||
index 8414826f6f9204bdda832efcb00e24ab0115bd59..a99199212618dc41e86bb9c4402e21672d52128b 100644
|
||||
--- a/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
|
||||
PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()];
|
||||
|
||||
@@ -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
|
||||
index 77a0ad0ab7291f50e8d3bf864595a0f52a4114bf..f4e4ca801a585b8c0335cc3c59f1278d1c108f2b 100644
|
||||
index a99199212618dc41e86bb9c4402e21672d52128b..453bc25de957d007930c2708c5cbebd533298e17 100644
|
||||
--- a/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
|
||||
@@ -38,7 +38,7 @@ index 77a0ad0ab7291f50e8d3bf864595a0f52a4114bf..f4e4ca801a585b8c0335cc3c59f1278d
|
||||
if (this.keepAlivePending) {
|
||||
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
|
||||
@@ -3074,6 +3090,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
@@ -3084,6 +3100,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||
|
||||
@Override
|
||||
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
||||
|
||||
@@ -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
|
||||
index e1b1e88cc383c99e701f5a661a98d29db031aba7..f3a6b6713843e4b600440c8845fe10938920869b 100644
|
||||
index 7c45fdbd9f389e8b74de5a672a9520ede93d6217..d53497ca3ada4c1205695f54dd7e163f3cc63afb 100644
|
||||
--- a/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
|
||||
|
||||
if (flag1) {
|
||||
|
||||
@@ -17,10 +17,10 @@ index 156f04fab90d44775ec8036da1b9a763544c8ccb..18b21258e39cbc54eaeaa44a4398a3b1
|
||||
this.connection.send(new ClientboundBlockUpdatePacket(this.level, 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
|
||||
index f4e4ca801a585b8c0335cc3c59f1278d1c108f2b..0be0d27e2534fccf0f8ff828476e2a0612c60d71 100644
|
||||
index 453bc25de957d007930c2708c5cbebd533298e17..98fd21a74038c5d0ea5b18d6a5534c12b84a7861 100644
|
||||
--- a/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
|
||||
|
||||
@@ -18,7 +18,7 @@ index 689ad22925b2561f7c8db961743eb1f821dbb25f..fa3c960992cc240161817e54659d83fe
|
||||
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
|
||||
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
|
||||
index bfbcdaa117fd8860aa3e287a7e311f2f3bb42281..6a5d2cb99cb4793ef165bfdaf521eb468c447834 100644
|
||||
index 7944a33cf36878c9e4853637bfb9cba22ba8bc4d..3bc63f24bf8c07b89562887bdc8cf7569d7b33b4 100644
|
||||
--- a/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 {
|
||||
@@ -36,8 +36,8 @@ index bfbcdaa117fd8860aa3e287a7e311f2f3bb42281..6a5d2cb99cb4793ef165bfdaf521eb46
|
||||
+ this.fakeTime = this.serverLevelData.getDayTime(); // Purpur
|
||||
}
|
||||
|
||||
// Tuinity start - optimise collision
|
||||
@@ -829,6 +831,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
public void setWeatherParameters(int clearDuration, int rainDuration, boolean raining, boolean thundering) {
|
||||
@@ -825,6 +827,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.liquidTicks.nextTick(); // Paper
|
||||
this.serverLevelData.getScheduledEvents().tick(this.server, i);
|
||||
if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
|
||||
@@ -56,7 +56,7 @@ index bfbcdaa117fd8860aa3e287a7e311f2f3bb42281..6a5d2cb99cb4793ef165bfdaf521eb46
|
||||
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) {
|
||||
this.serverLevelData.setDayTime(timeOfDay);
|
||||
|
||||
@@ -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
|
||||
index b2c8cae1a777cd63a35ed1340caf205b1b3bb0ad..26bd2c7f52189e94ba45d0d9e9b697226cb7b9fb 100644
|
||||
index 800f6f7c6e7d0d5922fc8b8de2aab72dca8514df..94f723c00133673890e6da6b5858d10dd4c99bae 100644
|
||||
--- a/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;
|
||||
ItemStack itemstack1 = stack.copy();
|
||||
|
||||
|
||||
@@ -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
|
||||
index 6a5d2cb99cb4793ef165bfdaf521eb468c447834..d682f0b69757b0f4e3120066e25170264ba1f289 100644
|
||||
index 3bc63f24bf8c07b89562887bdc8cf7569d7b33b4..27d41f7e03404d349a465848235c63b1f5e3200c 100644
|
||||
--- a/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
|
||||
|
||||
i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
|
||||
|
||||
@@ -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
|
||||
index b2c8cae1a777cd63a35ed1340caf205b1b3bb0ad..11270c763dc5e260074260e10a6dd9a9b7a09c8f 100644
|
||||
index 94f723c00133673890e6da6b5858d10dd4c99bae..fcc9f73654857a9cc88a80e2182d12fde9261fd2 100644
|
||||
--- a/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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
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
|
||||
+++ 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
index d682f0b69757b0f4e3120066e25170264ba1f289..cee1f74edf069da54d15b7fc7d10c437afa47b2a 100644
|
||||
index 27d41f7e03404d349a465848235c63b1f5e3200c..da0095bf9f2237dc4846f655e4698b0976224771 100644
|
||||
--- a/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;
|
||||
}, (blockposition1) -> {
|
||||
return blockposition1.getY() == this.getLevel().getHeight(Heightmap.Types.WORLD_SURFACE, blockposition1.getX(), blockposition1.getZ()) - 1;
|
||||
|
||||
@@ -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
|
||||
index a25e4eeb1ce4e18c7cb14e269ad3852715209cb9..111779c0a614b29bea5ad7a8301d704efaf62bf1 100644
|
||||
index 55a9c1d13484c4ce5e3d8f2dd270df01480add87..a513e60c9bf96c6863926b608c0c46706700c096 100644
|
||||
--- a/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();
|
||||
} else {
|
||||
player.setItemInHand(hand, itemstack1);
|
||||
@@ -18,7 +18,7 @@ index a25e4eeb1ce4e18c7cb14e269ad3852715209cb9..111779c0a614b29bea5ad7a8301d704e
|
||||
if (itemstack1.isDamageableItem() && itemstack1.getDamageValue() != 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
|
||||
index ad095c6bc7e00d286c83e37f84d8ed5d4a2c6881..1d1723873be1ec61c34e22e4f709f207abf593a6 100644
|
||||
index dba3b8e0671ee63ff077155a8964f3e245740e7e..1efe3252465030570b253010e47ad12c5f1aa57f 100644
|
||||
--- a/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 {
|
||||
|
||||
@@ -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
|
||||
index cee1f74edf069da54d15b7fc7d10c437afa47b2a..92b1709b96fe1e8d71e4de675e4c11f5c3f1469e 100644
|
||||
index da0095bf9f2237dc4846f655e4698b0976224771..287e0b565566d36aea0a023ccccd2f12fd4643cd 100644
|
||||
--- a/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.getServer().isSingleplayer() || this.getServer().isPublished()) {
|
||||
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
|
||||
index e59b8ab1ba5d47663ff174752b1a9a81bf0780e7..cc1f549b8a3825dcf9f0fcdac1260e156663cdfd 100644
|
||||
index 0fada677e0aa6ffa4b654d7eae307863d8fc6e59..8244f362f551ed2bdef4df8e6b83cb176b4a4e59 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
||||
@@ -168,6 +168,8 @@ public class PurpurConfig {
|
||||
|
||||
Reference in New Issue
Block a user