mirror of
https://github.com/SparklyPower/SparklyPaper.git
synced 2025-12-19 15:09:27 +00:00
Update to Paper 1.21
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
<h1 align="center">✨ SparklyPaper ✨</h1>
|
<h1 align="center">✨ SparklyPaper ✨</h1>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
SparklyPower's Paper fork, making large servers snappier with high-performance optimizations and improvements! Focused on performance improvements for Survival servers with high player counts.
|
SparklyPower's Paper fork, making large servers snappier with high-performance optimizations and improvements! Focused on performance improvements for Survival servers with high player counts.
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
remapper("net.fabricmc:tiny-remapper:0.10.2:fat") // Must be kept in sync with upstream
|
remapper("net.fabricmc:tiny-remapper:0.10.3:fat") // Must be kept in sync with upstream
|
||||||
decompiler("org.vineflower:vineflower:1.10.1") // Must be kept in sync with upstream
|
decompiler("org.vineflower:vineflower:1.10.1") // Must be kept in sync with upstream
|
||||||
paperclip("io.papermc:paperclip:3.0.3") // You probably want this to be kept in sync with upstream
|
paperclip("io.papermc:paperclip:3.0.3") // You probably want this to be kept in sync with upstream
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
group=net.sparklypower.sparklypaper
|
group=net.sparklypower.sparklypaper
|
||||||
version=1.20.6-R0.1-SNAPSHOT
|
version=1.21-R0.1-SNAPSHOT
|
||||||
|
|
||||||
mcVersion=1.20.6
|
mcVersion=1.21
|
||||||
paperRef=906df69f05d0779906377abb809bfec9fc3c3546
|
paperRef=b9f709872393eda399b3b723ff7241cc2c1beba1
|
||||||
|
|
||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
|
|||||||
@@ -65,10 +65,10 @@ index 9812d668ad945aba486fbf6d5bf83c4292cb5d03..c82b9188c79a0671ca9d09d7cd31e63d
|
|||||||
* <p>Sets whether or not the Timings should monitor at Verbose level.</p>
|
* <p>Sets whether or not the Timings should monitor at Verbose level.</p>
|
||||||
*
|
*
|
||||||
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||||
index c3a9cf65db73ed534bf20996c7f05b5eb0aaebe1..4c5673f795ce905f8cba4a1f204c9d17b7d84830 100644
|
index 5df19bd701c67506689fc7f49d91f99ebfbc83f0..b38edfa6eca2138ebeffe8647b7b5c6b3206d85a 100644
|
||||||
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||||
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
|
||||||
@@ -38,7 +38,7 @@ public class SimpleCommandMap implements CommandMap {
|
@@ -39,7 +39,7 @@ public class SimpleCommandMap implements CommandMap {
|
||||||
register("bukkit", new VersionCommand("version"));
|
register("bukkit", new VersionCommand("version"));
|
||||||
register("bukkit", new ReloadCommand("reload"));
|
register("bukkit", new ReloadCommand("reload"));
|
||||||
//register("bukkit", new PluginsCommand("plugins")); // Paper
|
//register("bukkit", new PluginsCommand("plugins")); // Paper
|
||||||
|
|||||||
@@ -33,10 +33,10 @@ index be212b4fbeabab32a4dab6ae554768c368efaa88..fc885e551b1e8393569ec1391ee3decd
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
|
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
|
||||||
index 7509b61dfdc0a6675256970cb850b08f9e814580..04ec0c27b37d7e732382815dafc52a4726c098a7 100644
|
index 54704da43cf9c429f3914f0580246dde99aa93c0..04ba1fa0eea60a8f01c89942cc8f3f8250192a72 100644
|
||||||
--- a/src/main/java/org/bukkit/Material.java
|
--- a/src/main/java/org/bukkit/Material.java
|
||||||
+++ b/src/main/java/org/bukkit/Material.java
|
+++ b/src/main/java/org/bukkit/Material.java
|
||||||
@@ -3818,6 +3818,22 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
|
@@ -3676,6 +3676,22 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
|
||||||
BIG_DRIPLEAF_STEM(13167, Dripleaf.class),
|
BIG_DRIPLEAF_STEM(13167, Dripleaf.class),
|
||||||
POTTED_AZALEA_BUSH(20430),
|
POTTED_AZALEA_BUSH(20430),
|
||||||
POTTED_FLOWERING_AZALEA_BUSH(10609),
|
POTTED_FLOWERING_AZALEA_BUSH(10609),
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] new fork who dis - Rebrand to SparklyPaper and Build Changes
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 4998aff0b7cb084dcda15c6a18bbe45e99b6000a..b2003e125fb923f531bf3777ebe39be0889601e4 100644
|
index 299b7b029384c58fed80d53cc0b77c420d62eed7..81d47c381c97d52951860566b6f0f8fdebf56f2a 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -3,6 +3,8 @@ import java.time.Instant
|
@@ -3,6 +3,8 @@ import java.time.Instant
|
||||||
@@ -70,10 +70,10 @@ index 774556a62eb240da42e84db4502e2ed43495be17..9bc7b99b5b39a8ffe4118b8d86f5b806
|
|||||||
|
|
||||||
if (stream != null) {
|
if (stream != null) {
|
||||||
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
|
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
|
||||||
index 6db566e3111ec08a99aa429624979cb83a85e272..ac350a7108a54c64cf162a683f979a04712ce4c6 100644
|
index b0a3ec17a50f4c302d6a9dd75bf907b01c567209..6195408e7f43924c0c32e4d9a665b03a949a7f17 100644
|
||||||
--- a/src/main/java/org/spigotmc/WatchdogThread.java
|
--- a/src/main/java/org/spigotmc/WatchdogThread.java
|
||||||
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
|
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
|
||||||
@@ -155,14 +155,14 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
@@ -83,14 +83,14 @@ public class WatchdogThread extends Thread
|
||||||
if (isLongTimeout) {
|
if (isLongTimeout) {
|
||||||
// Paper end
|
// Paper end
|
||||||
log.log( Level.SEVERE, "------------------------------" );
|
log.log( Level.SEVERE, "------------------------------" );
|
||||||
@@ -91,12 +91,12 @@ index 6db566e3111ec08a99aa429624979cb83a85e272..ac350a7108a54c64cf162a683f979a04
|
|||||||
//
|
//
|
||||||
if ( net.minecraft.world.level.Level.lastPhysicsProblem != null )
|
if ( net.minecraft.world.level.Level.lastPhysicsProblem != null )
|
||||||
{
|
{
|
||||||
@@ -189,7 +189,7 @@ public final class WatchdogThread extends io.papermc.paper.util.TickThread // Pa
|
@@ -117,7 +117,7 @@ public class WatchdogThread extends Thread
|
||||||
}
|
}
|
||||||
// Paper end - Different message for short timeout
|
// Paper end - Different message for short timeout
|
||||||
log.log( Level.SEVERE, "------------------------------" );
|
log.log( Level.SEVERE, "------------------------------" );
|
||||||
- log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper
|
- log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" ); // Paper
|
||||||
+ log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to SparklyPaper!):" ); // SparklyPaper - branding changes // Paper
|
+ log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to SparklyPaper!):" ); // SparklyPaper - branding changes // Paper
|
||||||
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper - rewrite chunk system
|
ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkTaskScheduler.dumpAllChunkLoadInfo(isLongTimeout); // Paper - rewrite chunk system
|
||||||
this.dumpTickingInfo(); // Paper - log detailed tick information
|
|
||||||
WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log );
|
WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE ), log );
|
||||||
|
log.log( Level.SEVERE, "------------------------------" );
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] SparklyPaper config files
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
index 2eb9c584cc77237f1c82d880a51a3f8b51008d73..ac8565be2334efe48d5bdc3f58bf60fb9f715da7 100644
|
index 1bfab581e59c607c7a30eeda17c88bb2938536f2..923e6a05f07922764b979ce7c3ebe708f81d9c8e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -232,6 +232,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -236,6 +236,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
thread.start(); // Paper - Enhance console tab completions for brigadier commands; start console thread after MinecraftServer.console & PaperConfig are initialized
|
thread.start(); // Paper - Enhance console tab completions for brigadier commands; start console thread after MinecraftServer.console & PaperConfig are initialized
|
||||||
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
|
io.papermc.paper.command.PaperCommands.registerCommands(this); // Paper - setup /paper command
|
||||||
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
|
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
|
||||||
@@ -25,10 +25,10 @@ index 2eb9c584cc77237f1c82d880a51a3f8b51008d73..ac8565be2334efe48d5bdc3f58bf60fb
|
|||||||
|
|
||||||
this.setPvpAllowed(dedicatedserverproperties.pvp);
|
this.setPvpAllowed(dedicatedserverproperties.pvp);
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index 14281a4e72f49dc4eb2ca3da8479c1f81a3a175d..5ff499481583d4cb68297b8600d5ea210eceece9 100644
|
index f1e085c712e4f128c813c3cf5340e6d2e4e55ccc..7fc7419988491dc558c10016a58ebaae485b6cfc 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -171,6 +171,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -172,6 +172,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||||
// Paper end - add paper world config
|
// Paper end - add paper world config
|
||||||
|
|
||||||
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
|
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
|
||||||
@@ -36,8 +36,8 @@ index 14281a4e72f49dc4eb2ca3da8479c1f81a3a175d..5ff499481583d4cb68297b8600d5ea21
|
|||||||
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
||||||
public static BlockPos lastPhysicsProblem; // Spigot
|
public static BlockPos lastPhysicsProblem; // Spigot
|
||||||
private org.spigotmc.TickLimiter entityLimiter;
|
private org.spigotmc.TickLimiter entityLimiter;
|
||||||
@@ -208,6 +209,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -261,6 +262,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||||
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor
|
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config & Anti-Xray
|
||||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||||
+ this.sparklyPaperConfig = net.sparklypower.sparklypaper.configs.SparklyPaperConfigUtils.INSTANCE.getWorldSettings(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // SparklyPaper
|
+ this.sparklyPaperConfig = net.sparklypower.sparklypaper.configs.SparklyPaperConfigUtils.INSTANCE.getWorldSettings(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // SparklyPaper
|
||||||
@@ -116,10 +116,10 @@ index 0000000000000000000000000000000000000000..bc0ec96f91f7c9ab9f9a865a50f69707
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 94a31c8f903eb61eb6d203e8e6fe8fb0beca28b1..40b397c0e0487b4b17edd95075a9572065527b4e 100644
|
index caf6ff33b42472d30f28629470e12889f50490cc..52666b286d4e0099de93fcda83ad17e1b4b46dd6 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -110,6 +110,7 @@ import net.minecraft.world.level.storage.PlayerDataStorage;
|
@@ -111,6 +111,7 @@ import net.minecraft.world.level.storage.PlayerDataStorage;
|
||||||
import net.minecraft.world.level.storage.PrimaryLevelData;
|
import net.minecraft.world.level.storage.PrimaryLevelData;
|
||||||
import net.minecraft.world.level.validation.ContentValidationException;
|
import net.minecraft.world.level.validation.ContentValidationException;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
@@ -127,7 +127,7 @@ index 94a31c8f903eb61eb6d203e8e6fe8fb0beca28b1..40b397c0e0487b4b17edd95075a95720
|
|||||||
import org.bukkit.BanList;
|
import org.bukkit.BanList;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@@ -1033,6 +1034,7 @@ public final class CraftServer implements Server {
|
@@ -1059,6 +1060,7 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
|
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
|
||||||
this.console.paperConfigurations.reloadConfigs(this.console);
|
this.console.paperConfigurations.reloadConfigs(this.console);
|
||||||
@@ -135,7 +135,7 @@ index 94a31c8f903eb61eb6d203e8e6fe8fb0beca28b1..40b397c0e0487b4b17edd95075a95720
|
|||||||
for (ServerLevel world : this.console.getAllLevels()) {
|
for (ServerLevel world : this.console.getAllLevels()) {
|
||||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||||
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||||
@@ -1048,6 +1050,7 @@ public final class CraftServer implements Server {
|
@@ -1074,6 +1076,7 @@ public final class CraftServer implements Server {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
world.spigotConfig.init(); // Spigot
|
world.spigotConfig.init(); // Spigot
|
||||||
@@ -143,7 +143,7 @@ index 94a31c8f903eb61eb6d203e8e6fe8fb0beca28b1..40b397c0e0487b4b17edd95075a95720
|
|||||||
}
|
}
|
||||||
|
|
||||||
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||||
@@ -1064,6 +1067,7 @@ public final class CraftServer implements Server {
|
@@ -1090,6 +1093,7 @@ public final class CraftServer implements Server {
|
||||||
this.reloadData();
|
this.reloadData();
|
||||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||||
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
||||||
@@ -152,7 +152,7 @@ index 94a31c8f903eb61eb6d203e8e6fe8fb0beca28b1..40b397c0e0487b4b17edd95075a95720
|
|||||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
index e02102280ed1dc300191d19bbca8f00e17701753..7ad7af170760878883f3f10f30d28be0bb632383 100644
|
index 6e1f92b45504cef0c4dcbbebf3df339ef4cad0a1..359326d832412de5616a7d38951d397781bc44e6 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
@@ -176,6 +176,14 @@ public class Main {
|
@@ -176,6 +176,14 @@ public class Main {
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ data is already available in the blockPosition struct, so we use that
|
|||||||
instead of re-doing the casting.
|
instead of re-doing the casting.
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java
|
diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java
|
||||||
index 1d6b3fe2ce240af4ede61588795456b046eee6c9..cdcb1bff7913bfe86fed008271016a3175b6df90 100644
|
index 4f5badb9429b34ed999183321c98b60978715638..6820e33a804e1a035bea9f94c1cdddef5466ae51 100644
|
||||||
--- a/src/main/java/io/papermc/paper/util/MCUtil.java
|
--- a/src/main/java/io/papermc/paper/util/MCUtil.java
|
||||||
+++ b/src/main/java/io/papermc/paper/util/MCUtil.java
|
+++ b/src/main/java/io/papermc/paper/util/MCUtil.java
|
||||||
@@ -215,7 +215,7 @@ public final class MCUtil {
|
@@ -199,7 +199,7 @@ public final class MCUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static long getCoordinateKey(final Entity entity) {
|
public static long getCoordinateKey(final Entity entity) {
|
||||||
@@ -24,10 +24,10 @@ index 1d6b3fe2ce240af4ede61588795456b046eee6c9..cdcb1bff7913bfe86fed008271016a31
|
|||||||
|
|
||||||
public static long getCoordinateKey(final ChunkPos pair) {
|
public static long getCoordinateKey(final ChunkPos pair) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 4ee843dfd826772c9157ca421d8fe1f36f814b51..41ce41e92f3722e7ffb3423c90663d7a677bf277 100644
|
index 437956b18d5bffd93c46e0be34cf413e9c704e5a..e2c2a2bf6044509afe4071459bde9bae1bb7ca71 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -311,7 +311,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -315,7 +315,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
public double yo;
|
public double yo;
|
||||||
public double zo;
|
public double zo;
|
||||||
private Vec3 position;
|
private Vec3 position;
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ now is just updating dirty map/decoration data.
|
|||||||
When no bukkit renderers are added to the map, we also re-use the same packet for all players who are tracking it which avoids a lot of work.
|
When no bukkit renderers are added to the map, we also re-use the same packet for all players who are tracking it which avoids a lot of work.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
index a2279262c93408c11f5d2290b48fd794975e8cfe..7392a058bab0eca23cb82392d5b5cc50e8601499 100644
|
index 1d849ce4e2c85f149af25318b8ffb6dcef6c6788..542083a06956fa4cf3367698806a4b8909506da4 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
@@ -120,27 +120,40 @@ public class ServerEntity {
|
@@ -112,27 +112,40 @@ public class ServerEntity {
|
||||||
|
|
||||||
Entity entity = this.entity;
|
Entity entity = this.entity;
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ index a2279262c93408c11f5d2290b48fd794975e8cfe..7392a058bab0eca23cb82392d5b5cc50
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -382,6 +395,19 @@ public class ServerEntity {
|
@@ -370,6 +383,19 @@ public class ServerEntity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,12 +79,12 @@ index a2279262c93408c11f5d2290b48fd794975e8cfe..7392a058bab0eca23cb82392d5b5cc50
|
|||||||
+ // Paper end
|
+ // Paper end
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendDirtyEntityData() {
|
public Vec3 getPositionBase() {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||||
index da0d1c9a1c4ae081bff9ca4230c9a1503885c354..c6f6e3588f7cb966af6d67dcec765b041869baae 100644
|
index 5b7245cd99593ee90e17c97e0104f3aba9ae05ea..03432d084f8ed0cb7716d612b35f740943dcc4c0 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
--- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
+++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
|
||||||
@@ -461,6 +461,16 @@ public class ItemFrame extends HangingEntity {
|
@@ -419,6 +419,16 @@ public class ItemFrame extends HangingEntity {
|
||||||
}
|
}
|
||||||
this.setItem(ItemStack.fromBukkitCopy(event.getItemStack()));
|
this.setItem(ItemStack.fromBukkitCopy(event.getItemStack()));
|
||||||
// Paper end - Add PlayerItemFrameChangeEvent
|
// Paper end - Add PlayerItemFrameChangeEvent
|
||||||
@@ -102,10 +102,10 @@ index da0d1c9a1c4ae081bff9ca4230c9a1503885c354..c6f6e3588f7cb966af6d67dcec765b04
|
|||||||
itemstack.consume(1, player);
|
itemstack.consume(1, player);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||||
index cf8ae635fce7ea66d4e1ab1dc05575f035fa95ef..6e3eb9a28b6c190acfe37a03efce573da2da2749 100644
|
index 17f33c83c6033564d6bf4fbd388b0b847c68adb3..6bcb565cd60b60be9255ef537591ee821caab7b5 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
--- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
+++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||||
@@ -79,6 +79,16 @@ public class MapItemSavedData extends SavedData {
|
@@ -80,6 +80,16 @@ public class MapItemSavedData extends SavedData {
|
||||||
private final Map<String, MapFrame> frameMarkers = Maps.newHashMap();
|
private final Map<String, MapFrame> frameMarkers = Maps.newHashMap();
|
||||||
private int trackedDecorationCount;
|
private int trackedDecorationCount;
|
||||||
private org.bukkit.craftbukkit.map.RenderData vanillaRender = new org.bukkit.craftbukkit.map.RenderData(); // Paper
|
private org.bukkit.craftbukkit.map.RenderData vanillaRender = new org.bukkit.craftbukkit.map.RenderData(); // Paper
|
||||||
@@ -122,7 +122,7 @@ index cf8ae635fce7ea66d4e1ab1dc05575f035fa95ef..6e3eb9a28b6c190acfe37a03efce573d
|
|||||||
|
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
public final CraftMapView mapView;
|
public final CraftMapView mapView;
|
||||||
@@ -351,6 +361,7 @@ public class MapItemSavedData extends SavedData {
|
@@ -352,6 +362,7 @@ public class MapItemSavedData extends SavedData {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setDecorationsDirty();
|
this.setDecorationsDirty();
|
||||||
@@ -130,7 +130,7 @@ index cf8ae635fce7ea66d4e1ab1dc05575f035fa95ef..6e3eb9a28b6c190acfe37a03efce573d
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void addTargetDecoration(ItemStack stack, BlockPos pos, String id, Holder<MapDecorationType> decorationType) {
|
public static void addTargetDecoration(ItemStack stack, BlockPos pos, String id, Holder<MapDecorationType> decorationType) {
|
||||||
@@ -432,6 +443,7 @@ public class MapItemSavedData extends SavedData {
|
@@ -433,6 +444,7 @@ public class MapItemSavedData extends SavedData {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setDecorationsDirty();
|
this.setDecorationsDirty();
|
||||||
@@ -138,7 +138,7 @@ index cf8ae635fce7ea66d4e1ab1dc05575f035fa95ef..6e3eb9a28b6c190acfe37a03efce573d
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -445,6 +457,20 @@ public class MapItemSavedData extends SavedData {
|
@@ -446,6 +458,20 @@ public class MapItemSavedData extends SavedData {
|
||||||
|
|
||||||
public void setColorsDirty(int x, int z) {
|
public void setColorsDirty(int x, int z) {
|
||||||
this.setDirty();
|
this.setDirty();
|
||||||
@@ -159,16 +159,16 @@ index cf8ae635fce7ea66d4e1ab1dc05575f035fa95ef..6e3eb9a28b6c190acfe37a03efce573d
|
|||||||
Iterator iterator = this.carriedBy.iterator();
|
Iterator iterator = this.carriedBy.iterator();
|
||||||
|
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
@@ -527,6 +553,7 @@ public class MapItemSavedData extends SavedData {
|
@@ -528,6 +554,7 @@ public class MapItemSavedData extends SavedData {
|
||||||
public void removedFromFrame(BlockPos pos, int id) {
|
public void removedFromFrame(BlockPos pos, int id) {
|
||||||
this.removeDecoration("frame-" + id);
|
this.removeDecoration(MapItemSavedData.getFrameKey(id));
|
||||||
this.frameMarkers.remove(MapFrame.frameId(pos));
|
this.frameMarkers.remove(MapFrame.frameId(pos));
|
||||||
+ this.dirtyFrameDecorations = true; // Paper
|
+ this.dirtyFrameDecorations = true; // Paper
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean updateColor(int x, int z, byte color) {
|
public boolean updateColor(int x, int z, byte color) {
|
||||||
@@ -584,6 +611,93 @@ public class MapItemSavedData extends SavedData {
|
@@ -589,6 +616,93 @@ public class MapItemSavedData extends SavedData {
|
||||||
return this.trackedDecorationCount >= decorationCount;
|
return "frame-" + id;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
|
|||||||
@@ -9,19 +9,21 @@ The "distanceToSqr" call is a bit expensive, so avoiding it is pretty nice, arou
|
|||||||
We could also check if the x,y,z coordinates are equal, but for now, let's just keep the identity check, which also helps us since Minecraft's code does reuse the original delta movement Vec3 object
|
We could also check if the x,y,z coordinates are equal, but for now, let's just keep the identity check, which also helps us since Minecraft's code does reuse the original delta movement Vec3 object
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
index 7392a058bab0eca23cb82392d5b5cc50e8601499..072aa9f0cd26602c0251819fd02711078382f9da 100644
|
index 542083a06956fa4cf3367698806a4b8909506da4..603ce9e4805d1a1f5a272034e03f995bc80a50e6 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||||
@@ -228,12 +228,14 @@ public class ServerEntity {
|
@@ -217,6 +217,8 @@ public class ServerEntity {
|
||||||
|
|
||||||
if ((this.trackDelta || this.entity.hasImpulse || this.entity instanceof LivingEntity && ((LivingEntity) this.entity).isFallFlying()) && this.tickCount > 0) {
|
if ((this.trackDelta || this.entity.hasImpulse || this.entity instanceof LivingEntity && ((LivingEntity) this.entity).isFallFlying()) && this.tickCount > 0) {
|
||||||
Vec3 vec3d1 = this.entity.getDeltaMovement();
|
Vec3 vec3d1 = this.entity.getDeltaMovement();
|
||||||
+ if (vec3d1 != this.ap) { // SparklyPaper start - skip distanceToSqr call in ServerEntity#sendChanges if the delta movement hasn't changed
|
+
|
||||||
double d0 = vec3d1.distanceToSqr(this.ap);
|
+ if (vec3d1 != this.lastSentMovement) { // SparklyPaper start - skip distanceToSqr call in ServerEntity#sendChanges if the delta movement hasn't changed
|
||||||
|
double d0 = vec3d1.distanceToSqr(this.lastSentMovement);
|
||||||
|
|
||||||
if (d0 > 1.0E-7D || d0 > 0.0D && vec3d1.lengthSqr() == 0.0D) {
|
if (d0 > 1.0E-7D || d0 > 0.0D && vec3d1.lengthSqr() == 0.0D) {
|
||||||
this.ap = vec3d1;
|
@@ -231,6 +233,7 @@ public class ServerEntity {
|
||||||
this.broadcast.accept(new ClientboundSetEntityMotionPacket(this.entity.getId(), this.ap));
|
this.broadcast.accept(new ClientboundSetEntityMotionPacket(this.entity.getId(), this.lastSentMovement));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+ } // SparklyPaper end
|
+ } // SparklyPaper end
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,20 +73,18 @@ index 62484ebf4550b05182f693a3180bbac5d5fd906d..67800e426445060a8343e27a7452b8d7
|
|||||||
throw new IllegalStateException("Ticking retired scheduler");
|
throw new IllegalStateException("Ticking retired scheduler");
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 0ed42fa899721f83b598db05be1b5f321af3614a..1148b3ab0a582fff17f0101516df4b5037b49aba 100644
|
index eb0a740f884fde081cabaec5a61c9b642a85a1b4..30dfcd4f9379754a3c104e689efec70d22be0e7e 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -316,7 +316,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -322,6 +322,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
public volatile Thread shutdownThread; // Paper
|
public volatile Thread shutdownThread; // Paper
|
||||||
public volatile boolean abnormalExit = false; // Paper
|
public volatile boolean abnormalExit = false; // Paper
|
||||||
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
|
||||||
-
|
|
||||||
+ public final Set<Entity> entitiesWithScheduledTasks = java.util.concurrent.ConcurrentHashMap.newKeySet(); // SparklyPaper - skip EntityScheduler's executeTick checks if there isn't any tasks to be run (concurrent because plugins may schedule tasks async)
|
+ public final Set<Entity> entitiesWithScheduledTasks = java.util.concurrent.ConcurrentHashMap.newKeySet(); // SparklyPaper - skip EntityScheduler's executeTick checks if there isn't any tasks to be run (concurrent because plugins may schedule tasks async)
|
||||||
+
|
|
||||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
||||||
AtomicReference<S> atomicreference = new AtomicReference();
|
AtomicReference<S> atomicreference = new AtomicReference();
|
||||||
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
|
@@ -1655,6 +1656,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
@@ -1700,6 +1701,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
||||||
MinecraftTimings.bukkitSchedulerTimer.stopTiming(); // Spigot // Paper
|
MinecraftTimings.bukkitSchedulerTimer.stopTiming(); // Spigot // Paper
|
||||||
// Paper start - Folia scheduler API
|
// Paper start - Folia scheduler API
|
||||||
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
|
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) Bukkit.getGlobalRegionScheduler()).tick();
|
||||||
@@ -103,9 +101,9 @@ index 0ed42fa899721f83b598db05be1b5f321af3614a..1148b3ab0a582fff17f0101516df4b50
|
|||||||
+ }
|
+ }
|
||||||
+ /*
|
+ /*
|
||||||
getAllLevels().forEach(level -> {
|
getAllLevels().forEach(level -> {
|
||||||
for (final Entity entity : level.getEntityLookup().getAllCopy()) { // Paper - rewrite chunk system
|
for (final Entity entity : level.getEntities().getAll()) {
|
||||||
if (entity.isRemoved()) {
|
if (entity.isRemoved()) {
|
||||||
@@ -1711,6 +1724,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1666,6 +1679,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -115,10 +113,10 @@ index 0ed42fa899721f83b598db05be1b5f321af3614a..1148b3ab0a582fff17f0101516df4b50
|
|||||||
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
||||||
this.profiler.push("commandFunctions");
|
this.profiler.push("commandFunctions");
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
index a2d336ceb52b63db5c03432ee7bc94dc6a742b82..731ed9eb77c3d21ffa4c7ecb3b022836dd8057f6 100644
|
index 2cde808bfa797256409879505ba205a71f381981..a2b91d472150193f5692762808cbbbff30211ee7 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
@@ -69,7 +69,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
@@ -71,7 +71,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||||
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftEntity.DATA_TYPE_REGISTRY);
|
private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftEntity.DATA_TYPE_REGISTRY);
|
||||||
protected net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers
|
protected net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers
|
||||||
// Paper start - Folia shedulers
|
// Paper start - Folia shedulers
|
||||||
@@ -127,7 +125,7 @@ index a2d336ceb52b63db5c03432ee7bc94dc6a742b82..731ed9eb77c3d21ffa4c7ecb3b022836
|
|||||||
private final io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler apiScheduler = new io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler(this);
|
private final io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler apiScheduler = new io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler(this);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -82,6 +82,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
@@ -84,6 +84,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.entity = entity;
|
this.entity = entity;
|
||||||
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
|
this.entityType = CraftEntityType.minecraftToBukkit(entity.getType());
|
||||||
|
|||||||
@@ -10,24 +10,22 @@ Caches when Bat's spooky season starts and ends, and when Skeleton and Zombies h
|
|||||||
Avoids unnecessary date checks, even tho that this shouldn't really improve performance that much... unless you have a lot of bats/zombies/skeletons spawning.
|
Avoids unnecessary date checks, even tho that this shouldn't really improve performance that much... unless you have a lot of bats/zombies/skeletons spawning.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 1148b3ab0a582fff17f0101516df4b5037b49aba..b635a473d2a19bbefc24e86455ec6735b9a8c9cc 100644
|
index 30dfcd4f9379754a3c104e689efec70d22be0e7e..a832b608fceb12b5ceeb4ff1f824e7d542bad32f 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -317,7 +317,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -323,6 +323,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
public volatile Thread shutdownThread; // Paper
|
||||||
public volatile boolean abnormalExit = false; // Paper
|
public volatile boolean abnormalExit = false; // Paper
|
||||||
public static final long SERVER_INIT = System.nanoTime(); // Paper - Lag compensation
|
|
||||||
public final Set<Entity> entitiesWithScheduledTasks = java.util.concurrent.ConcurrentHashMap.newKeySet(); // SparklyPaper - skip EntityScheduler's executeTick checks if there isn't any tasks to be run (concurrent because plugins may schedule tasks async)
|
public final Set<Entity> entitiesWithScheduledTasks = java.util.concurrent.ConcurrentHashMap.newKeySet(); // SparklyPaper - skip EntityScheduler's executeTick checks if there isn't any tasks to be run (concurrent because plugins may schedule tasks async)
|
||||||
-
|
|
||||||
+ public net.sparklypower.sparklypaper.HalloweenManager halloweenManager = new net.sparklypower.sparklypaper.HalloweenManager(); // SparklyPaper - Spooky month optimizations
|
+ public net.sparklypower.sparklypaper.HalloweenManager halloweenManager = new net.sparklypower.sparklypaper.HalloweenManager(); // SparklyPaper - Spooky month optimizations
|
||||||
+
|
|
||||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) {
|
||||||
AtomicReference<S> atomicreference = new AtomicReference();
|
AtomicReference<S> atomicreference = new AtomicReference();
|
||||||
Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
index ac8565be2334efe48d5bdc3f58bf60fb9f715da7..859faaf21635caca2a2ab471ac3d4569f04ba69b 100644
|
index 923e6a05f07922764b979ce7c3ebe708f81d9c8e..17c862b5c33312539aab9be215834c06add818e7 100644
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -241,6 +241,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -245,6 +245,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
}
|
}
|
||||||
net.sparklypower.sparklypaper.SparklyPaperCommands.INSTANCE.registerCommands(this);
|
net.sparklypower.sparklypaper.SparklyPaperCommands.INSTANCE.registerCommands(this);
|
||||||
// SparklyPaper end
|
// SparklyPaper end
|
||||||
@@ -69,10 +67,10 @@ index dc27ddf5131e7398a5390a5187261d4c7fb6ccaa..6c8664c9cf75a88007e43348059fad7e
|
|||||||
private void setupAnimationStates() {
|
private void setupAnimationStates() {
|
||||||
if (this.isResting()) {
|
if (this.isResting()) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
||||||
index 0c5fe46d2da113beff3e220843593d616e37d4ca..26b81b6a0111e2149020b8a8f934f2660f59780e 100644
|
index 3b5cf6ffb74d11bea5eb21bd66d679734ff5000c..97bdeb56fee6fb4ae924973730e34dbf933eef68 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
||||||
@@ -154,10 +154,12 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
@@ -157,10 +157,12 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
||||||
this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper - Add world settings for mobs picking up loot
|
this.setCanPickUpLoot(this.level().paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper - Add world settings for mobs picking up loot
|
||||||
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
|
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
|
||||||
LocalDate localdate = LocalDate.now();
|
LocalDate localdate = LocalDate.now();
|
||||||
@@ -89,10 +87,10 @@ index 0c5fe46d2da113beff3e220843593d616e37d4ca..26b81b6a0111e2149020b8a8f934f266
|
|||||||
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
|
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||||
index e42dfc62bb179be1ab01b0096c05c6549d38abbc..14292ee06e065b0043f5cb087072e3d0fa11291a 100644
|
index 2280004638fd19ed018cb3e77d53a018b34ec516..fb15112f920174d7ea6a3bd683418772c0910780 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
|
||||||
@@ -542,10 +542,11 @@ public class Zombie extends Monster {
|
@@ -553,10 +553,11 @@ public class Zombie extends Monster {
|
||||||
|
|
||||||
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
|
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
|
||||||
LocalDate localdate = LocalDate.now();
|
LocalDate localdate = LocalDate.now();
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ This seems stupid, but it does seem that it improves the performance a bit, and
|
|||||||
We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice.
|
We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
index 7fb9ba3dadb1eca4a1000ea8cf4d13fed2b7db1e..b1301d9b6467ba8700e4d86a8fe83fa48ec829e0 100644
|
index df00ea382915480be1279a5347872cf7a1417341..3bb88e49fa4513011a082f06d592e70e759fd2ae 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -1439,7 +1439,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -1205,7 +1205,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
// Paper end - Configurable entity tracking range by Y
|
// Paper end - Configurable entity tracking range by Y
|
||||||
|
|
||||||
// CraftBukkit start - respect vanish API
|
// CraftBukkit start - respect vanish API
|
||||||
@@ -27,10 +27,10 @@ index 7fb9ba3dadb1eca4a1000ea8cf4d13fed2b7db1e..b1301d9b6467ba8700e4d86a8fe83fa4
|
|||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 7e6116963d835d4606ef3d93b69d3e44b61288e1..9930168187d5fd50f1567e29dd35b27bc15542e8 100644
|
index 7eea190ce8a62960ecc42ff56a4ef71b754184fb..f66ebcbd96fe1e75ac8e56b858b994c06899e097 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
@@ -198,7 +198,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -200,7 +200,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
private boolean hasPlayedBefore = false;
|
private boolean hasPlayedBefore = false;
|
||||||
private final ConversationTracker conversationTracker = new ConversationTracker();
|
private final ConversationTracker conversationTracker = new ConversationTracker();
|
||||||
private final Set<String> channels = new HashSet<String>();
|
private final Set<String> channels = new HashSet<String>();
|
||||||
@@ -39,7 +39,7 @@ index 7e6116963d835d4606ef3d93b69d3e44b61288e1..9930168187d5fd50f1567e29dd35b27b
|
|||||||
private final Set<UUID> unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player
|
private final Set<UUID> unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player
|
||||||
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
|
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
|
||||||
private int hash = 0;
|
private int hash = 0;
|
||||||
@@ -2228,9 +2228,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -2247,9 +2247,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canSee(org.bukkit.entity.Entity entity) {
|
public boolean canSee(org.bukkit.entity.Entity entity) {
|
||||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Revert "Fix MC-117075: Block entity unload lag spike"
|
|||||||
This reverts commit f3453b204569ea865cc1d1302edb6d125e7f0cb3.
|
This reverts commit f3453b204569ea865cc1d1302edb6d125e7f0cb3.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index 5ff499481583d4cb68297b8600d5ea210eceece9..2144ffc34b2fc233f85c8ff56eefefde2a4b16ef 100644
|
index 7fc7419988491dc558c10016a58ebaae485b6cfc..913abd2ae85cb2c558ba953ea446aab939074f43 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -1268,8 +1268,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -957,8 +957,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||||
boolean flag = this.tickRateManager().runsNormally();
|
boolean flag = this.tickRateManager().runsNormally();
|
||||||
|
|
||||||
int tilesThisCycle = 0;
|
int tilesThisCycle = 0;
|
||||||
@@ -18,7 +18,7 @@ index 5ff499481583d4cb68297b8600d5ea210eceece9..2144ffc34b2fc233f85c8ff56eefefde
|
|||||||
for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters
|
for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters
|
||||||
this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0;
|
this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0;
|
||||||
TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition);
|
TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition);
|
||||||
@@ -1278,7 +1276,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -967,13 +965,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||||
if (tickingblockentity.isRemoved()) {
|
if (tickingblockentity.isRemoved()) {
|
||||||
// Spigot start
|
// Spigot start
|
||||||
tilesThisCycle--;
|
tilesThisCycle--;
|
||||||
@@ -27,8 +27,6 @@ index 5ff499481583d4cb68297b8600d5ea210eceece9..2144ffc34b2fc233f85c8ff56eefefde
|
|||||||
// Spigot end
|
// Spigot end
|
||||||
} else if (flag && this.shouldTickBlocksAt(tickingblockentity.getPos())) {
|
} else if (flag && this.shouldTickBlocksAt(tickingblockentity.getPos())) {
|
||||||
tickingblockentity.tick();
|
tickingblockentity.tick();
|
||||||
@@ -1289,7 +1287,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
||||||
// Paper end - execute chunk tasks during tick
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
- this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
|
- this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
|
||||||
@@ -8,10 +8,10 @@ We replaced the `blockEntityTickers` list with a custom list based on fastutil's
|
|||||||
This is WAY FASTER than using `removeAll` with a list of entries to be removed, because we don't need to calculate the identity of each block entity to be removed, and we can jump directly to where the search should begin, giving a performance boost for small removals (because we don't need to loop thru the entire list to find what element should be removed) and a performance boost for big removals (no need to calculate the identity of each block entity).
|
This is WAY FASTER than using `removeAll` with a list of entries to be removed, because we don't need to calculate the identity of each block entity to be removed, and we can jump directly to where the search should begin, giving a performance boost for small removals (because we don't need to loop thru the entire list to find what element should be removed) and a performance boost for big removals (no need to calculate the identity of each block entity).
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index 2144ffc34b2fc233f85c8ff56eefefde2a4b16ef..65d1d84bf4c381492d394bb61055cfa308ce24f7 100644
|
index 913abd2ae85cb2c558ba953ea446aab939074f43..175402a4ce41a048429a6fdccce4190add75f17a 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -114,7 +114,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -115,7 +115,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||||
public static final int TICKS_PER_DAY = 24000;
|
public static final int TICKS_PER_DAY = 24000;
|
||||||
public static final int MAX_ENTITY_SPAWN_Y = 20000000;
|
public static final int MAX_ENTITY_SPAWN_Y = 20000000;
|
||||||
public static final int MIN_ENTITY_SPAWN_Y = -20000000;
|
public static final int MIN_ENTITY_SPAWN_Y = -20000000;
|
||||||
@@ -20,7 +20,7 @@ index 2144ffc34b2fc233f85c8ff56eefefde2a4b16ef..65d1d84bf4c381492d394bb61055cfa3
|
|||||||
protected final NeighborUpdater neighborUpdater;
|
protected final NeighborUpdater neighborUpdater;
|
||||||
private final List<TickingBlockEntity> pendingBlockEntityTickers = Lists.newArrayList();
|
private final List<TickingBlockEntity> pendingBlockEntityTickers = Lists.newArrayList();
|
||||||
private boolean tickingBlockEntities;
|
private boolean tickingBlockEntities;
|
||||||
@@ -1276,7 +1276,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -965,13 +965,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||||
if (tickingblockentity.isRemoved()) {
|
if (tickingblockentity.isRemoved()) {
|
||||||
// Spigot start
|
// Spigot start
|
||||||
tilesThisCycle--;
|
tilesThisCycle--;
|
||||||
@@ -29,8 +29,6 @@ index 2144ffc34b2fc233f85c8ff56eefefde2a4b16ef..65d1d84bf4c381492d394bb61055cfa3
|
|||||||
// Spigot end
|
// Spigot end
|
||||||
} else if (flag && this.shouldTickBlocksAt(tickingblockentity.getPos())) {
|
} else if (flag && this.shouldTickBlocksAt(tickingblockentity.getPos())) {
|
||||||
tickingblockentity.tick();
|
tickingblockentity.tick();
|
||||||
@@ -1287,7 +1287,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
||||||
// Paper end - execute chunk tasks during tick
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
@@ -12,10 +12,10 @@ But here's the thing: We don't care if we have a small performance penalty if th
|
|||||||
And finally, we also cache the chunk's coordinate key when creating the block entity, which is actually "free" because we just reuse the already cached chunk coordinate key from the chunk!
|
And finally, we also cache the chunk's coordinate key when creating the block entity, which is actually "free" because we just reuse the already cached chunk coordinate key from the chunk!
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index 65d1d84bf4c381492d394bb61055cfa308ce24f7..6ed4efec4eda74af9472e6e3fc637251f9c2a21c 100644
|
index 175402a4ce41a048429a6fdccce4190add75f17a..5c28b6491c3a23f850ca22da59261cedc774eddd 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -1268,6 +1268,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -957,6 +957,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||||
boolean flag = this.tickRateManager().runsNormally();
|
boolean flag = this.tickRateManager().runsNormally();
|
||||||
|
|
||||||
int tilesThisCycle = 0;
|
int tilesThisCycle = 0;
|
||||||
@@ -26,7 +26,7 @@ index 65d1d84bf4c381492d394bb61055cfa308ce24f7..6ed4efec4eda74af9472e6e3fc637251
|
|||||||
for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters
|
for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters
|
||||||
this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0;
|
this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0;
|
||||||
TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition);
|
TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(this.tileTickPosition);
|
||||||
@@ -1278,13 +1282,25 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -967,8 +971,20 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||||
tilesThisCycle--;
|
tilesThisCycle--;
|
||||||
this.blockEntityTickers.markAsRemoved(this.tileTickPosition); // this.blockEntityTickers.remove(this.tileTickPosition--); // SparklyPaper - optimize block entity removals
|
this.blockEntityTickers.markAsRemoved(this.tileTickPosition); // this.blockEntityTickers.remove(this.tileTickPosition--); // SparklyPaper - optimize block entity removals
|
||||||
// Spigot end
|
// Spigot end
|
||||||
@@ -44,11 +44,6 @@ index 65d1d84bf4c381492d394bb61055cfa308ce24f7..6ed4efec4eda74af9472e6e3fc637251
|
|||||||
+ }
|
+ }
|
||||||
+ if (shouldTick) {
|
+ if (shouldTick) {
|
||||||
tickingblockentity.tick();
|
tickingblockentity.tick();
|
||||||
// Paper start - execute chunk tasks during tick
|
|
||||||
if ((this.tileTickPosition & 7) == 0) {
|
|
||||||
MinecraftServer.getServer().executeMidTickTasks();
|
|
||||||
}
|
|
||||||
// Paper end - execute chunk tasks during tick
|
|
||||||
+ } // SparklyPaper end
|
+ } // SparklyPaper end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,10 +60,10 @@ index 28e3b73507b988f7234cbf29c4024c88180d0aef..427cf73383155c52bca8fb4b32f43029
|
|||||||
+ long getChunkCoordinateKey(); // SparklyPaper - optimize tickBlockEntities
|
+ long getChunkCoordinateKey(); // SparklyPaper - optimize tickBlockEntities
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
index 14ee7b5b9b804bebd4e2a846b238547a28a36035..9af0da6c3a9805542b1b31fb32f0b3bcb1efe1c8 100644
|
index 435f5f0a17901f743bd565b28f9feb5d4058c819..3e03946202cc6aca535322446c6e5e9a0a0dcf15 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||||
@@ -75,6 +75,13 @@ public class LevelChunk extends ChunkAccess {
|
@@ -74,6 +74,13 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return "<null>";
|
return "<null>";
|
||||||
}
|
}
|
||||||
@@ -82,7 +77,7 @@ index 14ee7b5b9b804bebd4e2a846b238547a28a36035..9af0da6c3a9805542b1b31fb32f0b3bc
|
|||||||
};
|
};
|
||||||
private final Map<BlockPos, LevelChunk.RebindableTickingBlockEntityWrapper> tickersInLevel;
|
private final Map<BlockPos, LevelChunk.RebindableTickingBlockEntityWrapper> tickersInLevel;
|
||||||
public boolean loaded;
|
public boolean loaded;
|
||||||
@@ -1087,7 +1094,7 @@ public class LevelChunk extends ChunkAccess {
|
@@ -1035,7 +1042,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends BlockEntity> TickingBlockEntity createTicker(T blockEntity, BlockEntityTicker<T> blockEntityTicker) {
|
private <T extends BlockEntity> TickingBlockEntity createTicker(T blockEntity, BlockEntityTicker<T> blockEntityTicker) {
|
||||||
@@ -91,7 +86,7 @@ index 14ee7b5b9b804bebd4e2a846b238547a28a36035..9af0da6c3a9805542b1b31fb32f0b3bc
|
|||||||
}
|
}
|
||||||
|
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
@@ -1138,6 +1145,13 @@ public class LevelChunk extends ChunkAccess {
|
@@ -1086,6 +1093,13 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.valueOf(this.ticker) + " <wrapped>";
|
return String.valueOf(this.ticker) + " <wrapped>";
|
||||||
}
|
}
|
||||||
@@ -105,7 +100,7 @@ index 14ee7b5b9b804bebd4e2a846b238547a28a36035..9af0da6c3a9805542b1b31fb32f0b3bc
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class BoundTickingBlockEntity<T extends BlockEntity> implements TickingBlockEntity {
|
private class BoundTickingBlockEntity<T extends BlockEntity> implements TickingBlockEntity {
|
||||||
@@ -1145,10 +1159,12 @@ public class LevelChunk extends ChunkAccess {
|
@@ -1093,10 +1107,12 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
private final T blockEntity;
|
private final T blockEntity;
|
||||||
private final BlockEntityTicker<T> ticker;
|
private final BlockEntityTicker<T> ticker;
|
||||||
private boolean loggedInvalidBlockState;
|
private boolean loggedInvalidBlockState;
|
||||||
@@ -119,7 +114,7 @@ index 14ee7b5b9b804bebd4e2a846b238547a28a36035..9af0da6c3a9805542b1b31fb32f0b3bc
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1216,5 +1232,12 @@ public class LevelChunk extends ChunkAccess {
|
@@ -1164,5 +1180,12 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
|
||||||
|
|
||||||
return "Level ticker for " + s + "@" + String.valueOf(this.getPos());
|
return "Level ticker for " + s + "@" + String.valueOf(this.getPos());
|
||||||
}
|
}
|
||||||
@@ -56,10 +56,10 @@ index 8b5293b0c696ef21d0101493ffa41b60bf0bc86b..601198a33adb29316b0617d5390d1620
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index b635a473d2a19bbefc24e86455ec6735b9a8c9cc..8394e89af7b8aa2638a6ccf711897470484b47ef 100644
|
index a832b608fceb12b5ceeb4ff1f824e7d542bad32f..086ff182abaf0a3df4d20f98c6e5f9ddce26dc83 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1792,7 +1792,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1746,7 +1746,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
|
|
||||||
try {
|
try {
|
||||||
worldserver.timings.doTick.startTiming(); // Spigot
|
worldserver.timings.doTick.startTiming(); // Spigot
|
||||||
@@ -77,12 +77,12 @@ index b635a473d2a19bbefc24e86455ec6735b9a8c9cc..8394e89af7b8aa2638a6ccf711897470
|
|||||||
for (final io.papermc.paper.chunk.SingleThreadChunkRegionManager regionManager : worldserver.getChunkSource().chunkMap.regionManagers) {
|
for (final io.papermc.paper.chunk.SingleThreadChunkRegionManager regionManager : worldserver.getChunkSource().chunkMap.regionManagers) {
|
||||||
regionManager.recalculateRegions();
|
regionManager.recalculateRegions();
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index ca56a0b596976448da6bb2a0e82b3d5cd4133e12..172e835359ffa12abbc887d12be5af7403dae5ab 100644
|
index b81ac6db8ba1ee0722e9e85f8de8ef91169a3198..f6d0b7d94995fff41def7edcf66fac40c43fec61 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -691,6 +691,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
@@ -496,6 +496,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||||
}
|
}
|
||||||
// Paper end - optimise nearby player retrieval
|
// Paper end - rewrite chunk system
|
||||||
|
|
||||||
+ // SparklyPaper start - track world's MSPT
|
+ // SparklyPaper start - track world's MSPT
|
||||||
+ public final MinecraftServer.TickTimes tickTimes5s = new MinecraftServer.TickTimes(100);
|
+ public final MinecraftServer.TickTimes tickTimes5s = new MinecraftServer.TickTimes(100);
|
||||||
@@ -8,10 +8,10 @@ By default, the server will start rewriting all map datas to the disk after load
|
|||||||
This also slows down world saving a lot if you have a lot of maps
|
This also slows down world saving a lot if you have a lot of maps
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||||
index 6e3eb9a28b6c190acfe37a03efce573da2da2749..135f282ad4ab70837f762d183ffab62f2a75d763 100644
|
index 6bcb565cd60b60be9255ef537591ee821caab7b5..83ca73240aae660f565e016565b147018f9f407f 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
--- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
+++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||||
@@ -217,6 +217,7 @@ public class MapItemSavedData extends SavedData {
|
@@ -218,6 +218,7 @@ public class MapItemSavedData extends SavedData {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add ClientboundPacketPreDispatchEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
|
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
|
||||||
index f40420a6841f03983b0837e177ea2ae7c3a37ca1..cd3aaa7ddabbb65250c49c40d4668316284daf74 100644
|
index 90a2c61c42cba7e38f167eccdd7a951a947963c4..f1bbe862dd044f755a789a3f9aa91078c86c8099 100644
|
||||||
--- a/src/main/java/net/minecraft/network/Connection.java
|
--- a/src/main/java/net/minecraft/network/Connection.java
|
||||||
+++ b/src/main/java/net/minecraft/network/Connection.java
|
+++ b/src/main/java/net/minecraft/network/Connection.java
|
||||||
@@ -442,6 +442,18 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
@@ -450,6 +450,18 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Helpful NMS packet changes
|
|||||||
Some nice changes to the packet internals to make packet sending and manipulation easier for us to avoid Reflection and JVM internals (ooo theUnsafe spooky) usage
|
Some nice changes to the packet internals to make packet sending and manipulation easier for us to avoid Reflection and JVM internals (ooo theUnsafe spooky) usage
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundAddEntityPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundAddEntityPacket.java
|
diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundAddEntityPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundAddEntityPacket.java
|
||||||
index ee43eb8887835fbd016d28f91b2239dfeb25508e..e945e0752b41e10d16d8c766a2f919767b7b0b82 100644
|
index 1a5e73fd97781f3903e5ef13aa0352c64fbc2cc1..19efe46af67cd7066f38840001cf3e84b597ba70 100644
|
||||||
--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundAddEntityPacket.java
|
--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundAddEntityPacket.java
|
||||||
+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundAddEntityPacket.java
|
+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundAddEntityPacket.java
|
||||||
@@ -21,7 +21,7 @@ public class ClientboundAddEntityPacket implements Packet<ClientGamePacketListen
|
@@ -22,7 +22,7 @@ public class ClientboundAddEntityPacket implements Packet<ClientGamePacketListen
|
||||||
private static final double LIMIT = 3.9;
|
private static final double LIMIT = 3.9;
|
||||||
private final int id;
|
private final int id;
|
||||||
private final UUID uuid;
|
private final UUID uuid;
|
||||||
@@ -18,7 +18,7 @@ index ee43eb8887835fbd016d28f91b2239dfeb25508e..e945e0752b41e10d16d8c766a2f91976
|
|||||||
private final double x;
|
private final double x;
|
||||||
private final double y;
|
private final double y;
|
||||||
private final double z;
|
private final double z;
|
||||||
@@ -177,6 +177,32 @@ public class ClientboundAddEntityPacket implements Packet<ClientGamePacketListen
|
@@ -178,6 +178,32 @@ public class ClientboundAddEntityPacket implements Packet<ClientGamePacketListen
|
||||||
return (float)(this.yHeadRot * 360) / 256.0F;
|
return (float)(this.yHeadRot * 360) / 256.0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerBlockDestroySpeedEvent
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
index 2034ca2edd3aff61d94416266e75402babd3e741..3809de95cab70dbbd5feffda64a5f14e209feff1 100644
|
index a768b07dae4bf75b68e3bc1d3de4b68fc7d23842..64282c8d6addff1cd29de01a3484a5325e66deb9 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
@@ -339,6 +339,14 @@ public abstract class BlockBehaviour implements FeatureElement {
|
@@ -338,6 +338,14 @@ public abstract class BlockBehaviour implements FeatureElement {
|
||||||
protected float getDestroyProgress(BlockState state, Player player, BlockGetter world, BlockPos pos) {
|
protected float getDestroyProgress(BlockState state, Player player, BlockGetter world, BlockPos pos) {
|
||||||
float f = state.getDestroySpeed(world, pos);
|
float f = state.getDestroySpeed(world, pos);
|
||||||
|
|
||||||
@@ -24,10 +24,10 @@ index 2034ca2edd3aff61d94416266e75402babd3e741..3809de95cab70dbbd5feffda64a5f14e
|
|||||||
return 0.0F;
|
return 0.0F;
|
||||||
} else {
|
} else {
|
||||||
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 dfbe0914ab2771ac632fd064719878ac47559e9f..0cba343989d6d33026a8e94f2b58ca93571721a9 100644
|
index bd6fee3e3ad9116802ff8bb57bfa741b881c4057..7e563a5288a8280c66dd9b245a587c5f26db1569 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
|
||||||
@@ -2196,4 +2196,13 @@ public class CraftEventFactory {
|
@@ -2204,4 +2204,13 @@ public class CraftEventFactory {
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
// Paper end - add EntityFertilizeEggEvent
|
// Paper end - add EntityFertilizeEggEvent
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ Subject: [PATCH] SPARKLYPOWER Remap SparklyPower hacky legacy NBT tags
|
|||||||
This is only useful for us in SparklyPower, but yeah...
|
This is only useful for us in SparklyPower, but yeah...
|
||||||
|
|
||||||
diff --git a/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java b/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
diff --git a/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java b/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
||||||
index a5a21d1c7579e45b78eae4b42a9f023db74acc0a..921947048648ff4555b80be4ef669a6dd53b12af 100644
|
index 2d29d89cc45866822189a62bffbe1a8fe57c477b..f54dd842ed40f2a2854c232b17009f932a1926a8 100644
|
||||||
--- a/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
--- a/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
||||||
+++ b/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
+++ b/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
||||||
@@ -9,6 +9,7 @@ import ca.spottedleaf.dataconverter.types.ObjectType;
|
@@ -9,6 +9,7 @@ import ca.spottedleaf.dataconverter.types.ObjectType;
|
||||||
@@ -17,7 +17,7 @@ index a5a21d1c7579e45b78eae4b42a9f023db74acc0a..921947048648ff4555b80be4ef669a6d
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -1220,6 +1221,7 @@ public final class ConverterItemStackToDataComponents {
|
@@ -1221,6 +1222,7 @@ public final class ConverterItemStackToDataComponents {
|
||||||
ret.setString("id", this.id);
|
ret.setString("id", this.id);
|
||||||
ret.setInt("count", this.count);
|
ret.setInt("count", this.count);
|
||||||
if (!this.tag.isEmpty()) {
|
if (!this.tag.isEmpty()) {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] SPARKLYPOWER Add custom blocks
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/Blocks.java b/src/main/java/net/minecraft/world/level/block/Blocks.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/Blocks.java b/src/main/java/net/minecraft/world/level/block/Blocks.java
|
||||||
index 260906f493416d98ab574a7262fce5e9b7e40c64..92b6f69e60bfafe5f325b9b16df0e56a73c52124 100644
|
index 223259e7a09ada681b6181c898f6857888594f85..ad5ad428b72f696a68a9ed1436bede7135c534e5 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/Blocks.java
|
--- a/src/main/java/net/minecraft/world/level/block/Blocks.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/Blocks.java
|
+++ b/src/main/java/net/minecraft/world/level/block/Blocks.java
|
||||||
@@ -42,9 +42,9 @@ import net.minecraft.world.level.material.PushReaction;
|
@@ -41,9 +41,9 @@ import net.minecraft.world.level.material.PushReaction;
|
||||||
|
|
||||||
public class Blocks {
|
public class Blocks {
|
||||||
private static final BlockBehaviour.StatePredicate NOT_CLOSED_SHULKER = (state, world, pos) -> !(
|
private static final BlockBehaviour.StatePredicate NOT_CLOSED_SHULKER = (state, world, pos) -> !(
|
||||||
@@ -21,8 +21,8 @@ index 260906f493416d98ab574a7262fce5e9b7e40c64..92b6f69e60bfafe5f325b9b16df0e56a
|
|||||||
public static final Block AIR = register("air", new AirBlock(BlockBehaviour.Properties.of().replaceable().noCollission().noLootTable().air()));
|
public static final Block AIR = register("air", new AirBlock(BlockBehaviour.Properties.of().replaceable().noCollission().noLootTable().air()));
|
||||||
public static final Block STONE = register(
|
public static final Block STONE = register(
|
||||||
"stone",
|
"stone",
|
||||||
@@ -7658,6 +7658,48 @@ public class Blocks {
|
@@ -7623,6 +7623,48 @@ public class Blocks {
|
||||||
.requiredFeatures(FeatureFlags.UPDATE_1_21)
|
.explosionResistance(1200.0F)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
+ // SparklyPaper start - SparklyPower Survival custom blocks
|
+ // SparklyPaper start - SparklyPower Survival custom blocks
|
||||||
@@ -71,13 +71,13 @@ index 260906f493416d98ab574a7262fce5e9b7e40c64..92b6f69e60bfafe5f325b9b16df0e56a
|
|||||||
private static ToIntFunction<BlockState> litBlockEmission(int litLevel) {
|
private static ToIntFunction<BlockState> litBlockEmission(int litLevel) {
|
||||||
return state -> state.getValue(BlockStateProperties.LIT) ? litLevel : 0;
|
return state -> state.getValue(BlockStateProperties.LIT) ? litLevel : 0;
|
||||||
diff --git a/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java b/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
diff --git a/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java b/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
||||||
index 2652359438399f2c3b1092f5dcb37a106ab22068..b5ae0f4f68fc2d90043cbbe092310bd6eb8e004d 100644
|
index ef3c97ea99ddf20e9219999927ae80a31dffa7a5..f2f73dd240a703e19e502178f901c61de269ff1b 100644
|
||||||
--- a/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
--- a/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
||||||
+++ b/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
+++ b/src/test/java/org/bukkit/craftbukkit/legacy/LegacyTest.java
|
||||||
@@ -123,7 +123,9 @@ public class LegacyTest extends AbstractTestingBase {
|
@@ -125,7 +125,9 @@ public class LegacyTest extends AbstractTestingBase {
|
||||||
// 1.20.5
|
|
||||||
Material.ARMADILLO_SCUTE, Material.ARMADILLO_SPAWN_EGG, Material.BOGGED_SPAWN_EGG, Material.WIND_CHARGE, Material.WOLF_ARMOR, Material.VAULT, Material.HEAVY_CORE, Material.MACE, Material.FLOW_BANNER_PATTERN, Material.GUSTER_BANNER_PATTERN,
|
|
||||||
Material.FLOW_ARMOR_TRIM_SMITHING_TEMPLATE, Material.BOLT_ARMOR_TRIM_SMITHING_TEMPLATE, Material.FLOW_POTTERY_SHERD, Material.GUSTER_POTTERY_SHERD, Material.SCRAPE_POTTERY_SHERD, Material.BREEZE_ROD, Material.OMINOUS_TRIAL_KEY, Material.OMINOUS_BOTTLE,
|
Material.FLOW_ARMOR_TRIM_SMITHING_TEMPLATE, Material.BOLT_ARMOR_TRIM_SMITHING_TEMPLATE, Material.FLOW_POTTERY_SHERD, Material.GUSTER_POTTERY_SHERD, Material.SCRAPE_POTTERY_SHERD, Material.BREEZE_ROD, Material.OMINOUS_TRIAL_KEY, Material.OMINOUS_BOTTLE,
|
||||||
|
// 1.21
|
||||||
|
Material.MUSIC_DISC_CREATOR, Material.MUSIC_DISC_CREATOR_MUSIC_BOX, Material.MUSIC_DISC_PRECIPICE,
|
||||||
- //
|
- //
|
||||||
+ // SparklyPaper start - custom blocks
|
+ // SparklyPaper start - custom blocks
|
||||||
+ Material.SPARKLYPOWER_RAINBOW_WOOL, Material.SPARKLYPOWER_RAINBOW_CONCRETE, Material.SPARKLYPOWER_RAINBOW_TERRACOTTA, Material.SPARKLYPOWER_ASPHALT_SERVER, Material.SPARKLYPOWER_ASPHALT_SERVER_SLAB, Material.SPARKLYPOWER_ASPHALT_PLAYER, Material.SPARKLYPOWER_ASPHALT_PLAYER_SLAB,
|
+ Material.SPARKLYPOWER_RAINBOW_WOOL, Material.SPARKLYPOWER_RAINBOW_CONCRETE, Material.SPARKLYPOWER_RAINBOW_TERRACOTTA, Material.SPARKLYPOWER_ASPHALT_SERVER, Material.SPARKLYPOWER_ASPHALT_SERVER_SLAB, Material.SPARKLYPOWER_ASPHALT_PLAYER, Material.SPARKLYPOWER_ASPHALT_PLAYER_SLAB,
|
||||||
@@ -10,6 +10,8 @@ So instead of paying the price on each tick, we pay the price when the chunk is
|
|||||||
|
|
||||||
Which, if you think about it, is actually better, since we tick chunks more than we load chunks
|
Which, if you think about it, is actually better, since we tick chunks more than we load chunks
|
||||||
|
|
||||||
|
UNAPPLIED REASON: Requires "Optimise-chunk-tick-iteration" patch
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java b/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java
|
diff --git a/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java b/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java
|
||||||
index f164256d59b761264876ca0c85f812d101bfd5de..10465a33d90a1e43b9dbd7764c895dd39ef11b1a 100644
|
index f164256d59b761264876ca0c85f812d101bfd5de..10465a33d90a1e43b9dbd7764c895dd39ef11b1a 100644
|
||||||
--- a/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java
|
--- a/src/main/java/io/papermc/paper/util/player/NearbyPlayers.java
|
||||||
Reference in New Issue
Block a user