mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@484d6bf [ci skip] Move some disruptive patches back PaperMC/Paper@52619e7 [ci skip] Add more patch identifying comments PaperMC/Paper@e660379 [ci skip] Move some disruptive patches back PaperMC/Paper@c57d1aa Move diffs around to compile without later ones applied PaperMC/Paper@581b101 Add world to Entity AddTo/RemoveFrom Events (#10183) PaperMC/Paper@24dc2bf Add BlockStateMeta#clearBlockState (#10160) PaperMC/Paper@76da4bc Expose LootTable of DecoratedPot (#10023) PaperMC/Paper@11645e3 [ci skip] (Mostly) finish adding identifying patch comments PaperMC/Paper@51bef80 [ci skip] Remove removed patches PaperMC/Paper@ad2cf68 [ci skip] Move chunk system patch back a bit PaperMC/Paper@d405ff1 [ci skip] Fixup last commit PaperMC/Paper@a4a08b7 [ci skip] Move chunk system patch a bit back PaperMC/Paper@b700460 Convert average tick value in the GUI to the correct granularity PaperMC/Paper@1831240 [ci skip] Move chunk system patch back
This commit is contained in:
@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
|
||||
version = 1.20.4-R0.1-SNAPSHOT
|
||||
|
||||
mcVersion = 1.20.4
|
||||
paperCommit = 25013d997057eb89471d285db2a4b40acde6272d
|
||||
paperCommit = 1831240d1c48086fc0199584787cd2013d4d4b5f
|
||||
|
||||
org.gradle.caching = true
|
||||
org.gradle.parallel = true
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index ae61a39b25267b84fe0b8766e4b12d9b24b44ded..515f1d5d6a5674e5667d61651f27ca6bb6823ad5 100644
|
||||
index 815631a6157b87a9ead270fe0b11ac3892a3fbf4..f6f3493163fdc145973d1417b5cd4c4f5dddbf8b 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3574,4 +3574,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -3578,4 +3578,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@Override
|
||||
Spigot spigot();
|
||||
// Spigot end
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index 515f1d5d6a5674e5667d61651f27ca6bb6823ad5..65dfe7600a7aa7e7cc30915f04f39fde2afba688 100644
|
||||
index f6f3493163fdc145973d1417b5cd4c4f5dddbf8b..63b2f4dc478397ccadc61f8538914ff3eff808cd 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3582,5 +3582,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -3586,5 +3586,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
* @return True if Player uses Purpur Client
|
||||
*/
|
||||
public boolean usesPurpurClient();
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Debug Marker API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
||||
index 610887890529db62887174a10e1687ea1883fafa..109304f8064ab2fab57f9c0f1745e446e6748b3d 100644
|
||||
index ab6c060717c01ff6d6a6153c29f2f7aa4f3a0588..2bb2b9ba757d18510e3f45304cfbb56c28113ed7 100644
|
||||
--- a/src/main/java/org/bukkit/Bukkit.java
|
||||
+++ b/src/main/java/org/bukkit/Bukkit.java
|
||||
@@ -2880,5 +2880,89 @@ public final class Bukkit {
|
||||
@@ -179,7 +179,7 @@ index c001488119c64f9ee2babce29a8ff9f86aec9bfb..529fb1beadefc79ce6bf5755d5223301
|
||||
// Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||||
index 8368b34d071f4f2c687e753ae52de4c03e3ac9f9..eea802fbee51e919595f6501161bf2fd58d6a1c1 100644
|
||||
index 87ab8d4d5f6311c88572fa9a5536aca991e2e86b..3d4481ea5328735357a7c60c99e5b3a073e7aa0f 100644
|
||||
--- a/src/main/java/org/bukkit/World.java
|
||||
+++ b/src/main/java/org/bukkit/World.java
|
||||
@@ -4180,6 +4180,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||
@@ -260,10 +260,10 @@ index 8368b34d071f4f2c687e753ae52de4c03e3ac9f9..eea802fbee51e919595f6501161bf2fd
|
||||
|
||||
/**
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index 65dfe7600a7aa7e7cc30915f04f39fde2afba688..73415adcdd161b3b3b79be14967f805df2733030 100644
|
||||
index 63b2f4dc478397ccadc61f8538914ff3eff808cd..05dd1b62940920883c8709ea36a29e9f4574caa0 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3602,5 +3602,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -3606,5 +3606,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
* @deprecated Use {@link #resetIdleDuration()} instead
|
||||
*/
|
||||
void resetIdleTimer();
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index 73415adcdd161b3b3b79be14967f805df2733030..3aa79be25d63f704170baaf799482ccdde6a2830 100644
|
||||
index 05dd1b62940920883c8709ea36a29e9f4574caa0..48ef9837cc26313e76678555d7187eb3b9c8e4d7 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3672,5 +3672,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -3676,5 +3676,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
* Clears all debug block highlights
|
||||
*/
|
||||
void clearBlockHighlights();
|
||||
|
||||
@@ -86,10 +86,10 @@ index 376e8983fdfdbb6c3e5fd8ad0f6a05e655b622bf..658e9b4590a82d179907feea04e129fd
|
||||
+ classpath(sourceSets.main.map { it.runtimeClasspath })
|
||||
}
|
||||
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
|
||||
index a2f71a6d1a9e98133dff6cd0f625da9435a8af14..ff940e43ca35094bbcae6c7d471d3c4aeb7c1727 100644
|
||||
index 7620c72a4c243cbeea245203ce03a97cbfa7d922..b35a9f4c5f8960864c402ede8a51fb5ab9c4fcc0 100644
|
||||
--- a/src/main/java/co/aikar/timings/TimingsExport.java
|
||||
+++ b/src/main/java/co/aikar/timings/TimingsExport.java
|
||||
@@ -242,7 +242,8 @@ public class TimingsExport extends Thread {
|
||||
@@ -240,7 +240,8 @@ public class TimingsExport extends Thread {
|
||||
parent.put("config", createObject(
|
||||
pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)),
|
||||
pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)),
|
||||
@@ -1497,19 +1497,19 @@ index ba12919c3f9aec34a9e64993b143ae92be5eb172..9efeab9078e2d08903e482718b840797
|
||||
} else {
|
||||
this.lastTimeStamp = body.timeStamp();
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 49ab2773658a2c6fababa316707762a8e2b19c58..9e632e6d865a802119aa70a2f393d3cab46e9aae 100644
|
||||
index 23d2264dfc4f763a7198eb543e7f86a5a5aa85c3..c51485db18db179be33b4416debbc30c93bdf5c2 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -314,6 +314,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// Paper start - lag compensation
|
||||
public static final long SERVER_INIT = System.nanoTime();
|
||||
// Paper end - lag compensation
|
||||
+
|
||||
+ public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning"); // Pufferfish - optimize mob spawning
|
||||
@@ -312,6 +312,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
public volatile boolean abnormalExit = false; // Paper
|
||||
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
||||
|
||||
+ public gg.pufferfish.pufferfish.util.AsyncExecutor mobSpawnExecutor = new gg.pufferfish.pufferfish.util.AsyncExecutor("MobSpawning"); // Pufferfish - optimize mob spawning
|
||||
+
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
||||
AtomicReference<S> atomicreference = new AtomicReference();
|
||||
@@ -1217,6 +1219,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
|
||||
@@ -1214,6 +1216,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.profiler.popPush("nextTickWait");
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
|
||||
@@ -1522,16 +1522,16 @@ index 49ab2773658a2c6fababa316707762a8e2b19c58..9e632e6d865a802119aa70a2f393d3ca
|
||||
this.waitUntilNextTick();
|
||||
if (flag) {
|
||||
this.tickRateManager.endTickWork();
|
||||
@@ -1852,7 +1860,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1850,7 +1858,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
- return "Paper"; // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
||||
+ return "Pufferfish"; // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
||||
- return "Paper"; // Paper
|
||||
+ return "Pufferfish"; // Pufferfish - Pufferfish > // Paper
|
||||
}
|
||||
|
||||
public SystemReport fillSystemReport(SystemReport details) {
|
||||
@@ -2439,6 +2447,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2437,6 +2445,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public ProfilerFiller getProfiler() {
|
||||
@@ -1561,7 +1561,7 @@ index 6de6dad36203479677a29ad61e21bc369d4e5513..c5f92c80d7ca1e1c7f5b9304a5a1173e
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index 424de333bf4fc5632410c689d9b17b2eab3371c4..b72969b3bc4319387e3946ea01c5b05acd8a87cb 100644
|
||||
index 5a7278b093e37b95fb005ad5cc3cac90ac36f8fb..28d05b46952397bb664a1c8dae71816cafee89ce 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -243,7 +243,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1573,7 +1573,7 @@ index 424de333bf4fc5632410c689d9b17b2eab3371c4..b72969b3bc4319387e3946ea01c5b05a
|
||||
// Paper end - optimise chunk tick iteration
|
||||
|
||||
public ChunkMap(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor executor, BlockableEventLoop<Runnable> mainThreadExecutor, LightChunkGetter chunkProvider, ChunkGenerator chunkGenerator, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory, int viewDistance, boolean dsync) {
|
||||
@@ -1458,8 +1458,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1448,8 +1448,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
return ChunkMap.this.level.getServer().getScaledTrackingDistance(initialDistance);
|
||||
}
|
||||
|
||||
@@ -1602,7 +1602,7 @@ index 424de333bf4fc5632410c689d9b17b2eab3371c4..b72969b3bc4319387e3946ea01c5b05a
|
||||
Iterator iterator = this.entity.getIndirectPassengers().iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -1471,6 +1491,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1461,6 +1481,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
i = j;
|
||||
}
|
||||
}
|
||||
@@ -1613,20 +1613,20 @@ index 424de333bf4fc5632410c689d9b17b2eab3371c4..b72969b3bc4319387e3946ea01c5b05a
|
||||
return this.scaledRange(i);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c13f6d688 100644
|
||||
index 366c0c9b45a819f7f94ebe3e49b8ab7f9edf9ce7..097f6eb96c2df203565a0c50aba6221e67a7e026 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -73,6 +73,9 @@ public class ServerChunkCache extends ChunkSource {
|
||||
final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<LevelChunk> loadedChunkMap = new it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<>(8192, 0.5f);
|
||||
|
||||
@@ -77,6 +77,9 @@ public class ServerChunkCache extends ChunkSource {
|
||||
private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4];
|
||||
+
|
||||
// Paper end
|
||||
|
||||
+ public boolean firstRunSpawnCounts = true; // Pufferfish
|
||||
+ public final java.util.concurrent.atomic.AtomicBoolean _pufferfish_spawnCountsReady = new java.util.concurrent.atomic.AtomicBoolean(false); // Pufferfish - optimize countmobs
|
||||
|
||||
private static int getChunkCacheKey(int x, int z) {
|
||||
return x & 3 | ((z & 3) << 2);
|
||||
@@ -528,6 +531,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
+
|
||||
public ServerChunkCache(ServerLevel world, LevelStorageSource.LevelStorageAccess session, DataFixer dataFixer, StructureTemplateManager structureTemplateManager, Executor workerExecutor, ChunkGenerator chunkGenerator, int viewDistance, int simulationDistance, boolean dsync, ChunkProgressListener worldGenerationProgressListener, ChunkStatusUpdateListener chunkStatusChangeListener, Supplier<DimensionDataStorage> persistentStateManagerFactory) {
|
||||
this.level = world;
|
||||
this.mainThreadProcessor = new ServerChunkCache.MainThreadExecutor(world);
|
||||
@@ -513,6 +516,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
|
||||
// Paper - optimise chunk tick iteration
|
||||
|
||||
@@ -1634,7 +1634,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
|
||||
if (this.level.getServer().tickRateManager().runsNormally()) {
|
||||
gameprofilerfiller.popPush("naturalSpawnCount");
|
||||
this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
|
||||
@@ -536,6 +540,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -521,6 +525,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
int naturalSpawnChunkCount = k;
|
||||
NaturalSpawner.SpawnState spawnercreature_d; // moved down
|
||||
if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled
|
||||
@@ -1642,7 +1642,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
|
||||
// re-set mob counts
|
||||
for (ServerPlayer player : this.level.players) {
|
||||
// Paper start - per player mob spawning backoff
|
||||
@@ -550,14 +555,18 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -535,14 +540,18 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
// Paper end - per player mob spawning backoff
|
||||
}
|
||||
@@ -1664,7 +1664,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
|
||||
gameprofilerfiller.popPush("spawnAndTick");
|
||||
boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
|
||||
|
||||
@@ -647,8 +656,8 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -632,8 +641,8 @@ public class ServerChunkCache extends ChunkSource {
|
||||
if (tick && chunk1.chunkStatus.isOrAfter(net.minecraft.server.level.FullChunkStatus.ENTITY_TICKING)) {
|
||||
// Paper end - optimise chunk tick iteration
|
||||
chunk1.incrementInhabitedTime(j);
|
||||
@@ -1675,7 +1675,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
|
||||
}
|
||||
|
||||
if (true || this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) { // Paper - optimise chunk tick iteration
|
||||
@@ -695,6 +704,40 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -680,6 +689,40 @@ public class ServerChunkCache extends ChunkSource {
|
||||
gameprofilerfiller.pop();
|
||||
gameprofilerfiller.pop();
|
||||
}
|
||||
@@ -1717,7 +1717,7 @@ index 77a2458b8acb21c64676934cd8d6b05ef6351c10..ad8e79c72841ff80f8af3580d2cdb89c
|
||||
|
||||
private void getFullChunk(long pos, Consumer<LevelChunk> chunkConsumer) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
index ae188ae314336d971303023c7b7b8ecf32bae253..79914528f6d255355284b04253218a7c4dec1ead 100644
|
||||
index 529ab44baaf573b97cf7e89560c548642733188f..db55ad9aaabfa1ea998754f3ac352d1698936696 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -183,7 +183,8 @@ public class ServerEntity {
|
||||
@@ -1739,7 +1739,7 @@ index ae188ae314336d971303023c7b7b8ecf32bae253..79914528f6d255355284b04253218a7c
|
||||
this.wasOnGround = this.entity.onGround();
|
||||
this.teleportDelay = 0;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index fa203e66887f5db1083728166e2f81ea4f656bd7..6c4a30779346985a7423286965bcc6446a777785 100644
|
||||
index 6934e9dac0d69c043b73b7c46d59f2d39b37c67f..dbe612427b894df9da1335b94163ba9b89b090c0 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -894,6 +894,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1789,13 +1789,13 @@ index fa203e66887f5db1083728166e2f81ea4f656bd7..6c4a30779346985a7423286965bcc644
|
||||
gameprofilerfiller.push("thunder");
|
||||
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
|
||||
|
||||
- if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder
|
||||
+ if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning
|
||||
- if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - Option to disable thunder
|
||||
+ if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - Option to disable thunder // Pufferfish - replace random with shouldDoLightning
|
||||
blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper
|
||||
|
||||
if (this.isRainingAt(blockposition)) {
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 42b433d9461d0912b39542263684323369469ac0..79701158989205af7b70ab5d312c1d3fa27c6cd2 100644
|
||||
index 6f9ec543185b6f68bb1eaa61a7ebea9d866d688f..7b74541d648de48579221945e4bab963882cc1f2 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1121,6 +1121,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1919,7 +1919,7 @@ index d6cbe98e67fdbf8db46338a88ab1356dd63b50a3..20dd3a63b2f955b05a75eb240e33ae4c
|
||||
int LARGE_MAX_STACK_SIZE = 64;
|
||||
int DEFAULT_DISTANCE_LIMIT = 8;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33ca82cbad 100644
|
||||
index 2c06f3ebf7e1069727387bfc60db30c958c14b5a..00b26925b9e0ef7290f904273da875603b6ce11b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -308,7 +308,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1931,10 +1931,10 @@ index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33
|
||||
private ChunkPos chunkPosition;
|
||||
private Vec3 deltaMovement;
|
||||
private float yRot;
|
||||
@@ -439,6 +439,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return this.originWorld;
|
||||
@@ -501,6 +501,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
|
||||
}
|
||||
// Paper end
|
||||
// Paper end - optimise entity tracking
|
||||
+ // Pufferfish start
|
||||
+ public boolean activatedPriorityReset = false; // DAB
|
||||
+ public int activatedPriority = gg.pufferfish.pufferfish.PufferfishConfig.maximumActivationPrio; // golf score
|
||||
@@ -1957,7 +1957,7 @@ index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33
|
||||
this.baseTick();
|
||||
}
|
||||
|
||||
@@ -4407,16 +4419,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -4402,16 +4414,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
|
||||
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
|
||||
@@ -1983,7 +1983,7 @@ index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33
|
||||
double d1 = 0.0D;
|
||||
boolean flag = this.isPushedByFluid();
|
||||
boolean flag1 = false;
|
||||
@@ -4424,14 +4438,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -4419,14 +4433,61 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
int k1 = 0;
|
||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
|
||||
|
||||
@@ -2051,7 +2051,7 @@ index 554fc0d4e791a98a46216714f0fb07e178ddabe4..8328fb75f117a523301ed31b79fbee33
|
||||
|
||||
if (d2 >= axisalignedbb.minY) {
|
||||
flag1 = true;
|
||||
@@ -4453,9 +4514,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -4448,9 +4509,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
// CraftBukkit end
|
||||
}
|
||||
}
|
||||
@@ -2078,7 +2078,7 @@ index edc723ea5ca3a325106e7af38c60dbf9f0f5fb77..ab6cd363231a668c9b16df825a72d320
|
||||
private String descriptionId;
|
||||
@Nullable
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index ca1900d29a86b9b39078da39b071950128c08c23..47d9d45a5244ea991bedd16ff9ef0a40128b0258 100644
|
||||
index 6071451339080bbdd98fb634791a56988984c8bc..5641bc7f50cef7819ddaeb76a4a4f9c80f473d31 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
|
||||
@@ -2140,7 +2140,7 @@ index ca1900d29a86b9b39078da39b071950128c08c23..47d9d45a5244ea991bedd16ff9ef0a40
|
||||
if (this.isSpectator()) {
|
||||
return false;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 22506c5c823c65e65034a962312c1dbd44356e23..4e5038e3cb6644e14d4b0022444386c50c827d0b 100644
|
||||
index 24629412d2b4acaa81788ce70412b03387cc777c..a181a298334212847166409a2121476ba5871cb2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -221,14 +221,16 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -2231,7 +2231,7 @@ index 646d9a121d908a2fc3e4e302484dd5cd1bfc6804..e546ecdccde352502e26a8668eaaafe0
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||
index b738ee2d3801fadfd09313f05ae24593e56b0ec6..1635818fc4b1788c0d397085239df6dd75b210ab 100644
|
||||
index 676f5485a4ca9252e911213dcda8d51776b637b6..2d63ee8fef87264d4b61290effa6ba86a787aa61 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||
@@ -53,9 +53,12 @@ public class GoalSelector {
|
||||
@@ -2701,18 +2701,18 @@ index 27b0a79f7a7c47047216aae42944bac2a2151181..a097cfc528f709c80575f35483b68783
|
||||
autorecipestackmanager.initialize(this); // Paper - better exact choice recipes
|
||||
int i = 0;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index ae42d5b3dea423a144056c64337af213609923d4..6ee7286797da79a3d47a85b1a4b7139804571969 100644
|
||||
index b33bb001a48788e727e2f01788a6163024121bf3..763fe7d1e8334441a5db2285bd4424d165e1c945 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -211,6 +211,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// Paper end - Use getChunkIfLoadedImmediately
|
||||
@@ -212,6 +212,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
||||
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||
+
|
||||
+ protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter
|
||||
|
||||
+ protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter
|
||||
+
|
||||
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor
|
||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||
@@ -1317,13 +1319,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
try {
|
||||
tickConsumer.accept(entity);
|
||||
@@ -2720,13 +2720,13 @@ index ae42d5b3dea423a144056c64337af213609923d4..6ee7286797da79a3d47a85b1a4b71398
|
||||
- } catch (Throwable throwable) {
|
||||
+ } catch (Throwable throwable) { // Pufferfish - diff on change ServerLevel.tick
|
||||
if (throwable instanceof ThreadDeath) throw throwable; // Paper
|
||||
// Paper start - Prevent tile entity and entity crashes
|
||||
// Paper start - Prevent block entity and entity crashes
|
||||
final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ());
|
||||
MinecraftServer.LOGGER.error(msg, throwable);
|
||||
getCraftServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable)));
|
||||
getCraftServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable))); // Paper - ServerExceptionEvent
|
||||
- entity.discard();
|
||||
+ entity.discard(); // Pufferfish - diff on change ServerLevel.tick
|
||||
// Paper end
|
||||
// Paper end - Prevent block entity and entity crashes
|
||||
}
|
||||
}
|
||||
@@ -1797,6 +1799,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -2738,7 +2738,7 @@ index ae42d5b3dea423a144056c64337af213609923d4..6ee7286797da79a3d47a85b1a4b71398
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
index 1712bd7c3a9b515c7bf8909f7392a385ef243ff9..00b965de947cb13a178061278d1ffa4342e8e065 100644
|
||||
index 17e9f3a30e287faf210e08dc7eb177a70f049f43..96fc603c2fccc1d9610248b2116d35696bc65e4e 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
@@ -429,12 +429,12 @@ public final class NaturalSpawner {
|
||||
@@ -3000,7 +3000,7 @@ index a94300a457b25f0e33a8eeabba6dd5720ca9ab1e..b41635dd0569ff7df909df492d3e850a
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
index d85ed706703e50f76df8db414827ccd41a5985d9..177673cc19cd70f60bb489cb2e74b39fbb8f8d24 100644
|
||||
index 6ec3fc801453fd54c25b642e6fa71c19b463311d..922191159fadf8e89646d7299aadee4aa851f71a 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
@@ -86,6 +86,18 @@ public class LevelChunk extends ChunkAccess {
|
||||
@@ -3032,7 +3032,7 @@ index d85ed706703e50f76df8db414827ccd41a5985d9..177673cc19cd70f60bb489cb2e74b39f
|
||||
|
||||
// CraftBukkit start
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||
index b10c652f53edfbf29f28b047d3b3c8edca21bc56..0806ec65a6c4e0518be01db9af2dd118d73da98d 100644
|
||||
index 796bbef3544e06b8e7aac7e8ac5f740a2613f4bd..2422ca3ffc6ab7178cacf933b8013f85e7de4bd9 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||
@@ -25,6 +25,7 @@ public class LevelChunkSection {
|
||||
@@ -3273,7 +3273,7 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7
|
||||
|
||||
@Nullable
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 28b02fee73a3ab604f6921800a7ede59e2e6f414..a6b8e768edacd1600992af5fd0a4562f1420b568 100644
|
||||
index 25f41119bcc19bab7cd2fdb044147b3f78a8ef1c..5b01cd1b9a07fc8600fddb9d9e0aea3ac5a288f0 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
|
||||
@@ -3336,7 +3336,7 @@ index 774556a62eb240da42e84db4502e2ed43495be17..80553face9c70c2a3d897681e7761df8
|
||||
|
||||
if (stream != null) {
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a5f8a8dc5 100644
|
||||
index c39894e824334f1dc52e0466cf9d84f7e219be70..41cddf7e42f0e8f80973e482a95e55d3bd19f659 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -38,6 +38,10 @@ import co.aikar.timings.MinecraftTimings;
|
||||
@@ -3350,7 +3350,7 @@ index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a
|
||||
|
||||
public class ActivationRange
|
||||
{
|
||||
@@ -222,6 +226,25 @@ public class ActivationRange
|
||||
@@ -221,6 +225,25 @@ public class ActivationRange
|
||||
}
|
||||
// Paper end - Configurable marker ticking
|
||||
ActivationRange.activateEntity(entity);
|
||||
@@ -3376,7 +3376,7 @@ index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
@@ -238,12 +261,12 @@ public class ActivationRange
|
||||
@@ -237,12 +260,12 @@ public class ActivationRange
|
||||
if ( MinecraftServer.currentTick > entity.activatedTick )
|
||||
{
|
||||
if ( entity.defaultActivationState )
|
||||
@@ -3391,7 +3391,7 @@ index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..a69814d3a6214af734d670fe5545518a
|
||||
entity.activatedTick = MinecraftServer.currentTick;
|
||||
}
|
||||
}
|
||||
@@ -297,7 +320,7 @@ public class ActivationRange
|
||||
@@ -296,7 +319,7 @@ public class ActivationRange
|
||||
if ( entity instanceof LivingEntity )
|
||||
{
|
||||
LivingEntity living = (LivingEntity) entity;
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
|
||||
|
||||
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index fd785a79b1708aadd760f5b62d49d4d4e55e9938..4bdf291e2e2d96ea7385ae667983f1731baa176a 100644
|
||||
index 658e9b4590a82d179907feea04e129fdba9a2f42..f253b340d75302fda8e59a2ad113f652c2417869 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -13,12 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
||||
@@ -177,10 +177,10 @@ index e047dee632022abfe05865d1e71838be8d5d053a..888e31a0454888c36cb27602a28619f1
|
||||
stringbuilder.append(CrashReport.getErrorComment());
|
||||
stringbuilder.append("\n\n");
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 1343649cd77a42dd502747581050b401840a6efe..de0f93e1a85754051315653f707b95753ff7dc70 100644
|
||||
index c51485db18db179be33b4416debbc30c93bdf5c2..3c2eb7eeff23cd2b93105518a5cfbfb39565b845 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -956,7 +956,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -953,7 +953,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
shutdownThread = Thread.currentThread();
|
||||
org.spigotmc.WatchdogThread.doStop(); // Paper
|
||||
if (!isSameThread()) {
|
||||
@@ -189,17 +189,17 @@ index 1343649cd77a42dd502747581050b401840a6efe..de0f93e1a85754051315653f707b9575
|
||||
while (this.getRunningThread().isAlive()) {
|
||||
this.getRunningThread().stop();
|
||||
try {
|
||||
@@ -1860,7 +1860,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1858,7 +1858,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
- return "Pufferfish"; // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
||||
+ return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
||||
- return "Pufferfish"; // Pufferfish - Pufferfish > // Paper
|
||||
+ return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper
|
||||
}
|
||||
|
||||
public SystemReport fillSystemReport(SystemReport details) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index cfc41926305441cb36ed67a8cb7e327cd80ff301..63a27079bae650672c027443ff4dc8d4e21a4d06 100644
|
||||
index 5b01cd1b9a07fc8600fddb9d9e0aea3ac5a288f0..b8e578330ad7953f013767c7ff040fee468ce5a5 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
|
||||
@@ -239,7 +239,7 @@ index 4e56018b64d11f76c8da43fd8f85c6de72204e36..9607675e6c5bff2183c4420d11fc63ee
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
index 1f1ef68a9a449a4a90c284f34a397ab4b6d905f6..1b75b8286f6203a7268746b5a487d6f089405127 100644
|
||||
index 4afc1c9d2a7638e84a55fe30932dc36db465c31a..ea966037755ba552dc6cf2f4792e9d23f0e77b1c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
@@ -915,7 +915,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
@@ -265,7 +265,7 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..d1b1bc4845fc9519fc892e962c3e7d89
|
||||
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
index c909efd2060dc95bd3ecb8c9fec36a1e69a642ff..6eeebfaf577263316f3562a8f968310acd616763 100644
|
||||
index 2338ba106c19c3e61d1a2088cc51d0744432666d..2331190c476a2bfe3797aa61a4a792a9cc42ff59 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||
@@ -482,7 +482,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||
@@ -291,7 +291,7 @@ index 80553face9c70c2a3d897681e7761df85b22d464..99597258e8e88cd9e2c901c4ac3ff7fa
|
||||
|
||||
if (stream != null) {
|
||||
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
|
||||
index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5fc8cc40ab627eba0b2110c73d31af213a935733 100644
|
||||
index 9e638f72f180ff5ef63ec3dd6cf548c53f7bd4a5..f7296691cb4af7814de1520347b307ff209082e4 100644
|
||||
--- a/src/main/java/org/spigotmc/WatchdogThread.java
|
||||
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
|
||||
@@ -96,7 +96,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
||||
@@ -321,7 +321,7 @@ index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5fc8cc40ab627eba0b2110c73d31af21
|
||||
//
|
||||
if ( net.minecraft.world.level.Level.lastPhysicsProblem != null )
|
||||
{
|
||||
@@ -185,12 +185,12 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
||||
@@ -184,12 +184,12 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
||||
// Paper end
|
||||
} else
|
||||
{
|
||||
@@ -333,10 +333,10 @@ index 40dcdf6885e99b26283a9ea2bd4d4bf6ec358e71..5fc8cc40ab627eba0b2110c73d31af21
|
||||
log.log( Level.SEVERE, "------------------------------" );
|
||||
- log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper
|
||||
+ log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Purpur!):" ); // Paper // Purpur
|
||||
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper // Paper - rewrite chunk system
|
||||
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper - rewrite chunk system
|
||||
this.dumpTickingInfo(); // Paper - log detailed tick information
|
||||
WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log );
|
||||
@@ -206,7 +206,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
||||
@@ -205,7 +205,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
||||
WatchdogThread.dumpThread( thread, log );
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -40,7 +40,7 @@ index ad368b58005b6b0453b709c2ef0ea23bca53d34a..2dac1ec1daf4084f33ead33d5128d295
|
||||
"This can improve performance by a few percent, but has minor gameplay implications.");
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index e387de54c9786711272f0ec3f8d312e472a9c4ea..e0f1f23bcf4f59cffa98ea1c70f774fd787dae08 100644
|
||||
index dbe612427b894df9da1335b94163ba9b89b090c0..0982d44b9dd30c13d9d879095cc9a839bbda8bdc 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -992,7 +992,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -53,22 +53,20 @@ index e387de54c9786711272f0ec3f8d312e472a9c4ea..e0f1f23bcf4f59cffa98ea1c70f774fd
|
||||
|
||||
private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 4f568184557d21b44569a9a16456962ee983101b..aa6c3df047e97bde3c352caae7eb3c09e2f45978 100644
|
||||
index 763fe7d1e8334441a5db2285bd4424d165e1c945..b923bdd07d81e09d69f1cbd6f6389ab34e9c427d 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -211,8 +211,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// Paper end - Use getChunkIfLoadedImmediately
|
||||
@@ -212,7 +212,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
||||
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||
-
|
||||
|
||||
- protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter
|
||||
+
|
||||
+ //protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter // Purpur - dont break ABI
|
||||
|
||||
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor
|
||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
index 177673cc19cd70f60bb489cb2e74b39fbb8f8d24..c3fb622845770bcee9ddd6ebbeee174b06ee16eb 100644
|
||||
index 922191159fadf8e89646d7299aadee4aa851f71a..5fab6909bd2ee303f49b7e667617bcae608e82d7 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
@@ -122,7 +122,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
|
||||
@@ -37,7 +37,7 @@ index 692c962193cf9fcc6801fc93f3220bdc673d527b..8cde30544e14f8fc2dac32966ae3c21f
|
||||
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
|
||||
Map<String, Map<String, Integer>> map = new HashMap<>();
|
||||
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
|
||||
index 623403c56d79e29421f340e97c05488efaf1893d..d7333193b20fc6d9a4aaa0ef00a2a66655250081 100644
|
||||
index f341813e9713e39bfe142ca34b751de3d8efd25b..b0d96ae08959cdca9177eb875faa99f4a8e92632 100644
|
||||
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
|
||||
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
|
||||
@@ -335,6 +335,30 @@ public class CommandSourceStack implements ExecutionCommandSource<CommandSourceS
|
||||
@@ -92,7 +92,7 @@ index c5f92c80d7ca1e1c7f5b9304a5a1173ebfd9c269..1fbfe61b3d7fc372f044d2e9f3500d66
|
||||
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider
|
||||
gg.pufferfish.pufferfish.PufferfishConfig.load(); // Pufferfish
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index aa6c3df047e97bde3c352caae7eb3c09e2f45978..5b5ac2d194cb9377f5ea3441505aefd3f7dbce8b 100644
|
||||
index b923bdd07d81e09d69f1cbd6f6389ab34e9c427d..5b4a47e3078a8bf0533228af14c1a1031ec3ae69 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -178,6 +178,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -112,7 +112,7 @@ index aa6c3df047e97bde3c352caae7eb3c09e2f45978..5b5ac2d194cb9377f5ea3441505aefd3
|
||||
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 0d37bde27beaa2d6730bb9f82d4b686f6f60e40b..5248e951e1307c2e019db276dcc80d9d41693fb0 100644
|
||||
index b8e578330ad7953f013767c7ff040fee468ce5a5..f4452341be3572129dc8c59bb511ef199ff31938 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1037,6 +1037,7 @@ public final class CraftServer implements Server {
|
||||
@@ -139,7 +139,7 @@ index 0d37bde27beaa2d6730bb9f82d4b686f6f60e40b..5248e951e1307c2e019db276dcc80d9d
|
||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||
|
||||
@@ -3015,6 +3018,18 @@ public final class CraftServer implements Server {
|
||||
@@ -3003,6 +3006,18 @@ public final class CraftServer implements Server {
|
||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ index 0d37bde27beaa2d6730bb9f82d4b686f6f60e40b..5248e951e1307c2e019db276dcc80d9d
|
||||
public void restart() {
|
||||
org.spigotmc.RestartCommand.restart();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
index 62d9737a8d36d4863ffd7853ba290ef83c759687..bc001869b10fa497d3473f7e45a2a7120e61f87e 100644
|
||||
index ce341f42b3a5e17fb6d1f7de8057e73137ae2a6e..8576ae1f811bdb7fb4f356bcce2e29181838d8ce 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
@@ -174,6 +174,14 @@ public class Main {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Purpur client support
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 4a0df97430cf025d1e830f681ef791ecec985102..bd79e92fae8606635cf2dc4f4e4e6fd847362252 100644
|
||||
index 0dba30c41affafe7b1d585b515925043b37712fa..3d78fbb7cef37c3d108ef9da1b76ffa13aa2f6fd 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -281,6 +281,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -43,13 +43,13 @@ index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..34559eae0ea3f88d7b9a3c9e4a2350c4
|
||||
try {
|
||||
String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index b8d3398b349d9294de6b8a8594b054d3c84dbe0a..4ab63267c4ec808d3daf94478a1425b5aa70b75f 100644
|
||||
index 5c1e016de183933c5458deaae257b978e6350307..8de8452b93833dbfe9e69b2b269264c0aa167e52 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -3373,4 +3373,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
return this.spigot;
|
||||
@@ -3361,4 +3361,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
public void setSendViewDistance(final int viewDistance) {
|
||||
this.getHandle().setSendViewDistance(viewDistance);
|
||||
}
|
||||
// Spigot end
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Component related conveniences
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 0b90e6810ec549471fad70406f2f054897c1eb24..a1dff77b662f178bd42c0d232ecea1ca2cc4f6d3 100644
|
||||
index 3d78fbb7cef37c3d108ef9da1b76ffa13aa2f6fd..6c3e5ad96ff1c33181663d89c3c227e1a96e4912 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1884,6 +1884,26 @@ public class ServerPlayer extends Player {
|
||||
@@ -36,10 +36,10 @@ index 0b90e6810ec549471fad70406f2f054897c1eb24..a1dff77b662f178bd42c0d232ecea1ca
|
||||
public void displayClientMessage(Component message, boolean overlay) {
|
||||
this.sendSystemMessage(message, overlay);
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 1c89b95ac40120ee970da0f06fd7fff36eb55e61..2a4b63ead77cf6117b1ebefe9d9dbd6c73ed4d95 100644
|
||||
index e0ee45036b9bf14a6e2013fe291cde0402b85b1f..5eedc109e84a8e059ccacf43fc2a8d8475ee3543 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1064,6 +1064,20 @@ public abstract class PlayerList {
|
||||
@@ -1063,6 +1063,20 @@ public abstract class PlayerList {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -81,10 +81,10 @@ index fc6903b20a6e084729306fc960a6fc80e094f76c..dad8d358e60902eb186cbc5686219f66
|
||||
return this.type().msgId();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 7a50a1fe485de232abb9d626e8001eee78a33b1b..59ec8a66c76bea89f14aa19f61c03571a00c7e4f 100644
|
||||
index 00b26925b9e0ef7290f904273da875603b6ce11b..b8236e91b4bf204e728cba13c95292329f0058e9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -4138,6 +4138,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -4136,6 +4136,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return SlotAccess.NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@ index e17fa30966dea2836fb791becd032fc7d5cc2611..dd06323731533fb9b1b25a56844a4e39
|
||||
super(x, y, z);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 3506a1ff01fab1dc7f99c219e23c3b0b9e5a5565..21a23f1c5d644a1212269d77dc598925f86e0598 100644
|
||||
index 3c2eb7eeff23cd2b93105518a5cfbfb39565b845..db9267ce8da952397398a077cc65e72dc9909719 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1700,6 +1700,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
|
||||
@@ -1698,6 +1698,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
|
||||
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
|
||||
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||
+ worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
|
||||
@@ -34,19 +34,19 @@ index 3506a1ff01fab1dc7f99c219e23c3b0b9e5a5565..21a23f1c5d644a1212269d77dc598925
|
||||
this.profiler.push(() -> {
|
||||
return worldserver + " " + worldserver.dimension().location();
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index e8784caa72af2bf27988c393d5f66aa79401a9bf..5a5eece4393aba0902a94f94c10172ddda53776c 100644
|
||||
index 0982d44b9dd30c13d9d879095cc9a839bbda8bdc..cdc17904cdf3d6669503e09debfbb156a80f0020 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -224,6 +224,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
public boolean hasPhysicsEvent = true; // Paper
|
||||
public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent
|
||||
public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent
|
||||
private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current)
|
||||
+ public boolean hasRidableMoveEvent = false; // Purpur
|
||||
|
||||
@Override public LevelChunk getChunkIfLoaded(int x, int z) { // Paper - this was added in world too but keeping here for NMS ABI
|
||||
public LevelChunk getChunkIfLoaded(int x, int z) {
|
||||
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 47b98effff238fd238da85eef6a108e3dfff98e8..936224e1884f7f7d03d51c2cce3599a78d174b80 100644
|
||||
index 6c3e5ad96ff1c33181663d89c3c227e1a96e4912..62fd29f19b93f07a87377f26d9e5b169b9d80f4f 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -763,6 +763,15 @@ public class ServerPlayer extends Player {
|
||||
@@ -66,7 +66,7 @@ index 47b98effff238fd238da85eef6a108e3dfff98e8..936224e1884f7f7d03d51c2cce3599a7
|
||||
|
||||
public void doTick() {
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 79701158989205af7b70ab5d312c1d3fa27c6cd2..4326b324ff5c815b38211fe24cb5f05b974c3200 100644
|
||||
index 7b74541d648de48579221945e4bab963882cc1f2..564ad357c3f85c3018b51e592474722f9f92bf35 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2704,6 +2704,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -79,7 +79,7 @@ index 79701158989205af7b70ab5d312c1d3fa27c6cd2..4326b324ff5c815b38211fe24cb5f05b
|
||||
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
||||
entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 4f74874821683127265da4d9b2b7cba69e475576..3bb76702a36b3ee638779b5d83093965b42341ce 100644
|
||||
index b8236e91b4bf204e728cba13c95292329f0058e9..fcc95eaaa8f9160f8a3c2391f6d23c27266c3771 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -378,7 +378,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -91,7 +91,7 @@ index 4f74874821683127265da4d9b2b7cba69e475576..3bb76702a36b3ee638779b5d83093965
|
||||
private float eyeHeight;
|
||||
public boolean isInPowderSnow;
|
||||
public boolean wasInPowderSnow;
|
||||
@@ -3012,6 +3012,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3010,6 +3010,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
this.passengers = ImmutableList.copyOf(list);
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ index 4f74874821683127265da4d9b2b7cba69e475576..3bb76702a36b3ee638779b5d83093965
|
||||
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
||||
}
|
||||
}
|
||||
@@ -3051,6 +3058,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3049,6 +3056,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return false;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -120,7 +120,7 @@ index 4f74874821683127265da4d9b2b7cba69e475576..3bb76702a36b3ee638779b5d83093965
|
||||
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
|
||||
this.passengers = ImmutableList.of();
|
||||
} else {
|
||||
@@ -4992,4 +5007,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -4987,4 +5002,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
|
||||
}
|
||||
// Paper end - Expose entity id counter
|
||||
@@ -190,7 +190,7 @@ index 1bb8b6e91c44cd13411d96d749fa64835c75a267..75c278b67ad2b78766efd8f89c4c2ca7
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 47d9d45a5244ea991bedd16ff9ef0a40128b0258..a47e0b6b1650ae88fcbdc2f12c1b00ad94f29f85 100644
|
||||
index 5641bc7f50cef7819ddaeb76a4a4f9c80f473d31..5e663a0d0c4fe1f32ac3483b86c085ec2205b3dc 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -268,7 +268,7 @@ index 47d9d45a5244ea991bedd16ff9ef0a40128b0258..a47e0b6b1650ae88fcbdc2f12c1b00ad
|
||||
// Paper end - Add EntityMoveEvent
|
||||
if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 4e5038e3cb6644e14d4b0022444386c50c827d0b..f6261b43cad2c97e08788c27d0bdc1d8a42bd4d5 100644
|
||||
index a181a298334212847166409a2121476ba5871cb2..76729680ea74eedd648eeaafbdfed4ee817b5675 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -148,8 +148,8 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -1912,7 +1912,7 @@ index b5d6857eaf2bed14adcb5f5e80d91b44eb8b0dcc..bc57978d89db43e97a38ea56c3541e8f
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
index f60c4cd0543fd5d50fa7e2c1a9e8381227adb540..7fa03dbc442942b70f374096e346d54089d8f0a0 100644
|
||||
index 4f32597c7af34d599f6658fe4962d41624e60419..0ee9d5eeabb0352d0a92fa0106b7a3a834a9c146 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
@@ -48,9 +48,32 @@ public class Squid extends WaterAnimal {
|
||||
@@ -4251,7 +4251,7 @@ index 92974452d8f63fde8524cfac305ee2ef5212f840..3568c4b7ecfa250bbeb1799685b487df
|
||||
protected void defineSynchedData() {
|
||||
super.defineSynchedData();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
index 2e59a32aa8afe45641a319b1a6c347ee944398a8..01416cef059e4b8d82a0676a0ced19a325a47ace 100644
|
||||
index 2502cb476032c6a247132ce2e427721d6c9f8ce4..23ed3890fd5a5786c1d251b926cb386b16f8b4f9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
|
||||
@@ -61,6 +61,7 @@ public class Slime extends Mob implements Enemy {
|
||||
@@ -4381,7 +4381,7 @@ index 2e59a32aa8afe45641a319b1a6c347ee944398a8..01416cef059e4b8d82a0676a0ced19a3
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
index 0c68ed759421d6bce4435399f1b4980510081cac..8133ff59a1dba12542c7b582381433267ca18ce5 100644
|
||||
index 7618364e5373fe17cfe45a5a4ee9ab25e591581c..dd1a6fc505ce2214903dbe703bcabe7d264fbe90 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
@@ -53,14 +53,33 @@ public class Spider extends Monster {
|
||||
@@ -4746,7 +4746,7 @@ index 11275a9ec6faa69c9f054683cb47312e443ba883..dc29e875c1e184c1c4553c127bb8c86d
|
||||
this.level().getProfiler().pop();
|
||||
this.updateActivity();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
index 3fa43be16cc8d35622c269db37875b4bd0a09405..aa6533c40b73bc72a4906f0533f13e74e58c091a 100644
|
||||
index 5c40e994007dbf46ebc12c1e6a6ca90379471b74..3be3e46408b2d43f2cbb27b516be8c466ab0ed79 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
@@ -107,11 +107,30 @@ public class Zombie extends Monster {
|
||||
@@ -5114,10 +5114,10 @@ index 1c89f20debfad9807c90a21cc336d5790294ebce..3782209c6d3408393e91ffe64976a15c
|
||||
this.setTradingPlayer(player);
|
||||
this.openTradingScreen(player, this.getDisplayName(), 1);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 35869e655a7488f7b5868895287b8045b03f2d63..1662bff77da2acae9661f1a083e048d5626189f7 100644
|
||||
index 44a17a8e763455e834dcf488044a0f4907ce346e..16e90cc84433a0cdabcf3fec8d9734d074b73c71 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -194,6 +194,19 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -192,6 +192,19 @@ public abstract class Player extends LivingEntity {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -5172,7 +5172,7 @@ index 78dd3365dc4d1265fc2102f740d75a384f5df5c5..4a2331c22a022881d66bcfd4134b0ffe
|
||||
public boolean isPickable() {
|
||||
return false;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index f16ac1d640fc97f348c244d4ea86e3278b30ae19..6f7be7d29b4654d463299c62b8a01696ca187eb2 100644
|
||||
index 8698104e3eb98e2cc5da5de87a8f538860c1d91d..39ae3335866669be54f31ee6cd10d41bc70b193c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -1227,4 +1227,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 2a4b63ead77cf6117b1ebefe9d9dbd6c73ed4d95..9cc88489e9545b6d2de410d702a8395ccf101f89 100644
|
||||
index 5eedc109e84a8e059ccacf43fc2a8d8475ee3543..2b65d30a143fdc2af635125901f2aba8fdc8c4a7 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1189,6 +1189,27 @@ public abstract class PlayerList {
|
||||
@@ -1188,6 +1188,27 @@ public abstract class PlayerList {
|
||||
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
|
||||
this.server.getCommands().sendCommands(player);
|
||||
} // Paper - Add sendOpLevel API
|
||||
@@ -37,13 +37,13 @@ index 2a4b63ead77cf6117b1ebefe9d9dbd6c73ed4d95..9cc88489e9545b6d2de410d702a8395c
|
||||
|
||||
public boolean isWhiteListed(GameProfile profile) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index b33f63016fc2818b0a6a05107e435e1c9be3ca97..1f7022c086c88d9a7b8672ede2a5a14f85999461 100644
|
||||
index 16e90cc84433a0cdabcf3fec8d9734d074b73c71..9d3e681faa5639b540e8c9b68dc9098ace3ecf03 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity {
|
||||
public boolean affectsSpawning = true;
|
||||
@@ -181,6 +181,7 @@ public abstract class Player extends LivingEntity {
|
||||
public float hurtDir; // Paper - protected -> public
|
||||
public boolean affectsSpawning = true; // Paper - Affects Spawning API
|
||||
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
|
||||
// Paper end
|
||||
+ public int sixRowEnderchestSlotCount = -1; // Purpur
|
||||
|
||||
// CraftBukkit start
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] AFK API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 936224e1884f7f7d03d51c2cce3599a78d174b80..ae60a3ba8a482cbae6905e66cfbb034c298a25e2 100644
|
||||
index 62fd29f19b93f07a87377f26d9e5b169b9d80f4f..e4f36920d54688b515b86ada943765d460361889 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2234,8 +2234,68 @@ public class ServerPlayer extends Player {
|
||||
@@ -78,7 +78,7 @@ index 936224e1884f7f7d03d51c2cce3599a78d174b80..ae60a3ba8a482cbae6905e66cfbb034c
|
||||
return this.stats;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 4326b324ff5c815b38211fe24cb5f05b974c3200..1c14341cff817e66d982d306f5e51248bca7ec19 100644
|
||||
index 564ad357c3f85c3018b51e592474722f9f92bf35..466df3f098688d42320127273c07219cc3673258 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -325,6 +325,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -165,7 +165,7 @@ index 823efad652d8ff9e96b99375b102fef6f017716e..caa8a69bde0c212c36dd990a67836ac2
|
||||
}
|
||||
// CraftBukkit start
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntitySelector.java b/src/main/java/net/minecraft/world/entity/EntitySelector.java
|
||||
index b350d41a724048af06f9aa9bbef039d3d719c3a8..4f25d52e70752d56c0c03d437651638ac57fa576 100644
|
||||
index d8cc5614502db7025349e085381b6b32ad32296a..f1b9e83206cc67e6ef29ebe088351b0aaa5eb349 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntitySelector.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntitySelector.java
|
||||
@@ -40,6 +40,7 @@ public final class EntitySelector {
|
||||
@@ -175,7 +175,7 @@ index b350d41a724048af06f9aa9bbef039d3d719c3a8..4f25d52e70752d56c0c03d437651638a
|
||||
+ public static Predicate<Player> notAfk = (player) -> !player.isAfk(); // Purpur
|
||||
|
||||
private EntitySelector() {}
|
||||
// Paper start
|
||||
// Paper start - Affects Spawning API
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
||||
index 3c4f4af85a3f2d4f9f52827164e63727b916c33a..aa4dec55c1d4cd9796587ea3a3343131a4d2f0a4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
|
||||
@@ -192,10 +192,10 @@ index 3c4f4af85a3f2d4f9f52827164e63727b916c33a..aa4dec55c1d4cd9796587ea3a3343131
|
||||
if (baseEntity == null) {
|
||||
if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level().getDifficulty() == Difficulty.PEACEFUL)) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 45a5e6d8a77d820674a7c27867cfbb373c0be860..ad17b7e61b882acefb6ea6fd769244c5c028f5ec 100644
|
||||
index 9d3e681faa5639b540e8c9b68dc9098ace3ecf03..dac631ffd190829e299ab30415ade7c06f70f4c3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -189,6 +189,13 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -187,6 +187,13 @@ public abstract class Player extends LivingEntity {
|
||||
public boolean fauxSleeping;
|
||||
public int oldLevel = -1;
|
||||
|
||||
@@ -210,7 +210,7 @@ index 45a5e6d8a77d820674a7c27867cfbb373c0be860..ad17b7e61b882acefb6ea6fd769244c5
|
||||
public CraftHumanEntity getBukkitEntity() {
|
||||
return (CraftHumanEntity) super.getBukkitEntity();
|
||||
diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||
index ff0b7b9e4ae3aa0c170d05bc51fd7ff26e7531ee..53d4000593d4c79de8e8ab04bfd614b7ee0ad7a5 100644
|
||||
index ed84c87a3f76bc0254c1abb189e6b8b808823465..5bc68b1ef33f297e9a4b1bdd7d69f86a46ad6fbd 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||
@@ -191,7 +191,7 @@ public interface EntityGetter {
|
||||
@@ -223,10 +223,10 @@ index ff0b7b9e4ae3aa0c170d05bc51fd7ff26e7531ee..53d4000593d4c79de8e8ab04bfd614b7
|
||||
if (range < 0.0D || d < range * range) {
|
||||
return true;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 4ab63267c4ec808d3daf94478a1425b5aa70b75f..833d20484c3bd5b59fff64141f2aa352742a3d5f 100644
|
||||
index 8de8452b93833dbfe9e69b2b269264c0aa167e52..84ab7296ca213ccc2d8983b6a4417993cbed70b5 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -524,10 +524,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -482,10 +482,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
@Override
|
||||
public void setPlayerListName(String name) {
|
||||
@@ -243,7 +243,7 @@ index 4ab63267c4ec808d3daf94478a1425b5aa70b75f..833d20484c3bd5b59fff64141f2aa352
|
||||
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
|
||||
if (player.getBukkitEntity().canSee(this)) {
|
||||
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
|
||||
@@ -3379,5 +3384,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -3367,5 +3372,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
public boolean usesPurpurClient() {
|
||||
return getHandle().purpurClient;
|
||||
}
|
||||
@@ -317,7 +317,7 @@ index e248395ad5f5f012aeefecf367d54f90cade0996..70f53ccb22de2c05c9ead68f8bd29d0b
|
||||
public boolean untamedTamablesAreRidable = true;
|
||||
public boolean useNightVisionWhenRiding = false;
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index a69814d3a6214af734d670fe5545518a5f8a8dc5..a2227d7148910631c9cec73aef2c24e223385963 100644
|
||||
index 41cddf7e42f0e8f80973e482a95e55d3bd19f659..b73bb349aed01a96515e5d4d7fe67d28bd80189f 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -203,6 +203,7 @@ public class ActivationRange
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Bring back server name
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||
index 1643186bcb2caf5d29fd551afd35830726dbb80a..d53e0b67d847dfec2f4b118b5ca3f0ed1dc29ad6 100644
|
||||
index bab2471616404821671264ccefd729cab8d0bf58..ae75edfaa9e4c72f11fbb7ffc66294be47c206cc 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServerProperties.java
|
||||
@@ -57,6 +57,7 @@ public class DedicatedServerProperties extends Settings<DedicatedServerPropertie
|
||||
@@ -17,10 +17,10 @@ index 1643186bcb2caf5d29fd551afd35830726dbb80a..d53e0b67d847dfec2f4b118b5ca3f0ed
|
||||
public final boolean spawnNpcs = this.get("spawn-npcs", true);
|
||||
public final boolean pvp = this.get("pvp", true);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index d1776bb7309b6e35115ab39e31d4bf4b96e5e28b..a52feda7ecf3314b04c9c43c91d3481b52df50e3 100644
|
||||
index f4452341be3572129dc8c59bb511ef199ff31938..d98ed16ce24fb82dff5bdccb33fb7936408b8634 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -3252,4 +3252,11 @@ public final class CraftServer implements Server {
|
||||
@@ -3249,4 +3249,11 @@ public final class CraftServer implements Server {
|
||||
}
|
||||
|
||||
// Paper end
|
||||
|
||||
@@ -5,15 +5,15 @@ Subject: [PATCH] Configurable server mod name
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 41918e5fe6d55749204a9207efe305e2f1369d9c..4d5b840844bd125940d8db4e71f2000eb66e52a7 100644
|
||||
index db9267ce8da952397398a077cc65e72dc9909719..979acf21f88bf6248404dcdd1b20d3c0ab8dcde4 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1861,7 +1861,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1859,7 +1859,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
- return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
||||
+ return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
|
||||
- return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper
|
||||
+ return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper
|
||||
}
|
||||
|
||||
public SystemReport fillSystemReport(SystemReport details) {
|
||||
|
||||
@@ -5,18 +5,18 @@ Subject: [PATCH] Lagging threshold
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 8955a2537744658164175120e30feb7088e1f6cc..0dbd0e67e236059ef960c5b88b9eb4ac40008298 100644
|
||||
index 979acf21f88bf6248404dcdd1b20d3c0ab8dcde4..fef2374ac572361a40f86311ed0879830f031040 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -307,6 +307,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// Spigot end
|
||||
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
|
||||
public static long currentTickLong = 0L; // Paper - track current tick as a long
|
||||
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
+ public boolean lagging = false; // Purpur
|
||||
|
||||
public volatile Thread shutdownThread; // Paper
|
||||
public volatile boolean abnormalExit = false; // Paper
|
||||
@@ -1197,6 +1198,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1194,6 +1195,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.recentTps[1] = tps5.getAverage();
|
||||
this.recentTps[2] = tps15.getAverage();
|
||||
// Paper end
|
||||
@@ -25,10 +25,10 @@ index 8955a2537744658164175120e30feb7088e1f6cc..0dbd0e67e236059ef960c5b88b9eb4ac
|
||||
} else curTime = Util.getNanos(); // Paper
|
||||
// Spigot end
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index a52feda7ecf3314b04c9c43c91d3481b52df50e3..958c7f58d253df363e9657f5cd3f4a35aa68e672 100644
|
||||
index d98ed16ce24fb82dff5bdccb33fb7936408b8634..5c30c63c2af21b75e3b785e9f024526baa7dbaa2 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -3258,5 +3258,10 @@ public final class CraftServer implements Server {
|
||||
@@ -3255,5 +3255,10 @@ public final class CraftServer implements Server {
|
||||
public String getServerName() {
|
||||
return this.getProperties().serverName;
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@ 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 a129e8ef37fef6fa289e6457b68a221947ef0348..a89a84f0955c5f3bee8abf529b585f04d5349de2 100644
|
||||
index cdc17904cdf3d6669503e09debfbb156a80f0020..0ae833018867b9f347fa8261898ec7353368ba4e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1016,10 +1016,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
|
||||
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper - Configurable spawn chances for skeleton horses
|
||||
|
||||
if (flag1) {
|
||||
- SkeletonHorse entityhorseskeleton = (SkeletonHorse) EntityType.SKELETON_HORSE.create(this);
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 04ac541f71bac6c8d26a92b61fd25574a49bbc1c..0ced4627e0374d7e9fcbff256505b190021efd3f 100644
|
||||
index 2b65d30a143fdc2af635125901f2aba8fdc8c4a7..77f69ea078975f2e74a07526e4ed8c7eb742c05b 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1181,6 +1181,7 @@ public abstract class PlayerList {
|
||||
@@ -1180,6 +1180,7 @@ public abstract class PlayerList {
|
||||
} else {
|
||||
b0 = (byte) (24 + permissionLevel);
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index c5ee8232e13ae837e2f40fbf07ed1002a4c4a620..5dc1216684146dc34fd21eaf829aa59f11efac0c 100644
|
||||
index fef2374ac572361a40f86311ed0879830f031040..73d7385c00f41075b00e68d3b44c56501c47a6a5 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1222,11 +1222,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1219,11 +1219,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
|
||||
// Pufferfish start - tps catchup
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add player death exp control options
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 27d5b180d0b9acd883726c07b5507e09509c6ba1..783f3fa87c2142a6e220dd4e199040b671954b15 100644
|
||||
index dac631ffd190829e299ab30415ade7c06f70f4c3..346b4027006d5cde97ec5bc4599635b145a76de1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -1935,9 +1935,19 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -1933,9 +1933,19 @@ public abstract class Player extends LivingEntity {
|
||||
@Override
|
||||
public int getExperienceReward() {
|
||||
if (!this.level().getGameRules().getBoolean(GameRules.RULE_KEEPINVENTORY) && !this.isSpectator()) {
|
||||
@@ -32,7 +32,7 @@ index 27d5b180d0b9acd883726c07b5507e09509c6ba1..783f3fa87c2142a6e220dd4e199040b6
|
||||
return 0;
|
||||
}
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 021a25e23103f789361f6263df52436fa4b0adfe..b6254ebac4140c1d3887a4307304d4a8f7d1b6a2 100644
|
||||
index f8350126625341c4defc9a5d47f8ed42875c0241..f83d25ca31593e39fc64f292f0c6daaeac01d713 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -171,6 +171,8 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable void damage height and damage
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 7ca03d221e33cec1df99b6dcd60fcdd401530938..9f354cbc17e66c425a274b00f15e6cf51cdb2cee 100644
|
||||
index c4e3a662374ca1695c8e66d74a7a625664c160d7..605c15bb3ca7f4c13a7c869ccd61961d5e01937e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -902,7 +902,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -16,9 +16,9 @@ index 7ca03d221e33cec1df99b6dcd60fcdd401530938..9f354cbc17e66c425a274b00f15e6cf5
|
||||
+ if (this.getY() < (double) (this.level.getMinBuildHeight() + level().purpurConfig.voidDamageHeight) || (this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER // Purpur
|
||||
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
|
||||
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
|
||||
// Paper end
|
||||
// Paper end - Configurable nether ceiling damage
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index c27e254d42697f028f3aca902bcb58ba33f95ce4..d668fd41d2bc2ab6a782cf5415507cbd83754c18 100644
|
||||
index b1e6a65769d0915712571214f82f225437b02706..f4c1fd338dc1f37859eb13b5c9e9dae52aac0218 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -2541,7 +2541,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 9f354cbc17e66c425a274b00f15e6cf51cdb2cee..96e79ca690a3951dd24601673703f914465c48a3 100644
|
||||
index 605c15bb3ca7f4c13a7c869ccd61961d5e01937e..2dcfcc740aab2fe069aff01bff37c1c310203998 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -498,6 +498,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -560,6 +560,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,32 +5,23 @@ Subject: [PATCH] Add 5 second tps average in /tps
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
index 066b9e4c4f0e7773548eda045cdd1ca8445221d2..92eaba96135ccddb7d682dab7e82cde9318a48ef 100644
|
||||
index 039a86034928a5eb7aaa2d7ca76a7bddcca346bd..308f67d0616e2d6bb135258f1fda53ccdee01430 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
@@ -58,7 +58,7 @@ public class RAMDetails extends JList<String> {
|
||||
GraphData data = RAMGraph.DATA.peekLast();
|
||||
Vector<String> vector = new Vector<>();
|
||||
|
||||
- double[] tps = new double[] {server.tps1.getAverage(), server.tps5.getAverage(), server.tps15.getAverage()};
|
||||
+ double[] tps = new double[] {server.tps5s.getAverage(), server.tps1.getAverage(), server.tps5.getAverage(), server.tps15.getAverage()}; // Purpur
|
||||
String[] tpsAvg = new String[tps.length];
|
||||
|
||||
for ( int g = 0; g < tps.length; g++) {
|
||||
@@ -67,7 +67,7 @@ public class RAMDetails extends JList<String> {
|
||||
@@ -68,7 +68,7 @@ public class RAMDetails extends JList<String> {
|
||||
vector.add("Memory use: " + (data.getUsedMem() / 1024L / 1024L) + " mb (" + (data.getFree() * 100L / data.getMax()) + "% free)");
|
||||
vector.add("Heap: " + (data.getTotal() / 1024L / 1024L) + " / " + (data.getMax() / 1024L / 1024L) + " mb");
|
||||
vector.add("Avg tick: " + DECIMAL_FORMAT.format(this.getAverage(server.getTickTimesNanos())) + " ms");
|
||||
vector.add("Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / (double) TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms");
|
||||
- vector.add("TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg));
|
||||
+ vector.add("TPS from last 5s, 1m, 5m, 15m: " + String.join(", ", tpsAvg)); // Purpur
|
||||
|
||||
setListData(vector);
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 830d02bfb5fc84079fc70d59919a9547e4cf2874..56e5c6ff88b6037f725020ac381d6ae473c059a4 100644
|
||||
index 73d7385c00f41075b00e68d3b44c56501c47a6a5..cc17176b4019a99e8322942a33cb66a0ea93735a 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -303,7 +303,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -302,7 +302,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
public static final int TPS = 20;
|
||||
public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS;
|
||||
private static final int SAMPLE_INTERVAL = 20; // Paper
|
||||
@@ -39,7 +30,7 @@ index 830d02bfb5fc84079fc70d59919a9547e4cf2874..56e5c6ff88b6037f725020ac381d6ae4
|
||||
// Spigot end
|
||||
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
|
||||
public static long currentTickLong = 0L; // Paper - track current tick as a long
|
||||
@@ -1080,6 +1080,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1077,6 +1077,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
|
||||
private long lastTick = 0;
|
||||
private long catchupTime = 0;
|
||||
@@ -47,7 +38,7 @@ index 830d02bfb5fc84079fc70d59919a9547e4cf2874..56e5c6ff88b6037f725020ac381d6ae4
|
||||
public final RollingAverage tps1 = new RollingAverage(60);
|
||||
public final RollingAverage tps5 = new RollingAverage(60 * 5);
|
||||
public final RollingAverage tps15 = new RollingAverage(60 * 15);
|
||||
@@ -1190,13 +1191,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1187,13 +1188,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
curTime = Util.getNanos();
|
||||
final long diff = curTime - tickSection;
|
||||
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
|
||||
@@ -68,20 +59,33 @@ index 830d02bfb5fc84079fc70d59919a9547e4cf2874..56e5c6ff88b6037f725020ac381d6ae4
|
||||
// Paper end
|
||||
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur
|
||||
tickSection = curTime;
|
||||
diff --git a/src/main/java/net/minecraft/server/gui/StatsComponent.java b/src/main/java/net/minecraft/server/gui/StatsComponent.java
|
||||
index 38fe7e5014332f45e41a3d5d91c28dd0acfdc3b0..479657ddef21f0279b361117b82549f7105be416 100644
|
||||
--- a/src/main/java/net/minecraft/server/gui/StatsComponent.java
|
||||
+++ b/src/main/java/net/minecraft/server/gui/StatsComponent.java
|
||||
@@ -45,7 +45,7 @@ public class StatsComponent extends JComponent {
|
||||
}
|
||||
this.msgs[0] = "Memory use: " + l / 1024L / 1024L + " mb (" + Runtime.getRuntime().freeMemory() * 100L / Runtime.getRuntime().maxMemory() + "% free)";
|
||||
this.msgs[1] = "Avg tick: " + DECIMAL_FORMAT.format((double)this.server.getAverageTickTimeNanos() / (double)TimeUtil.NANOSECONDS_PER_MILLISECOND) + " ms";
|
||||
- this.msgs[2] = "TPS from last 1m, 5m, 15m: " + String.join(", ", tpsAvg);
|
||||
+ this.msgs[2] = "TPS from last 5s, 1m, 5m, 15m: " + String.join(", ", tpsAvg); // Purpur
|
||||
// Paper end - Improve ServerGUI
|
||||
this.values[this.vp++ & 255] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
|
||||
this.repaint();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 958c7f58d253df363e9657f5cd3f4a35aa68e672..a675368062510a699ef18fb8064f0909930618d5 100644
|
||||
index 5c30c63c2af21b75e3b785e9f024526baa7dbaa2..555cffaf05116c7c0a3071c83221d10710be62e8 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -2972,6 +2972,7 @@ public final class CraftServer implements Server {
|
||||
@@ -3047,6 +3047,7 @@ public final class CraftServer implements Server {
|
||||
@Override
|
||||
public double[] getTPS() {
|
||||
return new double[] {
|
||||
+ net.minecraft.server.MinecraftServer.getServer().tps5s.getAverage(), // Purpur
|
||||
net.minecraft.server.MinecraftServer.getServer().tps1.getAverage(),
|
||||
net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(),
|
||||
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
|
||||
+ net.minecraft.server.MinecraftServer.getServer().tps5s.getAverage(), // Purpur
|
||||
net.minecraft.server.MinecraftServer.getServer().tps1.getAverage(),
|
||||
net.minecraft.server.MinecraftServer.getServer().tps5.getAverage(),
|
||||
net.minecraft.server.MinecraftServer.getServer().tps15.getAverage()
|
||||
diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
|
||||
index 9eb2823cc8f83bad2626fc77578b0162d9ed5782..5da1ef6d90c6a5bd047e971bcc56d786239c6fd8 100644
|
||||
index 9eb2823cc8f83bad2626fc77578b0162d9ed5782..f144a08e88f8268b84eb188a36bf470457f59958 100644
|
||||
--- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java
|
||||
+++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
|
||||
@@ -39,7 +39,7 @@ public class TicksPerSecondCommand extends Command
|
||||
@@ -89,7 +93,7 @@ index 9eb2823cc8f83bad2626fc77578b0162d9ed5782..5da1ef6d90c6a5bd047e971bcc56d786
|
||||
|
||||
net.kyori.adventure.text.TextComponent.Builder builder = net.kyori.adventure.text.Component.text();
|
||||
- builder.append(net.kyori.adventure.text.Component.text("TPS from last 1m, 5m, 15m: ", net.kyori.adventure.text.format.NamedTextColor.GOLD));
|
||||
+ builder.append(net.kyori.adventure.text.Component.text("TPS from last 5s, 1m, 5m, 15m: ", net.kyori.adventure.text.format.NamedTextColor.GOLD));
|
||||
+ builder.append(net.kyori.adventure.text.Component.text("TPS from last 5s, 1m, 5m, 15m: ", net.kyori.adventure.text.format.NamedTextColor.GOLD)); // Purpur
|
||||
builder.append(net.kyori.adventure.text.Component.join(net.kyori.adventure.text.JoinConfiguration.commas(true), tpsAvg));
|
||||
sender.sendMessage(builder.asComponent());
|
||||
if (args.length > 0 && args[0].equals("mem") && sender.hasPermission("bukkit.command.tpsmemory")) {
|
||||
|
||||
@@ -5,15 +5,15 @@ Subject: [PATCH] Item entity immunities
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
index 79914528f6d255355284b04253218a7c4dec1ead..2568b4ad72a7b99484aaa048257a3b5465b63b9d 100644
|
||||
index db55ad9aaabfa1ea998754f3ac352d1698936696..04b98e23eed926d8473cc2464e04a5b9f18f1140 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -73,7 +73,7 @@ public class ServerEntity {
|
||||
@Nullable
|
||||
private List<SynchedEntityData.DataValue<?>> trackedDataValues;
|
||||
// CraftBukkit start
|
||||
- final Set<ServerPlayerConnection> trackedPlayers; // Paper - private -> package
|
||||
+ public final Set<ServerPlayerConnection> trackedPlayers; // Paper - private -> package // Purpur - package -> public
|
||||
- private final Set<ServerPlayerConnection> trackedPlayers;
|
||||
+ public final Set<ServerPlayerConnection> trackedPlayers; // Purpur - private -> public
|
||||
|
||||
public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) {
|
||||
this.trackedPlayers = trackedPlayers;
|
||||
|
||||
@@ -27,10 +27,10 @@ index 6371f326fc86cfc53e39bf8ed13b646f7705fbbc..3dec0c5fc8dece5341634eaf8e94fe19
|
||||
|
||||
return true;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 4325d7e8da1e1051b0525897736f1bca83eb7f6a..85411279ca52e0b3e499fffe4b08cb2ab1c3aaf6 100644
|
||||
index 5b4a47e3078a8bf0533228af14c1a1031ec3ae69..6fc02fab7c0eda20abe8274e8b891f95d2c70b62 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -1912,4 +1912,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -1911,4 +1911,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
return null;
|
||||
}
|
||||
// Paper end - optimize redstone (Alternate Current)
|
||||
|
||||
@@ -25,7 +25,7 @@ index e813fa037ca17bec29db916eac882cbfab432e56..c87c7feb140864771cbef3dcee1f8931
|
||||
|
||||
public boolean spiderRidable = false;
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index 08b266efbefc45e9b08b2c03a36441a8c7564197..e7c384a8bf16de5132245c24226fff22f5c38585 100644
|
||||
index b73bb349aed01a96515e5d4d7fe67d28bd80189f..f9e3f4e15719ed9284ec315b8a1ef63dc242e009 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature;
|
||||
@@ -36,7 +36,7 @@ index 08b266efbefc45e9b08b2c03a36441a8c7564197..e7c384a8bf16de5132245c24226fff22
|
||||
import net.minecraft.world.entity.animal.WaterAnimal;
|
||||
import net.minecraft.world.entity.animal.horse.Llama;
|
||||
import net.minecraft.world.entity.boss.EnderDragonPart;
|
||||
@@ -402,6 +403,7 @@ public class ActivationRange
|
||||
@@ -401,6 +402,7 @@ public class ActivationRange
|
||||
*/
|
||||
public static boolean checkIfActive(Entity entity)
|
||||
{
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 96e79ca690a3951dd24601673703f914465c48a3..46dfa64da35505ca8be525d0eca0e2840840f776 100644
|
||||
index 2dcfcc740aab2fe069aff01bff37c1c310203998..28e2c99a757b75a0939fe50516592358eff8f719 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -4451,6 +4451,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -4446,6 +4446,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
this.yRotO = this.getYRot();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ index 96e79ca690a3951dd24601673703f914465c48a3..46dfa64da35505ca8be525d0eca0e284
|
||||
if (false && this.touchingUnloadedChunk()) { // Pufferfish - cost of a lookup here is the same cost as below, so skip
|
||||
return false;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
index 913b66be2111da862e706d4978825c64cfe8b00b..f68c18b6645981126329b58379946308bbb8ccf8 100644
|
||||
index f9db04ee35928d76dc504808a2acfca85295a6e6..59423504642953397b77ee8c9dca7aa4b3ef2f74 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
@@ -75,6 +75,12 @@ public class Squid extends WaterAnimal {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 46dfa64da35505ca8be525d0eca0e2840840f776..cc7cdb842df3a9d9cb9dc86b589c9893e06577ce 100644
|
||||
index 28e2c99a757b75a0939fe50516592358eff8f719..cdf8c8a571edfa1a54bbcb2e11d69536e7df61bf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3152,7 +3152,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3150,7 +3150,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
public void handleInsidePortal(BlockPos pos) {
|
||||
if (this.isOnPortalCooldown()) {
|
||||
this.setPortalCooldown();
|
||||
@@ -17,7 +17,7 @@ index 46dfa64da35505ca8be525d0eca0e2840840f776..cc7cdb842df3a9d9cb9dc86b589c9893
|
||||
if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) {
|
||||
this.portalEntrancePos = pos.immutable();
|
||||
}
|
||||
@@ -3859,7 +3859,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3857,7 +3857,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
|
||||
public boolean canChangeDimensions() {
|
||||
|
||||
@@ -18,10 +18,10 @@ index 9ec6145fe04ec64bbee8ec6a837719caebdbc6f5..358d610ad020cada1bb83e393deeeaae
|
||||
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
|
||||
this.gameTime = time;
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 6dda652c76130b477b3d47bc53761a36ef55c1d7..dde0affb3b966ea3160a9f28b2921d128b6c1b92 100644
|
||||
index cc17176b4019a99e8322942a33cb66a0ea93735a..d4f1151dd15c608194b6b6f7e7987b74a3928b50 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1693,7 +1693,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1691,7 +1691,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
long worldTime = level.getGameTime();
|
||||
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
|
||||
for (Player entityhuman : level.players()) {
|
||||
@@ -31,7 +31,7 @@ index 6dda652c76130b477b3d47bc53761a36ef55c1d7..dde0affb3b966ea3160a9f28b2921d12
|
||||
}
|
||||
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index cd54fd87fc48ee0423263c4365ac7660a9ece741..d92c809cb8dff4d146e98f20daf286180f0c43a6 100644
|
||||
index 3319939e53dec5a429be20c3612599f731e6a82c..6d01f9e5e1ea4f01ff9a3e54aa97be6919e3d1fc 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -215,6 +215,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement TPSBar
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
|
||||
index 2b270820c0af7fdda7c4bf9edf48522611b2a454..f22d8b0ba80ada0d9f75b621b6a64914ad95567a 100644
|
||||
index 27b3093aba19e457c7b83dd42dce4e546761644b..9c335df92b0a6c7705c9def89ba5c320d2c8ed03 100644
|
||||
--- a/src/main/java/net/minecraft/commands/Commands.java
|
||||
+++ b/src/main/java/net/minecraft/commands/Commands.java
|
||||
@@ -253,6 +253,7 @@ public class Commands {
|
||||
@@ -17,10 +17,10 @@ index 2b270820c0af7fdda7c4bf9edf48522611b2a454..f22d8b0ba80ada0d9f75b621b6a64914
|
||||
|
||||
if (environment.includeIntegrated) {
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index dde0affb3b966ea3160a9f28b2921d128b6c1b92..5b635c649c320e0b2d0ff30154f97270390cd440 100644
|
||||
index d4f1151dd15c608194b6b6f7e7987b74a3928b50..efba2fa31b8f4b7dfe15a36ab8366d3267971a5d 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1054,6 +1054,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1051,6 +1051,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.safeShutdown(waitForShutdown, false);
|
||||
}
|
||||
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
|
||||
@@ -41,7 +41,7 @@ index 1fbfe61b3d7fc372f044d2e9f3500d6665209973..18ec329505b0e1e76f5967ca6b298ed2
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index af883d6cccb83e50268fb264f929a6f69874201c..58b531c14c36bec725891c899b3f3586b5c11d9e 100644
|
||||
index 2645b8366989f833628f4716e928926a2a3a039d..485fa2fecb3d83635757319d70cd8e90f95807c0 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -282,6 +282,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -83,18 +83,18 @@ index af883d6cccb83e50268fb264f929a6f69874201c..58b531c14c36bec725891c899b3f3586
|
||||
// Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index a0db3194bc30160f349ae6319ce0faf845a40b51..18f59fcca1b905f20e2e4845864b7be67ec84efc 100644
|
||||
index 77f69ea078975f2e74a07526e4ed8c7eb742c05b..1f17abac0d9ae19b2d3a5c28a19a6e8a69b6e380 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -486,6 +486,7 @@ public abstract class PlayerList {
|
||||
scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam);
|
||||
}
|
||||
// Paper end
|
||||
// Paper end - Configurable player collision
|
||||
+ org.purpurmc.purpur.task.BossBarTask.addToAll(player); // Purpur
|
||||
// CraftBukkit - Moved from above, added world
|
||||
PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ());
|
||||
}
|
||||
@@ -599,6 +600,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -598,6 +599,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
|
||||
// Paper end - Fix kick event leave message not being sent
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Full netherite armor grants fire resistance
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index fad32d590828fe2f9acec80c76a452c1fd7f4005..2cd998414287b3bc2412c0bbd2f6244e7fedb331 100644
|
||||
index 346b4027006d5cde97ec5bc4599635b145a76de1..7126eab84084620661c1fd3c3311ac24fbcfad09 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -367,6 +367,16 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -365,6 +365,16 @@ public abstract class Player extends LivingEntity {
|
||||
this.addEffect(new MobEffectInstance(MobEffects.WATER_BREATHING, 200, 0, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.TURTLE_HELMET); // CraftBukkit
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ index fad32d590828fe2f9acec80c76a452c1fd7f4005..2cd998414287b3bc2412c0bbd2f6244e
|
||||
|
||||
protected ItemCooldowns createItemCooldowns() {
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 810745ee8b2f3dedf50533e31000ed29c2929718..88609510c379d0e7d94f3d821f828ed0313a9fe3 100644
|
||||
index 7cb9381590a24f24099b8ad87f094b1f73f1e624..fb8d380b90338b91c7481b4c3242ab3336e32370 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -295,6 +295,19 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -74,7 +74,7 @@ index f5f464e69bfb00f5ea493d109bdd96e459fcad46..c3d25a26883f7cbe7106c2f3415af0b1
|
||||
|
||||
blockEntity.teleportCooldown = 100;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 6f7be7d29b4654d463299c62b8a01696ca187eb2..c3880875f5148d869d7e067fe78cbd1b9492b501 100644
|
||||
index 39ae3335866669be54f31ee6cd10d41bc70b193c..a260e3768892dcf7ddd955cf8753d4d19cd2e8d3 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -252,6 +252,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
@@ -89,10 +89,10 @@ index 6f7be7d29b4654d463299c62b8a01696ca187eb2..c3880875f5148d869d7e067fe78cbd1b
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 833d20484c3bd5b59fff64141f2aa352742a3d5f..9cf6f19312242d3efac0b689cc8b31b9256694f0 100644
|
||||
index 84ab7296ca213ccc2d8983b6a4417993cbed70b5..4efb8e47a29249cbca52b637d6f721cf2a9afcfb 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -1368,6 +1368,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -1326,6 +1326,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
}
|
||||
|
||||
if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API
|
||||
|
||||
@@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index cc7cdb842df3a9d9cb9dc86b589c9893e06577ce..7e92c7a9c5792cb0d4c6c4370449aa0cf36d7dc5 100644
|
||||
index cdf8c8a571edfa1a54bbcb2e11d69536e7df61bf..72a81ccb270e9cb23bd8324fe4f6d4cea22a0105 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -1875,7 +1875,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1876,7 +1876,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return this.isInWater() || flag;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix stuck in portals
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 58b531c14c36bec725891c899b3f3586b5c11d9e..921738689a367c231e99eff6bc9fc305ebb31012 100644
|
||||
index 485fa2fecb3d83635757319d70cd8e90f95807c0..3c41a23964b115145d6b14930444f16c85769634 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1271,6 +1271,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -17,10 +17,10 @@ index 58b531c14c36bec725891c899b3f3586b5c11d9e..921738689a367c231e99eff6bc9fc305
|
||||
// CraftBukkit end
|
||||
this.setServerLevel(worldserver);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 7e92c7a9c5792cb0d4c6c4370449aa0cf36d7dc5..a040e92c3b3700461e630cd5299ff6c7400c273f 100644
|
||||
index 72a81ccb270e9cb23bd8324fe4f6d4cea22a0105..dcbb4d08a365ac5a697d6d69984b916fbc5abcd9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3149,12 +3149,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3147,12 +3147,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return Vec3.directionFromRotation(this.getRotationVector());
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Drowning Settings
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index a040e92c3b3700461e630cd5299ff6c7400c273f..1bb50f182fa6274cb0c631e0d4e79288443b3a53 100644
|
||||
index dcbb4d08a365ac5a697d6d69984b916fbc5abcd9..ae97146bf8e86a4be1b5d33f2956b28a2ed50359 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3398,7 +3398,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3396,7 +3396,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
|
||||
public int getMaxAirSupply() {
|
||||
@@ -18,7 +18,7 @@ index a040e92c3b3700461e630cd5299ff6c7400c273f..1bb50f182fa6274cb0c631e0d4e79288
|
||||
|
||||
public int getAirSupply() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 06a647ae44423e14f4266c9cc25ff78ee16bc3c8..95a004d6b0581cf9aa6805f08a34a04baefef8fa 100644
|
||||
index a64a41c521aea5f90fcfe72dc24ae5261c5f0b6d..be5c0141d40864bbf7338f2f5b389ec8ea41e4a8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -438,7 +438,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add config change multiplier critical damage value
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index a48467ed99653dfb5b953baebdc947dea6fb0481..3020992f10d6fc547ab0ea431383cdcb1322eaa6 100644
|
||||
index 7126eab84084620661c1fd3c3311ac24fbcfad09..63ab4eaf21d69ab40ea4d659322b429cb640db60 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -1314,7 +1314,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -1312,7 +1312,7 @@ public abstract class Player extends LivingEntity {
|
||||
flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
|
||||
flag2 = flag2 && !this.isSprinting();
|
||||
if (flag2) {
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
|
||||
Co-authored by: Encode42 <me@encode42.dev>
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 1bb50f182fa6274cb0c631e0d4e79288443b3a53..ac0fc8b7184ba1b6d40261cc15d81a7936f728d4 100644
|
||||
index ae97146bf8e86a4be1b5d33f2956b28a2ed50359..db3bdc0699143b9634226c1c371955ec4ac735c8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -502,6 +502,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -564,6 +564,21 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ index 1bb50f182fa6274cb0c631e0d4e79288443b3a53..ac0fc8b7184ba1b6d40261cc15d81a79
|
||||
return this.hardCollides;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index d72838fe8a0a9540750bfc3a26202e93493c98f3..6eb7a1398d1ce63ec6c11d9865f4c16b51c361de 100644
|
||||
index d2b1d362a0187a6eefa9d2a1d47971b783c252b7..6ba0fbaba03d9b7dede1b869f004bb020d25c885 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -262,6 +262,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -92,7 +92,7 @@ index d72838fe8a0a9540750bfc3a26202e93493c98f3..6eb7a1398d1ce63ec6c11d9865f4c16b
|
||||
|
||||
public boolean isSensitiveToWater() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 4383b2555cb416fce7b62b046211dbc3e8c75601..c029752141efbc48005dae0e3c1a071ba039b3a7 100644
|
||||
index de8c9905e4fec3d77501871ae3041860f1ce2e50..2cf0d698b341d418d0ac4760f95e3ea52c193098 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -1758,17 +1758,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -278,7 +278,7 @@ index 637b229817f9f2c3ad224f300b56a6bee4c8a341..bcb1912ea218fbb4b849ab84a7025202
|
||||
// Paper end
|
||||
private static enum AttackPhase {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
index edc47e077fe44d1b817b791ddde86e052a5bf831..2dad874c0a425cf2d0a385b6061ab79d81b82c86 100644
|
||||
index 94b92c6e588f871d4b0d86bb8f860a99e473a4ea..e568d014f577ab705645152446156dc04895b3bf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||
@@ -96,11 +96,12 @@ public class Zombie extends Monster {
|
||||
@@ -354,7 +354,7 @@ index edc47e077fe44d1b817b791ddde86e052a5bf831..2dad874c0a425cf2d0a385b6061ab79d
|
||||
// Paper end - Add more Zombie API
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index c3880875f5148d869d7e067fe78cbd1b9492b501..2ef6dc2390ed622eda284e3b4c85ec64e057c981 100644
|
||||
index a260e3768892dcf7ddd955cf8753d4d19cd2e8d3..9304a2d06400dfa244ddb4d9591de988b334c3cf 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -83,6 +83,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add toggle for sand duping fix
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
index 45c07733f03b5c11f6d8e820f65dc950c70d9a67..8e9ab1335626493b8d74f71f643565c0e65af94c 100644
|
||||
index 9daf8aa557d9f4fdbcc138a47892ea5a061dd877..3a25741693a8fd08ac4308da3f178155c28bf46b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
@@ -133,7 +133,7 @@ public class FallingBlockEntity extends Entity {
|
||||
@@ -17,9 +17,9 @@ index 45c07733f03b5c11f6d8e820f65dc950c70d9a67..8e9ab1335626493b8d74f71f643565c0
|
||||
return;
|
||||
}
|
||||
// Paper end - fix sand duping
|
||||
@@ -150,7 +150,7 @@ public class FallingBlockEntity extends Entity {
|
||||
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||
@@ -149,7 +149,7 @@ public class FallingBlockEntity extends Entity {
|
||||
|
||||
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||
// Paper start - fix sand duping
|
||||
- if (this.isRemoved()) {
|
||||
+ if (this.level().purpurConfig.fixSandDuping && this.isRemoved()) { // Purpur
|
||||
@@ -27,7 +27,7 @@ index 45c07733f03b5c11f6d8e820f65dc950c70d9a67..8e9ab1335626493b8d74f71f643565c0
|
||||
}
|
||||
// Paper end - fix sand duping
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index fca69da24c29c9215529e5a203d7ab282ec4b7f7..7f69260fc1286c243ecc46311e1188a465f9d481 100644
|
||||
index 072387303cf013876e6d13ccd6646e7f197bf7ac..77fa5b91ac5a65d2dce6195214c39dbff4aa6c8b 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -683,6 +683,11 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for end portal safe teleporting
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index ac0fc8b7184ba1b6d40261cc15d81a7936f728d4..57376b7c0d281a7950a69348b5aa869e89719232 100644
|
||||
index db3bdc0699143b9634226c1c371955ec4ac735c8..5bdafc37deac75cf6e332ba1094e375031713ca4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3223,7 +3223,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3221,7 +3221,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
|
||||
this.processPortalCooldown();
|
||||
|
||||
@@ -6,18 +6,18 @@ Subject: [PATCH] Burp delay, burp after eating food fills hunger bar
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 5260138c46ca499369ff9a1c4acccb594d2c431a..cbfa65a50cb07e825b62493668764ce9f2c4a3fd 100644
|
||||
index 63ab4eaf21d69ab40ea4d659322b429cb640db60..59a6836778ee11c66455c29a4dbbe94d6940c812 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -184,6 +184,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -182,6 +182,7 @@ public abstract class Player extends LivingEntity {
|
||||
public boolean affectsSpawning = true; // Paper - Affects Spawning API
|
||||
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
|
||||
// Paper end
|
||||
public int sixRowEnderchestSlotCount = -1; // Purpur
|
||||
+ public int burpDelay = 0; // Purpur
|
||||
|
||||
// CraftBukkit start
|
||||
public boolean fauxSleeping;
|
||||
@@ -259,6 +260,12 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -257,6 +258,12 @@ public abstract class Player extends LivingEntity {
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
@@ -30,7 +30,7 @@ index 5260138c46ca499369ff9a1c4acccb594d2c431a..cbfa65a50cb07e825b62493668764ce9
|
||||
this.noPhysics = this.isSpectator();
|
||||
if (this.isSpectator()) {
|
||||
this.setOnGround(false);
|
||||
@@ -2313,7 +2320,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -2311,7 +2318,7 @@ public abstract class Player extends LivingEntity {
|
||||
public ItemStack eat(Level world, ItemStack stack) {
|
||||
this.getFoodData().eat(stack.getItem(), stack);
|
||||
this.awardStat(Stats.ITEM_USED.get(stack.getItem()));
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow player join full server by permission
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 61a34f3e49b21254984011bc470d72c86d55dba1..0d75ccbf6c5cacd9ce2355d4dca2b1290a8da39f 100644
|
||||
index 1f17abac0d9ae19b2d3a5c28a19a6e8a69b6e380..d1afad129159d5ce7cf9530a7dfb6ed5b4fa25f3 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -755,7 +755,7 @@ public abstract class PlayerList {
|
||||
@@ -754,7 +754,7 @@ public abstract class PlayerList {
|
||||
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, io.papermc.paper.adventure.PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure
|
||||
} else {
|
||||
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null;
|
||||
|
||||
@@ -5,18 +5,18 @@ Subject: [PATCH] Add portal permission bypass
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 5631240aed1c032faeb291358e40180f8aa40e49..952bf54a96f3ee84059f13c5821af2cfafa05c60 100644
|
||||
index 59a6836778ee11c66455c29a4dbbe94d6940c812..f0e910a738d71a7759f41e6294e16db256c9c641 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -185,6 +185,7 @@ public abstract class Player extends LivingEntity {
|
||||
// Paper end
|
||||
@@ -183,6 +183,7 @@ public abstract class Player extends LivingEntity {
|
||||
public net.kyori.adventure.util.TriState flyingFallDamage = net.kyori.adventure.util.TriState.NOT_SET; // Paper - flying fall damage
|
||||
public int sixRowEnderchestSlotCount = -1; // Purpur
|
||||
public int burpDelay = 0; // Purpur
|
||||
+ public boolean canPortalInstant = false; // Purpur
|
||||
|
||||
// CraftBukkit start
|
||||
public boolean fauxSleeping;
|
||||
@@ -474,7 +475,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -472,7 +473,7 @@ public abstract class Player extends LivingEntity {
|
||||
|
||||
@Override
|
||||
public int getPortalWaitTime() {
|
||||
@@ -26,7 +26,7 @@ index 5631240aed1c032faeb291358e40180f8aa40e49..952bf54a96f3ee84059f13c5821af2cf
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
index c3dbcb317b7d366feb31f707ad1199c60169f07f..0a14e5d9922836d42a03b496023e76c98fccd824 100644
|
||||
index acbb64010cd59668aa1bcb52ff1220789cadb1d3..6c2e91b986099027d83aba85f14ae69cbc358348 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
|
||||
@@ -266,6 +266,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add uptime command
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
|
||||
index 77cced190bd287ff3f5bc8697f16b333da0bc786..bf51f5e414ab45e33efa4057ab251120290b43e1 100644
|
||||
index 9c335df92b0a6c7705c9def89ba5c320d2c8ed03..c2b8a653b01aa3e0856afa3e96555f5e8f0e81bd 100644
|
||||
--- a/src/main/java/net/minecraft/commands/Commands.java
|
||||
+++ b/src/main/java/net/minecraft/commands/Commands.java
|
||||
@@ -253,6 +253,7 @@ public class Commands {
|
||||
@@ -17,12 +17,12 @@ index 77cced190bd287ff3f5bc8697f16b333da0bc786..bf51f5e414ab45e33efa4057ab251120
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index fb3b7f0d6e1577f4bba4589dc454ed6d064bd49f..60d2f483de06ca661aad809425d8b52397273732 100644
|
||||
index efba2fa31b8f4b7dfe15a36ab8366d3267971a5d..1c5955a5ca94c55f573ba8a4cdc81308a4357fe6 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -294,6 +294,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -293,6 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
public OptionSet options;
|
||||
public org.bukkit.command.ConsoleCommandSender console;
|
||||
//public ConsoleReader reader; // Paper
|
||||
public static int currentTick = 0; // Paper - Further improve tick loop
|
||||
+ public static final long startTimeMillis = System.currentTimeMillis();
|
||||
public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>();
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Player ridable in water option
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index f262fc2069895b302073c09a58412b9e980e6660..dca769857dbf045bf2184f7761e9a09933858b51 100644
|
||||
index f0e910a738d71a7759f41e6294e16db256c9c641..712d4a9cae11f75ffce45c912bf14ff92fe4735e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -2041,6 +2041,11 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -2039,6 +2039,11 @@ public abstract class Player extends LivingEntity {
|
||||
return this.inventory.armor;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ index f262fc2069895b302073c09a58412b9e980e6660..dca769857dbf045bf2184f7761e9a099
|
||||
if (!this.isPassenger() && this.onGround() && !this.isInWater() && !this.isInPowderSnow) {
|
||||
if (this.getShoulderEntityLeft().isEmpty()) {
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 8bbc9eea77aa96ebd20c5901c03b35e66e79ce63..b2c7777ce1e8492d875c2575685d7668093c8eda 100644
|
||||
index 34360b9ed30b20159a6174ef5fc64c415b661f53..14164ef2a4204886c279897b89aca6e071005870 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -394,6 +394,7 @@ public class PurpurWorldConfig {
|
||||
|
||||
@@ -223,10 +223,10 @@ index 2bbc39c257965ad91ee360cdfcd3538a0f041c7e..91fbc0cfc84045e32a4ee16fba8164de
|
||||
+ // Purpur end - OfflinePlayer API
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index c7f3072ad6e54b55e896c8d99a16da9849fa8d3b..9306facdc8aa56674f896fa3ab3d2b54dc5a2f4b 100644
|
||||
index 4efb8e47a29249cbca52b637d6f721cf2a9afcfb..b2b000ab47897f9d8f47840ae95ef2db478f808c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -2646,6 +2646,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -2604,6 +2604,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
return this.getHandle().getAbilities().walkingSpeed * 2f;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,10 +51,10 @@ index acfacda5001ef188acfef8ac0d319d66ce1883fb..1d179e9485df78657ce67ab7ca4c4b1b
|
||||
private int maxStack = MAX_STACK;
|
||||
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index acf930d1d30e924177e49cde6d41a3ada1f16e5d..c1d1d5b561470e3ff1b75b41d83116ae05bef19e 100644
|
||||
index 555cffaf05116c7c0a3071c83221d10710be62e8..4e8ff16b5ca3cd2ddf2a44c7cd625fbf2311706d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1573,6 +1573,19 @@ public final class CraftServer implements Server {
|
||||
@@ -1572,6 +1572,19 @@ public final class CraftServer implements Server {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,18 +5,18 @@ Subject: [PATCH] UPnP Port Forwarding
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 2eb14b686effe22721b377c55f5dede050ddd616..dec396d4d8b603d1d5282d9273c0258964b27389 100644
|
||||
index 1c5955a5ca94c55f573ba8a4cdc81308a4357fe6..8934a7a211ea8dff1eff4fa2f7597b03a834e22d 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -309,6 +309,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
|
||||
public static long currentTickLong = 0L; // Paper - track current tick as a long
|
||||
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
public boolean lagging = false; // Purpur
|
||||
+ protected boolean upnp = false; // Purpur
|
||||
|
||||
public volatile Thread shutdownThread; // Paper
|
||||
public volatile boolean abnormalExit = false; // Paper
|
||||
@@ -975,6 +976,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -972,6 +973,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
MinecraftServer.LOGGER.info("Stopping server");
|
||||
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
|
||||
MinecraftTimings.stopServer(); // Paper
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable valid characters for usernames
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 51b49813ba1c2cae1dff5738bb43cedfbcfbc17f..2f590981a2d16377400ee6bbdeeb452daf42fc87 100644
|
||||
index 712d4a9cae11f75ffce45c912bf14ff92fe4735e..6e697e132bd654dd7c8a4170648bfd4aaedc47a4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -2420,6 +2420,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -2418,6 +2418,7 @@ public abstract class Player extends LivingEntity {
|
||||
}
|
||||
|
||||
public static boolean isValidUsername(String name) {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Give bee counts in beehives to Purpur clients
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index dec396d4d8b603d1d5282d9273c0258964b27389..d0391cfb2476ce6d045883bc99907d1c7ceb97ec 100644
|
||||
index 8934a7a211ea8dff1eff4fa2f7597b03a834e22d..6ba1ab3b5593d740e02b6314c9a599a0ef5120a1 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1065,6 +1065,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1062,6 +1062,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
|
||||
org.purpurmc.purpur.task.BossBarTask.stopAll(); // Purpur
|
||||
|
||||
@@ -22,10 +22,10 @@ index 673b3aee680bb8a2d20f96be661d5fa9c61f4ce3..19144edcc449dc2f992228612340cf21
|
||||
int i = this.repairPlayerItems(player, this.value);
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 0331e20162771510033d0bba3e37dcf59e48512d..3869c9dab4f33e5b3157cd8470c1ba9d16fb47b6 100644
|
||||
index 6e697e132bd654dd7c8a4170648bfd4aaedc47a4..208189cec91b298b5843473f065c5372ef67f20d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -631,7 +631,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -629,7 +629,7 @@ public abstract class Player extends LivingEntity {
|
||||
while (iterator.hasNext()) {
|
||||
Entity entity = (Entity) iterator.next();
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ index 9e3608650c44ef5fa724c3aea86603d7bd02429c..8c2c515f1b5f56bf1d6cf0c35d4f0fa7
|
||||
// Purpur end
|
||||
return damageSource.getLocalizedDeathMessage(this.mob);
|
||||
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
|
||||
index 33210bc66dcc5fdf03fbf438ce8734b31c4e7975..fc1fb63ee0e28b8d1f065bfad716b465cde5a69f 100644
|
||||
index 189664637d3d73b141c84823f0099bcda9b607e3..6248b4abae009540b6cc5dd006785d459f565f83 100644
|
||||
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
|
||||
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
|
||||
@@ -56,6 +56,8 @@ public class DamageSource {
|
||||
@@ -31,7 +31,7 @@ index 33210bc66dcc5fdf03fbf438ce8734b31c4e7975..fc1fb63ee0e28b8d1f065bfad716b465
|
||||
return "DamageSource (" + this.type().msgId() + ")";
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSources.java b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
||||
index 813916852774d6482791989252ecb67b945a8f84..4a5d2e263d2bbee96bde7012d3385fa33860bc1b 100644
|
||||
index 6a7fe56485f0da9094c816f9fd5aacf7e5946730..530a180a607636265c1b1244f05a772f7adfe7b6 100644
|
||||
--- a/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
||||
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSources.java
|
||||
@@ -273,5 +273,11 @@ public class DamageSources {
|
||||
@@ -68,13 +68,13 @@ index 77ae7b8ab24935d046cce1f8f7f476310876f9df..b683f3c2fcd37b17a732802738cd14be
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
|
||||
index 7702cd386247c1a850bb22ccf8c0724d5bec1020..29ec2f9a35dd73e8a6adf2e4edcfe543270520d8 100644
|
||||
index 0dc05919dfbbf73230505fcdc25d949b1602801c..996bd26e95e766ce4ca7e61d060881feb9dd4a89 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/pathfinder/WalkNodeEvaluator.java
|
||||
@@ -471,7 +471,7 @@ public class WalkNodeEvaluator extends NodeEvaluator {
|
||||
return BlockPathTypes.BLOCKED;
|
||||
} else {
|
||||
// Paper end
|
||||
// Paper end - Do not load chunks during pathfinding
|
||||
- if (blockState.is(Blocks.CACTUS) || blockState.is(Blocks.SWEET_BERRY_BUSH)) {
|
||||
+ if (blockState.is(Blocks.CACTUS) || blockState.is(Blocks.SWEET_BERRY_BUSH) || blockState.is(Blocks.STONECUTTER)) { // Purpur
|
||||
return BlockPathTypes.DANGER_OTHER;
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 38d842bc0fb7d9c39a3673983a643248e9563fe2..8af705619e8a784c6128d7ff4838eeae56e59821 100644
|
||||
index b27e965005b64c817588b75d467913c27ab1e31b..354ef8d61668e5532f60034291bf8f0374f8ac52 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -2415,6 +2415,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
@@ -2373,6 +2373,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
|
||||
}
|
||||
|
||||
|
||||
@@ -7,28 +7,28 @@ Paper patches RNG maniplulation by using a shared (and locked) random source.
|
||||
This comes with a performance gain, but technical players may prefer the ability to manipulate RNG.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 57376b7c0d281a7950a69348b5aa869e89719232..376acce7e0fd5dedfdf10fa94ced41bc473b7815 100644
|
||||
index 5bdafc37deac75cf6e332ba1094e375031713ca4..e0929385a6b218ea654f552bed531f116d629274 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -599,7 +599,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
this.bb = Entity.INITIAL_AABB;
|
||||
this.stuckSpeedMultiplier = Vec3.ZERO;
|
||||
this.nextStep = 1.0F;
|
||||
- this.random = SHARED_RANDOM; // Paper
|
||||
+ this.random = world == null || world.purpurConfig.entitySharedRandom ? SHARED_RANDOM : RandomSource.create(); // Paper // Purpur
|
||||
- this.random = SHARED_RANDOM; // Paper - Share random for entities to make them more random
|
||||
+ this.random = world == null || world.purpurConfig.entitySharedRandom ? SHARED_RANDOM : RandomSource.create(); // Paper - Share random for entities to make them more random // Purpur
|
||||
this.remainingFireTicks = -this.getFireImmuneTicks();
|
||||
this.fluidHeight = new Object2DoubleArrayMap(2);
|
||||
this.fluidOnEyes = new HashSet();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
index 88c238e492b1081d1a64a3b6f05d7baa17e5d8c9..dd7f2beabf0edad4143ac2365ac04a22edf1f75e 100644
|
||||
index 2ec8a55650beff50676759617896da2db09dddc0..cba0823bfd10a3e7fd3a7548b9cc11a77ce07ce7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Squid.java
|
||||
@@ -44,7 +44,7 @@ public class Squid extends WaterAnimal {
|
||||
|
||||
public Squid(EntityType<? extends Squid> type, Level world) {
|
||||
super(type, world);
|
||||
- //this.random.setSeed((long)this.getId()); // Paper - we set the random to shared, do not clobber the seed
|
||||
+ if (!world.purpurConfig.entitySharedRandom) this.random.setSeed((long) this.getId()); // Paper - we set the random to shared, do not clobber the seed // Purpur
|
||||
- //this.random.setSeed((long)this.getId()); // Paper - Share random for entities to make them more random
|
||||
+ if (!world.purpurConfig.entitySharedRandom) this.random.setSeed((long) this.getId()); // Paper - Share random for entities to make them more random // Purpur
|
||||
this.tentacleSpeed = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Allow custom ChatDecorators
|
||||
Requires NMS to utilize. I'll write an API for this once our upstreams calm down with the changes.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index b254f5be452fd9a8661124645551a1aa0c5ef23e..6cfdb98969b1461912c857b6b8ae38f532f3bc9e 100644
|
||||
index 6ba1ab3b5593d740e02b6314c9a599a0ef5120a1..add9d9900908ea8ee7787f38d37d8626840d4a6b 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -2845,6 +2845,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2843,6 +2843,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon(true).setNameFormat("Async Chat Thread - #%d").setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build()); // Paper
|
||||
|
||||
public ChatDecorator getChatDecorator() {
|
||||
|
||||
@@ -56,10 +56,10 @@ index 3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644..166cd0f8e72189d10e56cd7bc095409a
|
||||
} catch (Exception exception) {
|
||||
label25:
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35ead16f96e 100644
|
||||
index add9d9900908ea8ee7787f38d37d8626840d4a6b..22659bfb081a022ed0f7ffb67293e3584ba7fff4 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1427,7 +1427,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1425,7 +1425,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
try {
|
||||
for (;;) {
|
||||
boolean moreTasks = this.tickMidTickTasks();
|
||||
@@ -1454,7 +1454,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1452,7 +1452,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
@@ -77,7 +77,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
}
|
||||
}
|
||||
// Paper end - execute chunk tasks mid tick
|
||||
@@ -1529,15 +1529,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1527,15 +1527,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public void tickServer(BooleanSupplier shouldKeepTicking) {
|
||||
@@ -96,7 +96,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
// Paper end
|
||||
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
|
||||
|
||||
@@ -1574,9 +1574,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1572,9 +1572,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// Paper end - Incremental chunk and player saving
|
||||
io.papermc.paper.util.CachedLists.reset(); // Paper
|
||||
// Paper start - move executeAll() into full server tick timing
|
||||
@@ -108,7 +108,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
// Paper end
|
||||
// Paper start - Server Tick Events
|
||||
long endTime = System.nanoTime();
|
||||
@@ -1601,7 +1601,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1599,7 +1599,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.logTickTime(l - i);
|
||||
this.profiler.pop();
|
||||
org.spigotmc.WatchdogThread.tick(); // Spigot
|
||||
@@ -117,7 +117,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
}
|
||||
|
||||
private int computeNextAutosaveInterval() {
|
||||
@@ -1663,9 +1663,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1661,9 +1661,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.getPlayerList().getPlayers().forEach((entityplayer) -> {
|
||||
entityplayer.connection.suspendFlushing();
|
||||
});
|
||||
@@ -129,7 +129,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
// Paper start - Folia scheduler API
|
||||
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
|
||||
getAllLevels().forEach(level -> {
|
||||
@@ -1682,21 +1682,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1680,21 +1680,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// Paper end - Folia scheduler API
|
||||
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
||||
this.profiler.push("commandFunctions");
|
||||
@@ -156,7 +156,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
// Send time updates to everyone, it will get the right time from the world the player is in.
|
||||
// Paper start - Perf: Optimize time updates
|
||||
for (final ServerLevel level : this.getAllLevels()) {
|
||||
@@ -1716,7 +1716,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1714,7 +1714,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
}
|
||||
// Paper end - Perf: Optimize time updates
|
||||
@@ -165,7 +165,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
|
||||
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
|
||||
Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; move down
|
||||
@@ -1742,14 +1742,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1740,14 +1740,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.profiler.push("tick");
|
||||
|
||||
try {
|
||||
@@ -182,7 +182,7 @@ index 18e69effb48634dfc28061b5e0a669a8bb5ba002..1169088d9aa970e834ddfb43bf3be35e
|
||||
} catch (Throwable throwable) {
|
||||
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
|
||||
|
||||
@@ -1764,24 +1764,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1762,24 +1762,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
|
||||
this.profiler.popPush("connection");
|
||||
@@ -236,10 +236,10 @@ index 5a4446c09ef016e9dfb16438089a6880f7da68d8..ef08907f151c660d6c069b276f9291e6
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e0627c512a7 100644
|
||||
index 28d05b46952397bb664a1c8dae71816cafee89ce..c6c4d6cf59742b555af5469eaf751ebef753e249 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -547,15 +547,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -540,15 +540,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
protected void tick(BooleanSupplier shouldKeepTicking) {
|
||||
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
|
||||
|
||||
@@ -259,7 +259,7 @@ index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e06
|
||||
}
|
||||
|
||||
gameprofilerfiller.pop();
|
||||
@@ -1151,24 +1151,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1141,24 +1141,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
|
||||
// Paper start - optimised tracker
|
||||
private final void processTrackQueue() {
|
||||
@@ -288,7 +288,7 @@ index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e06
|
||||
}
|
||||
}
|
||||
// Paper end - optimised tracker
|
||||
@@ -1183,7 +1183,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1173,7 +1173,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
List<ServerPlayer> list = Lists.newArrayList();
|
||||
List<ServerPlayer> list1 = this.level.players();
|
||||
ObjectIterator objectiterator = this.entityMap.values().iterator();
|
||||
@@ -297,7 +297,7 @@ index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e06
|
||||
|
||||
ChunkMap.TrackedEntity playerchunkmap_entitytracker;
|
||||
|
||||
@@ -1208,17 +1208,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1198,17 +1198,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
playerchunkmap_entitytracker.serverEntity.sendChanges();
|
||||
}
|
||||
}
|
||||
@@ -319,23 +319,23 @@ index b72969b3bc4319387e3946ea01c5b05acd8a87cb..18a42d8c8c038cb94e06909d96d05e06
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80e377b073 100644
|
||||
index 097f6eb96c2df203565a0c50aba6221e67a7e026..13ba576ad447a8bbc0712126ec86524f5bbd9a6d 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -296,10 +296,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -281,10 +281,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
if (!completablefuture.isDone()) { // Paper
|
||||
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system
|
||||
// Paper end
|
||||
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - Add debug for sync chunk loads
|
||||
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x, z); // Paper - Add debug for sync chunk loads
|
||||
- this.level.timings.syncChunkLoad.startTiming(); // Paper
|
||||
+ //this.level.timings.syncChunkLoad.startTiming(); // Paper // Purpur
|
||||
chunkproviderserver_b.managedBlock(completablefuture::isDone);
|
||||
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system
|
||||
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - rewrite chunk system
|
||||
- this.level.timings.syncChunkLoad.stopTiming(); // Paper
|
||||
+ //this.level.timings.syncChunkLoad.stopTiming(); // Paper // Purpur
|
||||
} // Paper
|
||||
ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
|
||||
return ichunkaccess1;
|
||||
@@ -448,17 +448,17 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -433,17 +433,17 @@ public class ServerChunkCache extends ChunkSource {
|
||||
|
||||
public void save(boolean flush) {
|
||||
this.runDistanceManagerUpdates();
|
||||
@@ -357,7 +357,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
|
||||
}
|
||||
// Paper end - Incremental chunk and player saving
|
||||
|
||||
@@ -495,23 +495,23 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -480,23 +480,23 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@Override
|
||||
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
|
||||
this.level.getProfiler().push("purge");
|
||||
@@ -387,7 +387,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
|
||||
this.level.getProfiler().pop();
|
||||
this.clearCache();
|
||||
}
|
||||
@@ -527,14 +527,14 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -512,14 +512,14 @@ public class ServerChunkCache extends ChunkSource {
|
||||
gameprofilerfiller.push("pollingChunks");
|
||||
gameprofilerfiller.push("filteringLoadedChunks");
|
||||
// Paper - optimise chunk tick iteration
|
||||
@@ -404,7 +404,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
|
||||
int k = this.distanceManager.getNaturalSpawnChunkCount();
|
||||
// Paper start - Optional per player mob spawns
|
||||
int naturalSpawnChunkCount = k;
|
||||
@@ -564,7 +564,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -549,7 +549,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
// Pufferfish end
|
||||
}
|
||||
// Paper end - Optional per player mob spawns
|
||||
@@ -413,7 +413,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
|
||||
|
||||
// this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
|
||||
gameprofilerfiller.popPush("spawnAndTick");
|
||||
@@ -673,19 +673,19 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -658,19 +658,19 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
}
|
||||
// Paper end - optimise chunk tick iteration
|
||||
@@ -437,7 +437,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
|
||||
// Paper start - optimise chunk tick iteration
|
||||
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
|
||||
it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
|
||||
@@ -699,7 +699,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -684,7 +684,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
}
|
||||
// Paper end - optimise chunk tick iteration
|
||||
@@ -447,7 +447,7 @@ index ad8e79c72841ff80f8af3580d2cdb89c13f6d688..e828f3d14af21318a716b9eba4b9bf80
|
||||
gameprofilerfiller.pop();
|
||||
gameprofilerfiller.pop();
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 979448b2260484375c70cb83d65be25914a2ab76..11a457103c59d230617e404b5523691ea493da96 100644
|
||||
index 009d077f979d5ae85b359f3829038015af347429..b4b256721b7a5d25deec717123501a163fcfd8fe 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -866,7 +866,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -521,7 +521,7 @@ index 979448b2260484375c70cb83d65be25914a2ab76..11a457103c59d230617e404b5523691e
|
||||
this.tickBlockEntities();
|
||||
}
|
||||
@@ -1099,7 +1099,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
} // Paper
|
||||
} // Paper - Option to disable ice and snow
|
||||
|
||||
gameprofilerfiller.popPush("tickBlocks");
|
||||
- timings.chunkTicksBlocks.startTiming(); // Paper
|
||||
@@ -630,7 +630,7 @@ index 979448b2260484375c70cb83d65be25914a2ab76..11a457103c59d230617e404b5523691e
|
||||
|
||||
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 962dd813a9422ae14f7a149c605c7df4fee61f91..ecd94a7927da0f7a048c6628a9edb01d39ee2ba7 100644
|
||||
index 7ac11a52e88248de227ab7b85260be9ed5654739..de61e915475a1b3b6faba16673ac1f271527a1b4 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2442,7 +2442,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -661,10 +661,10 @@ index 962dd813a9422ae14f7a149c605c7df4fee61f91..ecd94a7927da0f7a048c6628a9edb01d
|
||||
}
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 10723caec1b099596607d23c8a32691765803181..061bdd934f31c9e1d9a37f7831eb1f19d0e46805 100644
|
||||
index d1afad129159d5ce7cf9530a7dfb6ed5b4fa25f3..b230739cf929c8f2b51a812fffe54be343ce3e05 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1274,7 +1274,7 @@ public abstract class PlayerList {
|
||||
@@ -1273,7 +1273,7 @@ public abstract class PlayerList {
|
||||
|
||||
public void saveAll(int interval) {
|
||||
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
|
||||
@@ -673,7 +673,7 @@ index 10723caec1b099596607d23c8a32691765803181..061bdd934f31c9e1d9a37f7831eb1f19
|
||||
int numSaved = 0;
|
||||
long now = MinecraftServer.currentTick;
|
||||
for (int i = 0; i < this.players.size(); ++i) {
|
||||
@@ -1285,7 +1285,7 @@ public abstract class PlayerList {
|
||||
@@ -1284,7 +1284,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
// Paper end - Incremental chunk and player saving
|
||||
}
|
||||
@@ -732,7 +732,7 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..7094701d213c73ba47ace806962244c1
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index cf9b76f596409803904f53b8d8fb90888d5fcb95..061a546ff8421d16fa37cf2337cded4bdfc943f3 100644
|
||||
index af6def325c97b5a71a671a401d02c1f43b8acd96..ef8b596a02970c514fc6e5e0fb7ded76d82240ac 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -1317,15 +1317,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -764,7 +764,7 @@ index cf9b76f596409803904f53b8d8fb90888d5fcb95..061a546ff8421d16fa37cf2337cded4b
|
||||
co.aikar.timings.TimingHistory.tileEntityTicks += this.blockEntityTickers.size(); // Paper
|
||||
gameprofilerfiller.pop();
|
||||
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
index 00b965de947cb13a178061278d1ffa4342e8e065..f2f778d876703c06e0d1bfd7a35adde35abe4939 100644
|
||||
index 96fc603c2fccc1d9610248b2116d35696bc65e4e..3d99667fa297ea15c5d3a0526a846ce177a5037a 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
@@ -133,7 +133,7 @@ public final class NaturalSpawner {
|
||||
@@ -786,7 +786,7 @@ index 00b965de947cb13a178061278d1ffa4342e8e065..f2f778d876703c06e0d1bfd7a35adde3
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
index c3fb622845770bcee9ddd6ebbeee174b06ee16eb..134d2d56af71aceb1ca33d7bb708124655c5d319 100644
|
||||
index 5fab6909bd2ee303f49b7e667617bcae608e82d7..8c0df10efd59594c63cca2a1c22386acf17e5299 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
@@ -799,7 +799,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
@@ -817,7 +817,7 @@ index c3fb622845770bcee9ddd6ebbeee174b06ee16eb..134d2d56af71aceb1ca33d7bb7081246
|
||||
|
||||
if (this.blockEntity.getType().isValid(iblockdata)) {
|
||||
@@ -1199,7 +1199,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
// Paper end
|
||||
// Paper end - Prevent block entity and entity crashes
|
||||
// Spigot start
|
||||
} finally {
|
||||
- this.blockEntity.tickTimer.stopTiming();
|
||||
@@ -903,7 +903,7 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..d3ec817e95628f1fc8be4a29c9a0f13c
|
||||
// Paper end - add timings for scoreboard search
|
||||
}
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index 1085d90f6db968760a52f9d00a25299618264c5f..9113c8ebff5e71f859a19f024969582052c57546 100644
|
||||
index f9e3f4e15719ed9284ec315b8a1ef63dc242e009..2e9aed328e576abbe216fdb2071c13421e6645b8 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -170,7 +170,7 @@ public class ActivationRange
|
||||
@@ -915,7 +915,7 @@ index 1085d90f6db968760a52f9d00a25299618264c5f..9113c8ebff5e71f859a19f0249695820
|
||||
final int miscActivationRange = world.spigotConfig.miscActivationRange;
|
||||
final int raiderActivationRange = world.spigotConfig.raiderActivationRange;
|
||||
final int animalActivationRange = world.spigotConfig.animalActivationRange;
|
||||
@@ -250,7 +250,7 @@ public class ActivationRange
|
||||
@@ -249,7 +249,7 @@ public class ActivationRange
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
|
||||
@@ -89,10 +89,10 @@ index 821dc4aeaf48460000682604fba51b340b9738e7..3aa2ce6a2a3d3cdfc372a60419a09f49
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8fd7811642 100644
|
||||
index 22659bfb081a022ed0f7ffb67293e3584ba7fff4..101c57df8b77827b78dd5423715f784da645b38e 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -344,13 +344,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -341,13 +341,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
public MinecraftServer(OptionSet options, WorldLoader.DataLoadContext worldLoader, Thread thread, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PackRepository resourcepackrepository, WorldStem worldstem, Proxy proxy, DataFixer datafixer, Services services, ChunkProgressListenerFactory worldloadlistenerfactory) {
|
||||
super("Server");
|
||||
SERVER = this; // Paper - better singleton
|
||||
@@ -112,7 +112,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
this.random = RandomSource.create();
|
||||
this.port = -1;
|
||||
this.levels = Maps.newLinkedHashMap();
|
||||
@@ -969,9 +969,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -966,9 +966,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
// Paper end
|
||||
// CraftBukkit end
|
||||
@@ -124,7 +124,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
|
||||
MinecraftServer.LOGGER.info("Stopping server");
|
||||
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
|
||||
@@ -1222,20 +1222,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1219,20 +1219,20 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
boolean flag = i == 0L;
|
||||
|
||||
@@ -150,7 +150,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
|
||||
// Pufferfish start - tps catchup
|
||||
@@ -1256,8 +1256,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1253,8 +1253,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.tickRateManager.endTickWork();
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
this.isReady = true;
|
||||
JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis);
|
||||
}
|
||||
@@ -1482,7 +1482,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1480,7 +1480,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public void doRunTask(TickTask ticktask) { // CraftBukkit - decompile error
|
||||
@@ -170,7 +170,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
super.doRunTask(ticktask);
|
||||
}
|
||||
|
||||
@@ -1555,7 +1555,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1553,7 +1553,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
if (playerSaveInterval < 0) {
|
||||
playerSaveInterval = autosavePeriod;
|
||||
}
|
||||
@@ -179,7 +179,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0;
|
||||
try {
|
||||
this.isSaving = true;
|
||||
@@ -1570,7 +1570,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1568,7 +1568,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
} finally {
|
||||
this.isSaving = false;
|
||||
}
|
||||
@@ -188,7 +188,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
// Paper end - Incremental chunk and player saving
|
||||
io.papermc.paper.util.CachedLists.reset(); // Paper
|
||||
// Paper start - move executeAll() into full server tick timing
|
||||
@@ -1583,7 +1583,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1581,7 +1581,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
|
||||
new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent();
|
||||
// Paper end - Server Tick Events
|
||||
@@ -197,7 +197,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
long j = Util.getNanos() - i;
|
||||
int k = this.tickCount % 100;
|
||||
|
||||
@@ -1599,7 +1599,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1597,7 +1597,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
tickTimes60s.add(this.tickCount, j);
|
||||
// Paper end - Add tick times API and /mspt command
|
||||
this.logTickTime(l - i);
|
||||
@@ -206,7 +206,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
org.spigotmc.WatchdogThread.tick(); // Spigot
|
||||
//co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTiming(); // Paper // Purpur
|
||||
}
|
||||
@@ -1681,11 +1681,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1679,11 +1679,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
});
|
||||
// Paper end - Folia scheduler API
|
||||
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
||||
@@ -220,7 +220,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
//Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down
|
||||
|
||||
// CraftBukkit start
|
||||
@@ -1728,18 +1728,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1726,18 +1726,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||
worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
|
||||
|
||||
@@ -244,7 +244,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
|
||||
try {
|
||||
//worldserver.timings.doTick.startTiming(); // Spigot // Purpur
|
||||
@@ -1757,17 +1757,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1755,17 +1755,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
|
||||
@@ -266,7 +266,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
//MinecraftTimings.playerListTimer.startTiming(); // Spigot // Paper // Purpur
|
||||
this.playerList.tick();
|
||||
//MinecraftTimings.playerListTimer.stopTiming(); // Spigot // Paper // Purpur
|
||||
@@ -1775,7 +1775,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1773,7 +1773,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
GameTestTicker.SINGLETON.tick();
|
||||
}
|
||||
|
||||
@@ -275,7 +275,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
|
||||
//MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper // Purpur
|
||||
for (int i = 0; i < this.tickables.size(); ++i) {
|
||||
@@ -1783,7 +1783,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1781,7 +1781,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
//MinecraftTimings.tickablesTimer.stopTiming(); // Spigot // Paper // Purpur
|
||||
|
||||
@@ -284,7 +284,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
iterator = this.playerList.getPlayers().iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -1793,7 +1793,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1791,7 +1791,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
entityplayer.connection.resumeFlushing();
|
||||
}
|
||||
|
||||
@@ -293,7 +293,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
}
|
||||
|
||||
private void synchronizeTime(ServerLevel world) {
|
||||
@@ -1801,7 +1801,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1799,7 +1799,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public void forceTimeSynchronization() {
|
||||
@@ -302,7 +302,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
Iterator iterator = this.getAllLevels().iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -1810,7 +1810,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1808,7 +1808,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.synchronizeTime(worldserver);
|
||||
}
|
||||
|
||||
@@ -311,7 +311,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
}
|
||||
|
||||
public boolean isNetherEnabled() {
|
||||
@@ -2474,7 +2474,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2472,7 +2472,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public ProfilerFiller getProfiler() {
|
||||
@@ -320,7 +320,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
return this.profiler;
|
||||
}
|
||||
|
||||
@@ -2714,7 +2714,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2712,7 +2712,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// CraftBukkit end
|
||||
|
||||
private void startMetricsRecordingTick() {
|
||||
@@ -329,7 +329,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
this.metricsRecorder = ActiveMetricsRecorder.createStarted(new ServerMetricsSamplersProvider(Util.timeSource, this.isDedicatedServer()), Util.timeSource, Util.ioPool(), new MetricsPersister("server"), this.onMetricsRecordingStopped, (path) -> {
|
||||
this.executeBlocking(() -> {
|
||||
this.saveDebugReport(path.resolve("server"));
|
||||
@@ -2724,40 +2724,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2722,40 +2722,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.willStartRecordingMetrics = false;
|
||||
}
|
||||
|
||||
@@ -382,7 +382,7 @@ index 1169088d9aa970e834ddfb43bf3be35ead16f96e..9424b1383681b9f875af1a4245a58b8f
|
||||
}
|
||||
|
||||
public Path getWorldPath(LevelResource worldSavePath) {
|
||||
@@ -2806,15 +2806,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2804,15 +2804,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public boolean isTimeProfilerRunning() {
|
||||
@@ -448,10 +448,10 @@ index df0c15f6b5b2224d53e4f8fad42b9a1e5f33dc25..5dd0dcb47211cec69189115bf4eab1df
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index 18a42d8c8c038cb94e06909d96d05e0627c512a7..206808a14c03b36c7974dea7c3d0bfda38cabfcd 100644
|
||||
index c6c4d6cf59742b555af5469eaf751ebef753e249..06554a000da1f6ba7360fa907deeead7341b09ea 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -545,20 +545,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -538,20 +538,20 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
}
|
||||
|
||||
protected void tick(BooleanSupplier shouldKeepTicking) {
|
||||
@@ -477,19 +477,10 @@ index 18a42d8c8c038cb94e06909d96d05e0627c512a7..206808a14c03b36c7974dea7c3d0bfda
|
||||
|
||||
public boolean hasWork() {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86c90ce0fa 100644
|
||||
index 13ba576ad447a8bbc0712126ec86524f5bbd9a6d..897ad16faffcf10a352a49c87d1d5f44f59d5491 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -73,7 +73,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
final it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<LevelChunk> loadedChunkMap = new it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap<>(8192, 0.5f);
|
||||
|
||||
private final LevelChunk[] lastLoadedChunks = new LevelChunk[4 * 4];
|
||||
-
|
||||
+
|
||||
public boolean firstRunSpawnCounts = true; // Pufferfish
|
||||
public final java.util.concurrent.atomic.AtomicBoolean _pufferfish_spawnCountsReady = new java.util.concurrent.atomic.AtomicBoolean(false); // Pufferfish - optimize countmobs
|
||||
|
||||
@@ -277,16 +277,16 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -264,16 +264,16 @@ public class ServerChunkCache extends ChunkSource {
|
||||
return ifLoaded;
|
||||
}
|
||||
// Paper end - Perf: Optimise getChunkAt calls for loaded chunks
|
||||
@@ -509,7 +500,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> completablefuture = this.getChunkFutureMainThread(x, z, leastStatus, create, true); // Paper
|
||||
ServerChunkCache.MainThreadExecutor chunkproviderserver_b = this.mainThreadProcessor;
|
||||
|
||||
@@ -482,24 +482,24 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -467,24 +467,24 @@ public class ServerChunkCache extends ChunkSource {
|
||||
// CraftBukkit start - modelled on below
|
||||
public void purgeUnload() {
|
||||
if (true) return; // Paper - tickets will be removed later, this behavior isn't really well accounted for by the chunk system
|
||||
@@ -539,7 +530,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
if (tickChunks) {
|
||||
//this.level.timings.chunks.startTiming(); // Paper - timings // Purpur
|
||||
this.chunkMap.level.playerChunkLoader.tick(); // Paper - replace player chunk loader - this is mostly required to account for view distance changes
|
||||
@@ -509,10 +509,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -494,10 +494,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
|
||||
//this.level.timings.doChunkUnload.startTiming(); // Spigot // Purpur
|
||||
@@ -552,7 +543,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
this.clearCache();
|
||||
}
|
||||
|
||||
@@ -522,10 +522,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -507,10 +507,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
|
||||
this.lastInhabitedUpdate = i;
|
||||
if (!this.level.isDebug()) {
|
||||
@@ -566,7 +557,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
// Paper - optimise chunk tick iteration
|
||||
//if (this.level.getServer().tickRateManager().runsNormally()) this.level.timings.chunkTicks.startTiming(); // Paper // Purpur
|
||||
|
||||
@@ -533,7 +533,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -518,7 +518,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
|
||||
this.level.resetIceAndSnowTick(); // Pufferfish - reset ice & snow tick random
|
||||
if (this.level.getServer().tickRateManager().runsNormally()) {
|
||||
@@ -575,7 +566,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
//this.level.timings.countNaturalMobs.startTiming(); // Paper - timings // Purpur
|
||||
int k = this.distanceManager.getNaturalSpawnChunkCount();
|
||||
// Paper start - Optional per player mob spawns
|
||||
@@ -567,7 +567,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -552,7 +552,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
// this.level.timings.countNaturalMobs.stopTiming(); // Paper - timings // Purpur
|
||||
|
||||
// this.lastSpawnState = spawnercreature_d; // Pufferfish - this is managed asynchronously
|
||||
@@ -584,7 +575,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
|
||||
|
||||
// Paper start - optimise chunk tick iteration
|
||||
@@ -675,7 +675,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -660,7 +660,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
// Paper end - optimise chunk tick iteration
|
||||
// this.level.timings.chunkTicks.stopTiming(); // Paper // Purpur
|
||||
|
||||
@@ -593,7 +584,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
if (flag) {
|
||||
//try (co.aikar.timings.Timing ignored = this.level.timings.miscMobSpawning.startTiming()) { // Paper - timings // Purpur
|
||||
this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies);
|
||||
@@ -683,7 +683,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -668,7 +668,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -602,7 +593,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
// Paper - optimise chunk tick iteration
|
||||
//this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing // Purpur
|
||||
// Paper start - optimise chunk tick iteration
|
||||
@@ -701,10 +701,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -686,8 +686,8 @@ public class ServerChunkCache extends ChunkSource {
|
||||
// Paper end - optimise chunk tick iteration
|
||||
//this.level.timings.broadcastChunkUpdates.stopTiming(); // Paper - timing // Purpur
|
||||
// Paper - optimise chunk tick iteration
|
||||
@@ -611,12 +602,9 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
+ //gameprofilerfiller.pop(); // Purpur
|
||||
+ //gameprofilerfiller.pop(); // Purpur
|
||||
}
|
||||
-
|
||||
+
|
||||
|
||||
// Pufferfish start - optimize mob spawning
|
||||
if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) {
|
||||
for (ServerPlayer player : this.level.players) {
|
||||
@@ -908,7 +908,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -893,7 +893,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
|
||||
@Override
|
||||
protected void doRunTask(Runnable task) {
|
||||
@@ -626,7 +614,7 @@ index e828f3d14af21318a716b9eba4b9bf80e377b073..a5067485fb6683e3255681a9c5a6df86
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 11a457103c59d230617e404b5523691ea493da96..587899c4fc3257436f05d08b548016d216d32774 100644
|
||||
index b4b256721b7a5d25deec717123501a163fcfd8fe..75b3de5c1e26815aa04dba3f09f2ef7807767154 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -824,16 +824,16 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -768,7 +756,7 @@ index 11a457103c59d230617e404b5523691ea493da96..587899c4fc3257436f05d08b548016d2
|
||||
+ //gameprofilerfiller.push("thunder"); // Purpur
|
||||
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
|
||||
|
||||
if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - disable thunder // Pufferfish - replace random with shouldDoLightning
|
||||
if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && /*this.random.nextInt(this.spigotConfig.thunderChance) == 0 &&*/ chunk.shouldDoLightning(this.random)) { // Spigot // Paper - Option to disable thunder // Pufferfish - replace random with shouldDoLightning
|
||||
@@ -1085,7 +1084,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
}
|
||||
@@ -776,11 +764,11 @@ index 11a457103c59d230617e404b5523691ea493da96..587899c4fc3257436f05d08b548016d2
|
||||
- gameprofilerfiller.popPush("iceandsnow");
|
||||
+ //gameprofilerfiller.popPush("iceandsnow"); // Purpur
|
||||
|
||||
if (!this.paperConfig().environment.disableIceAndSnow) { // Paper
|
||||
if (!this.paperConfig().environment.disableIceAndSnow) { // Paper - Option to disable ice and snow
|
||||
for (int l = 0; l < randomTickSpeed; ++l) {
|
||||
@@ -1098,7 +1097,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
} // Paper
|
||||
} // Paper - Option to disable ice and snow
|
||||
|
||||
- gameprofilerfiller.popPush("tickBlocks");
|
||||
+ //gameprofilerfiller.popPush("tickBlocks"); // Purpur
|
||||
@@ -848,7 +836,7 @@ index 11a457103c59d230617e404b5523691ea493da96..587899c4fc3257436f05d08b548016d2
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 161e24ca04c0aae21ee34e79baca6af0a356185a..52be525a4fdaa7d222ba5ab4a6a8d6ccf938a7b1 100644
|
||||
index 620b7937b03ba178b3fc70b542962b12ce0d3bac..a3b3d85ff56a050219d2997955d088724132e988 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1240,7 +1240,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -1107,7 +1095,7 @@ index 2e6e8eac987c4ef6b2dcd3de592d8a51d2b29792..863343a87fe34d72f04af89d75268b47
|
||||
};
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc9114161128c5a 100644
|
||||
index e0929385a6b218ea654f552bed531f116d629274..b60796b736d2992a192b58b98a2becbf9f5ac9d1 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -851,7 +851,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1128,7 +1116,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
}
|
||||
|
||||
public void setSharedFlagOnFire(boolean onFire) {
|
||||
@@ -1131,7 +1131,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1132,7 +1132,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1137,7 +1125,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) {
|
||||
movement = movement.multiply(this.stuckSpeedMultiplier);
|
||||
this.stuckSpeedMultiplier = Vec3.ZERO;
|
||||
@@ -1140,7 +1140,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1141,7 +1141,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
// Paper start - ignore movement changes while inactive.
|
||||
if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) {
|
||||
setDeltaMovement(Vec3.ZERO);
|
||||
@@ -1146,7 +1134,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
return;
|
||||
}
|
||||
// Paper end
|
||||
@@ -1161,8 +1161,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1162,8 +1162,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z);
|
||||
}
|
||||
|
||||
@@ -1157,7 +1145,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
boolean flag = !Mth.equal(movement.x, vec3d1.x);
|
||||
boolean flag1 = !Mth.equal(movement.z, vec3d1.z);
|
||||
|
||||
@@ -1181,7 +1181,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1182,7 +1182,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
|
||||
this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition);
|
||||
if (this.isRemoved()) {
|
||||
@@ -1166,7 +1154,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
} else {
|
||||
if (this.horizontalCollision) {
|
||||
Vec3 vec3d2 = this.getDeltaMovement();
|
||||
@@ -1319,7 +1319,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1320,7 +1320,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
this.setRemainingFireTicks(-this.getFireImmuneTicks());
|
||||
}
|
||||
|
||||
@@ -1175,7 +1163,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
}
|
||||
}
|
||||
// Paper start - detailed watchdog information
|
||||
@@ -3190,7 +3190,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3188,7 +3188,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
ServerLevel worldserver1 = minecraftserver.getLevel(resourcekey);
|
||||
|
||||
if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit
|
||||
@@ -1184,7 +1172,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
this.portalTime = i;
|
||||
// Paper start - Add EntityPortalReadyEvent
|
||||
io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER);
|
||||
@@ -3208,7 +3208,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3206,7 +3206,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
} // Paper - Add EntityPortalReadyEvent
|
||||
// CraftBukkit end
|
||||
@@ -1193,7 +1181,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
}
|
||||
|
||||
this.isInsidePortal = false;
|
||||
@@ -3683,14 +3683,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3681,14 +3681,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
// Paper end - Fix item duplication and teleport issues
|
||||
if (this.level() instanceof ServerLevel && !this.isRemoved()) {
|
||||
@@ -1210,7 +1198,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
PortalInfo shapedetectorshape = (location == null) ? this.findDimensionEntryPoint(worldserver) : new PortalInfo(new Vec3(location.x(), location.y(), location.z()), Vec3.ZERO, this.yRot, this.xRot, worldserver, null); // CraftBukkit
|
||||
|
||||
if (shapedetectorshape == null) {
|
||||
@@ -3729,7 +3729,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3727,7 +3727,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
this.unRide();
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -1219,7 +1207,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
// Paper start - Fix item duplication and teleport issues
|
||||
if (this instanceof Mob) {
|
||||
((Mob) this).dropLeash(true, true); // Paper drop lead
|
||||
@@ -3756,10 +3756,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -3754,10 +3754,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
|
||||
this.removeAfterChangingDimensions();
|
||||
@@ -1233,7 +1221,7 @@ index d3134fe3c14a4fe153cea6b17a3764bfc891620a..dfc36d46bc6b5a4fc5d48f54ddc91141
|
||||
}
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index fae05c2ca9f1cf090de3f162c7067b0ccfbaec14..18ab2de61fe749e82c8eec328d2696214339bd19 100644
|
||||
index 87c4e2ef041238f84a00f2b032ed10c3f250eb0d..66abff00db43413b07d51d48654eab7be821bc93 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -409,7 +409,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -1344,7 +1332,7 @@ index fae05c2ca9f1cf090de3f162c7067b0ccfbaec14..18ab2de61fe749e82c8eec328d269621
|
||||
// Purpur start
|
||||
if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 9e5b7702780709b59f0f302a5ec60e62ac13fd5c..b8948e2b8390f7b670766d2453a01483c32d854c 100644
|
||||
index 2cf0d698b341d418d0ac4760f95e3ea52c193098..11062e250657cb839ca046d6c224647915d3ee7b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -367,13 +367,13 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -1384,7 +1372,7 @@ index 9e5b7702780709b59f0f302a5ec60e62ac13fd5c..b8948e2b8390f7b670766d2453a01483
|
||||
@@ -936,46 +936,46 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
return;
|
||||
}
|
||||
// Paper end
|
||||
// Paper end - Allow nerfed mobs to jump and float
|
||||
- this.level().getProfiler().push("sensing");
|
||||
+ //this.level().getProfiler().push("sensing"); // Purpur
|
||||
this.sensing.tick();
|
||||
@@ -1449,7 +1437,7 @@ index 9e5b7702780709b59f0f302a5ec60e62ac13fd5c..b8948e2b8390f7b670766d2453a01483
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||
index 1635818fc4b1788c0d397085239df6dd75b210ab..02978315bc2b828cc603ce7478408f3f82c249c2 100644
|
||||
index 2d63ee8fef87264d4b61290effa6ba86a787aa61..bb068bffc9e2f035dee90276156129ce750a7cd7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/GoalSelector.java
|
||||
@@ -105,8 +105,8 @@ public class GoalSelector {
|
||||
@@ -1501,13 +1489,13 @@ index 1635818fc4b1788c0d397085239df6dd75b210ab..02978315bc2b828cc603ce7478408f3f
|
||||
|
||||
public Set<WrappedGoal> getAvailableGoals() {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
||||
index a9922074b6aa6a9898615385bb11d2a758662970..9ffbe784a0d45b494f29ab1555841b4be9f58128 100644
|
||||
index a04fb58c29b462e20ed0b702cef478e3985b7cd2..43699f94dd0fd97513242fcdbc4ec4d0dc260f8e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
||||
@@ -172,12 +172,12 @@ public abstract class PathNavigation {
|
||||
@@ -173,12 +173,12 @@ public abstract class PathNavigation {
|
||||
}
|
||||
}
|
||||
// Paper end
|
||||
// Paper end - EntityPathfindEvent
|
||||
- this.level.getProfiler().push("pathfind");
|
||||
+ //this.level.getProfiler().push("pathfind"); // Purpur
|
||||
BlockPos blockPos = useHeadPos ? this.mob.blockPosition().above() : this.mob.blockPosition();
|
||||
@@ -1811,7 +1799,7 @@ index ceda40e0246830155d13f36073b0ba45a5146de6..795a91cf05dc4f5fba84eaa501e8163f
|
||||
this.assignProfessionWhenSpawned = false;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index 1fa02130dcb65b3109fde0cb612b538b1c4cd4cb..353ee2d2ea86ba98052acb2edb5d0b3d9393f3ca 100644
|
||||
index 28ef910885dbd48965fba6f08cec412697b1b7f0..02dae407069a0200e271cc9c6f3ec6ff80f79025 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -659,7 +659,7 @@ public class Explosion {
|
||||
@@ -1833,7 +1821,7 @@ index 1fa02130dcb65b3109fde0cb612b538b1c4cd4cb..353ee2d2ea86ba98052acb2edb5d0b3d
|
||||
|
||||
if (this.fire) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 061a546ff8421d16fa37cf2337cded4bdfc943f3..2cdee8e0f0af1f8c6d8551fd5ee6f87d94de31a8 100644
|
||||
index ef8b596a02970c514fc6e5e0fb7ded76d82240ac..4779fd92a88c3d485ab3282ab63158f0894f7896 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -1314,9 +1314,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -1885,7 +1873,7 @@ index 061a546ff8421d16fa37cf2337cded4bdfc943f3..2cdee8e0f0af1f8c6d8551fd5ee6f87d
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
index f2f778d876703c06e0d1bfd7a35adde35abe4939..edc3676c4da974be4b628e2b3baae99679e9b2c1 100644
|
||||
index 3d99667fa297ea15c5d3a0526a846ce177a5037a..a0ab8be389a175b5e6c42798650a06882a7b3886 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
|
||||
@@ -132,7 +132,7 @@ public final class NaturalSpawner {
|
||||
@@ -1907,7 +1895,7 @@ index f2f778d876703c06e0d1bfd7a35adde35abe4939..edc3676c4da974be4b628e2b3baae996
|
||||
|
||||
// Paper start - Add mobcaps commands
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
index 134d2d56af71aceb1ca33d7bb708124655c5d319..f782fee9243129d0990777dcd2d74735ceb5e64e 100644
|
||||
index 8c0df10efd59594c63cca2a1c22386acf17e5299..1b49ecbf8fdbe8b734f8ca5191dc9ed70aa66af7 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
@@ -457,11 +457,11 @@ public class LevelChunk extends ChunkAccess {
|
||||
@@ -1945,7 +1933,7 @@ index 134d2d56af71aceb1ca33d7bb708124655c5d319..f782fee9243129d0990777dcd2d74735
|
||||
+ //gameprofilerfiller.pop();
|
||||
} catch (Throwable throwable) {
|
||||
if (throwable instanceof ThreadDeath) throw throwable; // Paper
|
||||
// Paper start - Prevent tile entity and entity crashes
|
||||
// Paper start - Prevent block entity and entity crashes
|
||||
diff --git a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java b/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java
|
||||
index eb18494bd7257fa5eb00dea16cf4d5667b796f2b..f039d6109ee6f55542adc8f30476ba9a9e4974bf 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/pathfinder/PathFinder.java
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Debug Marker API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 866d49ef3de9e9629b00b3dc0515ab089ab47908..067164b3698bcb89ae2f8d09cb7009108a999670 100644
|
||||
index 4e8ff16b5ca3cd2ddf2a44c7cd625fbf2311706d..b2d990fda0c144a837ac3c2118da15a77885edcf 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1584,6 +1584,42 @@ public final class CraftServer implements Server {
|
||||
@@ -1583,6 +1583,42 @@ public final class CraftServer implements Server {
|
||||
public void removeFuel(org.bukkit.Material material) {
|
||||
net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.removeFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material)));
|
||||
}
|
||||
@@ -52,10 +52,10 @@ index 866d49ef3de9e9629b00b3dc0515ab089ab47908..067164b3698bcb89ae2f8d09cb700910
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 8af705619e8a784c6128d7ff4838eeae56e59821..f6c6cd92e1eff044abefa6ca74477d361f4434ec 100644
|
||||
index 354ef8d61668e5532f60034291bf8f0374f8ac52..7a2e6d1c4b1d553c172f7d704036e3dfb39228a7 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -2419,6 +2419,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
@@ -2377,6 +2377,42 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
public float getLocalDifficultyAt(Location location) {
|
||||
return getHandle().getCurrentDifficultyAt(io.papermc.paper.util.MCUtil.toBlockPosition(location)).getEffectiveDifficulty();
|
||||
}
|
||||
@@ -99,10 +99,10 @@ index 8af705619e8a784c6128d7ff4838eeae56e59821..f6c6cd92e1eff044abefa6ca74477d36
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 9306facdc8aa56674f896fa3ab3d2b54dc5a2f4b..e3c2279c0096976b9b8a574b731fad7bfa6f770f 100644
|
||||
index b2b000ab47897f9d8f47840ae95ef2db478f808c..b33bae43348925a0f4f9ca22839084b435e44b00 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -3425,5 +3425,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -3413,5 +3413,43 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
public void resetIdleTimer() {
|
||||
getHandle().resetLastActionTime();
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index e3c2279c0096976b9b8a574b731fad7bfa6f770f..8c90eddd40c8ab2f4d727e3c7d9b6312d57bf277 100644
|
||||
index b33bae43348925a0f4f9ca22839084b435e44b00..137595efe9e828810cf1f006027ac96606ad8821 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -3463,5 +3463,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -3451,5 +3451,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
if (this.getHandle().connection == null) return;
|
||||
this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundCustomPayloadPacket(new net.minecraft.network.protocol.common.custom.GameTestClearMarkersDebugPayload()));
|
||||
}
|
||||
|
||||
@@ -36,10 +36,10 @@ index b863249ff7e13cf4939c8961601f0564c62fd661..bdcfd80f937c34956911373905d66424
|
||||
|
||||
this.writeId(BuiltInRegistries.ITEM, item);
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 9424b1383681b9f875af1a4245a58b8fd7811642..fb260519d6546392a3fce8fcc1f80884cce0fabe 100644
|
||||
index 101c57df8b77827b78dd5423715f784da645b38e..09a290feb90751f3630fd23346c2cc8900fc841a 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1719,6 +1719,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1717,6 +1717,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
//MinecraftTimings.timeUpdateTimer.stopTiming(); // Spigot // Paper // Purpur
|
||||
|
||||
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
|
||||
@@ -48,7 +48,7 @@ index 9424b1383681b9f875af1a4245a58b8fd7811642..fb260519d6546392a3fce8fcc1f80884
|
||||
while (iterator.hasNext()) {
|
||||
ServerLevel worldserver = (ServerLevel) iterator.next();
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 651afbf1334da2a072c03636e84362a5f88a809a..af592c7c82471d75381d77e43c8f81b525df217d 100644
|
||||
index 218a6f27986f2e7282ccb1ad9fdc6f8a2ccbb5c5..a56628fb04ccd5a2df4cb98bb4054f0024bf3a06 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -3362,6 +3362,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fire Immunity API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e1c42cbed 100644
|
||||
index b60796b736d2992a192b58b98a2becbf9f5ac9d1..a0281bf4610452b54ca01dc31be01367efc54c76 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -423,6 +423,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -16,7 +16,7 @@ index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e
|
||||
|
||||
public void setOrigin(@javax.annotation.Nonnull Location location) {
|
||||
this.origin = location.toVector();
|
||||
@@ -1817,7 +1818,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -1818,7 +1819,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
}
|
||||
|
||||
public boolean fireImmune() {
|
||||
@@ -25,7 +25,7 @@ index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e
|
||||
}
|
||||
|
||||
public boolean causeFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource) {
|
||||
@@ -2509,6 +2510,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -2507,6 +2508,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
nbttagcompound.putBoolean("Paper.FreezeLock", true);
|
||||
}
|
||||
// Paper end
|
||||
@@ -37,7 +37,7 @@ index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e
|
||||
return nbttagcompound;
|
||||
} catch (Throwable throwable) {
|
||||
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
|
||||
@@ -2656,6 +2662,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -2654,6 +2660,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
freezeLocked = nbt.getBoolean("Paper.FreezeLock");
|
||||
}
|
||||
// Paper end
|
||||
@@ -50,7 +50,7 @@ index 805991ef816ad5ae82ed26781ec265173a8f192c..66e99e9aceb1c44ecfdecea992bead1e
|
||||
} catch (Throwable throwable) {
|
||||
CrashReport crashreport = CrashReport.forThrowable(throwable, "Loading entity NBT");
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 2ef6dc2390ed622eda284e3b4c85ec64e057c981..6a24595db93c834955df3a5566705b1c5066acc6 100644
|
||||
index 9304a2d06400dfa244ddb4d9591de988b334c3cf..aa6872290bcab8d7dc58f5714f5f5d4289759880 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -83,6 +83,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
|
||||
@@ -5,13 +5,13 @@ Subject: [PATCH] Add option to teleport to spawn on nether ceiling damage
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 66e99e9aceb1c44ecfdecea992bead1e1c42cbed..f10933fc78cbb0ead042c1870d93d0447f640896 100644
|
||||
index a0281bf4610452b54ca01dc31be01367efc54c76..e3322c3263280a8e206af7a84db3518ef0916439 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -926,6 +926,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
|
||||
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
|
||||
// Paper end
|
||||
// Paper end - Configurable nether ceiling damage
|
||||
+ if (this.level().purpurConfig.teleportOnNetherCeilingDamage && this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER && this instanceof ServerPlayer player) player.teleport(io.papermc.paper.util.MCUtil.toLocation(this.level, this.level.getSharedSpawnPos())); else // Purpur
|
||||
this.onBelowWorld();
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ Shears can now defuse TNT. Each world can have a configured chance for the TNT t
|
||||
By default the option is disabled to avoid breaking any possible vanilla mechanics.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
index c3e47426382296d650fa00ce0bc1a82bf23c7877..dfc3e9d2611ce418ac6f6cc5a23bb74415007713 100644
|
||||
index cd7b955754b809826048b80723e2e9055b373a4a..b929bef749397797203eb6fb7a7e817d90ec310c 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -207,4 +207,29 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
@@ -199,4 +199,29 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
return !level().paperConfig().fixes.preventTntFromMovingInWater && super.isPushedByFluid();
|
||||
}
|
||||
// Paper end
|
||||
// Paper end - Option to prevent TNT from moving in water
|
||||
+ // Purpur start - Shears can defuse TNT
|
||||
+ @Override
|
||||
+ public net.minecraft.world.InteractionResult interact(net.minecraft.world.entity.player.Player player, net.minecraft.world.InteractionHand hand) {
|
||||
|
||||
Reference in New Issue
Block a user