mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@cdad49b7 Do not mark plugin tickets as forced; keep correct ticket types PaperMC/Paper@a1c4fc96 Add generic ticket identifier PaperMC/Paper@745881bb Update Moonrise common for 1.21.5 PaperMC/Paper@e9d00eb6 Apply Moonrise patch PaperMC/Paper@ef0f0d10 Copy Moonrise 1.21.5 update over PaperMC/Paper@cc0f25cb Apply more feature patches PaperMC/Paper@e7b684ed fix PaperMC/Paper@71ccae07 Revert "move block data/state impl"
This commit is contained in:
@@ -2,7 +2,7 @@ group=cn.dreeam.leaf
|
|||||||
mcVersion=1.21.5
|
mcVersion=1.21.5
|
||||||
version=1.21.5-R0.1-SNAPSHOT
|
version=1.21.5-R0.1-SNAPSHOT
|
||||||
|
|
||||||
paperCommit=db8c646d00d3ede50650ae27c89fd66be3be89e6
|
paperCommit=71ccae077355f854d5be0ece38a300d0499721b4
|
||||||
|
|
||||||
org.gradle.configuration-cache=true
|
org.gradle.configuration-cache=true
|
||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
|
|||||||
@@ -48,10 +48,10 @@ index bb021fc9de91f8c4f79e6a753d57fa157efbbda7..9926848124f0b74ebb615fbbc45d95eb
|
|||||||
final DamageSource damageSource = this.copy();
|
final DamageSource damageSource = this.copy();
|
||||||
damageSource.eventEntityDamager = entity;
|
damageSource.eventEntityDamager = entity;
|
||||||
diff --git a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
diff --git a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||||
index 763879cdc389fc4d80135b38aa96a5bec448ae9e..c7cec4a8a32e0c978a198904dbaf9920649ec879 100644
|
index f3ea8b9e8f4510112ec5e41727ebc0cf9ecee195..77f16166588b0d07fb08b9c8f060a3d076b479de 100644
|
||||||
--- a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
--- a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||||
+++ b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
+++ b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||||
@@ -49,7 +49,7 @@ public final class RegionFileStorage implements AutoCloseable {
|
@@ -283,7 +283,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
private static void printOversizedLog(String msg, Path file, int x, int z) {
|
private static void printOversizedLog(String msg, Path file, int x, int z) {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ As part of: Paper (https://github.com/PaperMC/Paper)
|
|||||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||||
index 7e880b68e6d071d555381af05a3e964fb68904ed..240722d96e8122269efb12c706e39bba54243872 100644
|
index f1373fd5fdebb9f4600ba7f32a5df6188de3a0e9..96d34149b1009b1522335784bc1858f61bb59cd1 100644
|
||||||
--- a/net/minecraft/server/MinecraftServer.java
|
--- a/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/net/minecraft/server/MinecraftServer.java
|
+++ b/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -299,6 +299,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -299,6 +299,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
@@ -24,7 +24,7 @@ index 7e880b68e6d071d555381af05a3e964fb68904ed..240722d96e8122269efb12c706e39bba
|
|||||||
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
public boolean isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||||
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
|
private final Set<String> pluginsBlockingSleep = new java.util.HashSet<>(); // Paper - API to allow/disallow tick sleeping
|
||||||
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
||||||
@@ -398,6 +399,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -469,6 +470,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this));
|
Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this));
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
this.paperConfigurations = services.paperConfigurations(); // Paper - add paper configuration files
|
this.paperConfigurations = services.paperConfigurations(); // Paper - add paper configuration files
|
||||||
@@ -78,7 +78,7 @@ index 015e3ff8d856a7722def4448d8c68792cc3a32a2..e7c3d84d64cc62989c01019b71c499ae
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
index 0c861f882d3e8f8ce417ce2ace0f3f5ca2673620..c697b3adeabd4f913e9e5e0b90c620a2a642f35d 100644
|
index 31e02f50edd46220dac81500dbb273f1ccdbe0b9..aa44476e7d732a51d226533ccf6fb55013faf003 100644
|
||||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -171,6 +171,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -171,6 +171,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
@@ -93,10 +93,10 @@ index 0c861f882d3e8f8ce417ce2ace0f3f5ca2673620..c697b3adeabd4f913e9e5e0b90c620a2
|
|||||||
// Paper start - fix converting txt to json file; convert old users earlier after PlayerList creation but before file load/save
|
// Paper start - fix converting txt to json file; convert old users earlier after PlayerList creation but before file load/save
|
||||||
if (this.convertOldUsers()) {
|
if (this.convertOldUsers()) {
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||||
index aed490d0e95fc6c61a4e441a5aa78d2298de23cd..3d614c00886278514197374c3e24a8f871fda321 100644
|
index d50d2928ad9f8b34a14621b1fe5c188547e04bd1..845d03dc893df2200327e9ee2710474874750c93 100644
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -343,7 +343,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -580,7 +580,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
org.bukkit.generator.BiomeProvider biomeProvider // CraftBukkit
|
org.bukkit.generator.BiomeProvider biomeProvider // CraftBukkit
|
||||||
) {
|
) {
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
@@ -106,10 +106,10 @@ index aed490d0e95fc6c61a4e441a5aa78d2298de23cd..3d614c00886278514197374c3e24a8f8
|
|||||||
this.levelStorageAccess = levelStorageAccess;
|
this.levelStorageAccess = levelStorageAccess;
|
||||||
this.uuid = org.bukkit.craftbukkit.util.WorldUUID.getOrCreate(levelStorageAccess.levelDirectory.path().toFile());
|
this.uuid = org.bukkit.craftbukkit.util.WorldUUID.getOrCreate(levelStorageAccess.levelDirectory.path().toFile());
|
||||||
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
||||||
index 30d1c676cbbba6713a36a2b62ff2a01bd11a8bcd..dbbf6fc4ef52d179ac694b0cfff921323e0c758b 100644
|
index 013ed7dbe2309f562f63e66203179a90566e8115..e2829222337ed5a5061b60a153c8224eb53de9e8 100644
|
||||||
--- a/net/minecraft/world/level/Level.java
|
--- a/net/minecraft/world/level/Level.java
|
||||||
+++ b/net/minecraft/world/level/Level.java
|
+++ b/net/minecraft/world/level/Level.java
|
||||||
@@ -157,6 +157,12 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -159,6 +159,12 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
return this.paperConfig;
|
return this.paperConfig;
|
||||||
}
|
}
|
||||||
// Paper end - add paper world config
|
// Paper end - add paper world config
|
||||||
@@ -122,7 +122,7 @@ index 30d1c676cbbba6713a36a2b62ff2a01bd11a8bcd..dbbf6fc4ef52d179ac694b0cfff92132
|
|||||||
|
|
||||||
public static @Nullable BlockPos lastPhysicsProblem; // Spigot
|
public static @Nullable BlockPos lastPhysicsProblem; // Spigot
|
||||||
private int tileTickPosition;
|
private int tileTickPosition;
|
||||||
@@ -202,10 +208,13 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -827,6 +833,8 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
org.bukkit.World.Environment env, // CraftBukkit
|
org.bukkit.World.Environment env, // CraftBukkit
|
||||||
java.util.function.Function<org.spigotmc.SpigotWorldConfig, // Spigot - create per world config
|
java.util.function.Function<org.spigotmc.SpigotWorldConfig, // Spigot - create per world config
|
||||||
io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, // Paper - create paper world config
|
io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, // Paper - create paper world config
|
||||||
@@ -130,6 +130,9 @@ index 30d1c676cbbba6713a36a2b62ff2a01bd11a8bcd..dbbf6fc4ef52d179ac694b0cfff92132
|
|||||||
+ org.galemc.gale.configuration.GaleWorldConfiguration> galeWorldConfigCreator, // Gale - Gale configuration
|
+ org.galemc.gale.configuration.GaleWorldConfiguration> galeWorldConfigCreator, // Gale - Gale configuration
|
||||||
java.util.concurrent.Executor executor // Paper - Anti-Xray
|
java.util.concurrent.Executor executor // Paper - Anti-Xray
|
||||||
) {
|
) {
|
||||||
|
// Paper start - getblock optimisations - cache world height/sections
|
||||||
|
@@ -840,6 +848,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
|
// Paper end - getblock optimisations - cache world height/sections
|
||||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot
|
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot
|
||||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||||
+ this.galeConfig = galeWorldConfigCreator.apply(this.spigotConfig); // Gale - Gale configuration
|
+ this.galeConfig = galeWorldConfigCreator.apply(this.spigotConfig); // Gale - Gale configuration
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Add per world config
|
|||||||
Add config reload
|
Add config reload
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java
|
diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java
|
||||||
index 58be6e1d1607a3af5e28f851718b82321f2feb25..a5aa3d415486ef262383ab738eb7dd80b3fecb5e 100644
|
index 9c9b601a3f903bebb0dd1bda0e24745587229727..6c65122fe15e08c352885c7dfd3ddf496f0c00c4 100644
|
||||||
--- a/net/minecraft/server/Main.java
|
--- a/net/minecraft/server/Main.java
|
||||||
+++ b/net/minecraft/server/Main.java
|
+++ b/net/minecraft/server/Main.java
|
||||||
@@ -108,10 +108,12 @@ public class Main {
|
@@ -108,10 +108,12 @@ public class Main {
|
||||||
@@ -28,10 +28,10 @@ index 58be6e1d1607a3af5e28f851718b82321f2feb25..a5aa3d415486ef262383ab738eb7dd80
|
|||||||
DedicatedServerSettings dedicatedServerSettings = new DedicatedServerSettings(optionSet); // CraftBukkit - CLI argument support
|
DedicatedServerSettings dedicatedServerSettings = new DedicatedServerSettings(optionSet); // CraftBukkit - CLI argument support
|
||||||
dedicatedServerSettings.forceSave();
|
dedicatedServerSettings.forceSave();
|
||||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||||
index 5bb1b96390671fb4eb59a8d795a97e8fb061cc0d..ba5962b04a61e21ae81c2c212de6945585981ddd 100644
|
index 96d34149b1009b1522335784bc1858f61bb59cd1..d8179f1b7441679a96ac8ccbd67c2cb1c4fc4fd6 100644
|
||||||
--- a/net/minecraft/server/MinecraftServer.java
|
--- a/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/net/minecraft/server/MinecraftServer.java
|
+++ b/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1102,6 +1102,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1182,6 +1182,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
org.spigotmc.WatchdogThread.tick();
|
org.spigotmc.WatchdogThread.tick();
|
||||||
// Paper end
|
// Paper end
|
||||||
org.spigotmc.WatchdogThread.hasStarted = true; // Paper
|
org.spigotmc.WatchdogThread.hasStarted = true; // Paper
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ index 18071dcc69cc28471dddb7de94e803ec1e5fc2e4..e30bb9c4046200c1a6e4e917d15b205f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||||
index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c242d6780ca 100644
|
index d8179f1b7441679a96ac8ccbd67c2cb1c4fc4fd6..20fd5ea3922b93a00e4f55cfd33af1ce3363e09a 100644
|
||||||
--- a/net/minecraft/server/MinecraftServer.java
|
--- a/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/net/minecraft/server/MinecraftServer.java
|
+++ b/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -113,19 +113,8 @@ import net.minecraft.util.TimeUtil;
|
@@ -113,19 +113,8 @@ import net.minecraft.util.TimeUtil;
|
||||||
@@ -206,7 +206,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
private ServerConnectionListener connection;
|
private ServerConnectionListener connection;
|
||||||
public final ChunkProgressListenerFactory progressListenerFactory;
|
public final ChunkProgressListenerFactory progressListenerFactory;
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -913,9 +895,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -989,9 +971,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
shutdownThread = Thread.currentThread(); // Paper - Improved watchdog support
|
shutdownThread = Thread.currentThread(); // Paper - Improved watchdog support
|
||||||
org.spigotmc.WatchdogThread.doStop(); // Paper - Improved watchdog support
|
org.spigotmc.WatchdogThread.doStop(); // Paper - Improved watchdog support
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -216,7 +216,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
|
|
||||||
LOGGER.info("Stopping server");
|
LOGGER.info("Stopping server");
|
||||||
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
|
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
|
||||||
@@ -1156,22 +1135,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1236,18 +1215,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
// Spigot end
|
// Spigot end
|
||||||
|
|
||||||
boolean flag = l == 0L;
|
boolean flag = l == 0L;
|
||||||
@@ -234,12 +234,16 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
- profilerFiller.push("tick");
|
- profilerFiller.push("tick");
|
||||||
this.tickFrame.start();
|
this.tickFrame.start();
|
||||||
this.tickServer(flag ? () -> false : this::haveTime);
|
this.tickServer(flag ? () -> false : this::haveTime);
|
||||||
|
// Paper start - rewrite chunk system
|
||||||
|
@@ -1258,7 +1230,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
}
|
||||||
|
// Paper end - rewrite chunk system
|
||||||
this.tickFrame.end();
|
this.tickFrame.end();
|
||||||
- profilerFiller.popPush("nextTickWait");
|
- profilerFiller.popPush("nextTickWait");
|
||||||
this.mayHaveDelayedTasks = true;
|
this.mayHaveDelayedTasks = true;
|
||||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
||||||
this.startMeasuringTaskExecutionTime();
|
this.startMeasuringTaskExecutionTime();
|
||||||
@@ -1181,11 +1152,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1268,11 +1239,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
this.tickRateManager.endTickWork();
|
this.tickRateManager.endTickWork();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,7 +255,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
|
|
||||||
this.isReady = true;
|
this.isReady = true;
|
||||||
JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis);
|
JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis);
|
||||||
@@ -1357,7 +1324,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1445,7 +1412,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doRunTask(TickTask task) {
|
public void doRunTask(TickTask task) {
|
||||||
@@ -259,15 +263,15 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
super.doRunTask(task);
|
super.doRunTask(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1450,7 +1416,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1558,7 +1524,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
this.autoSave();
|
profiler.pop();
|
||||||
}
|
// Paper end - Incremental chunk and player saving
|
||||||
|
|
||||||
- ProfilerFiller profilerFiller = Profiler.get();
|
- ProfilerFiller profilerFiller = Profiler.get();
|
||||||
this.runAllTasks(); // Paper - move runAllTasks() into full server tick (previously for timings)
|
this.runAllTasks(); // Paper - move runAllTasks() into full server tick (previously for timings)
|
||||||
this.server.spark.executeMainThreadTasks(); // Paper - spark
|
this.server.spark.executeMainThreadTasks(); // Paper - spark
|
||||||
// Paper start - Server Tick Events
|
// Paper start - Server Tick Events
|
||||||
@@ -1459,7 +1424,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1567,7 +1532,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent();
|
new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent();
|
||||||
// Paper end - Server Tick Events
|
// Paper end - Server Tick Events
|
||||||
this.server.spark.tickEnd(((double)(endTime - lastTick) / 1000000D)); // Paper - spark
|
this.server.spark.tickEnd(((double)(endTime - lastTick) / 1000000D)); // Paper - spark
|
||||||
@@ -275,7 +279,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
long l = Util.getNanos() - nanos;
|
long l = Util.getNanos() - nanos;
|
||||||
int i1 = this.tickCount % 100;
|
int i1 = this.tickCount % 100;
|
||||||
this.aggregatedTickTimesNanos = this.aggregatedTickTimesNanos - this.tickTimesNanos[i1];
|
this.aggregatedTickTimesNanos = this.aggregatedTickTimesNanos - this.tickTimesNanos[i1];
|
||||||
@@ -1472,16 +1436,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1580,16 +1544,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
this.tickTimes60s.add(this.tickCount, l);
|
this.tickTimes60s.add(this.tickCount, l);
|
||||||
// Paper end - Add tick times API and /mspt command
|
// Paper end - Add tick times API and /mspt command
|
||||||
this.logTickMethodTime(nanos);
|
this.logTickMethodTime(nanos);
|
||||||
@@ -292,7 +296,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
LOGGER.debug("Autosave finished");
|
LOGGER.debug("Autosave finished");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1547,7 +1507,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1655,7 +1615,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void tickChildren(BooleanSupplier hasTimeLeft) {
|
protected void tickChildren(BooleanSupplier hasTimeLeft) {
|
||||||
@@ -300,7 +304,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
this.getPlayerList().getPlayers().forEach(serverPlayer1 -> serverPlayer1.connection.suspendFlushing());
|
this.getPlayerList().getPlayers().forEach(serverPlayer1 -> serverPlayer1.connection.suspendFlushing());
|
||||||
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
|
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
|
||||||
// Paper start - Folia scheduler API
|
// Paper start - Folia scheduler API
|
||||||
@@ -1565,9 +1524,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1673,9 +1632,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
});
|
});
|
||||||
// Paper end - Folia scheduler API
|
// Paper end - Folia scheduler API
|
||||||
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
||||||
@@ -310,15 +314,15 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
// Run tasks that are waiting on processing
|
// Run tasks that are waiting on processing
|
||||||
@@ -1601,7 +1558,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1710,7 +1667,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
serverLevel.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
|
|
||||||
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||||
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
|
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
|
||||||
|
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
|
||||||
- profilerFiller.push(() -> serverLevel + " " + serverLevel.dimension().location());
|
- profilerFiller.push(() -> serverLevel + " " + serverLevel.dimension().location());
|
||||||
/* Drop global time updates
|
/* Drop global time updates
|
||||||
if (this.tickCount % 20 == 0) {
|
if (this.tickCount % 20 == 0) {
|
||||||
profilerFiller.push("timeSync");
|
profilerFiller.push("timeSync");
|
||||||
@@ -1610,8 +1566,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1719,8 +1675,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
}
|
}
|
||||||
// CraftBukkit end */
|
// CraftBukkit end */
|
||||||
|
|
||||||
@@ -327,7 +331,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
try {
|
try {
|
||||||
serverLevel.tick(hasTimeLeft);
|
serverLevel.tick(hasTimeLeft);
|
||||||
} catch (Throwable var7) {
|
} catch (Throwable var7) {
|
||||||
@@ -1620,34 +1574,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1729,34 +1683,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
throw new ReportedException(crashReport);
|
throw new ReportedException(crashReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -362,7 +366,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void tickConnection() {
|
public void tickConnection() {
|
||||||
@@ -1663,14 +1607,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1772,14 +1716,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
}
|
}
|
||||||
|
|
||||||
public void forceTimeSynchronization() {
|
public void forceTimeSynchronization() {
|
||||||
@@ -377,7 +381,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isLevelEnabled(Level level) {
|
public boolean isLevelEnabled(Level level) {
|
||||||
@@ -2480,55 +2419,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -2595,55 +2534,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
@@ -433,7 +437,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
public Path getWorldPath(LevelResource levelResource) {
|
public Path getWorldPath(LevelResource levelResource) {
|
||||||
return this.storageSource.getLevelPath(levelResource);
|
return this.storageSource.getLevelPath(levelResource);
|
||||||
}
|
}
|
||||||
@@ -2578,24 +2468,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -2693,24 +2583,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
return this.isSaving;
|
return this.isSaving;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -458,7 +462,7 @@ index bd31615651fb5918d278de9799529b6c28190a03..f77aa7a8a8bdd73abe60f44a41264c24
|
|||||||
public int getMaxChainedNeighborUpdates() {
|
public int getMaxChainedNeighborUpdates() {
|
||||||
return 1000000;
|
return 1000000;
|
||||||
}
|
}
|
||||||
@@ -2701,55 +2573,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -2816,55 +2688,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
public record ServerResourcePackInfo(UUID id, String url, String hash, boolean isRequired, @Nullable Component prompt) {
|
public record ServerResourcePackInfo(UUID id, String url, String hash, boolean isRequired, @Nullable Component prompt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -660,10 +664,10 @@ index a3192400b37274620977e5a40d4283bfec3ab9b3..f23b17416eadc0e800ca34918ac78c03
|
|||||||
String string = String.format(
|
String string = String.format(
|
||||||
Locale.ROOT, "%s-%s-%s", Util.getFilenameFormattedDateTime(), server.getWorldData().getLevelName(), SharedConstants.getCurrentVersion().getId()
|
Locale.ROOT, "%s-%s-%s", Util.getFilenameFormattedDateTime(), server.getWorldData().getLevelName(), SharedConstants.getCurrentVersion().getId()
|
||||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
index c2ed1b0b67e62434292ebf3edd70c74af0c0d9af..c71034e9077280ccd7b4d7a9986eb6ec1536472a 100644
|
index 79144689a3eb8ddfe09d5130a1940ff2ef88ccb0..35f55d1830d7929d476a5377f0abc46fac5bfed1 100644
|
||||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -732,12 +732,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -758,12 +758,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
return this.settings.getProperties().serverResourcePackInfo;
|
return this.settings.getProperties().serverResourcePackInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -707,7 +711,7 @@ index 4221af18f5087badb5cd8c7cf66ab3312edf0394..f102afff61d5577a0f5002f2a52335bd
|
|||||||
|
|
||||||
private int getRadiusForLayer(ChunkStatus status, boolean needsGeneration) {
|
private int getRadiusForLayer(ChunkStatus status, boolean needsGeneration) {
|
||||||
diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java
|
diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java
|
||||||
index 00a5ed09caa2689543bd47bcd93d5a6141d0af46..bbd21c296e0b9bb000a9c47be1ec27ea553d3b40 100644
|
index 0d8aefe8c886eaa4c33cbab53b0ad1c016f0531f..b28d19b2fcdff9250e95db05f6e428db54a771e6 100644
|
||||||
--- a/net/minecraft/server/level/ChunkMap.java
|
--- a/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/net/minecraft/server/level/ChunkMap.java
|
+++ b/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -62,8 +62,6 @@ import net.minecraft.util.CsvOutput;
|
@@ -62,8 +62,6 @@ import net.minecraft.util.CsvOutput;
|
||||||
@@ -719,7 +723,7 @@ index 00a5ed09caa2689543bd47bcd93d5a6141d0af46..bbd21c296e0b9bb000a9c47be1ec27ea
|
|||||||
import net.minecraft.util.thread.BlockableEventLoop;
|
import net.minecraft.util.thread.BlockableEventLoop;
|
||||||
import net.minecraft.util.thread.ConsecutiveExecutor;
|
import net.minecraft.util.thread.ConsecutiveExecutor;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
@@ -490,15 +488,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -409,15 +407,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void tick(BooleanSupplier hasMoreTime) {
|
protected void tick(BooleanSupplier hasMoreTime) {
|
||||||
@@ -735,24 +739,8 @@ index 00a5ed09caa2689543bd47bcd93d5a6141d0af46..bbd21c296e0b9bb000a9c47be1ec27ea
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasWork() {
|
public boolean hasWork() {
|
||||||
@@ -616,7 +609,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
|
||||||
(CompletionStage<? extends Object>)completableFuture1, (optional, object) -> optional
|
|
||||||
)
|
|
||||||
.thenApplyAsync(optional -> {
|
|
||||||
- Profiler.get().incrementCounter("chunkLoad");
|
|
||||||
if (optional.isPresent()) {
|
|
||||||
ChunkAccess chunkAccess = optional.get().read(this.level, this.poiManager, this.storageInfo(), chunkPos);
|
|
||||||
this.markPosition(chunkPos, chunkAccess.getPersistedStatus().getChunkType());
|
|
||||||
@@ -817,7 +809,6 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- Profiler.get().incrementCounter("chunkSave");
|
|
||||||
this.activeChunkWrites.incrementAndGet();
|
|
||||||
SerializableChunkData serializableChunkData = SerializableChunkData.copyOf(this.level, chunk);
|
|
||||||
CompletableFuture<CompoundTag> completableFuture = CompletableFuture.supplyAsync(serializableChunkData::write, Util.backgroundExecutor());
|
|
||||||
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
||||||
index c50a1a01d167696134bd65b2d28db323d81d6ebd..51c636b3bb5088b5caf0f93ec34987efe7e55e5f 100644
|
index 59e8a5e1b35c81883c9b1ca00c6e55d77584d8cc..4167b46148fc370f20b35c2a261e38c0698855d4 100644
|
||||||
--- a/net/minecraft/server/level/ServerChunkCache.java
|
--- a/net/minecraft/server/level/ServerChunkCache.java
|
||||||
+++ b/net/minecraft/server/level/ServerChunkCache.java
|
+++ b/net/minecraft/server/level/ServerChunkCache.java
|
||||||
@@ -26,8 +26,6 @@ import net.minecraft.network.protocol.Packet;
|
@@ -26,8 +26,6 @@ import net.minecraft.network.protocol.Packet;
|
||||||
@@ -764,39 +752,10 @@ index c50a1a01d167696134bd65b2d28db323d81d6ebd..51c636b3bb5088b5caf0f93ec34987ef
|
|||||||
import net.minecraft.util.thread.BlockableEventLoop;
|
import net.minecraft.util.thread.BlockableEventLoop;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.MobCategory;
|
import net.minecraft.world.entity.MobCategory;
|
||||||
@@ -230,8 +228,6 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -472,37 +470,27 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
return ifLoaded;
|
|
||||||
}
|
|
||||||
// Paper end - Perf: Optimise getChunkAt calls for loaded chunks
|
|
||||||
- ProfilerFiller profilerFiller = Profiler.get();
|
|
||||||
- profilerFiller.incrementCounter("getChunk");
|
|
||||||
long packedChunkPos = ChunkPos.asLong(x, z);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
@@ -243,7 +239,6 @@ public class ServerChunkCache extends ChunkSource {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- profilerFiller.incrementCounter("getChunkCacheMiss");
|
|
||||||
CompletableFuture<ChunkResult<ChunkAccess>> chunkFutureMainThread = this.getChunkFutureMainThread(x, z, chunkStatus, requireChunk);
|
|
||||||
this.mainThreadProcessor.managedBlock(chunkFutureMainThread::isDone);
|
|
||||||
// com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x, z); // Paper - Add debug for sync chunk loads
|
|
||||||
@@ -306,11 +301,8 @@ public class ServerChunkCache extends ChunkSource {
|
|
||||||
// CraftBukkit end
|
|
||||||
this.addTicket(new Ticket(TicketType.UNKNOWN, i), chunkPos);
|
|
||||||
if (this.chunkAbsent(visibleChunkIfPresent, i)) {
|
|
||||||
- ProfilerFiller profilerFiller = Profiler.get();
|
|
||||||
- profilerFiller.push("chunkLoad");
|
|
||||||
this.runDistanceManagerUpdates();
|
|
||||||
visibleChunkIfPresent = this.getVisibleChunkIfPresent(packedChunkPos);
|
|
||||||
- profilerFiller.pop();
|
|
||||||
if (this.chunkAbsent(visibleChunkIfPresent, i)) {
|
|
||||||
throw (IllegalStateException)Util.pauseInIde(new IllegalStateException("No chunk holder after ticket has been added"));
|
|
||||||
}
|
|
||||||
@@ -394,36 +386,26 @@ public class ServerChunkCache extends ChunkSource {
|
|
||||||
|
|
||||||
// CraftBukkit start - modelled on below
|
// CraftBukkit start - modelled on below
|
||||||
public void purgeUnload() {
|
public void purgeUnload() {
|
||||||
|
if (true) return; // Paper - rewrite chunk system
|
||||||
- ProfilerFiller gameprofilerfiller = Profiler.get();
|
- ProfilerFiller gameprofilerfiller = Profiler.get();
|
||||||
-
|
-
|
||||||
- gameprofilerfiller.push("purge");
|
- gameprofilerfiller.push("purge");
|
||||||
@@ -820,6 +779,7 @@ index c50a1a01d167696134bd65b2d28db323d81d6ebd..51c636b3bb5088b5caf0f93ec34987ef
|
|||||||
this.runDistanceManagerUpdates();
|
this.runDistanceManagerUpdates();
|
||||||
- profilerFiller.popPush("chunks");
|
- profilerFiller.popPush("chunks");
|
||||||
if (tickChunks) {
|
if (tickChunks) {
|
||||||
|
((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getPlayerChunkLoader().tick(); // Paper - rewrite chunk system
|
||||||
this.tickChunks();
|
this.tickChunks();
|
||||||
this.chunkMap.tick();
|
this.chunkMap.tick();
|
||||||
}
|
}
|
||||||
@@ -830,7 +790,7 @@ index c50a1a01d167696134bd65b2d28db323d81d6ebd..51c636b3bb5088b5caf0f93ec34987ef
|
|||||||
this.clearCache();
|
this.clearCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -432,22 +414,15 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -511,22 +499,15 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
long l = gameTime - this.lastInhabitedUpdate;
|
long l = gameTime - this.lastInhabitedUpdate;
|
||||||
this.lastInhabitedUpdate = gameTime;
|
this.lastInhabitedUpdate = gameTime;
|
||||||
if (!this.level.isDebug()) {
|
if (!this.level.isDebug()) {
|
||||||
@@ -854,9 +814,9 @@ index c50a1a01d167696134bd65b2d28db323d81d6ebd..51c636b3bb5088b5caf0f93ec34987ef
|
|||||||
-
|
-
|
||||||
+ private void broadcastChangedChunks() { // Gale - Purpur - remove vanilla profiler
|
+ private void broadcastChangedChunks() { // Gale - Purpur - remove vanilla profiler
|
||||||
for (ChunkHolder chunkHolder : this.chunkHoldersToBroadcast) {
|
for (ChunkHolder chunkHolder : this.chunkHoldersToBroadcast) {
|
||||||
LevelChunk tickingChunk = chunkHolder.getTickingChunk();
|
LevelChunk tickingChunk = chunkHolder.getChunkToSend(); // Paper - rewrite chunk system
|
||||||
if (tickingChunk != null) {
|
if (tickingChunk != null) {
|
||||||
@@ -456,17 +431,14 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -535,11 +516,9 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
}
|
}
|
||||||
|
|
||||||
this.chunkHoldersToBroadcast.clear();
|
this.chunkHoldersToBroadcast.clear();
|
||||||
@@ -867,38 +827,43 @@ index c50a1a01d167696134bd65b2d28db323d81d6ebd..51c636b3bb5088b5caf0f93ec34987ef
|
|||||||
- profiler.popPush("naturalSpawnCount");
|
- profiler.popPush("naturalSpawnCount");
|
||||||
+ private void tickChunks(long timeInhabited) { // Gale - Purpur - remove vanilla profiler
|
+ private void tickChunks(long timeInhabited) { // Gale - Purpur - remove vanilla profiler
|
||||||
int naturalSpawnChunkCount = this.distanceManager.getNaturalSpawnChunkCount();
|
int naturalSpawnChunkCount = this.distanceManager.getNaturalSpawnChunkCount();
|
||||||
NaturalSpawner.SpawnState spawnState = NaturalSpawner.createState(
|
// Paper start - Optional per player mob spawns
|
||||||
naturalSpawnChunkCount, this.level.getAllEntities(), this::getFullChunk, new LocalMobCapCalculator(this.chunkMap)
|
NaturalSpawner.SpawnState spawnState;
|
||||||
);
|
@@ -564,7 +543,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
|
}
|
||||||
|
// Paper end - Optional per player mob spawns
|
||||||
this.lastSpawnState = spawnState;
|
this.lastSpawnState = spawnState;
|
||||||
- profiler.popPush("spawnAndTick");
|
- profiler.popPush("spawnAndTick");
|
||||||
boolean _boolean = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
|
boolean _boolean = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && !this.level.players().isEmpty(); // CraftBukkit
|
||||||
int _int = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING);
|
int _int = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING);
|
||||||
List<MobCategory> filteredSpawningCategories;
|
List<MobCategory> filteredSpawningCategories;
|
||||||
@@ -488,11 +460,8 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -586,14 +564,11 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
List<LevelChunk> list = this.spawningChunks;
|
List<LevelChunk> list = this.spawningChunks;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
- profiler.push("filteringSpawningChunks");
|
- profiler.push("filteringSpawningChunks");
|
||||||
this.chunkMap.collectSpawningChunks(list);
|
this.chunkMap.collectSpawningChunks(list);
|
||||||
- profiler.popPush("shuffleSpawningChunks");
|
- profiler.popPush("shuffleSpawningChunks");
|
||||||
Util.shuffle(list, this.level.random);
|
// Paper start - chunk tick iteration optimisation
|
||||||
|
this.shuffleRandom.setSeed(this.level.random.nextLong());
|
||||||
|
if (!this.level.paperConfig().entities.spawning.perPlayerMobSpawns) Util.shuffle(list, this.shuffleRandom); // Paper - Optional per player mob spawns; do not need this when per-player is enabled
|
||||||
|
// Paper end - chunk tick iteration optimisation
|
||||||
- profiler.popPush("tickSpawningChunks");
|
- profiler.popPush("tickSpawningChunks");
|
||||||
|
|
||||||
for (LevelChunk levelChunk : list) {
|
for (LevelChunk levelChunk : list) {
|
||||||
this.tickSpawningChunk(levelChunk, timeInhabited, filteredSpawningCategories, spawnState);
|
this.tickSpawningChunk(levelChunk, timeInhabited, filteredSpawningCategories, spawnState);
|
||||||
@@ -501,10 +470,7 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -602,10 +577,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
list.clear();
|
list.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
- profiler.popPush("tickTickingChunks");
|
- profiler.popPush("tickTickingChunks");
|
||||||
this.chunkMap.forEachBlockTickingChunk(levelChunk1 -> this.level.tickChunk(levelChunk1, _int));
|
this.iterateTickingChunksFaster(); // Paper - chunk tick iteration optimisations
|
||||||
- profiler.pop();
|
- profiler.pop();
|
||||||
- profiler.popPush("customSpawners");
|
- profiler.popPush("customSpawners");
|
||||||
if (_boolean) {
|
if (_boolean) {
|
||||||
this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies);
|
this.level.tickCustomSpawners(this.spawnEnemies, this.spawnFriendlies);
|
||||||
}
|
}
|
||||||
@@ -704,7 +670,6 @@ public class ServerChunkCache extends ChunkSource {
|
@@ -814,7 +786,6 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doRunTask(Runnable task) {
|
protected void doRunTask(Runnable task) {
|
||||||
@@ -907,7 +872,7 @@ index c50a1a01d167696134bd65b2d28db323d81d6ebd..51c636b3bb5088b5caf0f93ec34987ef
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||||
index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622ec750e7a 100644
|
index 845d03dc893df2200327e9ee2710474874750c93..1d53c0b96ff781765155aac29256f4493f7d7c58 100644
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -74,8 +74,6 @@ import net.minecraft.util.Mth;
|
@@ -74,8 +74,6 @@ import net.minecraft.util.Mth;
|
||||||
@@ -919,7 +884,7 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
import net.minecraft.util.valueproviders.IntProvider;
|
import net.minecraft.util.valueproviders.IntProvider;
|
||||||
import net.minecraft.util.valueproviders.UniformInt;
|
import net.minecraft.util.valueproviders.UniformInt;
|
||||||
import net.minecraft.world.DifficultyInstance;
|
import net.minecraft.world.DifficultyInstance;
|
||||||
@@ -464,16 +462,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -704,16 +702,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tick(BooleanSupplier hasTimeLeft) {
|
public void tick(BooleanSupplier hasTimeLeft) {
|
||||||
@@ -936,7 +901,7 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
}
|
}
|
||||||
|
|
||||||
int _int = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
|
int _int = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
|
||||||
@@ -507,41 +501,30 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -747,41 +741,30 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
this.tickTime();
|
this.tickTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -978,17 +943,17 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
}
|
}
|
||||||
|
|
||||||
io.papermc.paper.entity.activation.ActivationRange.activateEntities(this); // Paper - EAR
|
io.papermc.paper.entity.activation.ActivationRange.activateEntities(this); // Paper - EAR
|
||||||
@@ -550,9 +533,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -790,9 +773,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
entity -> {
|
entity -> {
|
||||||
if (!entity.isRemoved()) {
|
if (!entity.isRemoved()) {
|
||||||
if (!tickRateManager.isEntityFrozen(entity)) {
|
if (!tickRateManager.isEntityFrozen(entity)) {
|
||||||
- profilerFiller.push("checkDespawn");
|
- profilerFiller.push("checkDespawn");
|
||||||
entity.checkDespawn();
|
entity.checkDespawn();
|
||||||
- profilerFiller.pop();
|
- profilerFiller.pop();
|
||||||
if (entity instanceof ServerPlayer
|
if (true) { // Paper - rewrite chunk system
|
||||||
|| this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) {
|
|
||||||
Entity vehicle = entity.getVehicle();
|
Entity vehicle = entity.getVehicle();
|
||||||
@@ -564,21 +545,16 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
if (vehicle != null) {
|
||||||
|
@@ -803,21 +784,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
entity.stopRiding();
|
entity.stopRiding();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1003,14 +968,14 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
- profilerFiller.pop();
|
- profilerFiller.pop();
|
||||||
this.tickBlockEntities();
|
this.tickBlockEntities();
|
||||||
}
|
}
|
||||||
|
-
|
||||||
- profilerFiller.push("entityManagement");
|
- profilerFiller.push("entityManagement");
|
||||||
this.entityManager.tick();
|
// Paper - rewrite chunk system
|
||||||
- profilerFiller.pop();
|
- profilerFiller.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -590,9 +566,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -832,9 +807,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
if (this.tickTime) {
|
if (this.tickTime) {
|
||||||
long l = this.levelData.getGameTime() + 1L;
|
long l = this.levelData.getGameTime() + 1L;
|
||||||
this.serverLevelData.setGameTime(l);
|
this.serverLevelData.setGameTime(l);
|
||||||
@@ -1020,7 +985,7 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
if (this.serverLevelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
|
if (this.serverLevelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
|
||||||
this.setDayTime(this.levelData.getDayTime() + 1L);
|
this.setDayTime(this.levelData.getDayTime() + 1L);
|
||||||
}
|
}
|
||||||
@@ -618,8 +592,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -913,8 +886,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
ChunkPos pos = chunk.getPos();
|
ChunkPos pos = chunk.getPos();
|
||||||
int minBlockX = pos.getMinBlockX();
|
int minBlockX = pos.getMinBlockX();
|
||||||
int minBlockZ = pos.getMinBlockZ();
|
int minBlockZ = pos.getMinBlockZ();
|
||||||
@@ -1029,38 +994,20 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
|
|
||||||
if (!this.paperConfig().environment.disableIceAndSnow) { // Paper - Option to disable ice and snow
|
if (!this.paperConfig().environment.disableIceAndSnow) { // Paper - Option to disable ice and snow
|
||||||
for (int i = 0; i < randomTickSpeed; i++) {
|
for (int i = 0; i < randomTickSpeed; i++) {
|
||||||
@@ -629,7 +601,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -924,12 +895,9 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
} // Paper - Option to disable ice and snow
|
} // Paper - Option to disable ice and snow
|
||||||
|
|
||||||
- profilerFiller.popPush("tickBlocks");
|
- profilerFiller.popPush("tickBlocks");
|
||||||
if (randomTickSpeed > 0) {
|
if (randomTickSpeed > 0) {
|
||||||
LevelChunkSection[] sections = chunk.getSections();
|
this.optimiseRandomTick(chunk, randomTickSpeed); // Paper - optimise random ticking
|
||||||
|
|
||||||
@@ -641,7 +612,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
|
||||||
|
|
||||||
for (int i2 = 0; i2 < randomTickSpeed; i2++) {
|
|
||||||
BlockPos blockRandomPos = this.getBlockRandomPos(minBlockX, blockPosCoord, minBlockZ, 15);
|
|
||||||
- profilerFiller.push("randomTick");
|
|
||||||
BlockState blockState = levelChunkSection.getBlockState(
|
|
||||||
blockRandomPos.getX() - minBlockX, blockRandomPos.getY() - blockPosCoord, blockRandomPos.getZ() - minBlockZ
|
|
||||||
);
|
|
||||||
@@ -653,14 +623,10 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
|
||||||
if (fluidState.isRandomlyTicking()) {
|
|
||||||
fluidState.randomTick(this, blockRandomPos, this.random);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- profilerFiller.pop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
- profilerFiller.pop();
|
- profilerFiller.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tickThunder(LevelChunk chunk) {
|
public void tickThunder(LevelChunk chunk) {
|
||||||
@@ -668,8 +634,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -937,8 +905,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
boolean isRaining = this.isRaining();
|
boolean isRaining = this.isRaining();
|
||||||
int minBlockX = pos.getMinBlockX();
|
int minBlockX = pos.getMinBlockX();
|
||||||
int minBlockZ = pos.getMinBlockZ();
|
int minBlockZ = pos.getMinBlockZ();
|
||||||
@@ -1069,7 +1016,7 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
if (!this.paperConfig().environment.disableThunder && isRaining && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - Option to disable thunder
|
if (!this.paperConfig().environment.disableThunder && isRaining && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - Option to disable thunder
|
||||||
BlockPos blockPos = this.findLightningTargetAround(this.getBlockRandomPos(minBlockX, 0, minBlockZ, 15));
|
BlockPos blockPos = this.findLightningTargetAround(this.getBlockRandomPos(minBlockX, 0, minBlockZ, 15));
|
||||||
if (this.isRainingAt(blockPos)) {
|
if (this.isRainingAt(blockPos)) {
|
||||||
@@ -695,8 +659,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -964,8 +930,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1078,7 +1025,7 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -978,17 +940,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1259,17 +1223,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
// Paper end - log detailed entity tick information
|
// Paper end - log detailed entity tick information
|
||||||
entity.setOldPosAndRot();
|
entity.setOldPosAndRot();
|
||||||
@@ -1096,7 +1043,7 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
|
|
||||||
for (Entity entity1 : entity.getPassengers()) {
|
for (Entity entity1 : entity.getPassengers()) {
|
||||||
this.tickPassenger(entity, entity1, isActive); // Paper - EAR 2
|
this.tickPassenger(entity, entity1, isActive); // Paper - EAR 2
|
||||||
@@ -1009,9 +967,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1290,9 +1250,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
passengerEntity.setOldPosAndRot();
|
passengerEntity.setOldPosAndRot();
|
||||||
passengerEntity.tickCount++;
|
passengerEntity.tickCount++;
|
||||||
passengerEntity.totalEntityAge++; // Paper - age-like counter for all entities
|
passengerEntity.totalEntityAge++; // Paper - age-like counter for all entities
|
||||||
@@ -1106,7 +1053,7 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
// Paper start - EAR 2
|
// Paper start - EAR 2
|
||||||
if (isActive) {
|
if (isActive) {
|
||||||
passengerEntity.rideTick();
|
passengerEntity.rideTick();
|
||||||
@@ -1023,7 +978,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1304,7 +1261,6 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
ridingEntity.positionRider(passengerEntity);
|
ridingEntity.positionRider(passengerEntity);
|
||||||
}
|
}
|
||||||
// Paper end - EAR 2
|
// Paper end - EAR 2
|
||||||
@@ -1115,7 +1062,7 @@ index 3d614c00886278514197374c3e24a8f871fda321..47cd1b3b5f7a74dcff147a744420c622
|
|||||||
for (Entity entity : passengerEntity.getPassengers()) {
|
for (Entity entity : passengerEntity.getPassengers()) {
|
||||||
this.tickPassenger(passengerEntity, entity, isActive); // Paper - EAR 2
|
this.tickPassenger(passengerEntity, entity, isActive); // Paper - EAR 2
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 9b3fea1260c46496b118fcec5d3556c77a973589..aa27b21deb786c15b193654bd3889e9f0a862b0b 100644
|
index 6457f41fe7882d8c532e16851400c37a67e8cd52..d6826e878efb3e5532d23f04cc8e951a937cf29f 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -104,8 +104,6 @@ import net.minecraft.util.HashOps;
|
@@ -104,8 +104,6 @@ import net.minecraft.util.HashOps;
|
||||||
@@ -1127,7 +1074,7 @@ index 9b3fea1260c46496b118fcec5d3556c77a973589..aa27b21deb786c15b193654bd3889e9f
|
|||||||
import net.minecraft.world.Container;
|
import net.minecraft.world.Container;
|
||||||
import net.minecraft.world.Difficulty;
|
import net.minecraft.world.Difficulty;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
@@ -1340,14 +1338,10 @@ public class ServerPlayer extends Player {
|
@@ -1376,14 +1374,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
this.unsetRemoved();
|
this.unsetRemoved();
|
||||||
*/
|
*/
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -1142,7 +1089,7 @@ index 9b3fea1260c46496b118fcec5d3556c77a973589..aa27b21deb786c15b193654bd3889e9f
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
this.isChangingDimension = true; // CraftBukkit - Set teleport invulnerability only if player changing worlds
|
this.isChangingDimension = true; // CraftBukkit - Set teleport invulnerability only if player changing worlds
|
||||||
LevelData worlddata = level.getLevelData();
|
LevelData worlddata = level.getLevelData();
|
||||||
@@ -1364,7 +1358,6 @@ public class ServerPlayer extends Player {
|
@@ -1400,7 +1394,6 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
|
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
|
||||||
this.connection.resetPosition();
|
this.connection.resetPosition();
|
||||||
level.addDuringTeleport(this);
|
level.addDuringTeleport(this);
|
||||||
@@ -1270,7 +1217,7 @@ index 64b0508ef21952c65b0b967b756b2a4c64d96899..b6b03fbbd669e6331b30255df5419611
|
|||||||
|
|
||||||
protected abstract T prepare(ResourceManager resourceManager, ProfilerFiller profiler);
|
protected abstract T prepare(ResourceManager resourceManager, ProfilerFiller profiler);
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604e0ec6f97 100644
|
index 9a0334134d8020e9d52e542859f29b5c6efad643..a8be25542f63d6166cbed065e5006cbf27253d49 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -82,8 +82,6 @@ import net.minecraft.tags.FluidTags;
|
@@ -82,8 +82,6 @@ import net.minecraft.tags.FluidTags;
|
||||||
@@ -1282,7 +1229,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.Nameable;
|
import net.minecraft.world.Nameable;
|
||||||
@@ -706,8 +704,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -812,8 +810,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
public void baseTick() {
|
public void baseTick() {
|
||||||
@@ -1291,7 +1238,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Prevent entity loading causing async lookups
|
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Prevent entity loading causing async lookups
|
||||||
this.inBlockState = null;
|
this.inBlockState = null;
|
||||||
if (this.isPassenger() && this.getVehicle().isRemoved()) {
|
if (this.isPassenger() && this.getVehicle().isRemoved()) {
|
||||||
@@ -764,8 +760,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -870,8 +866,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
if (this.level() instanceof ServerLevel serverLevelx && this instanceof Leashable) {
|
if (this.level() instanceof ServerLevel serverLevelx && this instanceof Leashable) {
|
||||||
Leashable.tickLeash(serverLevelx, (Entity & Leashable)this);
|
Leashable.tickLeash(serverLevelx, (Entity & Leashable)this);
|
||||||
}
|
}
|
||||||
@@ -1300,7 +1247,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setSharedFlagOnFire(boolean isOnFire) {
|
public void setSharedFlagOnFire(boolean isOnFire) {
|
||||||
@@ -985,8 +979,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -1091,8 +1085,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1309,7 +1256,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7) {
|
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7) {
|
||||||
movement = movement.multiply(this.stuckSpeedMultiplier);
|
movement = movement.multiply(this.stuckSpeedMultiplier);
|
||||||
this.stuckSpeedMultiplier = Vec3.ZERO;
|
this.stuckSpeedMultiplier = Vec3.ZERO;
|
||||||
@@ -995,7 +987,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -1101,7 +1093,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
// Paper start - ignore movement changes while inactive.
|
// Paper start - ignore movement changes while inactive.
|
||||||
if (isTemporarilyActive && !(this instanceof ItemEntity) && movement == getDeltaMovement() && type == MoverType.SELF) {
|
if (isTemporarilyActive && !(this instanceof ItemEntity) && movement == getDeltaMovement() && type == MoverType.SELF) {
|
||||||
setDeltaMovement(Vec3.ZERO);
|
setDeltaMovement(Vec3.ZERO);
|
||||||
@@ -1317,7 +1264,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -1030,8 +1021,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -1136,8 +1127,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
this.setPos(vec31);
|
this.setPos(vec31);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1326,7 +1273,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
boolean flag = !Mth.equal(movement.x, vec3.x);
|
boolean flag = !Mth.equal(movement.x, vec3.x);
|
||||||
boolean flag1 = !Mth.equal(movement.z, vec3.z);
|
boolean flag1 = !Mth.equal(movement.z, vec3.z);
|
||||||
this.horizontalCollision = flag || flag1;
|
this.horizontalCollision = flag || flag1;
|
||||||
@@ -1054,7 +1043,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -1160,7 +1149,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isRemoved()) {
|
if (this.isRemoved()) {
|
||||||
@@ -1334,7 +1281,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
} else {
|
} else {
|
||||||
if (this.horizontalCollision) {
|
if (this.horizontalCollision) {
|
||||||
Vec3 deltaMovement = this.getDeltaMovement();
|
Vec3 deltaMovement = this.getDeltaMovement();
|
||||||
@@ -1098,7 +1086,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -1204,7 +1192,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
|
|
||||||
float blockSpeedFactor = this.getBlockSpeedFactor();
|
float blockSpeedFactor = this.getBlockSpeedFactor();
|
||||||
this.setDeltaMovement(this.getDeltaMovement().multiply(blockSpeedFactor, 1.0, blockSpeedFactor));
|
this.setDeltaMovement(this.getDeltaMovement().multiply(blockSpeedFactor, 1.0, blockSpeedFactor));
|
||||||
@@ -1342,7 +1289,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Paper start - detailed watchdog information
|
// Paper start - detailed watchdog information
|
||||||
@@ -2954,8 +2941,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -3191,8 +3178,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
this.processPortalCooldown();
|
this.processPortalCooldown();
|
||||||
if (this.portalProcess != null) {
|
if (this.portalProcess != null) {
|
||||||
if (this.portalProcess.processPortalTeleportation(serverLevel, this, this.canUsePortal(false))) {
|
if (this.portalProcess.processPortalTeleportation(serverLevel, this, this.canUsePortal(false))) {
|
||||||
@@ -1351,7 +1298,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
this.setPortalCooldown();
|
this.setPortalCooldown();
|
||||||
TeleportTransition portalDestination = this.portalProcess.getPortalDestination(serverLevel, this);
|
TeleportTransition portalDestination = this.portalProcess.getPortalDestination(serverLevel, this);
|
||||||
if (portalDestination != null) {
|
if (portalDestination != null) {
|
||||||
@@ -2966,7 +2951,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -3203,7 +3188,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1359,7 +1306,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
} else if (this.portalProcess.hasExpired()) {
|
} else if (this.portalProcess.hasExpired()) {
|
||||||
this.portalProcess = null;
|
this.portalProcess = null;
|
||||||
}
|
}
|
||||||
@@ -3521,15 +3505,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -3758,15 +3742,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
entity.teleport(this.calculatePassengerTransition(teleportTransition, entity));
|
entity.teleport(this.calculatePassengerTransition(teleportTransition, entity));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1375,7 +1322,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3545,11 +3526,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -3782,11 +3763,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1387,7 +1334,7 @@ index 6e854244ccb4c84de907934c952b33fd8d2ef6ee..46c8358e61ca2e1e7e63e301dc8a9604
|
|||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
// Paper start - Fix item duplication and teleport issues
|
// Paper start - Fix item duplication and teleport issues
|
||||||
@@ -3568,7 +3546,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -3805,7 +3783,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
|
|
||||||
level.resetEmptyTime();
|
level.resetEmptyTime();
|
||||||
teleportTransition.postTeleportTransition().onTransition(entityx);
|
teleportTransition.postTeleportTransition().onTransition(entityx);
|
||||||
@@ -2110,7 +2057,7 @@ index e0e0d2ea7fc60e3142c675404d152eca60263240..09d559adb603e3d34bb82b944a2a3e8c
|
|||||||
this.assignProfessionWhenSpawned = false;
|
this.assignProfessionWhenSpawned = false;
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
||||||
index dbbf6fc4ef52d179ac694b0cfff921323e0c758b..800e12ac2ca850fbd4e2a7df84295ceff758fdac 100644
|
index e2829222337ed5a5061b60a153c8224eb53de9e8..78b368886648f034b7f1a97a922b97cc62b2fa02 100644
|
||||||
--- a/net/minecraft/world/level/Level.java
|
--- a/net/minecraft/world/level/Level.java
|
||||||
+++ b/net/minecraft/world/level/Level.java
|
+++ b/net/minecraft/world/level/Level.java
|
||||||
@@ -35,8 +35,6 @@ import net.minecraft.util.AbortableIterationConsumer;
|
@@ -35,8 +35,6 @@ import net.minecraft.util.AbortableIterationConsumer;
|
||||||
@@ -2122,7 +2069,7 @@ index dbbf6fc4ef52d179ac694b0cfff921323e0c758b..800e12ac2ca850fbd4e2a7df84295cef
|
|||||||
import net.minecraft.world.DifficultyInstance;
|
import net.minecraft.world.DifficultyInstance;
|
||||||
import net.minecraft.world.TickRateManager;
|
import net.minecraft.world.TickRateManager;
|
||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
@@ -817,8 +815,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -1452,8 +1450,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void tickBlockEntities() {
|
protected void tickBlockEntities() {
|
||||||
@@ -2131,7 +2078,7 @@ index dbbf6fc4ef52d179ac694b0cfff921323e0c758b..800e12ac2ca850fbd4e2a7df84295cef
|
|||||||
this.tickingBlockEntities = true;
|
this.tickingBlockEntities = true;
|
||||||
if (!this.pendingBlockEntityTickers.isEmpty()) {
|
if (!this.pendingBlockEntityTickers.isEmpty()) {
|
||||||
this.blockEntityTickers.addAll(this.pendingBlockEntityTickers);
|
this.blockEntityTickers.addAll(this.pendingBlockEntityTickers);
|
||||||
@@ -842,7 +838,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -1483,7 +1479,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
|
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
|
||||||
|
|
||||||
this.tickingBlockEntities = false;
|
this.tickingBlockEntities = false;
|
||||||
@@ -2139,24 +2086,25 @@ index dbbf6fc4ef52d179ac694b0cfff921323e0c758b..800e12ac2ca850fbd4e2a7df84295cef
|
|||||||
this.spigotConfig.currentPrimedTnt = 0; // Spigot
|
this.spigotConfig.currentPrimedTnt = 0; // Spigot
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1093,7 +1088,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -1742,7 +1737,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Entity> getEntities(@Nullable Entity entity, AABB boundingBox, Predicate<? super Entity> predicate) {
|
public List<Entity> getEntities(@Nullable Entity entity, AABB boundingBox, Predicate<? super Entity> predicate) {
|
||||||
- Profiler.get().incrementCounter("getEntities");
|
- Profiler.get().incrementCounter("getEntities");
|
||||||
List<Entity> list = Lists.newArrayList();
|
List<Entity> list = Lists.newArrayList();
|
||||||
this.getEntities().get(boundingBox, entity1 -> {
|
|
||||||
if (entity1 != entity && predicate.test(entity1)) {
|
// Paper start - rewrite chunk system
|
||||||
@@ -1127,7 +1121,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -1771,8 +1765,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
public <T extends Entity> void getEntities(
|
public <T extends Entity> void getEntities(final EntityTypeTest<Entity, T> entityTypeTest,
|
||||||
EntityTypeTest<Entity, T> entityTypeTest, AABB bounds, Predicate<? super T> predicate, List<? super T> output, int maxResults
|
final AABB boundingBox, final Predicate<? super T> predicate,
|
||||||
) {
|
final List<? super T> into, final int maxCount) {
|
||||||
- Profiler.get().incrementCounter("getEntities");
|
- Profiler.get().incrementCounter("getEntities");
|
||||||
this.getEntities().get(entityTypeTest, bounds, entity -> {
|
-
|
||||||
if (predicate.test(entity)) {
|
if (entityTypeTest instanceof net.minecraft.world.entity.EntityType<T> byType) {
|
||||||
output.add(entity);
|
if (maxCount != Integer.MAX_VALUE) {
|
||||||
|
((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemLevel)this).moonrise$getEntityLookup().getEntities(byType, boundingBox, into, predicate, maxCount);
|
||||||
diff --git a/net/minecraft/world/level/NaturalSpawner.java b/net/minecraft/world/level/NaturalSpawner.java
|
diff --git a/net/minecraft/world/level/NaturalSpawner.java b/net/minecraft/world/level/NaturalSpawner.java
|
||||||
index 3a864c568cd66a680760bb4df2cb020e323e9a9d..3888e174963c2e95f1cd2258c4c1d6ec4a85d267 100644
|
index 14a2514a408a66a83f7b5fb43b4c4dc8f23fd5f4..ec32d77447dd250857a2af1d8cc3e6e233aa3e6e 100644
|
||||||
--- a/net/minecraft/world/level/NaturalSpawner.java
|
--- a/net/minecraft/world/level/NaturalSpawner.java
|
||||||
+++ b/net/minecraft/world/level/NaturalSpawner.java
|
+++ b/net/minecraft/world/level/NaturalSpawner.java
|
||||||
@@ -23,8 +23,6 @@ import net.minecraft.tags.BlockTags;
|
@@ -23,8 +23,6 @@ import net.minecraft.tags.BlockTags;
|
||||||
@@ -2168,7 +2116,7 @@ index 3a864c568cd66a680760bb4df2cb020e323e9a9d..3888e174963c2e95f1cd2258c4c1d6ec
|
|||||||
import net.minecraft.util.random.WeightedList;
|
import net.minecraft.util.random.WeightedList;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntitySpawnReason;
|
import net.minecraft.world.entity.EntitySpawnReason;
|
||||||
@@ -139,16 +137,11 @@ public final class NaturalSpawner {
|
@@ -152,9 +150,6 @@ public final class NaturalSpawner {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void spawnForChunk(ServerLevel level, LevelChunk chunk, NaturalSpawner.SpawnState spawnState, List<MobCategory> categories) {
|
public static void spawnForChunk(ServerLevel level, LevelChunk chunk, NaturalSpawner.SpawnState spawnState, List<MobCategory> categories) {
|
||||||
@@ -2176,8 +2124,10 @@ index 3a864c568cd66a680760bb4df2cb020e323e9a9d..3888e174963c2e95f1cd2258c4c1d6ec
|
|||||||
- profilerFiller.push("spawner");
|
- profilerFiller.push("spawner");
|
||||||
-
|
-
|
||||||
for (MobCategory mobCategory : categories) {
|
for (MobCategory mobCategory : categories) {
|
||||||
if (spawnState.canSpawnForCategoryLocal(mobCategory, chunk.getPos())) {
|
// Paper start - Optional per player mob spawns
|
||||||
spawnCategoryForChunk(mobCategory, level, chunk, spawnState::canSpawn, spawnState::afterSpawn);
|
final boolean canSpawn;
|
||||||
|
@@ -189,8 +184,6 @@ public final class NaturalSpawner {
|
||||||
|
// Paper end - Optional per player mob spawns
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
@@ -2186,7 +2136,7 @@ index 3a864c568cd66a680760bb4df2cb020e323e9a9d..3888e174963c2e95f1cd2258c4c1d6ec
|
|||||||
|
|
||||||
// Paper start - Add mobcaps commands
|
// Paper start - Add mobcaps commands
|
||||||
diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java
|
diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java
|
||||||
index 01083cf32b4b0bd57d1b0ac83eb4e43d9d90fa98..5b839c2a682595ecedf15ab08fecbf8861a9caa5 100644
|
index ec4b63a574e7ff2c807c283c9f4b402229864e51..63d0b83d648ab1a6e7c84a49f7e2e825076904ad 100644
|
||||||
--- a/net/minecraft/world/level/ServerExplosion.java
|
--- a/net/minecraft/world/level/ServerExplosion.java
|
||||||
+++ b/net/minecraft/world/level/ServerExplosion.java
|
+++ b/net/minecraft/world/level/ServerExplosion.java
|
||||||
@@ -13,8 +13,6 @@ import net.minecraft.Util;
|
@@ -13,8 +13,6 @@ import net.minecraft.Util;
|
||||||
@@ -2198,7 +2148,7 @@ index 01083cf32b4b0bd57d1b0ac83eb4e43d9d90fa98..5b839c2a682595ecedf15ab08fecbf88
|
|||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
@@ -364,10 +362,7 @@ public class ServerExplosion implements Explosion {
|
@@ -654,10 +652,7 @@ public class ServerExplosion implements Explosion {
|
||||||
List<BlockPos> list = this.calculateExplodedPositions();
|
List<BlockPos> list = this.calculateExplodedPositions();
|
||||||
this.hurtEntities();
|
this.hurtEntities();
|
||||||
if (this.interactsWithBlocks()) {
|
if (this.interactsWithBlocks()) {
|
||||||
@@ -2210,7 +2160,7 @@ index 01083cf32b4b0bd57d1b0ac83eb4e43d9d90fa98..5b839c2a682595ecedf15ab08fecbf88
|
|||||||
|
|
||||||
if (this.fire) {
|
if (this.fire) {
|
||||||
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
|
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
index 08e2442f6965cc6eaab67bdf9340a5152c08db2a..626e87d9c1862fe0c896172ee240844e50d7902f 100644
|
index 5d3fc807221392d378fec283bfdefb8747fb8376..61fa8f2bf018b8892a11acec058f36914c5a1573 100644
|
||||||
--- a/net/minecraft/world/level/chunk/LevelChunk.java
|
--- a/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
|
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
@@ -23,8 +23,6 @@ import net.minecraft.network.FriendlyByteBuf;
|
@@ -23,8 +23,6 @@ import net.minecraft.network.FriendlyByteBuf;
|
||||||
@@ -2222,20 +2172,20 @@ index 08e2442f6965cc6eaab67bdf9340a5152c08db2a..626e87d9c1862fe0c896172ee240844e
|
|||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.level.ChunkPos;
|
import net.minecraft.world.level.ChunkPos;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
@@ -336,12 +334,8 @@ public class LevelChunk extends ChunkAccess {
|
@@ -383,12 +381,8 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LightEngine.hasDifferentLightProperties(blockState, state)) {
|
if (LightEngine.hasDifferentLightProperties(blockState, state)) {
|
||||||
- ProfilerFiller profilerFiller = Profiler.get();
|
- ProfilerFiller profilerFiller = Profiler.get();
|
||||||
- profilerFiller.push("updateSkyLightSources");
|
- profilerFiller.push("updateSkyLightSources");
|
||||||
this.skyLightSources.update(this, i, y, i2);
|
// Paper - rewrite chunk system
|
||||||
- profilerFiller.popPush("queueCheckLight");
|
- profilerFiller.popPush("queueCheckLight");
|
||||||
this.level.getChunkSource().getLightEngine().checkBlock(pos);
|
this.level.getChunkSource().getLightEngine().checkBlock(pos);
|
||||||
- profilerFiller.pop();
|
- profilerFiller.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean flag = !blockState.is(block);
|
boolean flag = !blockState.is(block);
|
||||||
@@ -840,8 +834,6 @@ public class LevelChunk extends ChunkAccess {
|
@@ -915,8 +909,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
BlockPos blockPos = this.blockEntity.getBlockPos();
|
BlockPos blockPos = this.blockEntity.getBlockPos();
|
||||||
if (LevelChunk.this.isTicking(blockPos)) {
|
if (LevelChunk.this.isTicking(blockPos)) {
|
||||||
try {
|
try {
|
||||||
@@ -2244,7 +2194,7 @@ index 08e2442f6965cc6eaab67bdf9340a5152c08db2a..626e87d9c1862fe0c896172ee240844e
|
|||||||
BlockState blockState = LevelChunk.this.getBlockState(blockPos);
|
BlockState blockState = LevelChunk.this.getBlockState(blockPos);
|
||||||
if (this.blockEntity.getType().isValid(blockState)) {
|
if (this.blockEntity.getType().isValid(blockState)) {
|
||||||
this.ticker.tick(LevelChunk.this.level, this.blockEntity.getBlockPos(), blockState, this.blockEntity);
|
this.ticker.tick(LevelChunk.this.level, this.blockEntity.getBlockPos(), blockState, this.blockEntity);
|
||||||
@@ -855,8 +847,6 @@ public class LevelChunk extends ChunkAccess {
|
@@ -930,8 +922,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
}
|
}
|
||||||
// Paper end - Remove the Block Entity if it's invalid
|
// Paper end - Remove the Block Entity if it's invalid
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/item/crafting/ShapelessRecipe.java b/net/minecraft/world/item/crafting/ShapelessRecipe.java
|
diff --git a/net/minecraft/world/item/crafting/ShapelessRecipe.java b/net/minecraft/world/item/crafting/ShapelessRecipe.java
|
||||||
index fb317eafeed39adff793bffa8f6b21c37a32086c..0d84f807cf806ae2951d5074bf4fcaa8dbbb044a 100644
|
index d601b54b1de2f2ae44fe2b20c8116c71a6340e45..6a53e97d27d746621892ced4ca5b4a56b6bc4c23 100644
|
||||||
--- a/net/minecraft/world/item/crafting/ShapelessRecipe.java
|
--- a/net/minecraft/world/item/crafting/ShapelessRecipe.java
|
||||||
+++ b/net/minecraft/world/item/crafting/ShapelessRecipe.java
|
+++ b/net/minecraft/world/item/crafting/ShapelessRecipe.java
|
||||||
@@ -23,8 +23,16 @@ public class ShapelessRecipe implements CraftingRecipe {
|
@@ -23,8 +23,16 @@ public class ShapelessRecipe implements CraftingRecipe {
|
||||||
@@ -84,6 +84,6 @@ index fb317eafeed39adff793bffa8f6b21c37a32086c..0d84f807cf806ae2951d5074bf4fcaa8
|
|||||||
+ return ingredients.isEmpty();
|
+ return ingredients.isEmpty();
|
||||||
+ }
|
+ }
|
||||||
+ // Gale end - Airplane - simpler ShapelessRecipe comparison for vanilla
|
+ // Gale end - Airplane - simpler ShapelessRecipe comparison for vanilla
|
||||||
|
// Paper start - Improve exact choice recipe ingredients & unwrap ternary
|
||||||
if (input.ingredientCount() != this.ingredients.size()) {
|
if (input.ingredientCount() != this.ingredients.size()) {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
|
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
|
||||||
index 3f83a589442a80e9c16b5e9cd0f50792defd12bc..e945564034f1f0a83dcdd39b8889c7aa61bfd199 100644
|
index 257ecbcf7d463eefb951867a5426eaf24e356305..bcbc25c6dc5a2063b1ad410194a25b0d5ff7c8d8 100644
|
||||||
--- a/net/minecraft/server/level/ServerEntity.java
|
--- a/net/minecraft/server/level/ServerEntity.java
|
||||||
+++ b/net/minecraft/server/level/ServerEntity.java
|
+++ b/net/minecraft/server/level/ServerEntity.java
|
||||||
@@ -172,19 +172,25 @@ public class ServerEntity {
|
@@ -184,19 +184,25 @@ public class ServerEntity {
|
||||||
packet = ClientboundEntityPositionSyncPacket.of(this.entity);
|
packet = ClientboundEntityPositionSyncPacket.of(this.entity);
|
||||||
flag3 = true;
|
flag3 = true;
|
||||||
flag4 = true;
|
flag4 = true;
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||||
index 47cd1b3b5f7a74dcff147a744420c622ec750e7a..39cf21effb3ffd1230c5874c5a95771d8e6a42c9 100644
|
index 1d53c0b96ff781765155aac29256f4493f7d7c58..eb2a6b82dc38989bcc155281aaafaced6fce78a0 100644
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -545,7 +545,19 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -784,7 +784,19 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
entity.stopRiding();
|
entity.stopRiding();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,10 +56,10 @@ index 47cd1b3b5f7a74dcff147a744420c622ec750e7a..39cf21effb3ffd1230c5874c5a95771d
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
||||||
index 800e12ac2ca850fbd4e2a7df84295ceff758fdac..270720ac00b0dc4ccbe08b789728dd09d0a9f1e3 100644
|
index 78b368886648f034b7f1a97a922b97cc62b2fa02..fb213dc889abafaaf35a69b06b1c35041ac65b46 100644
|
||||||
--- a/net/minecraft/world/level/Level.java
|
--- a/net/minecraft/world/level/Level.java
|
||||||
+++ b/net/minecraft/world/level/Level.java
|
+++ b/net/minecraft/world/level/Level.java
|
||||||
@@ -849,8 +849,9 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -1490,8 +1490,9 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
final String msg = String.format("Entity threw exception at %s:%s,%s,%s", entity.level().getWorld().getName(), entity.getX(), entity.getY(), entity.getZ());
|
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, var6);
|
MinecraftServer.LOGGER.error(msg, var6);
|
||||||
getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerInternalException(msg, var6))); // Paper - ServerExceptionEvent
|
getCraftServer().getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerInternalException(msg, var6))); // Paper - ServerExceptionEvent
|
||||||
@@ -68,5 +68,5 @@ index 800e12ac2ca850fbd4e2a7df84295ceff758fdac..270720ac00b0dc4ccbe08b789728dd09
|
|||||||
// Paper end - Prevent block entity and entity crashes
|
// Paper end - Prevent block entity and entity crashes
|
||||||
+ //this.moonrise$midTickTasks(); // Paper - rewrite chunk system // Gale - Airplane - remove lambda from ticking guard - diff on change ServerLevel#tick
|
+ //this.moonrise$midTickTasks(); // Paper - rewrite chunk system // Gale - Airplane - remove lambda from ticking guard - diff on change ServerLevel#tick
|
||||||
}
|
}
|
||||||
|
this.moonrise$midTickTasks(); // Paper - rewrite chunk system
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -105,10 +105,10 @@ index 484c2ba2752fbf3ad929e46c2f078e906f6f0637..6ced5a7e27703a7cf5a7495dc3a1a290
|
|||||||
|
|
||||||
double getLevelY();
|
double getLevelY();
|
||||||
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
||||||
index 9a03934dd4d96184f37b9ff5661eb7bd76150464..c7591bb0b4755f28dffc2b3e6c4600d22480bbf1 100644
|
index 15d4f60942c0cc612c1468b4c0fda886867a67cb..c2c7832fbb207ecfd23c7a086ef72db9648f48f9 100644
|
||||||
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
--- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
||||||
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
+++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
||||||
@@ -302,7 +302,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
|
@@ -544,7 +544,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
boolean flag = hopper.isGridAligned() && blockState.isCollisionShapeFullBlock(level, blockPos) && !blockState.is(BlockTags.DOES_NOT_BLOCK_HOPPERS);
|
boolean flag = hopper.isGridAligned() && blockState.isCollisionShapeFullBlock(level, blockPos) && !blockState.is(BlockTags.DOES_NOT_BLOCK_HOPPERS);
|
||||||
@@ -117,8 +117,8 @@ index 9a03934dd4d96184f37b9ff5661eb7bd76150464..c7591bb0b4755f28dffc2b3e6c4600d2
|
|||||||
for (ItemEntity itemEntity : getItemsAtAndAbove(level, hopper)) {
|
for (ItemEntity itemEntity : getItemsAtAndAbove(level, hopper)) {
|
||||||
if (addItem(hopper, itemEntity)) {
|
if (addItem(hopper, itemEntity)) {
|
||||||
return true;
|
return true;
|
||||||
@@ -565,6 +565,34 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
|
@@ -820,6 +820,34 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
|
||||||
return stack1.getCount() <= stack1.getMaxStackSize() && ItemStack.isSameItemSameComponents(stack1, stack2);
|
return stack1.getCount() < stack1.getMaxStackSize() && ItemStack.isSameItemSameComponents(stack1, stack2); // Paper - Perf: Optimize Hoppers; used to return true for full itemstacks?!
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Gale start - EMC - reduce hopper item checks
|
+ // Gale start - EMC - reduce hopper item checks
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ As part of: EmpireCraft (https://github.com/starlis/empirecraft)
|
|||||||
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 20b6cfe278f2bd87dfe2cbf7befef745d36bb845..4973de0813f07d657a1e7b1930af7ab583a39f65 100644
|
index d6826e878efb3e5532d23f04cc8e951a937cf29f..62e49f844c477c92894d77b469c1537b05fa7677 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -416,6 +416,7 @@ public class ServerPlayer extends Player {
|
@@ -422,6 +422,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
public boolean sentListPacket = false;
|
public boolean sentListPacket = false;
|
||||||
public boolean supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready
|
public boolean supressTrackerForLogin = false; // Paper - Fire PlayerJoinEvent when Player is actually ready
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -38,7 +38,7 @@ index df7142bbfec170966373dcf4ac50e4bbc5ba4e53..dea2a849a1d1f2dcfc1e63eb873ada99
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
if (sync) {
|
if (sync) {
|
||||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||||
index 48eae4ea5999aee4faa5b24a72e7b0b51c598fc8..2726f72c86368fe804dce43dc6c337bfe213cc58 100644
|
index 7517812d79c44358f2824dce29326d2d2d3b178e..818e7c6f5b2b06c901463fda296cb4673f6d271b 100644
|
||||||
--- a/net/minecraft/server/players/PlayerList.java
|
--- a/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/net/minecraft/server/players/PlayerList.java
|
+++ b/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -334,6 +334,8 @@ public abstract class PlayerList {
|
@@ -334,6 +334,8 @@ public abstract class PlayerList {
|
||||||
|
|||||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/WorldGenRegion.java b/net/minecraft/server/level/WorldGenRegion.java
|
diff --git a/net/minecraft/server/level/WorldGenRegion.java b/net/minecraft/server/level/WorldGenRegion.java
|
||||||
index b30f56fbc1fd17259a1d05dc9155fffcab292ca1..1aa26a70177e4ecf9d859fca44adc6a96b853c30 100644
|
index 11fed81a4696ba18440e755c3b8a5ca39ed8a6b1..e1bc9ee6cce51a8909bf48eb8faeaf7e247c9fc9 100644
|
||||||
--- a/net/minecraft/server/level/WorldGenRegion.java
|
--- a/net/minecraft/server/level/WorldGenRegion.java
|
||||||
+++ b/net/minecraft/server/level/WorldGenRegion.java
|
+++ b/net/minecraft/server/level/WorldGenRegion.java
|
||||||
@@ -284,7 +284,7 @@ public class WorldGenRegion implements WorldGenLevel {
|
@@ -314,7 +314,7 @@ public class WorldGenRegion implements WorldGenLevel {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
// Paper start - Buffer OOB setBlock calls
|
// Paper start - Buffer OOB setBlock calls
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
|||||||
Gale - https://galemc.org
|
Gale - https://galemc.org
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||||
index 2726f72c86368fe804dce43dc6c337bfe213cc58..5abc0655ffc68ce81248467e7420051b2a2f0359 100644
|
index 818e7c6f5b2b06c901463fda296cb4673f6d271b..29904ffc7aa1b60ceb94cd2e4f7c86d26e398e6c 100644
|
||||||
--- a/net/minecraft/server/players/PlayerList.java
|
--- a/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/net/minecraft/server/players/PlayerList.java
|
+++ b/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -1252,7 +1252,7 @@ public abstract class PlayerList {
|
@@ -1267,7 +1267,7 @@ public abstract class PlayerList {
|
||||||
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldFilterMessageTo, @Nullable ServerPlayer sender, ChatType.Bound boundChatType, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
|
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldFilterMessageTo, @Nullable ServerPlayer sender, ChatType.Bound boundChatType, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
|
||||||
// Paper end
|
// Paper end
|
||||||
boolean flag = this.verifyChatTrusted(message);
|
boolean flag = this.verifyChatTrusted(message);
|
||||||
|
|||||||
@@ -80,10 +80,10 @@ index 8ef16f98996b1ec0c9c3f158248ac95f1b07328f..6780b2493d625603b74e635c4996bb83
|
|||||||
private static final Codec<Object> ARG_CODEC = Codec.either(PRIMITIVE_ARG_CODEC, ComponentSerialization.CODEC)
|
private static final Codec<Object> ARG_CODEC = Codec.either(PRIMITIVE_ARG_CODEC, ComponentSerialization.CODEC)
|
||||||
.xmap(
|
.xmap(
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||||
index 679c94142eac06ec0bc6f3b819ee4f7e831c4626..0d8fe6a658c1ad15f6243af5d2562505c41e3e8d 100644
|
index eb2a6b82dc38989bcc155281aaafaced6fce78a0..866671513a598737cb618d149a96eecce5e36184 100644
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -937,7 +937,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1220,7 +1220,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
|
|
||||||
public static List<Entity> getCurrentlyTickingEntities() {
|
public static List<Entity> getCurrentlyTickingEntities() {
|
||||||
Entity ticking = currentlyTickingEntity.get();
|
Entity ticking = currentlyTickingEntity.get();
|
||||||
@@ -119,7 +119,7 @@ index d445e8f126f077d8419c52fa5436ea963a1a42a4..39483f7b453d6faedeccc1ab1eda7666
|
|||||||
|
|
||||||
public boolean isEmpty() {
|
public boolean isEmpty() {
|
||||||
diff --git a/net/minecraft/util/ZeroBitStorage.java b/net/minecraft/util/ZeroBitStorage.java
|
diff --git a/net/minecraft/util/ZeroBitStorage.java b/net/minecraft/util/ZeroBitStorage.java
|
||||||
index 8cc5c0716392ba06501542ff5cbe71ee43979e5d..64945449807e49115b9115ee114cd3acad3d1ef8 100644
|
index 09fd99c9cbd23b5f3c899bfb00c9b89651948ed8..5c1103ef028e5ffe6ce0eadc861dd3b2c8f3ed9f 100644
|
||||||
--- a/net/minecraft/util/ZeroBitStorage.java
|
--- a/net/minecraft/util/ZeroBitStorage.java
|
||||||
+++ b/net/minecraft/util/ZeroBitStorage.java
|
+++ b/net/minecraft/util/ZeroBitStorage.java
|
||||||
@@ -5,7 +5,7 @@ import java.util.function.IntConsumer;
|
@@ -5,7 +5,7 @@ import java.util.function.IntConsumer;
|
||||||
@@ -164,10 +164,10 @@ index 381e0a1c0af7e339713ed1df1c2f21121c1bbd0f..4e847c3f9d761da5dda11dec60582d9d
|
|||||||
equipmentSlotGroup -> equipmentSlotGroup.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO
|
equipmentSlotGroup -> equipmentSlotGroup.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO
|
||||||
);
|
);
|
||||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||||
index c206187e2e4a3600681caadd4efd6293e42a9177..3958cd983242fc60c1868ce2a3ec804047d118c0 100644
|
index 77c4bf12c8344dd3699142decaec42330100f1e7..25c806ca9abebdaa6031e3f350fdf1c7deac7c4e 100644
|
||||||
--- a/net/minecraft/world/item/ItemStack.java
|
--- a/net/minecraft/world/item/ItemStack.java
|
||||||
+++ b/net/minecraft/world/item/ItemStack.java
|
+++ b/net/minecraft/world/item/ItemStack.java
|
||||||
@@ -1168,7 +1168,7 @@ public final class ItemStack implements DataComponentHolder {
|
@@ -1174,7 +1174,7 @@ public final class ItemStack implements DataComponentHolder {
|
||||||
|
|
||||||
private void addAttributeTooltips(Consumer<Component> tooltipAdder, TooltipDisplay tooltipDisplay, @Nullable Player player) {
|
private void addAttributeTooltips(Consumer<Component> tooltipAdder, TooltipDisplay tooltipDisplay, @Nullable Player player) {
|
||||||
if (tooltipDisplay.shows(DataComponents.ATTRIBUTE_MODIFIERS)) {
|
if (tooltipDisplay.shows(DataComponents.ATTRIBUTE_MODIFIERS)) {
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ As part of: JettPack (https://gitlab.com/Titaniumtown/JettPack)
|
|||||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index c3c480cb21f7f952cc09b36e24c462822b663b28..91185d7f8f2206fea9cb1d96611b8409f82694f2 100644
|
index a8be25542f63d6166cbed065e5006cbf27253d49..c51776867d87640c20cd317a33dc5c654f1e7a51 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -1865,10 +1865,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -2013,10 +2013,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public float getLightLevelDependentMagicValue() {
|
public float getLightLevelDependentMagicValue() {
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric)
|
|||||||
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
|
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/level/material/FlowingFluid.java b/net/minecraft/world/level/material/FlowingFluid.java
|
diff --git a/net/minecraft/world/level/material/FlowingFluid.java b/net/minecraft/world/level/material/FlowingFluid.java
|
||||||
index ab8babd32b7d71bc14049c8778525499e715bd12..95ffd0195b9e0792c6b84115d1a1196231b39cec 100644
|
index 6bac3fb751e114855b9b072a7880ab370f111218..91567d45fd809f2fee7ab9abbd27f43869b71016 100644
|
||||||
--- a/net/minecraft/world/level/material/FlowingFluid.java
|
--- a/net/minecraft/world/level/material/FlowingFluid.java
|
||||||
+++ b/net/minecraft/world/level/material/FlowingFluid.java
|
+++ b/net/minecraft/world/level/material/FlowingFluid.java
|
||||||
@@ -484,7 +484,26 @@ public abstract class FlowingFluid extends Fluid {
|
@@ -536,7 +536,26 @@ public abstract class FlowingFluid extends Fluid {
|
||||||
: this.shapes.computeIfAbsent(state, fluidState -> Shapes.box(0.0, 0.0, 0.0, 1.0, fluidState.getHeight(level, pos), 1.0));
|
: this.shapes.computeIfAbsent(state, fluidState -> Shapes.box(0.0, 0.0, 0.0, 1.0, fluidState.getHeight(level, pos), 1.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ index ab8babd32b7d71bc14049c8778525499e715bd12..95ffd0195b9e0792c6b84115d1a11962
|
|||||||
@Override
|
@Override
|
||||||
public boolean equals(Object object) {
|
public boolean equals(Object object) {
|
||||||
return object instanceof FlowingFluid.BlockStatePairKey blockStatePairKey
|
return object instanceof FlowingFluid.BlockStatePairKey blockStatePairKey
|
||||||
@@ -495,9 +514,7 @@ public abstract class FlowingFluid extends Fluid {
|
@@ -547,9 +566,7 @@ public abstract class FlowingFluid extends Fluid {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
|
|||||||
@@ -16,21 +16,21 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric)
|
|||||||
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
|
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
|
||||||
|
|
||||||
diff --git a/net/minecraft/util/BitStorage.java b/net/minecraft/util/BitStorage.java
|
diff --git a/net/minecraft/util/BitStorage.java b/net/minecraft/util/BitStorage.java
|
||||||
index 32fe9b22e1d3a422dd80c64d61156dbc7241ba20..00e56ccb9dc2b8a6c83ba9b7e44f61deb5dc24f3 100644
|
index 02502d50f0255f5bbcc0ecb965abb48cc1a112da..e1f4ca261d106d176298b2afc016f5168abaa06b 100644
|
||||||
--- a/net/minecraft/util/BitStorage.java
|
--- a/net/minecraft/util/BitStorage.java
|
||||||
+++ b/net/minecraft/util/BitStorage.java
|
+++ b/net/minecraft/util/BitStorage.java
|
||||||
@@ -20,4 +20,6 @@ public interface BitStorage {
|
@@ -38,4 +38,6 @@ public interface BitStorage extends ca.spottedleaf.moonrise.patches.block_counti
|
||||||
void unpack(int[] array);
|
return ret;
|
||||||
|
}
|
||||||
BitStorage copy();
|
// Paper end - block counting
|
||||||
+
|
+
|
||||||
+ <T> void compact(net.minecraft.world.level.chunk.Palette<T> srcPalette, net.minecraft.world.level.chunk.Palette<T> dstPalette, short[] out); // Gale - Lithium - faster chunk serialization
|
+ <T> void compact(net.minecraft.world.level.chunk.Palette<T> srcPalette, net.minecraft.world.level.chunk.Palette<T> dstPalette, short[] out); // Gale - Lithium - faster chunk serialization
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/util/SimpleBitStorage.java b/net/minecraft/util/SimpleBitStorage.java
|
diff --git a/net/minecraft/util/SimpleBitStorage.java b/net/minecraft/util/SimpleBitStorage.java
|
||||||
index 6fb3a3f167d8cbaa78135af0c180b592661e2c1d..10db8a7bfab5a305a2a3f4ff7c3cd55066e7d1a9 100644
|
index e6306a68c8652d4c5d22d5ecb1416f5f931f76ee..8091f0c0a536047ead4966e70785962e87faad9a 100644
|
||||||
--- a/net/minecraft/util/SimpleBitStorage.java
|
--- a/net/minecraft/util/SimpleBitStorage.java
|
||||||
+++ b/net/minecraft/util/SimpleBitStorage.java
|
+++ b/net/minecraft/util/SimpleBitStorage.java
|
||||||
@@ -360,4 +360,45 @@ public class SimpleBitStorage implements BitStorage {
|
@@ -465,4 +465,45 @@ public class SimpleBitStorage implements BitStorage {
|
||||||
super(message);
|
super(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -77,18 +77,18 @@ index 6fb3a3f167d8cbaa78135af0c180b592661e2c1d..10db8a7bfab5a305a2a3f4ff7c3cd550
|
|||||||
+
|
+
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/util/ZeroBitStorage.java b/net/minecraft/util/ZeroBitStorage.java
|
diff --git a/net/minecraft/util/ZeroBitStorage.java b/net/minecraft/util/ZeroBitStorage.java
|
||||||
index 64945449807e49115b9115ee114cd3acad3d1ef8..41cd253abf87807167e24a537a6e5bbe52f7daee 100644
|
index 5c1103ef028e5ffe6ce0eadc861dd3b2c8f3ed9f..828ced8aa5665c6f5d0b121947719c4e2ba591fe 100644
|
||||||
--- a/net/minecraft/util/ZeroBitStorage.java
|
--- a/net/minecraft/util/ZeroBitStorage.java
|
||||||
+++ b/net/minecraft/util/ZeroBitStorage.java
|
+++ b/net/minecraft/util/ZeroBitStorage.java
|
||||||
@@ -62,4 +62,6 @@ public class ZeroBitStorage implements BitStorage {
|
@@ -80,4 +80,6 @@ public class ZeroBitStorage implements BitStorage {
|
||||||
public BitStorage copy() {
|
return ret;
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
// Paper end - block counting
|
||||||
+
|
+
|
||||||
+ @Override public <T> void compact(net.minecraft.world.level.chunk.Palette<T> srcPalette, net.minecraft.world.level.chunk.Palette<T> dstPalette, short[] out) {} // Gale - Lithium - faster chunk serialization
|
+ @Override public <T> void compact(net.minecraft.world.level.chunk.Palette<T> srcPalette, net.minecraft.world.level.chunk.Palette<T> dstPalette, short[] out) {} // Gale - Lithium - faster chunk serialization
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/world/level/chunk/PalettedContainer.java b/net/minecraft/world/level/chunk/PalettedContainer.java
|
diff --git a/net/minecraft/world/level/chunk/PalettedContainer.java b/net/minecraft/world/level/chunk/PalettedContainer.java
|
||||||
index 6781df510906f4e7e51ea852f3d2f6dcbea42b3b..8ea91b6437cdc4fe53a7c5e944109a8b6f372908 100644
|
index 95b5249fbd7e255a115403c3fbe88d402444b3cb..9dcbc18634302916abe8fe3ecd035b9c7966ec7f 100644
|
||||||
--- a/net/minecraft/world/level/chunk/PalettedContainer.java
|
--- a/net/minecraft/world/level/chunk/PalettedContainer.java
|
||||||
+++ b/net/minecraft/world/level/chunk/PalettedContainer.java
|
+++ b/net/minecraft/world/level/chunk/PalettedContainer.java
|
||||||
@@ -25,6 +25,22 @@ import net.minecraft.util.ThreadingDetector;
|
@@ -25,6 +25,22 @@ import net.minecraft.util.ThreadingDetector;
|
||||||
@@ -114,7 +114,7 @@ index 6781df510906f4e7e51ea852f3d2f6dcbea42b3b..8ea91b6437cdc4fe53a7c5e944109a8b
|
|||||||
private static final int MIN_PALETTE_BITS = 0;
|
private static final int MIN_PALETTE_BITS = 0;
|
||||||
private final PaletteResize<T> dummyPaletteResize = (bits, objectAdded) -> 0;
|
private final PaletteResize<T> dummyPaletteResize = (bits, objectAdded) -> 0;
|
||||||
public final IdMap<T> registry;
|
public final IdMap<T> registry;
|
||||||
@@ -307,28 +323,54 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
|
@@ -344,28 +360,54 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
|
||||||
public synchronized PalettedContainerRO.PackedData<T> pack(IdMap<T> registry, PalettedContainer.Strategy strategy) { // Paper - synchronize
|
public synchronized PalettedContainerRO.PackedData<T> pack(IdMap<T> registry, PalettedContainer.Strategy strategy) { // Paper - synchronize
|
||||||
this.acquire();
|
this.acquire();
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ index 6781df510906f4e7e51ea852f3d2f6dcbea42b3b..8ea91b6437cdc4fe53a7c5e944109a8b
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static <T> void swapPalette(int[] bits, IntUnaryOperator operator) {
|
private static <T> void swapPalette(int[] bits, IntUnaryOperator operator) {
|
||||||
@@ -368,13 +410,33 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
|
@@ -405,13 +447,33 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void count(PalettedContainer.CountConsumer<T> countConsumer) {
|
public void count(PalettedContainer.CountConsumer<T> countConsumer) {
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric)
|
|||||||
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 91185d7f8f2206fea9cb1d96611b8409f82694f2..42120b8721a56d6fb8ac6149267beff795b4e963 100644
|
index c51776867d87640c20cd317a33dc5c654f1e7a51..33f1381569612996f87b25c6d9009f9784517238 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -284,6 +284,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -240,6 +240,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
public float yRotO;
|
public float yRotO;
|
||||||
public float xRotO;
|
public float xRotO;
|
||||||
private AABB bb = INITIAL_AABB;
|
private AABB bb = INITIAL_AABB;
|
||||||
@@ -24,7 +24,7 @@ index 91185d7f8f2206fea9cb1d96611b8409f82694f2..42120b8721a56d6fb8ac6149267beff7
|
|||||||
public boolean onGround;
|
public boolean onGround;
|
||||||
public boolean horizontalCollision;
|
public boolean horizontalCollision;
|
||||||
public boolean verticalCollision;
|
public boolean verticalCollision;
|
||||||
@@ -954,6 +955,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -1060,6 +1061,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
// Paper end - detailed watchdog information
|
// Paper end - detailed watchdog information
|
||||||
|
|
||||||
public void move(MoverType type, Vec3 movement) {
|
public void move(MoverType type, Vec3 movement) {
|
||||||
@@ -36,7 +36,7 @@ index 91185d7f8f2206fea9cb1d96611b8409f82694f2..42120b8721a56d6fb8ac6149267beff7
|
|||||||
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
|
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
|
||||||
// Paper start - detailed watchdog information
|
// Paper start - detailed watchdog information
|
||||||
ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread("Cannot move an entity off-main");
|
ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread("Cannot move an entity off-main");
|
||||||
@@ -3897,6 +3903,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -4134,6 +4140,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setBoundingBox(AABB bb) {
|
public final void setBoundingBox(AABB bb) {
|
||||||
|
|||||||
@@ -13,15 +13,15 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric)
|
|||||||
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java
|
diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java
|
||||||
index bbd21c296e0b9bb000a9c47be1ec27ea553d3b40..63eaf8a4aa462a94d12535dbfabe74fe02314c5c 100644
|
index b28d19b2fcdff9250e95db05f6e428db54a771e6..a95feb65b392a971ac570dd3fd771b6ff89a2684 100644
|
||||||
--- a/net/minecraft/server/level/ChunkMap.java
|
--- a/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/net/minecraft/server/level/ChunkMap.java
|
+++ b/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -136,7 +136,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -132,7 +132,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
private final AtomicInteger tickingGenerated = new AtomicInteger();
|
public final AtomicInteger tickingGenerated = new AtomicInteger(); // Paper - public
|
||||||
private final String storageName;
|
private final String storageName;
|
||||||
private final PlayerMap playerMap = new PlayerMap();
|
private final PlayerMap playerMap = new PlayerMap();
|
||||||
- public final Int2ObjectMap<ChunkMap.TrackedEntity> entityMap = new Int2ObjectOpenHashMap<>();
|
- public final Int2ObjectMap<ChunkMap.TrackedEntity> entityMap = new Int2ObjectOpenHashMap<>();
|
||||||
+ public final Int2ObjectMap<ChunkMap.TrackedEntity> entityMap = new it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap<>(); // Gale - VMP - use linked map for entity trackers - provides faster iteration
|
+ public final Int2ObjectMap<ChunkMap.TrackedEntity> entityMap = new it.unimi.dsi.fastutil.ints.Int2ObjectLinkedOpenHashMap<>(); // Gale - VMP - use linked map for entity trackers - provides faster iteration
|
||||||
private final Long2ByteMap chunkTypeCache = new Long2ByteOpenHashMap();
|
private final Long2ByteMap chunkTypeCache = new Long2ByteOpenHashMap();
|
||||||
private final Long2LongMap nextChunkSaveTime = new Long2LongOpenHashMap();
|
// Paper - rewrite chunk system
|
||||||
private final LongSet chunksToEagerlySave = new LongLinkedOpenHashSet();
|
public int serverViewDistance;
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ As part of: Slice (https://github.com/Cryptite/Slice)
|
|||||||
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 42120b8721a56d6fb8ac6149267beff795b4e963..fbea49d6c12ce570ef4f1850edad45d424183d63 100644
|
index 33f1381569612996f87b25c6d9009f9784517238..466d70b679059bdbe850033547d999c88063d1c2 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -754,7 +754,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -860,7 +860,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
|
|
||||||
this.checkBelowWorld();
|
this.checkBelowWorld();
|
||||||
if (!this.level().isClientSide) {
|
if (!this.level().isClientSide) {
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ As part of: SportPaper (https://github.com/Electroid/SportPaper)
|
|||||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||||
index 0d8fe6a658c1ad15f6243af5d2562505c41e3e8d..b0fa30ec3c612e50502e4a94dccc328926c83038 100644
|
index 866671513a598737cb618d149a96eecce5e36184..0531622d5f21bf82eef6dc7614765085388f3978 100644
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -1242,6 +1242,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1557,6 +1557,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void destroyBlockProgress(int breakerId, BlockPos pos, int progress) {
|
public void destroyBlockProgress(int breakerId, BlockPos pos, int progress) {
|
||||||
@@ -32,7 +32,7 @@ index 0d8fe6a658c1ad15f6243af5d2562505c41e3e8d..b0fa30ec3c612e50502e4a94dccc3289
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
Player breakerPlayer = null;
|
Player breakerPlayer = null;
|
||||||
Entity entity = this.getEntity(breakerId);
|
Entity entity = this.getEntity(breakerId);
|
||||||
@@ -1258,7 +1267,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1573,7 +1582,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
.callEvent();
|
.callEvent();
|
||||||
}
|
}
|
||||||
// Paper end - Add BlockBreakProgressUpdateEvent
|
// Paper end - Add BlockBreakProgressUpdateEvent
|
||||||
@@ -41,7 +41,7 @@ index 0d8fe6a658c1ad15f6243af5d2562505c41e3e8d..b0fa30ec3c612e50502e4a94dccc3289
|
|||||||
if (serverPlayer != null && serverPlayer.level() == this && serverPlayer.getId() != breakerId) {
|
if (serverPlayer != null && serverPlayer.level() == this && serverPlayer.getId() != breakerId) {
|
||||||
double d = pos.getX() - serverPlayer.getX();
|
double d = pos.getX() - serverPlayer.getX();
|
||||||
double d1 = pos.getY() - serverPlayer.getY();
|
double d1 = pos.getY() - serverPlayer.getY();
|
||||||
@@ -1269,7 +1278,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1584,7 +1593,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
if (d * d + d1 * d1 + d2 * d2 < 1024.0) {
|
if (d * d + d1 * d1 + d2 * d2 < 1024.0) {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||||
index 029003ccbd4820b60369894b2c3d4bd47f697d93..c522c051bddbde2484741e882b2d58a86caf93aa 100644
|
index 2bfff6cc34bc94402fb349d2641efadf380c241a..d57b677cfe5282a5601e4ec8083fd476ccc16422 100644
|
||||||
--- a/net/minecraft/server/players/PlayerList.java
|
--- a/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/net/minecraft/server/players/PlayerList.java
|
+++ b/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -114,6 +114,7 @@ public abstract class PlayerList {
|
@@ -114,6 +114,7 @@ public abstract class PlayerList {
|
||||||
@@ -56,7 +56,7 @@ index 029003ccbd4820b60369894b2c3d4bd47f697d93..c522c051bddbde2484741e882b2d58a8
|
|||||||
// this.broadcastAll(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player))); // CraftBukkit - replaced with loop below
|
// this.broadcastAll(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player))); // CraftBukkit - replaced with loop below
|
||||||
// Paper start - Fire PlayerJoinEvent when Player is actually ready; correctly register player BEFORE PlayerJoinEvent, so the entity is valid and doesn't require tick delay hacks
|
// Paper start - Fire PlayerJoinEvent when Player is actually ready; correctly register player BEFORE PlayerJoinEvent, so the entity is valid and doesn't require tick delay hacks
|
||||||
player.supressTrackerForLogin = true;
|
player.supressTrackerForLogin = true;
|
||||||
@@ -581,6 +583,7 @@ public abstract class PlayerList {
|
@@ -582,6 +584,7 @@ public abstract class PlayerList {
|
||||||
player.getAdvancements().stopListening();
|
player.getAdvancements().stopListening();
|
||||||
this.players.remove(player);
|
this.players.remove(player);
|
||||||
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
||||||
@@ -64,7 +64,7 @@ index 029003ccbd4820b60369894b2c3d4bd47f697d93..c522c051bddbde2484741e882b2d58a8
|
|||||||
this.server.getCustomBossEvents().onPlayerDisconnect(player);
|
this.server.getCustomBossEvents().onPlayerDisconnect(player);
|
||||||
UUID uuid = player.getUUID();
|
UUID uuid = player.getUUID();
|
||||||
ServerPlayer serverPlayer = this.playersByUUID.get(uuid);
|
ServerPlayer serverPlayer = this.playersByUUID.get(uuid);
|
||||||
@@ -723,6 +726,7 @@ public abstract class PlayerList {
|
@@ -724,6 +727,7 @@ public abstract class PlayerList {
|
||||||
player.stopRiding(); // CraftBukkit
|
player.stopRiding(); // CraftBukkit
|
||||||
this.players.remove(player);
|
this.players.remove(player);
|
||||||
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
this.playersByName.remove(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot
|
||||||
@@ -72,7 +72,7 @@ index 029003ccbd4820b60369894b2c3d4bd47f697d93..c522c051bddbde2484741e882b2d58a8
|
|||||||
player.serverLevel().removePlayerImmediately(player, reason);
|
player.serverLevel().removePlayerImmediately(player, reason);
|
||||||
// TeleportTransition teleportTransition = player.findRespawnPositionAndUseSpawnBlock(!keepInventory, TeleportTransition.DO_NOTHING);
|
// TeleportTransition teleportTransition = player.findRespawnPositionAndUseSpawnBlock(!keepInventory, TeleportTransition.DO_NOTHING);
|
||||||
// ServerLevel level = teleportTransition.newLevel();
|
// ServerLevel level = teleportTransition.newLevel();
|
||||||
@@ -800,6 +804,7 @@ public abstract class PlayerList {
|
@@ -801,6 +805,7 @@ public abstract class PlayerList {
|
||||||
this.players.add(serverPlayer);
|
this.players.add(serverPlayer);
|
||||||
this.playersByName.put(serverPlayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT), serverPlayer); // Spigot
|
this.playersByName.put(serverPlayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT), serverPlayer); // Spigot
|
||||||
this.playersByUUID.put(serverPlayer.getUUID(), serverPlayer);
|
this.playersByUUID.put(serverPlayer.getUUID(), serverPlayer);
|
||||||
@@ -80,7 +80,7 @@ index 029003ccbd4820b60369894b2c3d4bd47f697d93..c522c051bddbde2484741e882b2d58a8
|
|||||||
}
|
}
|
||||||
// serverPlayer.initInventoryMenu();
|
// serverPlayer.initInventoryMenu();
|
||||||
serverPlayer.setHealth(serverPlayer.getHealth());
|
serverPlayer.setHealth(serverPlayer.getHealth());
|
||||||
@@ -891,18 +896,58 @@ public abstract class PlayerList {
|
@@ -892,18 +897,58 @@ public abstract class PlayerList {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tick() {
|
public void tick() {
|
||||||
|
|||||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||||
index c522c051bddbde2484741e882b2d58a86caf93aa..cab616d4e088a41152423ce4e3ba643876341384 100644
|
index d57b677cfe5282a5601e4ec8083fd476ccc16422..0c80d22ac19e8507a54e3ea0b3df5fa5ee853f89 100644
|
||||||
--- a/net/minecraft/server/players/PlayerList.java
|
--- a/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/net/minecraft/server/players/PlayerList.java
|
+++ b/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -900,10 +900,19 @@ public abstract class PlayerList {
|
@@ -901,10 +901,19 @@ public abstract class PlayerList {
|
||||||
ServerPlayer[] sendAllPlayerInfoBucket = this.sendAllPlayerInfoBuckets[this.sendAllPlayerInfoIn];
|
ServerPlayer[] sendAllPlayerInfoBucket = this.sendAllPlayerInfoBuckets[this.sendAllPlayerInfoIn];
|
||||||
|
|
||||||
if (sendAllPlayerInfoBucket != null) {
|
if (sendAllPlayerInfoBucket != null) {
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
|||||||
Gale - https://galemc.org
|
Gale - https://galemc.org
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index fbea49d6c12ce570ef4f1850edad45d424183d63..2e8fdf640aeb2750eba40f1c9711ece2b79b0d07 100644
|
index 466d70b679059bdbe850033547d999c88063d1c2..d85d70fe5bfa63f0b188663d7ea11b56ff265a18 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -4346,6 +4346,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -4644,6 +4644,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
return this.inBlockState;
|
return this.inBlockState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper)
|
|||||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 44ba108f99aa983d869ff87f95bb48867a83d392..7bb5d545155c2ffa7828488bc8b61c395fc17461 100644
|
index 62e49f844c477c92894d77b469c1537b05fa7677..ccbfb6ad7de454a622c55395b8876ac8cef0d5a8 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -2044,12 +2044,18 @@ public class ServerPlayer extends Player {
|
@@ -2080,12 +2080,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void crit(Entity entityHit) {
|
public void crit(Entity entityHit) {
|
||||||
|
|||||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||||
index 5ba734fc868a9658ac39d9b22e91e48abc6b3ddb..fe301eaccc675a133919a74abc901f2e7d46db0a 100644
|
index 20fd5ea3922b93a00e4f55cfd33af1ce3363e09a..c26db575eb421115cc236f553e47871bcf9cf11f 100644
|
||||||
--- a/net/minecraft/server/MinecraftServer.java
|
--- a/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/net/minecraft/server/MinecraftServer.java
|
+++ b/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1011,6 +1011,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1091,6 +1091,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
|
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
|
||||||
private long lastTick = 0;
|
private long lastTick = 0;
|
||||||
private long catchupTime = 0;
|
private long catchupTime = 0;
|
||||||
@@ -48,7 +48,7 @@ index 5ba734fc868a9658ac39d9b22e91e48abc6b3ddb..fe301eaccc675a133919a74abc901f2e
|
|||||||
public final RollingAverage tps1 = new RollingAverage(60);
|
public final RollingAverage tps1 = new RollingAverage(60);
|
||||||
public final RollingAverage tps5 = new RollingAverage(60 * 5);
|
public final RollingAverage tps5 = new RollingAverage(60 * 5);
|
||||||
public final RollingAverage tps15 = new RollingAverage(60 * 15);
|
public final RollingAverage tps15 = new RollingAverage(60 * 15);
|
||||||
@@ -1121,6 +1122,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1201,6 +1202,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
if (++MinecraftServer.currentTick % MinecraftServer.SAMPLE_INTERVAL == 0) {
|
if (++MinecraftServer.currentTick % MinecraftServer.SAMPLE_INTERVAL == 0) {
|
||||||
final long diff = currentTime - tickSection;
|
final long diff = currentTime - tickSection;
|
||||||
final java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
|
final java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ The above copyright notice and this permission notice shall be included in all c
|
|||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||||
index fe301eaccc675a133919a74abc901f2e7d46db0a..97d8b00b392613ced51b320d45498571abd4dea0 100644
|
index c26db575eb421115cc236f553e47871bcf9cf11f..0442e47bf445ae6d8e7348b5aaec3fbdacff9e3e 100644
|
||||||
--- a/net/minecraft/server/MinecraftServer.java
|
--- a/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/net/minecraft/server/MinecraftServer.java
|
+++ b/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1058,6 +1058,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1138,6 +1138,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
private static final java.math.BigDecimal TPS_BASE = new java.math.BigDecimal(1E9).multiply(new java.math.BigDecimal(SAMPLE_INTERVAL));
|
private static final java.math.BigDecimal TPS_BASE = new java.math.BigDecimal(1E9).multiply(new java.math.BigDecimal(SAMPLE_INTERVAL));
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
@@ -38,17 +38,17 @@ index fe301eaccc675a133919a74abc901f2e7d46db0a..97d8b00b392613ced51b320d45498571
|
|||||||
protected void runServer() {
|
protected void runServer() {
|
||||||
try {
|
try {
|
||||||
if (!this.initServer()) {
|
if (!this.initServer()) {
|
||||||
@@ -1143,7 +1148,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1223,7 +1228,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
this.nextTickTimeNanos += l;
|
this.nextTickTimeNanos += l;
|
||||||
|
|
||||||
this.tickFrame.start();
|
this.tickFrame.start();
|
||||||
+ long tickProperStart = System.nanoTime(); // Gale - YAPFA - last tick time
|
+ long tickProperStart = System.nanoTime(); // Gale - YAPFA - last tick time
|
||||||
this.tickServer(flag ? () -> false : this::haveTime);
|
this.tickServer(flag ? () -> false : this::haveTime);
|
||||||
+ lastTickProperTime = (System.nanoTime() - tickProperStart) / 1_000_000L; // Gale - YAPFA - last tick time
|
+ lastTickProperTime = (System.nanoTime() - tickProperStart) / 1_000_000L; // Gale - YAPFA - last tick time
|
||||||
this.tickFrame.end();
|
// Paper start - rewrite chunk system
|
||||||
this.mayHaveDelayedTasks = true;
|
final Throwable crash = this.chunkSystemCrash;
|
||||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
if (crash != null) {
|
||||||
@@ -1265,11 +1272,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1352,11 +1359,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
protected void waitUntilNextTick() {
|
protected void waitUntilNextTick() {
|
||||||
this.runAllTasks();
|
this.runAllTasks();
|
||||||
this.waitingForNextTick = true;
|
this.waitingForNextTick = true;
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ As part of: Akarin (https://github.com/Akarin-project/Akarin)
|
|||||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 2e8fdf640aeb2750eba40f1c9711ece2b79b0d07..feefcedd5fd90d2cb2504c9ca313cf4e07a92809 100644
|
index d85d70fe5bfa63f0b188663d7ea11b56ff265a18..66b8cf01105df34ced97eeddd4e543adbd8a7105 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -2009,8 +2009,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -2157,8 +2157,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
|
|
||||||
public void push(Entity entity) {
|
public void push(Entity entity) {
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
|||||||
Gale - https://galemc.org
|
Gale - https://galemc.org
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index feefcedd5fd90d2cb2504c9ca313cf4e07a92809..6a04bc2ba65bc9a9b7c7639a2273757a8131d2bd 100644
|
index 66b8cf01105df34ced97eeddd4e543adbd8a7105..12eb1e3ed2472ecdd783c8062c99428115d9526a 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -1096,8 +1096,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -1202,8 +1202,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
|||||||
Gale - https://galemc.org
|
Gale - https://galemc.org
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||||
index 3958cd983242fc60c1868ce2a3ec804047d118c0..9933f67ae3bde893d5a16b32249a8a706701bbf0 100644
|
index 25c806ca9abebdaa6031e3f350fdf1c7deac7c4e..3eb34df6bd4c4969ffbcc7abd1c24e556485d1c4 100644
|
||||||
--- a/net/minecraft/world/item/ItemStack.java
|
--- a/net/minecraft/world/item/ItemStack.java
|
||||||
+++ b/net/minecraft/world/item/ItemStack.java
|
+++ b/net/minecraft/world/item/ItemStack.java
|
||||||
@@ -883,11 +883,11 @@ public final class ItemStack implements DataComponentHolder {
|
@@ -889,11 +889,11 @@ public final class ItemStack implements DataComponentHolder {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isSameItem(ItemStack stack, ItemStack other) {
|
public static boolean isSameItem(ItemStack stack, ItemStack other) {
|
||||||
|
|||||||
@@ -26,10 +26,10 @@ index d381800ad054be6b054dcca43fbe80d3f0c0c771..5904b9d985487ff8bd1f330667c43096
|
|||||||
double d1 = center.y - maxRange;
|
double d1 = center.y - maxRange;
|
||||||
double d2 = center.x + maxRange;
|
double d2 = center.x + maxRange;
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index f86ed0bb010459b65ac616af2cec0b09b2596521..814a7a2f0f8025dedadbfd70631354188f58b184 100644
|
index ccbfb6ad7de454a622c55395b8876ac8cef0d5a8..9d5051a65dcbd87b7d29db4643fa2b070717845b 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -460,7 +460,7 @@ public class ServerPlayer extends Player {
|
@@ -496,7 +496,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
long l1 = l * l;
|
long l1 = l * l;
|
||||||
int i = l1 > 2147483647L ? Integer.MAX_VALUE : (int)l1;
|
int i = l1 > 2147483647L ? Integer.MAX_VALUE : (int)l1;
|
||||||
int coprime = this.getCoprime(i);
|
int coprime = this.getCoprime(i);
|
||||||
|
|||||||
@@ -73,10 +73,10 @@ index bdbbbc5e0c06c71584e7514623d0c8be168befd7..f3ca86e09a4a076d143fb21eac529967
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||||
index 2f0de213559ad558767335e5d7d1aa7d12221454..88a12eb570572e5449e430f75267304e8ea3f318 100644
|
index 0531622d5f21bf82eef6dc7614765085388f3978..4d8666d430df8d1ca7e9591e479c68ca7fd19d1a 100644
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -531,6 +531,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -771,6 +771,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
this.entityTickList
|
this.entityTickList
|
||||||
.forEach(
|
.forEach(
|
||||||
entity -> {
|
entity -> {
|
||||||
@@ -85,10 +85,10 @@ index 2f0de213559ad558767335e5d7d1aa7d12221454..88a12eb570572e5449e430f75267304e
|
|||||||
if (!tickRateManager.isEntityFrozen(entity)) {
|
if (!tickRateManager.isEntityFrozen(entity)) {
|
||||||
entity.checkDespawn();
|
entity.checkDespawn();
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 9631ab544eb73b1d2502732a5771e2f231815589..42237b270ccb27b204ec0ad3b2157667f88b7062 100644
|
index 12eb1e3ed2472ecdd783c8062c99428115d9526a..209d897fdf5a5d19990f6dd8ee11d42d74bd0e92 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -387,6 +387,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -343,6 +343,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
public boolean fixedPose = false; // Paper - Expand Pose API
|
public boolean fixedPose = false; // Paper - Expand Pose API
|
||||||
private final int despawnTime; // Paper - entity despawn time limit
|
private final int despawnTime; // Paper - entity despawn time limit
|
||||||
public int totalEntityAge; // Paper - age-like counter for all entities
|
public int totalEntityAge; // Paper - age-like counter for all entities
|
||||||
@@ -98,7 +98,7 @@ index 9631ab544eb73b1d2502732a5771e2f231815589..42237b270ccb27b204ec0ad3b2157667
|
|||||||
// Paper start - EAR 2
|
// Paper start - EAR 2
|
||||||
public final boolean defaultActivationState;
|
public final boolean defaultActivationState;
|
||||||
diff --git a/net/minecraft/world/entity/EntityType.java b/net/minecraft/world/entity/EntityType.java
|
diff --git a/net/minecraft/world/entity/EntityType.java b/net/minecraft/world/entity/EntityType.java
|
||||||
index d49aad855441c2eac707b22714b06321bfefd9ee..7ff59cd74951722184211c40ca97aa004635cc5d 100644
|
index ed11697d81789ee6cd48ee2de2c9fcb8ff2be0d4..a1379aa8eaf84868ceb8b3762f7ca3b87a2d7785 100644
|
||||||
--- a/net/minecraft/world/entity/EntityType.java
|
--- a/net/minecraft/world/entity/EntityType.java
|
||||||
+++ b/net/minecraft/world/entity/EntityType.java
|
+++ b/net/minecraft/world/entity/EntityType.java
|
||||||
@@ -1075,6 +1075,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
@@ -1075,6 +1075,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ Original license: MIT
|
|||||||
Original project: https://github.com/PurpurMC/Purpur
|
Original project: https://github.com/PurpurMC/Purpur
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||||
index 4499bdd23b6d12538e2b17f1b36f39b18872de54..227ca3c06c451c6256f6f66dc0a47bcf53bafec3 100644
|
index 0442e47bf445ae6d8e7348b5aaec3fbdacff9e3e..fc0588b98087e04e486b822507c1d98851005923 100644
|
||||||
--- a/net/minecraft/server/MinecraftServer.java
|
--- a/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/net/minecraft/server/MinecraftServer.java
|
+++ b/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1697,7 +1697,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1806,7 +1806,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
@DontObfuscate
|
@DontObfuscate
|
||||||
public String getServerModName() {
|
public String getServerModName() {
|
||||||
|
|||||||
@@ -9,22 +9,22 @@ Original project: https://github.com/Cryptite/Slice
|
|||||||
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 1d7e48a8bea7356982b9c4bf1f4dd4877a8d9f44..50278223ec57f32a75bf413f57529f365267a4ee 100644
|
index 9d5051a65dcbd87b7d29db4643fa2b070717845b..d32acdf38a35d569669b272560c72651240178db 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -421,6 +421,7 @@ public class ServerPlayer extends Player {
|
@@ -427,6 +427,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||||
public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
|
public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
|
||||||
public @Nullable String clientBrandName = null; // Paper - Brand support
|
public @Nullable String clientBrandName = null; // Paper - Brand support
|
||||||
public @Nullable org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
public @Nullable org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
||||||
+ public boolean smoothWorldTeleport; // Slice
|
+ public boolean smoothWorldTeleport; // Slice
|
||||||
|
|
||||||
public ServerPlayer(MinecraftServer server, ServerLevel level, GameProfile gameProfile, ClientInformation clientInformation) {
|
// Paper start - rewrite chunk system
|
||||||
super(level, level.getSharedSpawnPos(), level.getSharedSpawnAngle(), gameProfile);
|
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
|
||||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||||
index e62f24dcdc5f09ce9c316615f2c67778570bcc6e..2d932aa5a90cf00bbe4756f7108c7601561677d3 100644
|
index 11015e8c0f2b5f8bd2eb083d8e093beb72c43cf0..8bbf8d660a68c8c74204e101ec3ec0b775883090 100644
|
||||||
--- a/net/minecraft/server/players/PlayerList.java
|
--- a/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/net/minecraft/server/players/PlayerList.java
|
+++ b/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -794,11 +794,11 @@ public abstract class PlayerList {
|
@@ -795,11 +795,11 @@ public abstract class PlayerList {
|
||||||
byte b = (byte)(keepInventory ? 1 : 0);
|
byte b = (byte)(keepInventory ? 1 : 0);
|
||||||
ServerLevel serverLevel = serverPlayer.serverLevel();
|
ServerLevel serverLevel = serverPlayer.serverLevel();
|
||||||
LevelData levelData = serverLevel.getLevelData();
|
LevelData levelData = serverLevel.getLevelData();
|
||||||
@@ -38,7 +38,7 @@ index e62f24dcdc5f09ce9c316615f2c67778570bcc6e..2d932aa5a90cf00bbe4756f7108c7601
|
|||||||
serverPlayer.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle()));
|
serverPlayer.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle()));
|
||||||
serverPlayer.connection.send(new ClientboundChangeDifficultyPacket(levelData.getDifficulty(), levelData.isDifficultyLocked()));
|
serverPlayer.connection.send(new ClientboundChangeDifficultyPacket(levelData.getDifficulty(), levelData.isDifficultyLocked()));
|
||||||
serverPlayer.connection
|
serverPlayer.connection
|
||||||
@@ -875,6 +875,8 @@ public abstract class PlayerList {
|
@@ -876,6 +876,8 @@ public abstract class PlayerList {
|
||||||
return serverPlayer;
|
return serverPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,13 +31,13 @@ index 92ebc61aa7f6f70292a384b56bd8ef77a15e485c..a1ecb7c5ee0e1fe1164e277d8991d6d9
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
diff --git a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
||||||
index 7470150b5c613ae31d94170d9f5eedac67add63d..5bcc53eef44faa1d3dccb72d1fd4be476c2f3793 100644
|
index 751e91a922b20c96f27885c3eb085ec4ae39091b..455662f0718365f466bc52bdaa228954e42d7216 100644
|
||||||
--- a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
--- a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
||||||
+++ b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
+++ b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
||||||
@@ -98,21 +98,20 @@ public class AcquirePoi {
|
@@ -102,21 +102,20 @@ public class AcquirePoi {
|
||||||
.limit(5L)
|
}
|
||||||
.filter(pair1 -> predicate.test(level, pair1.getSecond()))
|
}
|
||||||
.collect(Collectors.toSet());
|
// Paper end - optimise POI access
|
||||||
- Path path = findPathToPois(mob, set);
|
- Path path = findPathToPois(mob, set);
|
||||||
- if (path != null && path.canReach()) {
|
- if (path != null && path.canReach()) {
|
||||||
- BlockPos target = path.getTarget();
|
- BlockPos target = path.getTarget();
|
||||||
@@ -54,7 +54,7 @@ index 7470150b5c613ae31d94170d9f5eedac67add63d..5bcc53eef44faa1d3dccb72d1fd4be47
|
|||||||
+
|
+
|
||||||
+ // wait on the path to be processed
|
+ // wait on the path to be processed
|
||||||
+ org.dreeam.leaf.async.path.AsyncPathProcessor.awaitProcessing(possiblePath, path -> {
|
+ org.dreeam.leaf.async.path.AsyncPathProcessor.awaitProcessing(possiblePath, path -> {
|
||||||
+ processPath(acquirablePois, entityEventId, (Long2ObjectMap<JitteredLinearRetry>) map, memoryAccessor, level, mob, time, poiManager, set, path);
|
+ processPath(acquirablePois, entityEventId, map, memoryAccessor, level, mob, time, poiManager, set, path);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
- for (Pair<Holder<PoiType>, BlockPos> pair : set) {
|
- for (Pair<Holder<PoiType>, BlockPos> pair : set) {
|
||||||
@@ -67,7 +67,7 @@ index 7470150b5c613ae31d94170d9f5eedac67add63d..5bcc53eef44faa1d3dccb72d1fd4be47
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -124,6 +123,34 @@ public class AcquirePoi {
|
@@ -128,6 +127,34 @@ public class AcquirePoi {
|
||||||
: BehaviorBuilder.create(instance -> instance.group(instance.absent(existingAbsentMemory)).apply(instance, memoryAccessor -> oneShot));
|
: BehaviorBuilder.create(instance -> instance.group(instance.absent(existingAbsentMemory)).apply(instance, memoryAccessor -> oneShot));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ index 7470150b5c613ae31d94170d9f5eedac67add63d..5bcc53eef44faa1d3dccb72d1fd4be47
|
|||||||
+ long time,
|
+ long time,
|
||||||
+ PoiManager poiManager,
|
+ PoiManager poiManager,
|
||||||
+ Set<Pair<Holder<PoiType>, BlockPos>> set,
|
+ Set<Pair<Holder<PoiType>, BlockPos>> set,
|
||||||
+ Path path) {
|
+ @org.jetbrains.annotations.Nullable Path path) {
|
||||||
+ if (path != null && path.canReach()) {
|
+ if (path != null && path.canReach()) {
|
||||||
+ BlockPos target = path.getTarget();
|
+ BlockPos target = path.getTarget();
|
||||||
+ poiManager.getType(target).ifPresent(holder -> {
|
+ poiManager.getType(target).ifPresent(holder -> {
|
||||||
@@ -514,14 +514,15 @@ index 2979846853898d78a2df19df2287da16dbe4ae71..1289a6e85f3fdb9187323343b6c20e17
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java b/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
|
diff --git a/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java b/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
|
||||||
index 6e9325f0800a35637fdec5edb8a514ea03741762..7ee85d8e9035093484f67437ec80755169436a88 100644
|
index 066faa704338c573472381e1ebd063e0d52aaaa4..8629b89401e4cb06dd8a658d1d3f189178c544d8 100644
|
||||||
--- a/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
|
--- a/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
|
||||||
+++ b/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
|
+++ b/net/minecraft/world/entity/ai/sensing/NearestBedSensor.java
|
||||||
@@ -57,16 +57,31 @@ public class NearestBedSensor extends Sensor<Mob> {
|
@@ -57,17 +57,32 @@ public class NearestBedSensor extends Sensor<Mob> {
|
||||||
holder -> holder.is(PoiTypes.HOME), predicate, entity.blockPosition(), 48, PoiManager.Occupancy.ANY
|
java.util.List<Pair<Holder<PoiType>, BlockPos>> poiposes = new java.util.ArrayList<>();
|
||||||
)
|
// don't ask me why it's unbounded. ask mojang.
|
||||||
.collect(Collectors.toSet());
|
io.papermc.paper.util.PoiAccess.findAnyPoiPositions(poiManager, type -> type.is(PoiTypes.HOME), predicate, entity.blockPosition(), 48, PoiManager.Occupancy.ANY, false, Integer.MAX_VALUE, poiposes);
|
||||||
- Path path = AcquirePoi.findPathToPois(entity, set);
|
- Path path = AcquirePoi.findPathToPois(entity, new java.util.HashSet<>(poiposes));
|
||||||
|
// Paper end - optimise POI access
|
||||||
- if (path != null && path.canReach()) {
|
- if (path != null && path.canReach()) {
|
||||||
- BlockPos target = path.getTarget();
|
- BlockPos target = path.getTarget();
|
||||||
- Optional<Holder<PoiType>> type = poiManager.getType(target);
|
- Optional<Holder<PoiType>> type = poiManager.getType(target);
|
||||||
@@ -532,13 +533,13 @@ index 6e9325f0800a35637fdec5edb8a514ea03741762..7ee85d8e9035093484f67437ec807551
|
|||||||
- this.batchCache.long2LongEntrySet().removeIf(entry -> entry.getLongValue() < this.lastUpdate);
|
- this.batchCache.long2LongEntrySet().removeIf(entry -> entry.getLongValue() < this.lastUpdate);
|
||||||
+ // Kaiiju start - await on async path processing
|
+ // Kaiiju start - await on async path processing
|
||||||
+ if (org.dreeam.leaf.config.modules.async.AsyncPathfinding.enabled) {
|
+ if (org.dreeam.leaf.config.modules.async.AsyncPathfinding.enabled) {
|
||||||
+ Path possiblePath = AcquirePoi.findPathToPois(entity, new java.util.HashSet<>(set));
|
+ Path possiblePath = AcquirePoi.findPathToPois(entity, new java.util.HashSet<>(poiposes));
|
||||||
+ org.dreeam.leaf.async.path.AsyncPathProcessor.awaitProcessing(possiblePath, path -> {
|
+ org.dreeam.leaf.async.path.AsyncPathProcessor.awaitProcessing(possiblePath, path -> {
|
||||||
+ processPath(entity, poiManager, path);
|
+ processPath(entity, poiManager, path);
|
||||||
+ });
|
+ });
|
||||||
+ } else {
|
+ } else {
|
||||||
+ // Kaiiju end
|
+ // Kaiiju end
|
||||||
+ Path path = AcquirePoi.findPathToPois(entity, new java.util.HashSet<>(set));
|
+ Path path = AcquirePoi.findPathToPois(entity, new java.util.HashSet<>(poiposes));
|
||||||
+ processPath(entity, poiManager, path);
|
+ processPath(entity, poiManager, path);
|
||||||
+ } // Kaiiju - async path processing
|
+ } // Kaiiju - async path processing
|
||||||
+ }
|
+ }
|
||||||
|
|||||||
@@ -38,10 +38,10 @@ index 2627583ab12d886b1fba0b1d1e599f942926b499..440d70811d96f97d3463c6aff131cbc5
|
|||||||
if (entity.getLastHurtByMob() instanceof ServerPlayer serverPlayer) {
|
if (entity.getLastHurtByMob() instanceof ServerPlayer serverPlayer) {
|
||||||
DamageSource damageSource = entity.getLastDamageSource() == null
|
DamageSource damageSource = entity.getLastDamageSource() == null
|
||||||
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
|
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
index 626e87d9c1862fe0c896172ee240844e50d7902f..f5a627d900298218e8dbbf12d5950dc8a01bd39e 100644
|
index 61fa8f2bf018b8892a11acec058f36914c5a1573..54322b76e59f749ea9bbe6a8e0bfa78bb00f063a 100644
|
||||||
--- a/net/minecraft/world/level/chunk/LevelChunk.java
|
--- a/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
|
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
@@ -80,7 +80,19 @@ public class LevelChunk extends ChunkAccess {
|
@@ -80,7 +80,19 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
private Supplier<FullChunkStatus> fullStatus;
|
private Supplier<FullChunkStatus> fullStatus;
|
||||||
@Nullable
|
@Nullable
|
||||||
private LevelChunk.PostLoadProcessor postLoad;
|
private LevelChunk.PostLoadProcessor postLoad;
|
||||||
@@ -62,7 +62,7 @@ index 626e87d9c1862fe0c896172ee240844e50d7902f..f5a627d900298218e8dbbf12d5950dc8
|
|||||||
private final LevelChunkTicks<Block> blockTicks;
|
private final LevelChunkTicks<Block> blockTicks;
|
||||||
private final LevelChunkTicks<Fluid> fluidTicks;
|
private final LevelChunkTicks<Fluid> fluidTicks;
|
||||||
private LevelChunk.UnsavedListener unsavedListener = chunkPos -> {};
|
private LevelChunk.UnsavedListener unsavedListener = chunkPos -> {};
|
||||||
@@ -110,7 +122,7 @@ public class LevelChunk extends ChunkAccess {
|
@@ -143,7 +155,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
) {
|
) {
|
||||||
super(pos, data, level, net.minecraft.server.MinecraftServer.getServer().registryAccess().lookupOrThrow(Registries.BIOME), inhabitedTime, sections, blendingData); // Paper - Anti-Xray - The world isn't ready yet, use server singleton for registry
|
super(pos, data, level, net.minecraft.server.MinecraftServer.getServer().registryAccess().lookupOrThrow(Registries.BIOME), inhabitedTime, sections, blendingData); // Paper - Anti-Xray - The world isn't ready yet, use server singleton for registry
|
||||||
this.level = (ServerLevel) level; // CraftBukkit - type
|
this.level = (ServerLevel) level; // CraftBukkit - type
|
||||||
@@ -71,7 +71,7 @@ index 626e87d9c1862fe0c896172ee240844e50d7902f..f5a627d900298218e8dbbf12d5950dc8
|
|||||||
|
|
||||||
for (Heightmap.Types types : Heightmap.Types.values()) {
|
for (Heightmap.Types types : Heightmap.Types.values()) {
|
||||||
if (ChunkStatus.FULL.heightmapsAfter().contains(types)) {
|
if (ChunkStatus.FULL.heightmapsAfter().contains(types)) {
|
||||||
@@ -206,10 +218,27 @@ public class LevelChunk extends ChunkAccess {
|
@@ -253,10 +265,27 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameEventListenerRegistry getListenerRegistry(int sectionY) {
|
public GameEventListenerRegistry getListenerRegistry(int sectionY) {
|
||||||
@@ -103,7 +103,7 @@ index 626e87d9c1862fe0c896172ee240844e50d7902f..f5a627d900298218e8dbbf12d5950dc8
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Paper start - Perf: Reduce instructions and provide final method
|
// Paper start - Perf: Reduce instructions and provide final method
|
||||||
@@ -556,7 +585,7 @@ public class LevelChunk extends ChunkAccess {
|
@@ -603,7 +632,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeGameEventListenerRegistry(int sectionY) {
|
private void removeGameEventListenerRegistry(int sectionY) {
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ Co-authored by: Martijn Muijsers <martijnmuijsers@live.nl>
|
|||||||
Co-authored by: MachineBreaker <machinebreaker>
|
Co-authored by: MachineBreaker <machinebreaker>
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
|
||||||
index 270720ac00b0dc4ccbe08b789728dd09d0a9f1e3..c0c0c095154a8c7910df27ee4f0641ac60df637c 100644
|
index fb213dc889abafaaf35a69b06b1c35041ac65b46..4e9a050517cdbcdd08a970d8c163e8dbcb818944 100644
|
||||||
--- a/net/minecraft/world/level/Level.java
|
--- a/net/minecraft/world/level/Level.java
|
||||||
+++ b/net/minecraft/world/level/Level.java
|
+++ b/net/minecraft/world/level/Level.java
|
||||||
@@ -308,17 +308,19 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
@@ -943,17 +943,19 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl
|
||||||
for (int i = 0, len = entities.size(); i < len; ++i) {
|
for (int i = 0, len = entities.size(); i < len; ++i) {
|
||||||
Entity entity = entities.get(i);
|
Entity entity = entities.get(i);
|
||||||
|
|
||||||
|
|||||||
@@ -429,10 +429,10 @@ index 1354ccfbf525e5e64483ac5f443cc2325ba63850..f6f787db016f4d1ac14648ebf2b8e162
|
|||||||
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
|
// (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
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
index d8b138d03d20a1ff5af902bc977f900fb2a43a71..e90a8069c71725e4501cf407e7520064ecdfe5d6 100644
|
index 41b2026c87dea247d39c73b0e3eae892fb729cd5..498a642d243925eefa11d5997dc999bb9aa2fcda 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
||||||
@@ -479,7 +479,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
@@ -481,7 +481,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
|
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ Original license: MIT
|
|||||||
Original project: https://github.com/starlis/empirecraft
|
Original project: https://github.com/starlis/empirecraft
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
index 4a709355acab59c5ded1ffdc321be3252482bd0b..c8f0b24fd9336259e42c4746061793e156978ad3 100644
|
index bbaaea8e03e3eb80c53161968ff75efd39b57ba5..5f04b2dcff7c0e967647bde9dfa0f35f59e8524c 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
@@ -333,7 +333,7 @@ public class CraftBlock implements Block {
|
@@ -332,7 +332,7 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getState() {
|
public BlockState getState() {
|
||||||
@@ -19,11 +19,11 @@ index 4a709355acab59c5ded1ffdc321be3252482bd0b..c8f0b24fd9336259e42c4746061793e1
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockStates.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
index 5da891112402b758ca618967c4662027efbe14dc..23d0c901c1261de30748654b34a7ce6c51ad9c24 100644
|
index 2338e7c115037430cefae26a571ded71f77983c4..321280d7c9c3c828cbf2eb19d2fd196a1f84d4c3 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockStates.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockStates.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
@@ -186,7 +186,7 @@ public final class CraftBlockStates {
|
@@ -185,7 +185,7 @@ public final class CraftBlockStates {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BlockState getBlockState(Block block) {
|
public static BlockState getBlockState(Block block) {
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ index 196fddeab452e7bc89ef6758635e1d07074e7416..55a2ffa0fff6ef66b9bd5069300c09e9
|
|||||||
} else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) {
|
} else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) {
|
||||||
// Leaf start - Multithreaded tracker
|
// Leaf start - Multithreaded tracker
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
index 2538a0de7fd6b1026fff51e5d066c5b0811b7cda..c114dfd419177cf45f02617acde86ea4abcbdc96 100644
|
index 9e09f14033818fcf9df161941e316c16d913705b..8d68b49ff0b1c4c829d97cd8ebe81be79ee856f6 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
@@ -456,7 +456,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -456,7 +456,12 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
@@ -349,10 +349,10 @@ index 2538a0de7fd6b1026fff51e5d066c5b0811b7cda..c114dfd419177cf45f02617acde86ea4
|
|||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f781efa0d 100644
|
index 5f04b2dcff7c0e967647bde9dfa0f35f59e8524c..3d26df068b449aeafd882b9b93722aa9705d2fd5 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
||||||
@@ -76,6 +76,11 @@ public class CraftBlock implements Block {
|
@@ -75,6 +75,11 @@ public class CraftBlock implements Block {
|
||||||
}
|
}
|
||||||
|
|
||||||
public net.minecraft.world.level.block.state.BlockState getNMS() {
|
public net.minecraft.world.level.block.state.BlockState getNMS() {
|
||||||
@@ -364,7 +364,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
return this.world.getBlockState(this.position);
|
return this.world.getBlockState(this.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,6 +161,11 @@ public class CraftBlock implements Block {
|
@@ -155,6 +160,11 @@ public class CraftBlock implements Block {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setData(final byte data, int flags) {
|
private void setData(final byte data, int flags) {
|
||||||
@@ -376,7 +376,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
this.world.setBlock(this.position, CraftMagicNumbers.getBlock(this.getType(), data), flags);
|
this.world.setBlock(this.position, CraftMagicNumbers.getBlock(this.getType(), data), flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,6 +207,11 @@ public class CraftBlock implements Block {
|
@@ -196,6 +206,11 @@ public class CraftBlock implements Block {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean setBlockState(LevelAccessor world, BlockPos pos, net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.block.state.BlockState newState, boolean applyPhysics) {
|
public static boolean setBlockState(LevelAccessor world, BlockPos pos, net.minecraft.world.level.block.state.BlockState oldState, net.minecraft.world.level.block.state.BlockState newState, boolean applyPhysics) {
|
||||||
@@ -388,7 +388,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
// SPIGOT-611: need to do this to prevent glitchiness. Easier to handle this here (like /setblock) than to fix weirdness in block entity cleanup
|
// SPIGOT-611: need to do this to prevent glitchiness. Easier to handle this here (like /setblock) than to fix weirdness in block entity cleanup
|
||||||
if (oldState.hasBlockEntity() && newState.getBlock() != oldState.getBlock()) { // SPIGOT-3725 remove old block entity if block changes
|
if (oldState.hasBlockEntity() && newState.getBlock() != oldState.getBlock()) { // SPIGOT-3725 remove old block entity if block changes
|
||||||
// SPIGOT-4612: faster - just clear tile
|
// SPIGOT-4612: faster - just clear tile
|
||||||
@@ -345,18 +360,33 @@ public class CraftBlock implements Block {
|
@@ -344,18 +359,33 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Biome getBiome() {
|
public Biome getBiome() {
|
||||||
@@ -422,7 +422,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
this.getWorld().setBiome(this.getX(), this.getY(), this.getZ(), bio);
|
this.getWorld().setBiome(this.getX(), this.getY(), this.getZ(), bio);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -377,6 +407,11 @@ public class CraftBlock implements Block {
|
@@ -376,6 +406,11 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isBlockIndirectlyPowered() {
|
public boolean isBlockIndirectlyPowered() {
|
||||||
@@ -434,7 +434,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
return this.world.getMinecraftWorld().hasNeighborSignal(this.position);
|
return this.world.getMinecraftWorld().hasNeighborSignal(this.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -416,6 +451,11 @@ public class CraftBlock implements Block {
|
@@ -415,6 +450,11 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getBlockPower(BlockFace face) {
|
public int getBlockPower(BlockFace face) {
|
||||||
@@ -446,7 +446,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
int power = 0;
|
int power = 0;
|
||||||
net.minecraft.world.level.Level world = this.world.getMinecraftWorld();
|
net.minecraft.world.level.Level world = this.world.getMinecraftWorld();
|
||||||
int x = this.getX();
|
int x = this.getX();
|
||||||
@@ -484,6 +524,11 @@ public class CraftBlock implements Block {
|
@@ -483,6 +523,11 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean breakNaturally() {
|
public boolean breakNaturally() {
|
||||||
@@ -458,7 +458,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
return this.breakNaturally(null);
|
return this.breakNaturally(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -543,6 +588,11 @@ public class CraftBlock implements Block {
|
@@ -542,6 +587,11 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean applyBoneMeal(BlockFace face) {
|
public boolean applyBoneMeal(BlockFace face) {
|
||||||
@@ -470,7 +470,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
Direction direction = CraftBlock.blockFaceToNotch(face);
|
Direction direction = CraftBlock.blockFaceToNotch(face);
|
||||||
BlockFertilizeEvent event = null;
|
BlockFertilizeEvent event = null;
|
||||||
ServerLevel world = this.getCraftWorld().getHandle();
|
ServerLevel world = this.getCraftWorld().getHandle();
|
||||||
@@ -554,8 +604,8 @@ public class CraftBlock implements Block {
|
@@ -553,8 +603,8 @@ public class CraftBlock implements Block {
|
||||||
world.captureTreeGeneration = false;
|
world.captureTreeGeneration = false;
|
||||||
|
|
||||||
if (!world.capturedBlockStates.isEmpty()) {
|
if (!world.capturedBlockStates.isEmpty()) {
|
||||||
@@ -481,7 +481,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
List<BlockState> states = new ArrayList<>(world.capturedBlockStates.values());
|
List<BlockState> states = new ArrayList<>(world.capturedBlockStates.values());
|
||||||
world.capturedBlockStates.clear();
|
world.capturedBlockStates.clear();
|
||||||
StructureGrowEvent structureEvent = null;
|
StructureGrowEvent structureEvent = null;
|
||||||
@@ -645,6 +695,11 @@ public class CraftBlock implements Block {
|
@@ -644,6 +694,11 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RayTraceResult rayTrace(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode) {
|
public RayTraceResult rayTrace(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode) {
|
||||||
@@ -493,7 +493,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
Preconditions.checkArgument(start != null, "Location start cannot be null");
|
Preconditions.checkArgument(start != null, "Location start cannot be null");
|
||||||
Preconditions.checkArgument(this.getWorld().equals(start.getWorld()), "Location start cannot be a different world");
|
Preconditions.checkArgument(this.getWorld().equals(start.getWorld()), "Location start cannot be a different world");
|
||||||
start.checkFinite();
|
start.checkFinite();
|
||||||
@@ -686,6 +741,11 @@ public class CraftBlock implements Block {
|
@@ -685,6 +740,11 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canPlace(BlockData data) {
|
public boolean canPlace(BlockData data) {
|
||||||
@@ -505,7 +505,7 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
Preconditions.checkArgument(data != null, "BlockData cannot be null");
|
Preconditions.checkArgument(data != null, "BlockData cannot be null");
|
||||||
net.minecraft.world.level.block.state.BlockState iblockdata = ((CraftBlockData) data).getState();
|
net.minecraft.world.level.block.state.BlockState iblockdata = ((CraftBlockData) data).getState();
|
||||||
net.minecraft.world.level.Level world = this.world.getMinecraftWorld();
|
net.minecraft.world.level.Level world = this.world.getMinecraftWorld();
|
||||||
@@ -720,6 +780,11 @@ public class CraftBlock implements Block {
|
@@ -719,6 +779,11 @@ public class CraftBlock implements Block {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
@@ -517,10 +517,10 @@ index c8f0b24fd9336259e42c4746061793e156978ad3..2b2d1819b0d953800c1757ad7c92de4f
|
|||||||
final ServerLevel level = this.world.getMinecraftWorld();
|
final ServerLevel level = this.world.getMinecraftWorld();
|
||||||
this.getNMS().tick(level, this.position, level.random);
|
this.getNMS().tick(level, this.position, level.random);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockEntityState.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
||||||
index 7d3a4669ccd6fbfaf8716dc19c538c6ba17a5ffe..333b05d4ad4baecb02c548f5c48650770d61b95a 100644
|
index 3422970353dcd886934b9ee906467769d39abbde..13c91223bbb4841cab0e491037a36113a33faf15 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockEntityState.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockEntityState.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockEntityState.java
|
||||||
@@ -26,6 +26,27 @@ public abstract class CraftBlockEntityState<T extends BlockEntity> extends Craft
|
@@ -26,6 +26,27 @@ public abstract class CraftBlockEntityState<T extends BlockEntity> extends Craft
|
||||||
private final T snapshot;
|
private final T snapshot;
|
||||||
public boolean snapshotDisabled; // Paper
|
public boolean snapshotDisabled; // Paper
|
||||||
@@ -560,11 +560,11 @@ index 7d3a4669ccd6fbfaf8716dc19c538c6ba17a5ffe..333b05d4ad4baecb02c548f5c4865077
|
|||||||
this.snapshot = this.blockEntity;
|
this.snapshot = this.blockEntity;
|
||||||
} else {
|
} else {
|
||||||
this.snapshot = this.createSnapshot(blockEntity);
|
this.snapshot = this.createSnapshot(blockEntity);
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockState.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
||||||
index 647c1edd3338ce4f80e48ea769ed381cd158758d..07cf2e9412da5d307a7ca5edc202f8286e5ae25a 100644
|
index c0a7659776a9f0fb82bb8563acbf3286b318fe03..69fc25b20cc84a2cd89cb0927aceba05df405e2a 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockState.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockState.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
||||||
@@ -219,6 +219,12 @@ public class CraftBlockState implements BlockState {
|
@@ -217,6 +217,12 @@ public class CraftBlockState implements BlockState {
|
||||||
LevelAccessor access = this.getWorldHandle();
|
LevelAccessor access = this.getWorldHandle();
|
||||||
CraftBlock block = this.getBlock();
|
CraftBlock block = this.getBlock();
|
||||||
|
|
||||||
@@ -577,7 +577,7 @@ index 647c1edd3338ce4f80e48ea769ed381cd158758d..07cf2e9412da5d307a7ca5edc202f828
|
|||||||
if (block.getType() != this.getType()) {
|
if (block.getType() != this.getType()) {
|
||||||
if (!force) {
|
if (!force) {
|
||||||
return false;
|
return false;
|
||||||
@@ -367,6 +373,8 @@ public class CraftBlockState implements BlockState {
|
@@ -365,6 +371,8 @@ public class CraftBlockState implements BlockState {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops(org.bukkit.inventory.ItemStack item, org.bukkit.entity.Entity entity) {
|
public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops(org.bukkit.inventory.ItemStack item, org.bukkit.entity.Entity entity) {
|
||||||
@@ -586,11 +586,11 @@ index 647c1edd3338ce4f80e48ea769ed381cd158758d..07cf2e9412da5d307a7ca5edc202f828
|
|||||||
this.requirePlaced();
|
this.requirePlaced();
|
||||||
net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockStates.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
index 23d0c901c1261de30748654b34a7ce6c51ad9c24..ca5edb79379ee74cb66e6eb7f63fe725a689170a 100644
|
index 321280d7c9c3c828cbf2eb19d2fd196a1f84d4c3..cd8f771e08cee5d00c53a8e70f0fe37cf393cd52 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockStates.java
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/state/CraftBlockStates.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||||
@@ -196,14 +196,14 @@ public final class CraftBlockStates {
|
@@ -195,14 +195,14 @@ public final class CraftBlockStates {
|
||||||
BlockPos pos = craftBlock.getPosition();
|
BlockPos pos = craftBlock.getPosition();
|
||||||
net.minecraft.world.level.block.state.BlockState state = craftBlock.getNMS();
|
net.minecraft.world.level.block.state.BlockState state = craftBlock.getNMS();
|
||||||
BlockEntity blockEntity = craftBlock.getHandle().getBlockEntity(pos);
|
BlockEntity blockEntity = craftBlock.getHandle().getBlockEntity(pos);
|
||||||
@@ -609,7 +609,7 @@ index 23d0c901c1261de30748654b34a7ce6c51ad9c24..ca5edb79379ee74cb66e6eb7f63fe725
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
index 7d22c1ee7fa98fc2d04d353fe19387ca3334f52a..cfe328104a57410204504721f1d8840f4819344b 100644
|
index 5a1b37a408ebede6367ca90ad5d13c29b7b1a6b3..7042d684bc345925f1755fec2b463b487db71cc5 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||||
@@ -809,6 +809,28 @@ public class CraftEventFactory {
|
@@ -809,6 +809,28 @@ public class CraftEventFactory {
|
||||||
|
|||||||
Reference in New Issue
Block a user