9
0
mirror of https://github.com/Dreeam-qwq/Gale.git synced 2025-12-29 03:29:09 +00:00

Updated Upstream (Paper)

This commit is contained in:
Dreeam
2024-01-19 16:49:33 -05:00
parent d4340c647e
commit 469ba11801
56 changed files with 288 additions and 280 deletions

1
.gitignore vendored
View File

@@ -48,6 +48,7 @@ run/
gale-server
gale-api
paper-api-generator
!gradle/wrapper/gradle-wrapper.jar

View File

@@ -78,6 +78,13 @@ paperweight {
serverPatchDir.set(layout.projectDirectory.dir("patches/server"))
serverOutputDir.set(layout.projectDirectory.dir("gale-server")) // Gale - build changes
}
patchTasks.register("generatedApi") {
isBareDirectory = true
upstreamDirPath = "paper-api-generator/generated"
patchDir = layout.projectDirectory.dir("patches/generated-api")
outputDir = layout.projectDirectory.dir("paper-api-generator/generated")
}
}
}

View File

@@ -2,7 +2,7 @@ group=org.galemc.gale
version=1.20.4-R0.1-SNAPSHOT
mcVersion=1.20.4
paperRef=07b956e3a30d9cd192111829b59bdf4372f128b1
paperRef=1c956abfbc3eac650ff9df99cd5918a8afba331b
org.gradle.caching=true
org.gradle.parallel=true

View File

@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/build.gradle.kts b/build.gradle.kts
index 331aae3eb16403874890d539fc5093a00c4d73f0..4ed622fdcd1c87fb81e5671886406b55936835e9 100644
index 7d00abc41857d008c863f4350d97a0e018241690..3c30e911885dcbe5456614f2073ddbf2dc17040c 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -64,6 +64,16 @@ dependencies {
@@ -63,6 +63,16 @@ dependencies {
}
val craftbukkitPackageVersion = "1_20_R3" // Paper

View File

@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/build.gradle.kts b/build.gradle.kts
index 4ed622fdcd1c87fb81e5671886406b55936835e9..3dff67c980b06fa485ad1bcf9966bf32904be95c 100644
index 3c30e911885dcbe5456614f2073ddbf2dc17040c..d3f5a4a65adff2731618e38a6a4c94b4338763a5 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -194,6 +194,7 @@ fun TaskContainer.registerRunTask(
@@ -193,6 +193,7 @@ fun TaskContainer.registerRunTask(
val memoryGb = providers.gradleProperty("paper.runMemoryGb").getOrElse("2")
minHeapSize = "${memoryGb}G"
maxHeapSize = "${memoryGb}G"

View File

@@ -221,10 +221,10 @@ index 94a9ed024d3859793618152ea559a168bbcbb5e2..e60008693e017bec1b4eb49c84be3898
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+<https://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/build.gradle.kts b/build.gradle.kts
index 3dff67c980b06fa485ad1bcf9966bf32904be95c..7613c2789b3bf67a7da3806cfd04c918cba58344 100644
index d3f5a4a65adff2731618e38a6a4c94b4338763a5..be2cc4ff2109d6a8c04075bf645fa1fff3374799 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -86,7 +86,7 @@ tasks.jar {
@@ -85,7 +85,7 @@ tasks.jar {
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
@@ -233,7 +233,7 @@ index 3dff67c980b06fa485ad1bcf9966bf32904be95c..7613c2789b3bf67a7da3806cfd04c918
"Implementation-Vendor" to date, // Paper
"Specification-Title" to "Bukkit",
"Specification-Version" to project.version,
@@ -231,3 +231,22 @@ tasks.registerRunTask("runDev") {
@@ -230,3 +230,22 @@ tasks.registerRunTask("runDev") {
classpath(runtimeClasspathForRunDev)
jvmArgs("-DPaper.isRunDev=true")
}
@@ -427,7 +427,7 @@ index c5d5648f4ca603ef2b1df723b58f9caf4dd3c722..e45e6b44b2a8f2cdae6e0048a812b921
.completer(new ConsoleCommandCompleter(this.server))
.option(LineReader.Option.COMPLETE_IN_WORD, true);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..90a06994220979be88ce54c487809e1e7c1b5cdd 100644
index 712708f62fadb6698c4231f38deeb39bed91e529..bad84f8d6a9b4807af580efc3f082a6379962f9c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -954,7 +954,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -445,7 +445,7 @@ index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..90a06994220979be88ce54c487809e1e
while (this.getRunningThread().isAlive()) {
this.getRunningThread().stop();
try {
@@ -1866,7 +1872,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1852,7 +1858,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
@@ -455,7 +455,7 @@ index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..90a06994220979be88ce54c487809e1e
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 142d2c48239d4ebe3896218536656d116cd24d7c..b13c8d00dbb07674e46d4142605469661c17a2e1 100644
index eb617d659c701e512aac8a1ff822c147b69d3a3b..2e6206bc868480cb1866e77421374c0b632e8c1d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper

View File

@@ -188,7 +188,7 @@ index 8f23276796037d048eb114952891a01a40971b3e..ac9ceb54b894119cb30a22d37e035e2c
}
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 90a06994220979be88ce54c487809e1e7c1b5cdd..6bcfcc5bf869d63618b8df0d9382a0a37193fff1 100644
index bad84f8d6a9b4807af580efc3f082a6379962f9c..7adffbc9e737354a2644a12bc9b067e57bec756a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -3,9 +3,6 @@ package net.minecraft.server;
@@ -230,21 +230,21 @@ index 90a06994220979be88ce54c487809e1e7c1b5cdd..6bcfcc5bf869d63618b8df0d9382a0a3
@@ -306,6 +304,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public final double[] recentTps = new double[ 3 ];
// Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; // Paper - add paper configuration files
+ public final GaleConfigurations galeConfigurations; // Gale - Gale configuration
public static long currentTickLong = 0L; // Paper
public static long currentTickLong = 0L; // Paper - track current tick as a long
public volatile Thread shutdownThread; // Paper
@@ -414,6 +413,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
Runtime.getRuntime().addShutdownHook(new org.bukkit.craftbukkit.util.ServerShutdownThread(this));
// CraftBukkit end
this.paperConfigurations = services.paperConfigurations(); // Paper
this.paperConfigurations = services.paperConfigurations(); // Paper - add paper configuration files
+ this.galeConfigurations = services.galeConfigurations(); // Gale - Gale configuration
}
private void readScoreboard(DimensionDataStorage persistentStateManager) {
diff --git a/src/main/java/net/minecraft/server/Services.java b/src/main/java/net/minecraft/server/Services.java
index a5450eeeab5a6b0ab273810063806d11107d6b26..79e2eff81b267608253e820817862768693ea7ef 100644
index d89c624554ab08bd1b33a3f62b52aa57aaafb8b4..2f76d1be6b26e516d1ab13df8d05b1f54f1ff558 100644
--- a/src/main/java/net/minecraft/server/Services.java
+++ b/src/main/java/net/minecraft/server/Services.java
@@ -9,12 +9,13 @@ import java.io.File;
@@ -253,7 +253,7 @@ index a5450eeeab5a6b0ab273810063806d11107d6b26..79e2eff81b267608253e820817862768
import net.minecraft.util.SignatureValidator;
+import org.galemc.gale.configuration.GaleConfigurations;
// Paper start
// Paper start - add paper configuration files
-public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations) {
+public record Services(MinecraftSessionService sessionService, ServicesKeySet servicesKeySet, GameProfileRepository profileRepository, GameProfileCache profileCache, @javax.annotation.Nullable io.papermc.paper.configuration.PaperConfigurations paperConfigurations, @javax.annotation.Nullable GaleConfigurations galeConfigurations) { // Gale - Gale configuration
@@ -266,7 +266,7 @@ index a5450eeeab5a6b0ab273810063806d11107d6b26..79e2eff81b267608253e820817862768
@@ -22,6 +23,11 @@ public record Services(MinecraftSessionService sessionService, ServicesKeySet se
return java.util.Objects.requireNonNull(this.paperConfigurations);
}
// Paper end
// Paper end - add paper configuration files
+ // Gale start - Gale configuration
+ public GaleConfigurations galeConfigurations() {
+ return java.util.Objects.requireNonNull(this.galeConfigurations);
@@ -274,7 +274,7 @@ index a5450eeeab5a6b0ab273810063806d11107d6b26..79e2eff81b267608253e820817862768
+ // Gale end - Gale configuration
public static final String USERID_CACHE_FILE = "usercache.json"; // Paper - private -> public
public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, File userCacheFile, joptsimple.OptionSet optionSet) throws Exception { // Paper
public static Services create(YggdrasilAuthenticationService authenticationService, File rootDirectory, File userCacheFile, joptsimple.OptionSet optionSet) throws Exception { // Paper - add optionset to load paper config files; add userCacheFile parameter
@@ -32,7 +38,10 @@ public record Services(MinecraftSessionService sessionService, ServicesKeySet se
final java.nio.file.Path legacyConfigPath = ((File) optionSet.valueOf("paper-settings")).toPath();
final java.nio.file.Path configDirPath = ((File) optionSet.valueOf("paper-settings-directory")).toPath();
@@ -284,11 +284,11 @@ index a5450eeeab5a6b0ab273810063806d11107d6b26..79e2eff81b267608253e820817862768
+ GaleConfigurations galeConfigurations = GaleConfigurations.setup(configDirPath);
+ return new Services(minecraftSessionService, authenticationService.getServicesKeySet(), gameProfileRepository, gameProfileCache, paperConfigurations, galeConfigurations);
+ // Gale end - Gale configuration
// Paper end
// Paper end - load paper config files from cli options
}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 58536aabf607015939a1326f80207c0a06eed8ff..0ce390a0ffb021f58dd763e44ebe9dabf62472bc 100644
index 00c47942a3690df565bd0ea76b8abbf2dc50c4e2..bb6246da25e756348d2dc0152d487f99054b5203 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -1,20 +1,15 @@
@@ -313,19 +313,19 @@ index 58536aabf607015939a1326f80207c0a06eed8ff..0ce390a0ffb021f58dd763e44ebe9dab
import java.util.Locale;
import java.util.Optional;
import java.util.function.BooleanSupplier;
@@ -208,6 +203,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // Paper - load mappings for stacktrace deobf and etc.
paperConfigurations.initializeGlobalConfiguration(this.registryAccess());
paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess());
@@ -209,6 +204,10 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess());
this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess());
// Paper end - initialize global and world-defaults configuration
+ // Gale start - Gale configuration
+ galeConfigurations.initializeGlobalConfiguration(this.registryAccess());
+ galeConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess());
+ // Gale end - Gale configuration
// Paper start - moved up to right after PlayerList creation but before file load/save
// Paper start - convert old users earlier after PlayerList creation but before file load/save
if (this.convertOldUsers()) {
this.getProfileCache().save(false); // Paper
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 7c31f619a6e8e3539c547fc43d821d2cce7df7e7..516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1 100644
index 9b0b2510edb4984b0714244bbe513e077af7b455..ab0ab5574dc3a19b133262b9c17d62a36df15566 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -134,12 +134,10 @@ import net.minecraft.world.level.chunk.storage.EntityStorage;
@@ -341,17 +341,17 @@ index 7c31f619a6e8e3539c547fc43d821d2cce7df7e7..516aaf7a9e77bcbb40124acb3f5ffadf
import net.minecraft.world.level.gameevent.DynamicGameEventListener;
import net.minecraft.world.level.gameevent.GameEvent;
import net.minecraft.world.level.gameevent.GameEventDispatcher;
@@ -698,7 +696,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -697,7 +695,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Holder holder = worlddimension.type(); // CraftBukkit - decompile error
// Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error
- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor
+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration
- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - create paper world configs; Async-Anti-Xray: Pass executor
+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - create paper world configs; Async-Anti-Xray: Pass executor // Gale - Gale configuration
this.pvpMode = minecraftserver.isPvpAllowed();
this.convertable = convertable_conversionsession;
this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile());
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 6403341f2e9d7ac4251336cb0bcc5d79dbb7bb0e..5dc2e7c5087dc29fd2726053f5561409c9e05163 100644
index dce7be16854faa3e297815e794cae6b0bd42bd4f..6a9ffef1b09b70e460fbd3aa90e34104057c0007 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1,10 +1,7 @@
@@ -404,7 +404,7 @@ index 6403341f2e9d7ac4251336cb0bcc5d79dbb7bb0e..5dc2e7c5087dc29fd2726053f5561409
@@ -177,6 +169,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return this.paperConfig;
}
// Paper end
// Paper end - add paper world config
+ // Gale start - Gale configuration
+ private final GaleWorldConfiguration galeConfig;
+ public GaleWorldConfiguration galeConfig() {
@@ -418,16 +418,16 @@ index 6403341f2e9d7ac4251336cb0bcc5d79dbb7bb0e..5dc2e7c5087dc29fd2726053f5561409
public abstract ResourceKey<LevelStem> getTypeKey();
- 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 - 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.function.Function<org.spigotmc.SpigotWorldConfig, GaleWorldConfiguration> galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration
- 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.function.Function<org.spigotmc.SpigotWorldConfig, GaleWorldConfiguration> galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor // Gale - Gale configuration
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
+ this.galeConfig = galeWorldConfigCreator.apply(this.spigotConfig); // Gale - Gale configuration
this.generator = gen;
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index b13c8d00dbb07674e46d4142605469661c17a2e1..6c453bbb929007d9bcd041f856eb65d409bac32a 100644
index 2e6206bc868480cb1866e77421374c0b632e8c1d..8f234dfe047fe8f93f160c1b794b88b3357e1d93 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1037,6 +1037,7 @@ public final class CraftServer implements Server {
@@ -438,7 +438,7 @@ index b13c8d00dbb07674e46d4142605469661c17a2e1..6c453bbb929007d9bcd041f856eb65d4
for (ServerLevel world : this.console.getAllLevels()) {
// 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))
@@ -3011,6 +3012,14 @@ public final class CraftServer implements Server {
@@ -3010,6 +3011,14 @@ public final class CraftServer implements Server {
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
}

View File

@@ -13,7 +13,7 @@ As part of: Paper (https://github.com/PaperMC/Paper)
Licensed under: MIT (https://opensource.org/licenses/MIT)
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index a250a1a4e68eb5971cc09b6b2cf2d0576cb7ba64..5ae5eba9b42b3a5adbad4896e692be0b7338ebaa 100644
index bb6246da25e756348d2dc0152d487f99054b5203..6fd999a40643cd3068cfdd80347d2cc117a409db 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -45,6 +45,7 @@ import net.minecraft.world.level.GameRules;
@@ -24,14 +24,14 @@ index a250a1a4e68eb5971cc09b6b2cf2d0576cb7ba64..5ae5eba9b42b3a5adbad4896e692be0b
import org.slf4j.Logger;
// CraftBukkit start
@@ -216,6 +217,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash);
thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized
io.papermc.paper.command.PaperCommands.registerCommands(this);
@@ -217,6 +218,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); // Paper - start watchdog thread
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
+ GaleCommands.registerCommands(this); // Gale - Gale commands - register commands
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics();
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider
diff --git a/src/main/java/org/galemc/gale/command/GaleCommand.java b/src/main/java/org/galemc/gale/command/GaleCommand.java
new file mode 100644
index 0000000000000000000000000000000000000000..87d3aed35341dfa9358af064dd54d7de95078269

View File

@@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index c737c5d62407337d3db2899cfc01713a058a6467..e8f4e3620062a507f00c2b76a934ec48b0d5d89e 100644
index 16e73128115ef92adefbd7818fef3a4b9bcebad2..f0953c110177a3000d857dea49cc1a4b88db1c2f 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -2,6 +2,7 @@ package org.bukkit.craftbukkit;
@@ -20,7 +20,7 @@ index c737c5d62407337d3db2899cfc01713a058a6467..e8f4e3620062a507f00c2b76a934ec48
import java.util.Calendar;
@@ -24,6 +25,26 @@ public class Main {
}
// Paper end
// Paper end - Reset loggers after shutdown
+ // Gale start - include time in startup logs
+ private static final DateFormat startupDateFormat = new SimpleDateFormat("hh:mm:ss");

View File

@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6bcfcc5bf869d63618b8df0d9382a0a37193fff1..fea67d65f4eed87d26086294b198f21bee4491df 100644
index 7adffbc9e737354a2644a12bc9b067e57bec756a..d57a3967f29f795cc6e1ee137d06c32e7833f31c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1507,7 +1507,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1501,7 +1501,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -19,7 +19,7 @@ index 6bcfcc5bf869d63618b8df0d9382a0a37193fff1..fea67d65f4eed87d26086294b198f21b
long i = Util.getNanos();
// Paper start - move oversleep into full server tick
@@ -1579,7 +1579,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1573,7 +1573,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.logTickTime(l - i);
this.profiler.pop();
org.spigotmc.WatchdogThread.tick(); // Spigot

View File

@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 8fe48c6bf65db6b11fcd0674aad01d5bb8d17a5f..9d25fcd598517871eb260dff3d208e3b4ec33251 100644
index c1907c3095f095be0ee08681f5aed587c962328c..35c06a2b3f02e9d765e6336a05c059e75253a3fb 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -54,7 +54,6 @@ import net.minecraft.server.commands.CloneCommands;
@@ -167,7 +167,7 @@ index 821dc4aeaf48460000682604fba51b340b9738e7..4f4540ed9b3e603eec0d46fb5b58de24
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e63283947179b 100644
index d57a3967f29f795cc6e1ee137d06c32e7833f31c..36fc043b282f64f329e5fcf00c81f5d9f2412ece 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -106,18 +106,9 @@ import net.minecraft.util.RandomSource;
@@ -258,7 +258,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
this.isReady = true;
JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis);
}
@@ -1460,7 +1423,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1454,7 +1417,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void doRunTask(TickTask ticktask) { // CraftBukkit - decompile error
@@ -266,7 +266,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
super.doRunTask(ticktask);
}
@@ -1533,7 +1495,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1527,7 +1489,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
if (playerSaveInterval < 0) {
playerSaveInterval = autosavePeriod;
}
@@ -274,7 +274,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0;
try {
this.isSaving = true;
@@ -1548,7 +1509,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1542,7 +1503,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} finally {
this.isSaving = false;
}
@@ -282,7 +282,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
// Paper end
io.papermc.paper.util.CachedLists.reset(); // Paper
// Paper start - move executeAll() into full server tick timing
@@ -1561,7 +1521,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1555,7 +1515,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent();
// Paper end
@@ -290,7 +290,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
long j = Util.getNanos() - i;
int k = this.tickCount % 100;
@@ -1577,7 +1536,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1571,7 +1530,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
tickTimes60s.add(this.tickCount, j);
// Paper end
this.logTickTime(l - i);
@@ -298,7 +298,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
org.spigotmc.WatchdogThread.tick(); // Spigot
co.aikar.timings.TimingsManager.FULL_SERVER_TICK.stopTimingFullServerTick(); // Paper // Gale - final timings calls
}
@@ -1659,11 +1617,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1653,11 +1611,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
});
// Paper end - Folia scheduler API
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
@@ -307,11 +307,11 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
this.getFunctions().tick();
MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot // Paper
- this.profiler.popPush("levels");
//Iterator iterator = this.getAllLevels().iterator(); // Paper - moved down
//Iterator iterator = this.getAllLevels().iterator(); // Paper - Throw exception on world create while being ticked; moved down
// CraftBukkit start
@@ -1705,19 +1661,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper
@@ -1699,19 +1655,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
- this.profiler.push(() -> {
@@ -330,7 +330,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
try {
worldserver.timings.doTick.startTiming(); // Spigot
worldserver.tick(shouldKeepTicking);
@@ -1742,17 +1691,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1728,17 +1677,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
throw new ReportedException(crashreport);
}
@@ -338,7 +338,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
- this.profiler.pop();
worldserver.explosionDensityCache.clear(); // Paper - Optimize explosions
}
this.isIteratingOverLevels = false; // Paper
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
- this.profiler.popPush("connection");
MinecraftTimings.connectionTimer.startTiming(); // Spigot // Paper
@@ -348,7 +348,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
MinecraftTimings.playerListTimer.startTiming(); // Spigot // Paper
this.playerList.tick();
MinecraftTimings.playerListTimer.stopTiming(); // Spigot // Paper
@@ -1760,15 +1705,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1746,15 +1691,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
GameTestTicker.SINGLETON.tick();
}
@@ -364,7 +364,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
iterator = this.playerList.getPlayers().iterator();
while (iterator.hasNext()) {
@@ -1778,7 +1720,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1764,7 +1706,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
entityplayer.connection.resumeFlushing();
}
@@ -372,7 +372,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
}
private void synchronizeTime(ServerLevel world) {
@@ -1786,7 +1727,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1772,7 +1713,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void forceTimeSynchronization() {
@@ -380,7 +380,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
Iterator iterator = this.getAllLevels().iterator();
while (iterator.hasNext()) {
@@ -1794,8 +1734,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1780,8 +1720,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.synchronizeTime(worldserver);
}
@@ -389,7 +389,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
}
public boolean isNetherEnabled() {
@@ -2459,7 +2397,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2445,7 +2383,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public ProfilerFiller getProfiler() {
@@ -398,7 +398,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
}
public abstract boolean isSingleplayerOwner(GameProfile profile);
@@ -2697,53 +2635,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2683,53 +2621,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// CraftBukkit end
@@ -452,7 +452,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
public Path getWorldPath(LevelResource worldSavePath) {
return this.storageSource.getLevelPath(worldSavePath);
}
@@ -2789,25 +2680,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2775,25 +2666,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return this.isSaving;
}
@@ -478,7 +478,7 @@ index fea67d65f4eed87d26086294b198f21bee4491df..557bfd1405603d1cd7e5210e406e6328
public int getMaxChainedNeighborUpdates() {
return 1000000;
}
@@ -2848,56 +2720,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2834,56 +2706,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
@@ -599,7 +599,7 @@ index df0c15f6b5b2224d53e4f8fad42b9a1e5f33dc25..caa6dcfec13728863dcf21f9f778665b
}
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index ecb09c74153349e78bb81d1188c282e4be4000bf..57bdaf48e7f1edc387d0ebbaada7b9643c2e8410 100644
index 2458bc75ece2d5eadc49df0f1c94702bd20e779f..4303f27c3fa59b9aacf955865885fcf1c3caea3e 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -68,7 +68,6 @@ import net.minecraft.server.level.progress.ChunkProgressListener;
@@ -756,7 +756,7 @@ index 44ada45d9bf2d9b48e5de1c3cb1a855902f3884b..7bde3392d46fb1be3d04db97a5ec02ec
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad10096c171 100644
index ab0ab5574dc3a19b133262b9c17d62a36df15566..a692573423348db7a48e5cc79e1bcc469d8e21aa 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -78,7 +78,6 @@ import net.minecraft.util.Mth;
@@ -767,12 +767,12 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
import net.minecraft.util.valueproviders.IntProvider;
import net.minecraft.util.valueproviders.UniformInt;
import net.minecraft.world.DifficultyInstance;
@@ -696,15 +695,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -695,15 +694,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Holder holder = worlddimension.type(); // CraftBukkit - decompile error
// Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error
- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration
+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler
- super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), minecraftserver::getProfiler, false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - create paper world configs; Async-Anti-Xray: Pass executor // Gale - Gale configuration
+ super(iworlddataserver, resourcekey, minecraftserver.registryAccess(), worlddimension.type(), false, flag, i, minecraftserver.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> minecraftserver.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), spigotConfig -> minecraftserver.galeConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(convertable_conversionsession.levelDirectory.path(), iworlddataserver.getLevelName(), resourcekey.location(), spigotConfig, minecraftserver.registryAccess())), executor); // Paper - create paper world configs; Async-Anti-Xray: Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler
this.pvpMode = minecraftserver.isPvpAllowed();
this.convertable = convertable_conversionsession;
this.uuid = WorldUUID.getUUID(convertable_conversionsession.levelDirectory.path().toFile());
@@ -788,7 +788,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
this.navigatingMobs = new ObjectOpenHashSet();
this.blockEvents = new ObjectLinkedOpenHashSet();
this.blockEventsToReschedule = new ArrayList(64);
@@ -807,16 +808,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -806,16 +807,12 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
public void tick(BooleanSupplier shouldKeepTicking) {
@@ -805,7 +805,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
this.advanceWeatherCycle();
}
@@ -848,30 +845,23 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -847,30 +844,23 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.tickTime();
}
@@ -836,7 +836,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
if (flag) {
this.timings.doSounds.startTiming(); // Spigot
this.runBlockEvents();
@@ -879,7 +869,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -878,7 +868,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
this.handlingTick = false;
@@ -844,7 +844,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
boolean flag1 = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
if (flag1) {
@@ -887,12 +876,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -886,12 +875,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
if (flag1 || this.emptyTime++ < 300) {
@@ -857,7 +857,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
}
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
@@ -902,9 +888,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -901,9 +887,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
entity.discard();
} else if (!tickratemanager.isEntityFrozen(entity)) {
@@ -867,7 +867,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
if (true || this.chunkSource.chunkMap.getDistanceManager().inEntityTickingRange(entity.chunkPosition().toLong())) { // Paper - now always true if in the ticking list
Entity entity1 = entity.getVehicle();
@@ -916,22 +900,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -915,22 +899,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.stopRiding();
}
@@ -890,7 +890,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
}
@Override
@@ -990,9 +969,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -989,9 +968,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag = this.isRaining();
int j = chunkcoordintpair.getMinBlockX();
int k = chunkcoordintpair.getMinBlockZ();
@@ -900,7 +900,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
if (!this.paperConfig().environment.disableThunder && flag && this.isThundering() && this.spigotConfig.thunderChance > 0 && this.random.nextInt(this.spigotConfig.thunderChance) == 0) { // Spigot // Paper - disable thunder
@@ -1023,8 +999,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1022,8 +998,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
@@ -909,7 +909,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
if (!this.paperConfig().environment.disableIceAndSnow) { // Paper
for (int l = 0; l < randomTickSpeed; ++l) {
if (this.random.nextInt(48) == 0) {
@@ -1036,7 +1010,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1035,7 +1009,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
} // Paper
@@ -917,7 +917,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
timings.chunkTicksBlocks.startTiming(); // Paper
if (randomTickSpeed > 0) {
// Paper start - optimize random block ticking
@@ -1072,7 +1045,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1071,7 +1044,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end - optimise random block ticking
timings.chunkTicksBlocks.stopTiming(); // Paper
@@ -925,7 +925,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
}
@VisibleForTesting
@@ -1401,19 +1373,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1400,19 +1372,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
try {
// Paper end - timings
entity.setOldPosAndRot();
@@ -945,7 +945,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
} finally { timer.stopTiming(); } // Paper - timings
Iterator iterator = entity.getPassengers().iterator();
@@ -1442,12 +1408,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1441,12 +1407,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Paper end
passenger.setOldPosAndRot();
++passenger.tickCount;
@@ -958,7 +958,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
// Paper start - EAR 2
if (isActive) {
passenger.rideTick();
@@ -1459,7 +1419,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1458,7 +1418,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
vehicle.positionRider(passenger);
}
// Paper end - EAR 2
@@ -967,7 +967,7 @@ index 516aaf7a9e77bcbb40124acb3f5ffadfa439d1f1..7dcf7fa990640ef4e7c0260597d54ad1
while (iterator.hasNext()) {
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index be05a52be037042c6158100e2ce880b8ed415d53..fe1a1947da61170c0920e67b103c5c78f4c5cfcb 100644
index 6872e223ff4b450af89a838f4caf7cf2ebcb818e..3e8e5fe6a67af911847e7f4c3e2874a340d39016 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1213,7 +1213,6 @@ public class ServerPlayer extends Player {
@@ -996,7 +996,7 @@ index be05a52be037042c6158100e2ce880b8ed415d53..fe1a1947da61170c0920e67b103c5c78
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
playerlist.sendLevelInfo(this, worldserver);
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index d28d0ef6105ddeb562ddf31ae9088739856941fc..9e014a140262f5dfcdcb9b21afd18ca275930bb2 100644
index 134a84841a1e05b212794c00477f20eb30e53ec5..6ddb0abcc89af93e4cff5b0e461bc8490aacbbc3 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -203,7 +203,6 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
@@ -1096,18 +1096,18 @@ index 7ab57748b2f2aea1003d9b7e70e76c372aa1e432..47e75ec4a01f8a456ec6ebc13031c1f0
}
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 1be10c57e374ad4018c08d96cfb69397a2f541d3..ea5a63944c09a91f549099fa04f063f812af6459 100644
index 8814ffc0f3ebe352cd72f50d9f68704e4ee0e88c..d1bdfda6f24d6c9a103e20eb36e6ca3ff6466b6c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -819,7 +819,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -821,7 +821,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// CraftBukkit end
public void baseTick() {
- this.level().getProfiler().push("entityBaseTick");
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Update last hurt when ticking
if (firstTick && this instanceof net.minecraft.world.entity.NeutralMob neutralMob) neutralMob.tickInitialPersistentAnger(level); // Paper - Prevent entity loading causing async lookups
this.feetBlockState = null;
if (this.isPassenger() && this.getVehicle().isRemoved()) {
@@ -880,7 +879,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -882,7 +881,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
this.firstTick = false;
@@ -1115,7 +1115,7 @@ index 1be10c57e374ad4018c08d96cfb69397a2f541d3..ea5a63944c09a91f549099fa04f063f8
}
public void setSharedFlagOnFire(boolean onFire) {
@@ -1099,7 +1097,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1101,7 +1099,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
}
@@ -1123,7 +1123,7 @@ index 1be10c57e374ad4018c08d96cfb69397a2f541d3..ea5a63944c09a91f549099fa04f063f8
if (this.stuckSpeedMultiplier.lengthSqr() > 1.0E-7D) {
movement = movement.multiply(this.stuckSpeedMultiplier);
this.stuckSpeedMultiplier = Vec3.ZERO;
@@ -1108,7 +1105,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1110,7 +1107,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// Paper start - ignore movement changes while inactive.
if (isTemporarilyActive && !(this instanceof ItemEntity || this instanceof net.minecraft.world.entity.vehicle.AbstractMinecart) && movement == getDeltaMovement() && movementType == MoverType.SELF) {
setDeltaMovement(Vec3.ZERO);
@@ -1131,7 +1131,7 @@ index 1be10c57e374ad4018c08d96cfb69397a2f541d3..ea5a63944c09a91f549099fa04f063f8
return;
}
// Paper end
@@ -1129,8 +1125,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1131,8 +1127,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z);
}
@@ -1140,7 +1140,7 @@ index 1be10c57e374ad4018c08d96cfb69397a2f541d3..ea5a63944c09a91f549099fa04f063f8
boolean flag = !Mth.equal(movement.x, vec3d1.x);
boolean flag1 = !Mth.equal(movement.z, vec3d1.z);
@@ -1148,9 +1142,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1150,9 +1144,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
BlockState iblockdata = this.level().getBlockState(blockposition);
this.checkFallDamage(vec3d1.y, this.onGround(), iblockdata, blockposition);
@@ -1151,7 +1151,7 @@ index 1be10c57e374ad4018c08d96cfb69397a2f541d3..ea5a63944c09a91f549099fa04f063f8
if (this.horizontalCollision) {
Vec3 vec3d2 = this.getDeltaMovement();
@@ -1286,8 +1278,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1288,8 +1280,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
if (this.isOnFire() && (this.isInPowderSnow || this.isInWaterRainOrBubble())) {
this.setRemainingFireTicks(-this.getFireImmuneTicks());
}
@@ -1166,11 +1166,11 @@ index 1be10c57e374ad4018c08d96cfb69397a2f541d3..ea5a63944c09a91f549099fa04f063f8
if (true && !this.isPassenger() && this.portalTime++ >= i) { // CraftBukkit
- this.level().getProfiler().push("portal");
this.portalTime = i;
// Paper start
// Paper start - Add EntityPortalReadyEvent
io.papermc.paper.event.entity.EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), worldserver1 == null ? null : worldserver1.getWorld(), org.bukkit.PortalType.NETHER);
@@ -3160,7 +3149,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
} // Paper
} // Paper - Add EntityPortalReadyEvent
// CraftBukkit end
- this.level().getProfiler().pop();
}
@@ -1211,7 +1211,7 @@ index 1be10c57e374ad4018c08d96cfb69397a2f541d3..ea5a63944c09a91f549099fa04f063f8
}
} else {
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index bc908b75cb99536df658281ae7f8b4eeedbbedc9..c4c7970e3dce12985c401d23d288bd8d9bca6913 100644
index 353f8598ae940b15a71e71d7c6b80f9d063decb6..d8c899566533dda4cf5e700769c842f93e5c0b49 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -404,7 +404,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1230,7 +1230,7 @@ index bc908b75cb99536df658281ae7f8b4eeedbbedc9..c4c7970e3dce12985c401d23d288bd8d
}
public boolean canSpawnSoulSpeedParticle() {
@@ -3074,10 +3072,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3075,10 +3073,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.run += (f3 - this.run) * 0.3F;
@@ -1241,7 +1241,7 @@ index bc908b75cb99536df658281ae7f8b4eeedbbedc9..c4c7970e3dce12985c401d23d288bd8d
// Paper start - stop large pitch and yaw changes from crashing the server
this.yRotO += Math.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F;
@@ -3089,7 +3084,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3090,7 +3085,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F;
// Paper end
@@ -1249,7 +1249,7 @@ index bc908b75cb99536df658281ae7f8b4eeedbbedc9..c4c7970e3dce12985c401d23d288bd8d
this.animStep += f2;
if (this.isFallFlying()) {
++this.fallFlyTicks;
@@ -3384,19 +3378,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3385,19 +3379,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
this.setDeltaMovement(d0, d1, d2);
@@ -1269,7 +1269,7 @@ index bc908b75cb99536df658281ae7f8b4eeedbbedc9..c4c7970e3dce12985c401d23d288bd8d
if (this.jumping && this.isAffectedByFluids()) {
double d3;
@@ -3423,8 +3412,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3424,8 +3413,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.noJumpDelay = 0;
}
@@ -1278,7 +1278,7 @@ index bc908b75cb99536df658281ae7f8b4eeedbbedc9..c4c7970e3dce12985c401d23d288bd8d
this.xxa *= 0.98F;
this.zza *= 0.98F;
this.updateFallFlying();
@@ -3451,8 +3438,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3452,8 +3439,6 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.travel(vec3d1);
}
@@ -1287,7 +1287,7 @@ index bc908b75cb99536df658281ae7f8b4eeedbbedc9..c4c7970e3dce12985c401d23d288bd8d
if (!this.level().isClientSide && !this.isDeadOrDying() && !this.freezeLocked) { // Paper - Freeze Tick Lock API
int i = this.getTicksFrozen();
@@ -3469,15 +3454,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3470,15 +3455,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.hurt(this.damageSources().freeze(), 1.0F);
}
@@ -1304,7 +1304,7 @@ index bc908b75cb99536df658281ae7f8b4eeedbbedc9..c4c7970e3dce12985c401d23d288bd8d
if (((ServerLevel) this.level()).hasEntityMoveEvent && !(this instanceof net.minecraft.world.entity.player.Player)) {
if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index a7fbd329ea6d36a46c00b4476c74e426dbbfe238..1cdacd42ea421833caef345a05fb53a8d93aec36 100644
index 0b5334004b9d0489e8465824870662b467ce321b..3bf473e2904b4279b1bc14a0fa75ffe25189d1d2 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -146,8 +146,10 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -1518,7 +1518,7 @@ index 5ad5f22e5aa26445e5eb229958e7bf356bdd460e..26731a659fe3c40fc20135d473bacf10
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 387006271c246362b0df1bfcadca7b7096660003..91bde1774cc9e7a323ffd2c943b6656101b232a1 100644
index b21e180641d17438997a80e5bcb0ec7998d24a2e..207d41b91bc02d94c5b40799619f7314ef84e41d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -277,12 +277,8 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -1535,7 +1535,7 @@ index 387006271c246362b0df1bfcadca7b7096660003..91bde1774cc9e7a323ffd2c943b66561
Optional<Integer> optional = this.getBrain().getMemory(MemoryModuleType.PLAY_DEAD_TICKS);
diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
index 7dee2d1c4ce038f42334120f5dedb836f4e21723..9d147f34a7aba21a141fff4ccf1a079ed9f4881b 100644
index f693d4d6a6a3c3d31c2d85ceb5b5b01366c970a1..e6fa217b0b7552dc37cc6879b2d6594b2258bc89 100644
--- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java
@@ -147,13 +147,9 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
@@ -1587,7 +1587,7 @@ index 4aeab90e778629c355189dfe79c39c4b21f5f5ac..0f3a11203dd0353d74626a273e900313
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index 111a244087e24f25ba8524a46a228da10cd9498a..4df3f237e4b3bc27e1be66d1e593d4f619873c7e 100644
index 5d247ac38fe8a61603b3d934f3000bcda773142b..c6ff7c756aff281e7de094c05749740370988fe5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -193,12 +193,8 @@ public class Goat extends Animal {
@@ -1604,7 +1604,7 @@ index 111a244087e24f25ba8524a46a228da10cd9498a..4df3f237e4b3bc27e1be66d1e593d4f6
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 47a5125e44cea1ece84657cdb874807f13ee824f..52cb7dae46a86e4c9705677a7c602f8ba78390a0 100644
index 0a5b953bd8c0c7f181da4090b950e9e6524b6d61..817f269d28305ae2d08b3f680d06af74a232e1f1 100644
--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -490,11 +490,8 @@ public class Sniffer extends Animal {
@@ -1649,7 +1649,7 @@ index 1268ce642a79495450845734085f281589415fef..9672afb372e3b376d46864fed5bc8af1
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 4257f2282152aee09533c9a2e53018d3e49effa4..024e2da8673a837a1185351bb211414e19a7f393 100644
index 01a2016ac82807d28ffe407b7dbb74bdbcde503e..c97a3c7060b846aa92a730760e3428ba98919879 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -130,9 +130,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1663,7 +1663,7 @@ index 4257f2282152aee09533c9a2e53018d3e49effa4..024e2da8673a837a1185351bb211414e
if (this.isConverting()) {
++this.timeInOverworld;
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index 6407ddef8442fce4f310ac4babf3e3de0dd5fc9a..57d7873290fc361d8c5c094e166416772fe11cbe 100644
index a9813da7f2b248f98f22e0ad2e7842915025ec12..104f3ed9230f6397bfe306b7fbfb9893b7c8e94d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -302,9 +302,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1691,7 +1691,7 @@ index 5d1a30e09870a5a535c71a2e44b8e6933de0c1e8..5aab051998b67b7ba95cbf568de60e32
PiglinBruteAi.maybePlayActivitySound(this);
super.customServerAiStep();
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
index 9f1b7c629644931074293151ed58a523ca6d488c..206701dd16f0e5850bc2384388a0a3a746a1b74e 100644
index 937f81a859953498abe73bea560c86e6560e1c33..b73bccfcb1b94936f500926a06a28a6a134bbc33 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -277,9 +277,7 @@ public class Warden extends Monster implements VibrationSystem {
@@ -1705,7 +1705,7 @@ index 9f1b7c629644931074293151ed58a523ca6d488c..206701dd16f0e5850bc2384388a0a3a7
if ((this.tickCount + this.getId()) % 120 == 0) {
Warden.applyDarknessAround(worldserver, this.position(), this, 20);
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 11935e5b16324af572b07c5b173708f5a91f8289..e02560e9d4c3a1503862e357fe501b05103052b9 100644
index e12f1f11386fa723f62b51ed0cc5715c1812d2bf..3bbba098ebaae7ed0178020ea35a04752d9d4daa 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -253,9 +253,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1719,7 +1719,7 @@ index 11935e5b16324af572b07c5b173708f5a91f8289..e02560e9d4c3a1503862e357fe501b05
this.assignProfessionWhenSpawned = false;
}
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 9442f58dff89ec843c321533965fbee2727d02f8..3fde433edfd8835bf162cf39dd9999aa6dc5832d 100644
index 210b6d71207b99e66ba014b176b2c1445053b1d1..ce8e39d4bf4c7474e1e8694312e1985327a88e62 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -659,7 +659,6 @@ public class Explosion {
@@ -1739,7 +1739,7 @@ index 9442f58dff89ec843c321533965fbee2727d02f8..3fde433edfd8835bf162cf39dd9999aa
if (this.fire) {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 5dc2e7c5087dc29fd2726053f5561409c9e05163..09c0e0e5a1edba28809aaa2b980d02d68a006fa7 100644
index 6a9ffef1b09b70e460fbd3aa90e34104057c0007..a759f61d2e56cbb7f526c854b6b26b34736b11cd 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -132,7 +132,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1754,10 +1754,10 @@ index 5dc2e7c5087dc29fd2726053f5561409c9e05163..09c0e0e5a1edba28809aaa2b980d02d6
public abstract ResourceKey<LevelStem> getTypeKey();
- 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.function.Function<org.spigotmc.SpigotWorldConfig, GaleWorldConfiguration> galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration
+ protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, 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.function.Function<org.spigotmc.SpigotWorldConfig, GaleWorldConfiguration> galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler
- 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.function.Function<org.spigotmc.SpigotWorldConfig, GaleWorldConfiguration> galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor // Gale - Gale configuration
+ protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, 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.function.Function<org.spigotmc.SpigotWorldConfig, GaleWorldConfiguration> galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
this.galeConfig = galeWorldConfigCreator.apply(this.spigotConfig); // Gale - Gale configuration
@@ -226,7 +225,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
@@ -1816,7 +1816,7 @@ index 5dc2e7c5087dc29fd2726053f5561409c9e05163..09c0e0e5a1edba28809aaa2b980d02d6
@Override
diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
index 3cdddda9c0618e95288b81b975d499c8dd30c05f..d3ea44e41c2e332bf06f7c6e2935adcde5631467 100644
index 46d743db099e69e10f5534aafdd7aa5eda67dec9..04415b50f527b40265e6b515ee50c9784ec376ee 100644
--- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java
+++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java
@@ -132,7 +132,6 @@ public final class NaturalSpawner {
@@ -1834,7 +1834,7 @@ index 3cdddda9c0618e95288b81b975d499c8dd30c05f..d3ea44e41c2e332bf06f7c6e2935adcd
- world.getProfiler().pop();
}
// Paper start
// Paper start - Add mobcaps commands
diff --git a/src/main/java/net/minecraft/world/level/PathNavigationRegion.java b/src/main/java/net/minecraft/world/level/PathNavigationRegion.java
index 0f1025495237aebe30132ace0832aa5718d6f9bb..9c2321ebb1237b4ecd3e7f7053e5039b800d89ff 100644
--- a/src/main/java/net/minecraft/world/level/PathNavigationRegion.java
@@ -1857,7 +1857,7 @@ index 0f1025495237aebe30132ace0832aa5718d6f9bb..9c2321ebb1237b4ecd3e7f7053e5039b
- }
}
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 fa170cc1ce7011d201295b89718292d696c7fc24..c5ab3058f66a54dba397aa4b562ec95e4fd25686 100644
index 27e8ee4507460b1cc72de692b41562b9f4f13929..0daa7dac5e1c64da86d6c26c9399363105b926a5 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -25,7 +25,6 @@ import net.minecraft.network.FriendlyByteBuf;
@@ -1882,7 +1882,7 @@ index fa170cc1ce7011d201295b89718292d696c7fc24..c5ab3058f66a54dba397aa4b562ec95e
}
boolean flag3 = iblockdata1.hasBlockEntity();
@@ -1161,9 +1155,6 @@ public class LevelChunk extends ChunkAccess {
@@ -1160,9 +1154,6 @@ public class LevelChunk extends ChunkAccess {
if (LevelChunk.this.isTicking(blockposition)) {
try {
@@ -1892,7 +1892,7 @@ index fa170cc1ce7011d201295b89718292d696c7fc24..c5ab3058f66a54dba397aa4b562ec95e
this.blockEntity.tickTimer.startTiming(); // Spigot
BlockState iblockdata = LevelChunk.this.getBlockState(blockposition);
@@ -1174,8 +1165,6 @@ public class LevelChunk extends ChunkAccess {
@@ -1173,8 +1164,6 @@ public class LevelChunk extends ChunkAccess {
this.loggedInvalidBlockState = true;
LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", new Object[]{LogUtils.defer(this::getType), LogUtils.defer(this::getPos), iblockdata});
}
@@ -1934,7 +1934,7 @@ index d23481453717f715124156b5d83f6448f720d049..c4052d1a7c2903564a8a6226c1b019d2
startNode.g = 0.0F;
startNode.h = this.getBestH(startNode, positions); // Paper - optimize collection
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java b/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java
index 3b740b1fcada96a6fac18a22ea77d1d3ad2a9cce..afc77618e1ceaeec35247294e90d86785226315f 100644
index 3ddf6ab00de2456ebf504985b88994f970e3b5c4..3b2eb7738380c9385c0227e6f04e3c1691093b1f 100644
--- a/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java
+++ b/src/main/java/net/minecraft/world/level/storage/loot/LootDataManager.java
@@ -20,7 +20,6 @@ import net.minecraft.server.packs.resources.PreparableReloadListener;

View File

@@ -19,10 +19,10 @@ require it to be initialized earlier. By moving it to the superclass, we
initialize it earlier, ensuring that it is available sooner.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 7dcf7fa990640ef4e7c0260597d54ad10096c171..97a5034ff7faf16f179aca13234f35a515cf808f 100644
index a692573423348db7a48e5cc79e1bcc469d8e21aa..3f637a3e666c24ed2d293f86824e91c751a3095e 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -961,7 +961,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -960,7 +960,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper start - optimise random block ticking
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
@@ -31,7 +31,7 @@ index 7dcf7fa990640ef4e7c0260597d54ad10096c171..97a5034ff7faf16f179aca13234f35a5
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 09c0e0e5a1edba28809aaa2b980d02d68a006fa7..a6084e0d9bcd12c1445bd5acec6a64cc6e694b9b 100644
index a759f61d2e56cbb7f526c854b6b26b34736b11cd..39e95e11c3c7c784a007138b65860e4b0c7c43bb 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -184,6 +184,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {

View File

@@ -64,10 +64,10 @@ index 7bde3392d46fb1be3d04db97a5ec02ecc4a5ca0a..51f86a87c89057351d6984e655674212
this.level.timings.countNaturalMobs.startTiming(); // Paper - timings
int k = this.distanceManager.getNaturalSpawnChunkCount();
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 97a5034ff7faf16f179aca13234f35a515cf808f..7212d15b58d9045bd4a30d11a3dac5eb395d00df 100644
index 3f637a3e666c24ed2d293f86824e91c751a3095e..62eac1a915177ffe935f6a19a567932f6c787f75 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -963,6 +963,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -962,6 +962,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
// Paper end
@@ -76,7 +76,7 @@ index 97a5034ff7faf16f179aca13234f35a515cf808f..7212d15b58d9045bd4a30d11a3dac5eb
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
ChunkPos chunkcoordintpair = chunk.getPos();
boolean flag = this.isRaining();
@@ -970,7 +972,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -969,7 +971,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
int k = chunkcoordintpair.getMinBlockZ();
final BlockPos.MutableBlockPos blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
@@ -85,7 +85,7 @@ index 97a5034ff7faf16f179aca13234f35a515cf808f..7212d15b58d9045bd4a30d11a3dac5eb
blockposition.set(this.findLightningTargetAround(this.getBlockRandomPos(j, 0, k, 15))); // Paper
if (this.isRainingAt(blockposition)) {
@@ -998,7 +1000,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -997,7 +999,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
}
@@ -95,7 +95,7 @@ index 97a5034ff7faf16f179aca13234f35a515cf808f..7212d15b58d9045bd4a30d11a3dac5eb
if (this.random.nextInt(48) == 0) {
// Paper start
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 c5ab3058f66a54dba397aa4b562ec95e4fd25686..cd375184c63453829be96449c4df88372f905d9e 100644
index 0daa7dac5e1c64da86d6c26c9399363105b926a5..d13a61ad34c00e5ad67adc64e919c4f559621cc9 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -85,6 +85,18 @@ public class LevelChunk extends ChunkAccess {

View File

@@ -31,7 +31,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/>.
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
index 8f8b29f80d1573981ccffd207dd6e0941e71a352..aed7e9affaae1e0d1e3324a41e5818435f76fd0f 100644
index abcc3ef59475ac170fd10b4dd4a4f3371faf17e0..aed7e9affaae1e0d1e3324a41e5818435f76fd0f 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
@@ -13,6 +13,7 @@ import net.minecraft.core.BlockPos;
@@ -66,7 +66,7 @@ index 8f8b29f80d1573981ccffd207dd6e0941e71a352..aed7e9affaae1e0d1e3324a41e581843
return false;
} else {
mutableLong.setValue(time + 20L + (long)world.getRandom().nextInt(20));
- if (entity.getNavigation().isStuck()) mutableLong.add(200); // Paper - Wait an additional 10s to check again if they're stuck
- if (entity.getNavigation().isStuck()) mutableLong.add(200); // Paper - Perf: Wait an additional 10s to check again if they're stuck
+ addAdditionalTimeToMutableLongIfEntityIsStuck(mutableLong, world, entity); // Gale - Airplane - reduce acquire POI for stuck entities
PoiManager poiManager = world.getPoiManager();
long2ObjectMap.long2ObjectEntrySet().removeIf((entry) -> {

View File

@@ -31,7 +31,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/>.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index c4c7970e3dce12985c401d23d288bd8d9bca6913..e4c1afec0d90c8131e210b7676733e355f2b08b9 100644
index d8c899566533dda4cf5e700769c842f93e5c0b49..8df80c5cfaee022e5796dcced0185ddcd794fa0d 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -42,7 +42,7 @@ index c4c7970e3dce12985c401d23d288bd8d9bca6913..e4c1afec0d90c8131e210b7676733e35
public abstract class LivingEntity extends Entity implements Attackable {
@@ -1999,6 +1998,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2000,6 +1999,20 @@ public abstract class LivingEntity extends Entity implements Attackable {
return this.lastClimbablePos;
}
@@ -64,7 +64,7 @@ index c4c7970e3dce12985c401d23d288bd8d9bca6913..e4c1afec0d90c8131e210b7676733e35
if (this.isSpectator()) {
return false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 2d31752478636bd21bbff5b430e5acb76b5d91c2..ef7a25818781af4ce4e1f1a63ab62abff8013ed4 100644
index fafc8b84d6b6368c70b8eedfdb4c3a9deace9c26..9153d333f17d8b2864d1572473fdf561881905b0 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -297,7 +297,7 @@ public class ActivationRange

View File

@@ -390,7 +390,7 @@ index a71414397bd45ee7bcacfeef0041d80dfa25f114..7743f185672e977520218c3ce6b8ddc9
@Override
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index d4dcf7fe26474ae07374e7761d823bc5c8b54f97..90c354d37a8db3bcad79aa882d52d5d25482c02d 100644
index a61d7cd2b078fe511ff00344197b6ea11feebfb2..5a199935865979adf2f81ff6459299c4c7b9003b 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -47,7 +47,10 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
@@ -448,8 +448,8 @@ index d4dcf7fe26474ae07374e7761d823bc5c8b54f97..90c354d37a8db3bcad79aa882d52d5d2
flag = HopperBlockEntity.ejectItems(world, pos, state, (Container) blockEntity, blockEntity); // CraftBukkit
}
- if (fullState != HOPPER_IS_FULL || flag) { // Paper - optimize hoppers
+ if (!blockEntity.optimizedItems.hasFullStacks() || fullState != HOPPER_IS_FULL || flag) { // Paper - optimize hoppers // Gale - Airplane - improve container checking with a bitset - use bitset first
- if (fullState != HOPPER_IS_FULL || flag) { // Paper - Perf: Optimize Hoppers
+ if (!blockEntity.optimizedItems.hasFullStacks() || fullState != HOPPER_IS_FULL || flag) { // Paper - Perf: Optimize Hoppers // Gale - Airplane - improve container checking with a bitset - use bitset first
flag |= booleansupplier.getAsBoolean();
}
@@ -466,8 +466,8 @@ index d4dcf7fe26474ae07374e7761d823bc5c8b54f97..90c354d37a8db3bcad79aa882d52d5d2
}
private static boolean isEmptyContainer(Container inv, Direction facing) {
- return allMatch(inv, facing, IS_EMPTY_TEST);
+ return inv.isCompletelyEmpty(facing); // Gale - Airplane - improve container checking with a bitset - use bitsets
- return allMatch(inv, facing, IS_EMPTY_TEST); // Paper - Perf: Optimize Hoppers
+ return inv.isCompletelyEmpty(facing); // Paper - Perf: Optimize Hoppers // Gale - Airplane - improve container checking with a bitset - use bitsets
}
public static boolean suckInItems(Level world, Hopper hopper) {
@@ -493,13 +493,13 @@ index d4dcf7fe26474ae07374e7761d823bc5c8b54f97..90c354d37a8db3bcad79aa882d52d5d2
public static void entityInside(Level world, BlockPos pos, BlockState state, Entity entity, HopperBlockEntity blockEntity) {
diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
index 64875525df244db838560f5fefb7b1b07b0f1f51..1de09539877d40b7bdcdc8a10d1d30c81420aa5b 100644
index a94300a457b25f0e33a8eeabba6dd5720ca9ab1e..f1ea82072cb13e255fa6ca90b0753ed232697275 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java
@@ -94,12 +94,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc
public boolean isEmpty() {
this.unpackLootTable((Player)null);
// Paper start
// Paper start - Perf: Optimize Hoppers
- for (final ItemStack itemStack : this.getItems()) {
- if (!itemStack.isEmpty()) {
- return false;
@@ -507,6 +507,6 @@ index 64875525df244db838560f5fefb7b1b07b0f1f51..1de09539877d40b7bdcdc8a10d1d30c8
- }
- return true;
+ return this.isCompletelyEmpty(null); // Gale - Airplane - improve container checking with a bitset - use super
// Paper end
// Paper end - Perf: Optimize Hoppers
}

View File

@@ -31,7 +31,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/>.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index c434d73f69cf39d2139a2e71605575733c8c4752..f6f5d385feb4c801a5fd7f1df81ac77838ef2a6f 100644
index 39e95e11c3c7c784a007138b65860e4b0c7c43bb..ff484009c8e0f9ecf0381e33670c13d30f47829d 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -212,6 +212,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -47,9 +47,9 @@ index c434d73f69cf39d2139a2e71605575733c8c4752..f6f5d385feb4c801a5fd7f1df81ac778
+ @Override public final int getHeight() { return this.height; }
+ // Gale end - Airplane - inline level height
+
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, 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.function.Function<org.spigotmc.SpigotWorldConfig, GaleWorldConfiguration> galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, 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.function.Function<org.spigotmc.SpigotWorldConfig, GaleWorldConfiguration> galeWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor // Gale - Gale configuration // Gale - Purpur - remove vanilla profiler
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
@@ -234,6 +243,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
});
final DimensionType dimensionmanager = (DimensionType) holder.value();

View File

@@ -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/>.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index f7a8180e1cf5f48515285c4b90656bbb2fd473d4..af4076be9307e0e431feac1b2d841f8e1aa73691 100644
index d1bdfda6f24d6c9a103e20eb36e6ca3ff6466b6c..66e10dd20961d49742a5f016dab9c2cd1a2b64b6 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -438,6 +438,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -440,6 +440,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return this.originWorld;
}
// Paper end

View File

@@ -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/>.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 7212d15b58d9045bd4a30d11a3dac5eb395d00df..b1e45275dd05d2d7ea163582354575bd0c896f8a 100644
index 62eac1a915177ffe935f6a19a567932f6c787f75..ec840eb5438eaa9aadfdf62b0c7d4810e83d6402 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -900,7 +900,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -899,7 +899,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
entity.stopRiding();
}
@@ -57,7 +57,7 @@ index 7212d15b58d9045bd4a30d11a3dac5eb395d00df..b1e45275dd05d2d7ea163582354575bd
}
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 554a6c088d10e129cdbb7c2ca1f8c0757c0568fa..6d5a7d4609ec9068c60ac29a8fad2807d0abd48c 100644
index ff484009c8e0f9ecf0381e33670c13d30f47829d..5ddae106ccd4a81dd0e3f873f7f64c0061814669 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1329,13 +1329,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {

View File

@@ -13,10 +13,10 @@ As part of: Pufferfish (https://github.com/pufferfish-gg/Pufferfish)
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
diff --git a/build.gradle.kts b/build.gradle.kts
index 7613c2789b3bf67a7da3806cfd04c918cba58344..dfd92a33497785f28c7ade16da900f7bb851cada 100644
index be2cc4ff2109d6a8c04075bf645fa1fff3374799..fefe852c5376274f606ededeaf6c741f43ab19f9 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -71,6 +71,7 @@ tasks.withType<JavaCompile> {
@@ -70,6 +70,7 @@ tasks.withType<JavaCompile> {
compilerArgs.add("-Xlint:-module")
compilerArgs.add("-Xlint:-removal")
compilerArgs.add("-Xlint:-dep-ann")
@@ -24,7 +24,7 @@ index 7613c2789b3bf67a7da3806cfd04c918cba58344..dfd92a33497785f28c7ade16da900f7b
}
// Gale end - hide irrelevant compilation warnings
@@ -195,6 +196,7 @@ fun TaskContainer.registerRunTask(
@@ -194,6 +195,7 @@ fun TaskContainer.registerRunTask(
minHeapSize = "${memoryGb}G"
maxHeapSize = "${memoryGb}G"
jvmArgs("--enable-preview") // Gale - enable preview features for development runs
@@ -84,7 +84,7 @@ index 2acad4c3fd58178b0f8b22bdb04eeeeb689d5afa..850ccd53c5007e8b18344ba76c9e7f00
}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 06ae3f1fee154d8f283fad6eeb06582ec647d519..d47e5442de3c6bf731b1b31454493855bc1e61e3 100644
index 6fd999a40643cd3068cfdd80347d2cc117a409db..4ed9b8d14eac0e202e76371a9726fab5040effb0 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -14,6 +14,8 @@ import java.util.Locale;
@@ -105,8 +105,8 @@ index 06ae3f1fee154d8f283fad6eeb06582ec647d519..d47e5442de3c6bf731b1b31454493855
// CraftBukkit start
@@ -223,6 +226,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
// Paper end
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // Paper - init PaperBrigadierProvider
+ // Gale start - Pufferfish - SIMD support
+ // Initialize vectorization

View File

@@ -22,7 +22,7 @@ you to easily disable books, should you want to preemptively remove this
functionality before additional exploits are found.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 8b630fc4da8a7fda08c416e70c22463f04c3b6b5..da7f7a6eda29b26bd17c2e23e2752746efd12b08 100644
index e5d734234ae0543b0772e8a12da3f60b3a97a6cb..054119323bcb5efb6688a68dbe47818fb79e8c71 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -186,6 +186,8 @@ import net.minecraft.world.phys.Vec3;
@@ -34,7 +34,7 @@ index 8b630fc4da8a7fda08c416e70c22463f04c3b6b5..da7f7a6eda29b26bd17c2e23e2752746
import org.slf4j.Logger;
// CraftBukkit start
@@ -1122,6 +1124,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1124,6 +1126,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@Override
public void handleEditBook(ServerboundEditBookPacket packet) {

View File

@@ -35,10 +35,10 @@ index adfb793ba2ca4552e0b800d37f166ea55562a57a..af49374eea8e85917687da19e8aa7491
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
index 97fe21f2512481169cc269462b866bc194ed5fcc..b9b3391726cbd801e1d386f13323aa907d4d51b9 100644
index b0a18b5b1f3904093439b6993e32734eae3544fa..1939f5037376d5968a649c9d90f74edd592a7d5e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -307,7 +307,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -309,7 +309,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public double yo;
public double zo;
private Vec3 position;

View File

@@ -28,7 +28,7 @@ but is so much cheaper than the suffocation check that it's worth
keeping it.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 93c810fe4c392b20295f73044470aa45f13d857f..ae070ceb7f696af8b43c4d2c2ff6daf221c8a9db 100644
index 8df80c5cfaee022e5796dcced0185ddcd794fa0d..59071351d60514bf23626dd9d4140be537321e9c 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -411,7 +411,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -43,7 +43,7 @@ index 93c810fe4c392b20295f73044470aa45f13d857f..ae070ceb7f696af8b43c4d2c2ff6daf2
this.hurt(this.damageSources().inWall(), 1.0F);
} else if (flag && !this.level().getWorldBorder().isWithinBounds(this.getBoundingBox())) {
double d0 = this.level().getWorldBorder().getDistanceToBorder(this) + this.level().getWorldBorder().getDamageSafeZone();
@@ -1405,6 +1408,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1406,6 +1409,15 @@ public abstract class LivingEntity extends Entity implements Attackable {
return this.getHealth() <= 0.0F;
}

View File

@@ -13,7 +13,7 @@ As part of: Pufferfish (https://github.com/pufferfish-gg/Pufferfish)
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
diff --git a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
index 85a8a687b1568a56e3e646b37ef78b562c1b8a82..992617212932a38f5586cd3d0e1fbebb3a8d4f14 100644
index ba12919c3f9aec34a9e64993b143ae92be5eb172..42970db49c74f645591904ebeac3426e36f0b4ba 100644
--- a/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
+++ b/src/main/java/net/minecraft/network/chat/SignedMessageChain.java
@@ -9,6 +9,7 @@ import net.minecraft.util.SignatureUpdater;
@@ -27,10 +27,10 @@ index 85a8a687b1568a56e3e646b37ef78b562c1b8a82..992617212932a38f5586cd3d0e1fbebb
@@ -38,7 +39,7 @@ public class SignedMessageChain {
throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.chain_broken"), false); // Paper - diff on change (if disconnects, need a new kick event cause)
} else if (playerPublicKey.data().hasExpired()) {
throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.expiredProfileKey", org.bukkit.event.player.PlayerKickEvent.Cause.EXPIRED_PROFILE_PUBLIC_KEY), false); // Paper - kick event causes
throw new SignedMessageChain.DecodeException(Component.translatable("chat.disabled.expiredProfileKey"), false, org.bukkit.event.player.PlayerKickEvent.Cause.EXPIRED_PROFILE_PUBLIC_KEY); // Paper - kick event causes
- } else if (body.timeStamp().isBefore(this.lastTimeStamp)) {
+ } else if (body.timeStamp().isBefore(this.lastTimeStamp) && GaleGlobalConfiguration.get().misc.verifyChatOrder) { // Gale - Pufferfish - make chat order verification configurable
throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat", org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT), true); // Paper - kick event causes
throw new SignedMessageChain.DecodeException(Component.translatable("multiplayer.disconnect.out_of_order_chat"), true, org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event causes
} else {
this.lastTimeStamp = body.timeStamp();
diff --git a/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleGlobalConfiguration.java

View File

@@ -26,7 +26,7 @@ search to attempt respawning the ender dragon whenever a player places
an end crystal.
diff --git a/src/main/java/net/minecraft/world/item/EndCrystalItem.java b/src/main/java/net/minecraft/world/item/EndCrystalItem.java
index 5a19875cbc603acea95193d969d2e1dc1e0bfd78..702f9ad3d7a27060bf3328192a32ea2807fbaa3b 100644
index e1696f6b77df4c8fceaece64701d4db78b0a4c42..a0bc8bb8d88e96457a2be0befe1fd69ef4973e11 100644
--- a/src/main/java/net/minecraft/world/item/EndCrystalItem.java
+++ b/src/main/java/net/minecraft/world/item/EndCrystalItem.java
@@ -53,11 +53,13 @@ public class EndCrystalItem extends Item {
@@ -37,7 +37,7 @@ index 5a19875cbc603acea95193d969d2e1dc1e0bfd78..702f9ad3d7a27060bf3328192a32ea28
EndDragonFight enderdragonbattle = ((ServerLevel) world).getDragonFight();
if (enderdragonbattle != null) {
enderdragonbattle.tryRespawn(aboveBlockPosition); // Paper - pass placed end crystal position to pre-check proximity to portal
enderdragonbattle.tryRespawn(aboveBlockPosition); // Paper - Perf: Do crystal-portal proximity check before entity lookup
}
+ } // Gale - Pufferfish - make ender dragon respawn attempt after placing end crystals configurable
}

View File

@@ -17,7 +17,7 @@ Licensed under: MIT (https://opensource.org/licenses/MIT)
Only do an item "suck in" action once per second
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index a39db702063887cf530f272deaf4f334047cc7d4..2abd920e78a4da56654da87034c36c77d2fc6b35 100644
index 491a521f0e5e272fbad7870fa3adefdea22e179f..3ff5c1b932bb28203aa5b48393ff41724c93618a 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -14,11 +14,13 @@ import net.minecraft.world.entity.Entity;
@@ -119,7 +119,7 @@ index a05acf709735b40ca86f978508c63a86065fd405..3752b4ba7fb0d680d4b4a61bf44d54d5
double getLevelY();
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
index 90c354d37a8db3bcad79aa882d52d5d25482c02d..375d1dc3a7897007f8d0997153fd77d16ff07388 100644
index 5a199935865979adf2f81ff6459299c4c7b9003b..5a5347ee033db890872193f22a7b63c1af0e79b7 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
@@ -11,6 +11,7 @@ import net.minecraft.core.Direction;
@@ -141,7 +141,7 @@ index 90c354d37a8db3bcad79aa882d52d5d25482c02d..375d1dc3a7897007f8d0997153fd77d1
@@ -575,7 +577,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
return false;
}
// Paper end
// Paper end - Perf: Optimize Hoppers
- } else {
+ } else if (shouldSuckIn(world, hopper)) { // Gale - EMC - reduce hopper item checks
Iterator iterator = HopperBlockEntity.getItemsAtAndAbove(world, hopper).iterator();
@@ -156,7 +156,7 @@ index 90c354d37a8db3bcad79aa882d52d5d25482c02d..375d1dc3a7897007f8d0997153fd77d1
@io.papermc.paper.annotation.DoNotUse // Paper - method unused as logic is inlined above
@@ -900,6 +903,31 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
return first.getCount() < first.getMaxStackSize() && first.is(second.getItem()) && first.getDamageValue() == second.getDamageValue() && ((first.isEmpty() && second.isEmpty()) || java.util.Objects.equals(first.getTag(), second.getTag())); // Paper - used to return true for full itemstacks?!
return first.getCount() < first.getMaxStackSize() && first.is(second.getItem()) && first.getDamageValue() == second.getDamageValue() && ((first.isEmpty() && second.isEmpty()) || java.util.Objects.equals(first.getTag(), second.getTag())); // Paper - Perf: Optimize Hoppers; used to return true for full itemstacks?!
}
+ // Gale start - EMC - reduce hopper item checks

View File

@@ -13,7 +13,7 @@ As part of: EmpireCraft (https://github.com/starlis/empirecraft)
Licensed under: MIT (https://opensource.org/licenses/MIT)
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index fe1a1947da61170c0920e67b103c5c78f4c5cfcb..198c49244eb4245cd284ae9397a90c185cb479fc 100644
index 3e8e5fe6a67af911847e7f4c3e2874a340d39016..e91f27cde736c3ef49c44180a718e5c8980c2f38 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -275,6 +275,7 @@ public class ServerPlayer extends Player {
@@ -25,10 +25,10 @@ index fe1a1947da61170c0920e67b103c5c78f4c5cfcb..198c49244eb4245cd284ae9397a90c18
public boolean isRealPlayer; // Paper
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index da7f7a6eda29b26bd17c2e23e2752746efd12b08..13b54b98d1c1818e644291272a1a622d56fc317d 100644
index 054119323bcb5efb6688a68dbe47818fb79e8c71..d8ab047a573590afa3b3976393537e4ac06365ec 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2278,6 +2278,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2280,6 +2280,10 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false));
return Optional.empty();
@@ -40,7 +40,7 @@ index da7f7a6eda29b26bd17c2e23e2752746efd12b08..13b54b98d1c1818e644291272a1a622d
this.player.resetLastActionTime();
return optional;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index e98a455b6bca9d094d0da323bddd7b3f2c07bb23..75b9b73b7938816337a4ba7a65cb631051498751 100644
index e6b84e4891927d79f993944ea4d3525c68c6c1b9..caa365842067207e357053e2b3ae054a9de71027 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -347,6 +347,8 @@ public abstract class PlayerList {

View File

@@ -13,7 +13,7 @@ As part of: EmpireCraft (https://github.com/starlis/empirecraft)
Licensed under: MIT (https://opensource.org/licenses/MIT)
diff --git a/src/main/java/net/minecraft/stats/ServerStatsCounter.java b/src/main/java/net/minecraft/stats/ServerStatsCounter.java
index 9bb8d4d7be6a937980aa653db82be084d066a563..33b1845a5cb935382e38268246d7fd729d234eb6 100644
index f890738d3bb9fb5e70a9d323c6cec97f9948f9cf..8e9f4b1a7f0fe6df4e3d0796cef99db439f25bba 100644
--- a/src/main/java/net/minecraft/stats/ServerStatsCounter.java
+++ b/src/main/java/net/minecraft/stats/ServerStatsCounter.java
@@ -36,6 +36,7 @@ import net.minecraft.server.level.ServerPlayer;
@@ -24,7 +24,7 @@ index 9bb8d4d7be6a937980aa653db82be084d066a563..33b1845a5cb935382e38268246d7fd72
import org.slf4j.Logger;
public class ServerStatsCounter extends StatsCounter {
@@ -132,15 +133,15 @@ public class ServerStatsCounter extends StatsCounter {
@@ -137,15 +138,15 @@ public class ServerStatsCounter extends StatsCounter {
Util.ifElse(this.getStat(statisticwrapper, s2), (statistic) -> {
this.stats.put(statistic, nbttagcompound2.getInt(s2));
}, () -> {

View File

@@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 13b54b98d1c1818e644291272a1a622d56fc317d..b2c8ab298d79399b7aa19496bc22356030ae40ce 100644
index d8ab047a573590afa3b3976393537e4ac06365ec..377398ee22fb53f0a4bef841d1f7e2750787b3a6 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -187,6 +187,7 @@ import net.minecraft.world.phys.shapes.BooleanOp;
@@ -18,7 +18,7 @@ index 13b54b98d1c1818e644291272a1a622d56fc317d..b2c8ab298d79399b7aa19496bc223560
import org.galemc.gale.configuration.GaleGlobalConfiguration;
import org.slf4j.Logger;
@@ -2447,7 +2448,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2449,7 +2450,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// CraftBukkit start
String s = message.signedContent();
if (s.isEmpty()) {

View File

@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
index 50ed7cfe1ecef6d075ba484804827cec83ba2bf2..4c8f27673219187399cb9ba1d23447d42077f3fe 100644
index 5ece375eaf6bcc61864997a389bb5e24625e4505..12898276aae034673484cd60cb598a520a47ce21 100644
--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java
+++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
@@ -54,6 +54,7 @@ import net.minecraft.world.phys.AABB;
@@ -51,7 +51,7 @@ index 50ed7cfe1ecef6d075ba484804827cec83ba2bf2..4c8f27673219187399cb9ba1d23447d4
@@ -318,6 +319,7 @@ public class WorldGenRegion implements WorldGenLevel {
return true;
} else {
// Paper start
// Paper start - Buffer OOB setBlock calls
+ if (GaleGlobalConfiguration.get().logToConsole.setBlockInFarChunk) // Gale - Purpur - do not log setBlock in far chunks
if (!hasSetFarWarned) {
Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get()));

View File

@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
index 2677e21d8239bf0361a3bc5c9a50c328e54d70f6..36b39517ef0aa817c5a10d6d7f4904a87c346b47 100644
index fde9aadd6c688b9797a6755f9d214918047598a0..0f47ee4193aa834e23b1c5bfc992881cd5872e8a 100644
--- a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
+++ b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java
@@ -31,6 +31,7 @@ import org.bukkit.Material;
@@ -52,8 +52,8 @@ index 2677e21d8239bf0361a3bc5c9a50c328e54d70f6..36b39517ef0aa817c5a10d6d7f4904a8
}
static {
- LOGGER.warn("Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!"); // Paper - doesn't need to be an error
+ if (GaleGlobalConfiguration.get().logToConsole.legacyMaterialInitialization) LOGGER.warn("Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!"); // Paper - doesn't need to be an error // Gale - Purpur - do not log legacy Material initialization
- LOGGER.warn("Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!"); // Paper - Improve logging and errors; doesn't need to be an error
+ if (GaleGlobalConfiguration.get().logToConsole.legacyMaterialInitialization) LOGGER.warn("Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!"); // Paper - Improve logging and errors; doesn't need to be an error // Gale - Purpur - do not log legacy Material initialization
if (MinecraftServer.getServer() != null && MinecraftServer.getServer().isDebugging()) {
new Exception().printStackTrace();
}

View File

@@ -41,13 +41,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 64701667486002c60c9d1819e57ac40153306a71..08d82f8592714eac92ead36b98460de6ff607cfe 100644
index 4e6a787401f6affbbbff739cfc6ad0f49570a7a8..55df8e8108c09fba4aa9754264eae758142b21cb 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -290,7 +290,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
String proxyFlavor = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "Velocity" : "BungeeCord";
String proxyLink = (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.velocity.enabled) ? "https://docs.papermc.io/velocity/security" : "http://www.spigotmc.org/wiki/firewall-guide/";
// Paper end
// Paper end - Add Velocity IP Forwarding Support
- if (!this.usesAuthentication()) {
+ if (!"false".equalsIgnoreCase(System.getProperty("gale.log.warning.offline.mode")) && !this.usesAuthentication()) { // Gale - KeYi - do not log offline mode warning
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");

View File

@@ -7,15 +7,15 @@ License: MIT (https://opensource.org/licenses/MIT)
Leaf - https://github.com/Winds-Studio/Leaf
diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
index 2f947997ca746d18544940ef67ff550a95946edd..cc7096d54a5b9412c3cda4d1a0d99d042739a789 100644
index 3cb1db27dba902678a5848a1fb5e2c6ec6241e60..c615d528610168c4ad52730079f3525ab211b89e 100644
--- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
@@ -91,7 +91,7 @@ public class TripWireBlock extends Block {
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) {
if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating
if (!moved && !state.is(newState.getBlock())) {
- this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix state inconsistency
+ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), world.galeConfig().gameplayMechanics.fixes.tripwireDuping); // Paper - fix state inconsistency // Gale - Leaf - make tripwire duping fix configurable
- this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix tripwire state inconsistency
+ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), world.galeConfig().gameplayMechanics.fixes.tripwireDuping); // Paper - fix tripwire state inconsistency // Gale - Leaf - make tripwire duping fix configurable
}
}

View File

@@ -37,13 +37,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
index 827912174ee08cd19249797d351887149b25c880..15dfa2537da2b98deea09a3515c00fb2839121f5 100644
index 9b897cf53f4bb5d366e6ac88dbed93c59d8fe541..53e3a40246da0a4d30ad8a7286d1a43dc7db3b0b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
@@ -77,6 +77,6 @@ public abstract class WaterAnimal extends PathfinderMob {
i = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(i);
j = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(j);
// Paper end
// Paper end - Make water animal spawn height configurable
- return pos.getY() >= j && pos.getY() <= i && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER);
+ return ((reason == MobSpawnType.SPAWNER && world.getMinecraftWorld().galeConfig().gameplayMechanics.fixes.mc238526) || (pos.getY() >= j && pos.getY() <= i)) && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER); // Gale - Purpur - fix MC-238526
}

View File

@@ -250,7 +250,7 @@ index ff13d67151c50ea11a45117e524c7524e2b1a202..3f6327661e593e52a89c247288f0104c
@Override
diff --git a/src/main/java/net/minecraft/nbt/ListTag.java b/src/main/java/net/minecraft/nbt/ListTag.java
index c6877c7167dd5b1c61c776b0c7865d9064e69202..43e429053ca92d9ef7e9b5b9d466352b1b0a3fc8 100644
index 24ad8d22b5180cd7d7f793e3074e438f9192448f..33ea5ee8d79708e11613ce162f97f300242894b7 100644
--- a/src/main/java/net/minecraft/nbt/ListTag.java
+++ b/src/main/java/net/minecraft/nbt/ListTag.java
@@ -2,6 +2,8 @@ package net.minecraft.nbt;
@@ -262,7 +262,7 @@ index c6877c7167dd5b1c61c776b0c7865d9064e69202..43e429053ca92d9ef7e9b5b9d466352b
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
@@ -261,7 +263,7 @@ public class ListTag extends CollectionTag<Tag> {
@@ -279,7 +281,7 @@ public class ListTag extends CollectionTag<Tag> {
}
}
@@ -271,7 +271,7 @@ index c6877c7167dd5b1c61c776b0c7865d9064e69202..43e429053ca92d9ef7e9b5b9d466352b
}
public long[] getLongArray(int index) {
@@ -272,7 +274,7 @@ public class ListTag extends CollectionTag<Tag> {
@@ -291,7 +293,7 @@ public class ListTag extends CollectionTag<Tag> {
}
}
@@ -325,7 +325,7 @@ index a2920b8a9eff77d9c5d1d7f70ad3abdacba8f0fa..43f402d9032e4570a81a80e412215598
protected CipherBase(Cipher cipher) {
this.cipher = cipher;
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index 2ae08b21c63490bbf8cd870f9585d82ed131f815..79ff5a76b382581c4125b859d9f00ee19d784100 100644
index 81fb880cdcd433bd692461b3d7b315f30d2747f7..9fc2b83c4e99da8bd9e0fdd6bb1d5ff8520f1e57 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -23,7 +23,6 @@ import io.netty.channel.epoll.EpollSocketChannel;
@@ -377,7 +377,7 @@ index d45e39bc009281c298f3dfae113dc87f2b3b1fbd..25f25c3e2882e11a80142d3282a020d2
private static final Codec<Object> ARG_CODEC = Codec.either(PRIMITIVE_ARG_CODEC, ComponentSerialization.CODEC).xmap((either) -> {
return either.map((object) -> {
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
index 7573c12a77797146c51ef2dfe4b2a636df45e21a..43ba5c26f40a9b00480198e10141275c07938994 100644
index 4a565321174d9230823a07cf37fb104f9f92245f..d619d520486f15602916d03dc10abae1db91de69 100644
--- a/src/main/java/net/minecraft/server/Main.java
+++ b/src/main/java/net/minecraft/server/Main.java
@@ -87,7 +87,7 @@ public class Main {
@@ -390,7 +390,7 @@ index 7573c12a77797146c51ef2dfe4b2a636df45e21a..43ba5c26f40a9b00480198e10141275c
OptionSpec<Integer> optionspec10 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(-1, new Integer[0]);
OptionSpec<String> optionspec11 = optionparser.accepts("serverId").withRequiredArg();
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index e8bb35322d3204e6a126bc6df0beed3f931dae6d..6bfa866ce2b3dab86dcbaba9fdf52737d7883925 100644
index 29e06ff52c34fa4cc64d808fe8107435b001ed89..dc2762f3c5eca99e74cfc75d5fcdb15f0378a7b9 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -329,7 +329,7 @@ public class ServerEntity {
@@ -403,7 +403,7 @@ index e8bb35322d3204e6a126bc6df0beed3f931dae6d..6bfa866ce2b3dab86dcbaba9fdf52737
for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index b1e45275dd05d2d7ea163582354575bd0c896f8a..7d5e7545b995506ef554dbda70ec5eb8ccb24151 100644
index ec840eb5438eaa9aadfdf62b0c7d4810e83d6402..ceb91d3fc2463e0518f889299e21f612476b016a 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -38,6 +38,8 @@ import java.util.stream.Collectors;
@@ -415,7 +415,7 @@ index b1e45275dd05d2d7ea163582354575bd0c896f8a..7d5e7545b995506ef554dbda70ec5eb8
import net.minecraft.CrashReport;
import net.minecraft.CrashReportCategory;
import net.minecraft.Util;
@@ -1050,7 +1052,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1049,7 +1051,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
BlockPos blockposition2 = blockposition.set(j + randomX, randomY, k + randomZ);
BlockState iblockdata = com.destroystokyo.paper.util.maplist.IBlockDataList.getBlockDataFromRaw(raw);
@@ -424,7 +424,7 @@ index b1e45275dd05d2d7ea163582354575bd0c896f8a..7d5e7545b995506ef554dbda70ec5eb8
}
// We drop the fluid tick since LAVA is ALREADY TICKED by the above method (See LiquidBlock).
// TODO CHECK ON UPDATE (ping the Canadian)
@@ -1356,7 +1358,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1355,7 +1357,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
public static List<Entity> getCurrentlyTickingEntities() {
Entity ticking = currentlyTickingEntity.get();
@@ -434,7 +434,7 @@ index b1e45275dd05d2d7ea163582354575bd0c896f8a..7d5e7545b995506ef554dbda70ec5eb8
return ret;
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index b2c8ab298d79399b7aa19496bc22356030ae40ce..5a2b43ea98478a67ad712980ee8e6dbe98871433 100644
index 377398ee22fb53f0a4bef841d1f7e2750787b3a6..a4b86d40728341cf9baeacc8c0478cc30c0b4f50 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -28,6 +28,8 @@ import java.util.function.UnaryOperator;
@@ -479,7 +479,7 @@ index b2c8ab298d79399b7aa19496bc22356030ae40ce..5a2b43ea98478a67ad712980ee8e6dbe
return;
}
// Paper end
@@ -3219,7 +3218,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -3221,7 +3220,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
// Paper start
if (!org.bukkit.Bukkit.isPrimaryThread()) {
if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) {
@@ -489,7 +489,7 @@ index b2c8ab298d79399b7aa19496bc22356030ae40ce..5a2b43ea98478a67ad712980ee8e6dbe
}
}
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 8d67d9fd8f6d09f86c1f4829dcfb74324f32920e..bf17b7b29fb7ae3283a24d1174c55a31e51a96af 100644
index 9490d5890f5bdea17c4aef1a5e43998eeee4bcd7..fe75d37ed1f2affef47c2f78bd4af3568180da48 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -13,9 +13,10 @@ import java.security.PrivateKey;
@@ -517,7 +517,7 @@ index 8d67d9fd8f6d09f86c1f4829dcfb74324f32920e..bf17b7b29fb7ae3283a24d1174c55a31
this.requestedUsername = packet.name();
GameProfile gameprofile = this.server.getSingleplayerProfile();
@@ -227,7 +230,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -232,7 +235,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@Override
public void handleKey(ServerboundKeyPacket packet) {
@@ -526,7 +526,7 @@ index 8d67d9fd8f6d09f86c1f4829dcfb74324f32920e..bf17b7b29fb7ae3283a24d1174c55a31
final String s;
@@ -409,7 +412,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@@ -412,7 +415,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener,
@Override
public void handleLoginAcknowledgement(ServerboundLoginAcknowledgedPacket packet) {
@@ -536,7 +536,7 @@ index 8d67d9fd8f6d09f86c1f4829dcfb74324f32920e..bf17b7b29fb7ae3283a24d1174c55a31
ServerConfigurationPacketListenerImpl serverconfigurationpacketlistenerimpl = new ServerConfigurationPacketListenerImpl(this.server, this.connection, commonlistenercookie, this.player); // CraftBukkit
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 83eca7453559f182aa7e5fa735316be311e05e73..5eadc4ce30f77794f50b612549557f8b5d81f21a 100644
index 911faf0dc1398d91f4c0e8de89c3a4380e049263..65cc4cc0051476e761b6b0584f5e7281b7a2fac6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -25,6 +25,8 @@ import java.util.UUID;
@@ -638,10 +638,10 @@ index 2e324276ea4cd9e528c6a3f9a9ba394b378fe075..8e91714e3167ab0ad16df681bc080772
private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) {
this.type = type;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index bd599625de84f33c7dbff8242dd2ee6d6c137d82..8597b9b5b78bb5375a10caea691cd19ac462d61f 100644
index 59071351d60514bf23626dd9d4140be537321e9c..171b81067377f6fface9a8cd9922a194334c50b1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3138,7 +3138,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3139,7 +3139,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@Nullable
private Map<EquipmentSlot, ItemStack> collectEquipmentChanges() {
Map<EquipmentSlot, ItemStack> map = null;
@@ -651,7 +651,7 @@ index bd599625de84f33c7dbff8242dd2ee6d6c137d82..8597b9b5b78bb5375a10caea691cd19a
for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 1cdacd42ea421833caef345a05fb53a8d93aec36..fe9fb934f9118f52e42109ff32e35f1dc95ffe09 100644
index 3bf473e2904b4279b1bc14a0fa75ffe25189d1d2..cd5c19380a808719476acc51e8d5c022e627992c 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1056,7 +1056,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -691,7 +691,7 @@ index 1cdacd42ea421833caef345a05fb53a8d93aec36..fe9fb934f9118f52e42109ff32e35f1d
for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
index 94396ad1a3c280787d36c6c18256d10340ace488..9e139c1291f40fd730754ac2427269b102f7cede 100644
index 7de9d012e7416eaa0189b513a0972c846e93c4b6..9274015f58c71f991903bd28434a4832afd074b2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -237,7 +237,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -704,7 +704,7 @@ index 94396ad1a3c280787d36c6c18256d10340ace488..9e139c1291f40fd730754ac2427269b1
for (int j = 0; j < i; ++j) {
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
index 5b8a1f31e0b55da15daa4ab271317e4393a87e96..ca037db7ea68ad01b4189154a38a01bf3351c7b3 100644
index 46c7c36a07169915f7409f1146e5066e8ac65c21..cc5ee9936dc00fe142abf9cb7750133f50409dbf 100644
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
@@ -1052,7 +1052,7 @@ public final class ItemStack {
@@ -756,7 +756,7 @@ index 6c2e8049c2197ddc912c1a0fc99c87beae81e25b..a13822a22ab524a0fb9fd998c4ada06b
private static Enchantment register(String name, Enchantment enchantment) {
return Registry.register(BuiltInRegistries.ENCHANTMENT, name, enchantment);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 6d5a7d4609ec9068c60ac29a8fad2807d0abd48c..8b7dbd6bbd848c0cfb30fd91c600432d9dfc0fbf 100644
index 5ddae106ccd4a81dd0e3f873f7f64c0061814669..a2d388ff4dd85daf0ffed2161e55538842c815cd 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -12,6 +12,8 @@ import java.util.function.Consumer;
@@ -778,7 +778,7 @@ index 6d5a7d4609ec9068c60ac29a8fad2807d0abd48c..8b7dbd6bbd848c0cfb30fd91c600432d
return slices.getChunkEntities();
}
diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
index de8b5cab7925c1c46478952ed2cb2bd40f9a9c48..ce43cb260b36ca170a1d1725a7bf02525e8970d6 100644
index d78fe4081bc2938326066e0afddb4a6c833a4bf7..f991a3f0ba55aeb99138038618f80bd33a5f10c2 100644
--- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
@@ -4,6 +4,8 @@ import com.mojang.serialization.MapCodec;
@@ -818,7 +818,7 @@ index de8b5cab7925c1c46478952ed2cb2bd40f9a9c48..ce43cb260b36ca170a1d1725a7bf0252
@Override
diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
index a18aadbf7ae83713e1f2b21553185d8000bc7699..13e100fd2400878c819c7115bb958586face9958 100644
index b39c6c91e088dbe2187ed7fd598076f41c53bd49..f64682dc7476c25c8a14608ba156a901029e65d8 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
@@ -9,6 +9,8 @@ import java.util.Iterator;
@@ -830,7 +830,7 @@ index a18aadbf7ae83713e1f2b21553185d8000bc7699..13e100fd2400878c819c7115bb958586
import net.minecraft.SharedConstants;
import net.minecraft.Util;
import net.minecraft.core.BlockPos;
@@ -65,7 +67,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
@@ -66,7 +68,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
protected static final int SLOT_FUEL = 1;
protected static final int SLOT_RESULT = 2;
public static final int DATA_LIT_TIME = 0;

View File

@@ -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)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index e43cb3cf81be8dfdbb0cbe74835d676c301e9863..15a03c560dc546eaae54c6ca34fbe298adae77be 100644
index 1939f5037376d5968a649c9d90f74edd592a7d5e..f97790842558577238949efbbb21fc31de6b5141 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -306,7 +306,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -308,7 +308,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public double xo;
public double yo;
public double zo;
@@ -25,7 +25,7 @@ index e43cb3cf81be8dfdbb0cbe74835d676c301e9863..15a03c560dc546eaae54c6ca34fbe298
public BlockPos blockPosition; // Gale - Pufferfish - optimize entity coordinate key - private -> public
private ChunkPos chunkPosition;
private Vec3 deltaMovement;
@@ -2004,9 +2004,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -2006,9 +2006,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
/** @deprecated */
@Deprecated
public float getLightLevelDependentMagicValue() {
@@ -45,7 +45,7 @@ index e43cb3cf81be8dfdbb0cbe74835d676c301e9863..15a03c560dc546eaae54c6ca34fbe298
this.absMoveTo(x, y, z);
this.setYRot(yaw % 360.0F);
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index fe9fb934f9118f52e42109ff32e35f1dc95ffe09..ad6a159f5472059c1550c36dd98d83af01bbe31a 100644
index cd5c19380a808719476acc51e8d5c022e627992c..465cfffbbc5db5fb2c95e953db09d3169b52060d 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1690,13 +1690,29 @@ public abstract class Mob extends LivingEntity implements Targeting {

View File

@@ -13,7 +13,7 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric)
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java
index 4f2fa47d094348bb8f86a86e808019ddba56e187..5c7e6b320566473a295f1979d68b3e3edf138895 100644
index afe91d02363bf7385d34447dda8960980ec48443..817556fdee3551c44a5a83f174496d7fd9c6387e 100644
--- a/src/main/java/net/minecraft/world/level/GameRules.java
+++ b/src/main/java/net/minecraft/world/level/GameRules.java
@@ -19,6 +19,8 @@ import java.util.function.BiConsumer;
@@ -32,5 +32,5 @@ index 4f2fa47d094348bb8f86a86e808019ddba56e187..5c7e6b320566473a295f1979d68b3e3e
- this.rules = rules;
+ this.rules = new Object2ObjectOpenHashMap<>(rules); // Gale - Lithium - replace game rules map with optimized collection
// Paper start
// Paper start - Perf: Use array for gamerule storage
int arraySize = rules.keySet().stream().mapToInt(key -> key.gameRuleIndex).max().orElse(-1) + 1;

View File

@@ -33,7 +33,7 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRA
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
index c6bcf4a5d5c48e6f73b8e5d3662ec0d7c288c6c8..8e7488277bc30f83fa39f7435ca9f1724452e92e 100644
index 6a3be2fe851e14f2c9f8b38ad8d27fe36b5240d3..94827fd9a779ccd50b8a4d46f7aae6ca8111fb4a 100644
--- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
@@ -1,5 +1,7 @@
@@ -86,4 +86,4 @@ index c6bcf4a5d5c48e6f73b8e5d3662ec0d7c288c6c8..8e7488277bc30f83fa39f7435ca9f172
+ throttleTracker.object2LongEntrySet().removeIf(entry -> entry.getLongValue() > connectionThrottle); // Gale - Dionysus - replace throttle tracker map with optimized collection
}
}
} // Paper - add closing bracket for if check above
} // Paper - Unix domain socket support

View File

@@ -54,7 +54,7 @@ index 5a0a6de4c6f0d554b9efbb8b3dcf4e0c5bee7baf..ea0df00966cf9900a8a0153099bbb04e
public Raider getLeader(int wave) {
return (Raider) this.groupToLeaderMap.get(wave);
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java
index cdbc925ef61b8b439415f0a89368227890bcecb2..8a467b21867c4c624bbefd0aef5cc14d40391ca2 100644
index 226fb5c88dd43c8008c5237299ef80db9e847af7..a71e6206c6a89708c5d312a73b1144c38f1271c8 100644
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
@@ -47,7 +47,7 @@ public abstract class Raider extends PatrollingMonster {
@@ -81,7 +81,7 @@ index cdbc925ef61b8b439415f0a89368227890bcecb2..8a467b21867c4c624bbefd0aef5cc14d
- if (this.hasActiveRaid() && !flag && ItemStack.matches(itemstack, Raid.getLeaderBannerInstance())) {
+ if (this.hasActiveRaid() && !flag && ItemStack.matches(itemstack, Raid.LEADER_BANNER)) { // Gale - Lithium - cache ominous banner item
// Paper start
// Paper start - EntityPickupItemEvent fixes
if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(this, item, 0, false).isCancelled()) {
return;
@@ -322,7 +322,7 @@ public abstract class Raider extends PatrollingMonster {

View File

@@ -13,10 +13,10 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric)
Licensed under: MIT (https://opensource.org/licenses/MIT)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 15a03c560dc546eaae54c6ca34fbe298adae77be..b9e736bff38d275ce41d626910791ad38aabe128 100644
index f97790842558577238949efbbb21fc31de6b5141..dd8eb98086c4d303c54d0f8bf45fcabd7039686c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -315,6 +315,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -317,6 +317,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public float yRotO;
public float xRotO;
private AABB bb;
@@ -24,7 +24,7 @@ index 15a03c560dc546eaae54c6ca34fbe298adae77be..b9e736bff38d275ce41d626910791ad3
public boolean onGround;
public boolean horizontalCollision;
public boolean verticalCollision;
@@ -1075,6 +1076,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1077,6 +1078,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
// Paper end - detailed watchdog information
public void move(MoverType movementType, Vec3 movement) {

View File

@@ -13,10 +13,10 @@ As part of: Slice (https://github.com/Cryptite/Slice)
Licensed under: MIT (https://opensource.org/licenses/MIT)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index b9e736bff38d275ce41d626910791ad38aabe128..30ce82ac25fb5f93d01b0088822355c78383507e 100644
index dd8eb98086c4d303c54d0f8bf45fcabd7039686c..f077ecfd1d65ca42e6a5dc12d9bfa09688cfe587 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -877,7 +877,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -879,7 +879,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.checkBelowWorld();
if (!this.level().isClientSide) {

View File

@@ -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)
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 7d5e7545b995506ef554dbda70ec5eb8ccb24151..56ee1c3061c854d9b3fdd096c4c70eee909f0f74 100644
index ceb91d3fc2463e0518f889299e21f612476b016a..508d22f505bdc277520900c92fd6d96eb23990e7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1758,7 +1758,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1757,7 +1757,17 @@ public class ServerLevel extends Level implements WorldGenLevel {
@Override
public void destroyBlockProgress(int entityId, BlockPos pos, int progress) {
@@ -35,7 +35,7 @@ index 7d5e7545b995506ef554dbda70ec5eb8ccb24151..56ee1c3061c854d9b3fdd096c4c70eee
// CraftBukkit start
Player entityhuman = null;
@@ -1781,7 +1791,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1780,7 +1790,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// CraftBukkit end
if (d0 * d0 + d1 * d1 + d2 * d2 < 1024.0D) {

View File

@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 5eadc4ce30f77794f50b612549557f8b5d81f21a..45ed45e636421cc49d78f05a0e75c9a88f13c112 100644
index 65cc4cc0051476e761b6b0584f5e7281b7a2fac6..294b612534194180a9af7d9039bf3df5c08c176d 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -13,6 +13,8 @@ import java.net.SocketAddress;
@@ -79,7 +79,7 @@ index 5eadc4ce30f77794f50b612549557f8b5d81f21a..45ed45e636421cc49d78f05a0e75c9a8
this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer);
UUID uuid = entityplayer.getUUID();
@@ -832,6 +837,7 @@ public abstract class PlayerList {
// Paper end
// Paper end - Expand PlayerRespawnEvent
entityplayer.stopRiding(); // CraftBukkit
this.players.remove(entityplayer);
+ this.removeFromSendAllPlayerInfoBuckets(entityplayer); // Gale - Purpur - spread out sending all player info
@@ -157,7 +157,7 @@ index 5eadc4ce30f77794f50b612549557f8b5d81f21a..45ed45e636421cc49d78f05a0e75c9a8
}
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 544b610f7c42a57099115fb5f76245f6c7a6eca3..d96e4d710ceedb80e1c12c88705181eb12975ca7 100644
index ad291fa31741af85c86dab66b753705f96a0634a..878c545c6f8e97fdcbf00cc413898919e534aa81 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -39,6 +39,7 @@ import net.minecraft.network.syncher.SynchedEntityData;

View File

@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 9e014a140262f5dfcdcb9b21afd18ca275930bb2..e716cbde9bbf3837b614ea1ddd4f881178d938d0 100644
index 6ddb0abcc89af93e4cff5b0e461bc8490aacbbc3..bd08b6f29177cdfc165416790cac3093499b1871 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -4,6 +4,9 @@ import com.mojang.authlib.GameProfile;
@@ -129,7 +129,7 @@ index 9e014a140262f5dfcdcb9b21afd18ca275930bb2..e716cbde9bbf3837b614ea1ddd4f8811
}
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 5a2b43ea98478a67ad712980ee8e6dbe98871433..9583caa7434a20c1c5d1bbd601aec988d2dfb97b 100644
index a4b86d40728341cf9baeacc8c0478cc30c0b4f50..d9c6d49aed9d84c1f317748e113acb068d1e488d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -8,6 +8,8 @@ import com.mojang.brigadier.StringReader;
@@ -141,7 +141,7 @@ index 5a2b43ea98478a67ad712980ee8e6dbe98871433..9583caa7434a20c1c5d1bbd601aec988
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.objects.ObjectIterator;
import java.net.SocketAddress;
@@ -3411,6 +3413,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -3413,6 +3415,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
@Override

View File

@@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
index a0d69082f5fdeee15bba0d76b940aa48cff36fa9..bda773986fbe422840874e0934f805a5c2ffab21 100644
index 73823d637d9859797d57507932d132b21ba46d70..cea5bef4e50ffaa4015f9224625aa6216c65f3b1 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
@@ -174,7 +174,7 @@ public class ServerPlayerGameMode {
@@ -20,7 +20,7 @@ index a0d69082f5fdeee15bba0d76b940aa48cff36fa9..bda773986fbe422840874e0934f805a5
this.debugLogging(pos, false, sequence, "too far");
} else if (pos.getY() >= worldHeight) {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 9583caa7434a20c1c5d1bbd601aec988d2dfb97b..02b80a9ecfffb83f05c9a36c91c9508cada0062d 100644
index d9c6d49aed9d84c1f317748e113acb068d1e488d..ea8a136e2ca0aebc668391e15becd48f7d0e586f 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -251,7 +251,7 @@ import org.bukkit.inventory.SmithingInventory;
@@ -46,7 +46,7 @@ index 9583caa7434a20c1c5d1bbd601aec988d2dfb97b..02b80a9ecfffb83f05c9a36c91c9508c
@Override
public void tick() {
if (this.ackBlockChangesUpTo > -1) {
@@ -1932,7 +1939,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1934,7 +1941,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
BlockPos blockposition = movingobjectpositionblock.getBlockPos();
Vec3 vec3d1 = Vec3.atCenterOf(blockposition);
@@ -55,7 +55,7 @@ index 9583caa7434a20c1c5d1bbd601aec988d2dfb97b..02b80a9ecfffb83f05c9a36c91c9508c
Vec3 vec3d2 = vec3d.subtract(vec3d1);
double d0 = 1.0000001D;
@@ -2720,7 +2727,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2722,7 +2729,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
AABB axisalignedbb = entity.getBoundingBox();

View File

@@ -13,7 +13,7 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper)
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 30ce82ac25fb5f93d01b0088822355c78383507e..c5b8b8cf9be9e9088877562a3994be9d7f988cc9 100644
index f077ecfd1d65ca42e6a5dc12d9bfa09688cfe587..d1563e21e22c92465db57521ee4fc3619c286997 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3696,6 +3696,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -28,8 +28,8 @@ index 30ce82ac25fb5f93d01b0088822355c78383507e..c5b8b8cf9be9e9088877562a3994be9d
+ }
+ // Gale end - MultiPaper - load portal destination chunk before entity teleport
entity.restoreFrom(this);
entity.moveTo(position.x, position.y, position.z, yaw, pitch); // Paper - use EntityPortalExitEvent values
entity.setDeltaMovement(velocity); // Paper - use EntityPortalExitEvent values
entity.moveTo(position.x, position.y, position.z, yaw, pitch); // Paper - EntityPortalExitEvent
entity.setDeltaMovement(velocity); // Paper - EntityPortalExitEvent
diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java
index 68373c02373d9452613710915beb0d5951c2b531..04e7ba1e2a80dffacc4063872ce4458577876f9f 100644
--- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java

View File

@@ -13,12 +13,12 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper)
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
index dfeb3e336e06ef01f5401a362755030db942bb07..518b40a27a8d4d015caa7e67d355839628c965ef 100644
index 7d7d37334321c844958ce09e77547dd61dcba6c8..0b899372d5e7ebbb490684514e8f764efb46f3d0 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
@@ -71,7 +71,15 @@ public class PhantomSpawner implements CustomSpawner {
if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper
if (randomsource.nextInt(j) >= world.paperConfig().entities.behavior.playerInsomniaStartTicks) { // Paper - Ability to control player's insomnia and phantoms
BlockPos blockposition1 = blockposition.above(20 + randomsource.nextInt(15)).east(-10 + randomsource.nextInt(21)).south(-10 + randomsource.nextInt(21));
- BlockState iblockdata = world.getBlockState(blockposition1);
+ // Gale start - MultiPaper - don't load chunks to spawn phantoms

View File

@@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index c5b8b8cf9be9e9088877562a3994be9d7f988cc9..5d39f7b7e9fb7a51245e399f0a828e7810b7b51b 100644
index d1563e21e22c92465db57521ee4fc3619c286997..d0f7351802cb7ab1130254b102ff059c413c10af 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4613,6 +4613,16 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -28,10 +28,10 @@ index c5b8b8cf9be9e9088877562a3994be9d7f988cc9..5d39f7b7e9fb7a51245e399f0a828e78
return this.chunkPosition;
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index a60232d5da874517758a0ed0351ba522526169e8..f23e0cd2795ca2fd5f1b5f4b12b7daacf2ce6897 100644
index 2935c02fde4b81ac3b8b1c2cc2422f9e01413e7b..2033a14d313db7012733b8de508fc781b3b38327 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2015,19 +2015,43 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2016,19 +2016,43 @@ public abstract class LivingEntity extends Entity implements Attackable {
public boolean onClimbableCached() {
if (!this.blockPosition().equals(this.lastClimbingPosition)) {

View File

@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 4e51fb4555349bc486e80bcd72b58e3ede1bd1f8..c71e2add9e0b3d26fd501de949dafe009510784f 100644
index cda784d7dc88988ed6c64c13c8cac2bb549ec219..fe076da59b91301db720c0d06cd6596aa201814a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2980,6 +2980,25 @@ public final class CraftServer implements Server {
@@ -2979,6 +2979,25 @@ public final class CraftServer implements Server {
};
}

View File

@@ -59,7 +59,7 @@ index 066b9e4c4f0e7773548eda045cdd1ca8445221d2..6be80b8dfd28a5e25a7f6ae603d8510e
setListData(vector);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 557bfd1405603d1cd7e5210e406e63283947179b..69f2d3bb9ec491d3953b84619c7b0067f844e3a1 100644
index 36fc043b282f64f329e5fcf00c81f5d9f2412ece..8ef27f52b8eda633135f59e68e53b5db271b65f7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1056,6 +1056,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -79,10 +79,10 @@ index 557bfd1405603d1cd7e5210e406e63283947179b..69f2d3bb9ec491d3953b84619c7b0067
tps5.add(currentTps, diff);
tps15.add(currentTps, diff);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index c71e2add9e0b3d26fd501de949dafe009510784f..b8d8e5af47eb1287b7e1b15cb53e5ee83bcfc423 100644
index fe076da59b91301db720c0d06cd6596aa201814a..1b58377593cba07101d714e38592041df78d3e52 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2980,8 +2980,27 @@ public final class CraftServer implements Server {
@@ -2979,8 +2979,27 @@ public final class CraftServer implements Server {
};
}

View File

@@ -23,7 +23,7 @@ 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.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 69f2d3bb9ec491d3953b84619c7b0067f844e3a1..6e20843dce5a3446d7c11ad1c0fb85639bb6981f 100644
index 8ef27f52b8eda633135f59e68e53b5db271b65f7..e9fc86639a7e7ba6525d63059aed412b8effd2d0 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1106,6 +1106,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -50,7 +50,7 @@ index 69f2d3bb9ec491d3953b84619c7b0067f844e3a1..6e20843dce5a3446d7c11ad1c0fb8563
this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
this.waitUntilNextTick();
@@ -1304,9 +1311,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1298,9 +1305,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
protected void waitUntilNextTick() {
//this.executeAll(); // Paper - move this into the tick method for timings

View File

@@ -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.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index b8d8e5af47eb1287b7e1b15cb53e5ee83bcfc423..37ccd8632b4f78dedee322c12ed8aa580b817ae1 100644
index 1b58377593cba07101d714e38592041df78d3e52..00ac6a86d3d40364332b5839bc497dd7bf6ed395 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3288,4 +3288,22 @@ public final class CraftServer implements Server {
@@ -3287,4 +3287,22 @@ public final class CraftServer implements Server {
}
// Paper end

View File

@@ -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)
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 5d39f7b7e9fb7a51245e399f0a828e7810b7b51b..e6d30f468dc1cbc305b1ce842c7387e63aacbbc5 100644
index d0f7351802cb7ab1130254b102ff059c413c10af..e60b426a2a02a417496ae420023a466c84fdd891 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2121,8 +2121,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -2123,8 +2123,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public void playerTouch(Player player) {}
public void push(Entity entity) {

View File

@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index e6d30f468dc1cbc305b1ce842c7387e63aacbbc5..8684e769b1658aa2d8fe598b77c3f99129a1962d 100644
index e60b426a2a02a417496ae420023a466c84fdd891..d5606d5cc2ebe75c21925071663ea013824c7af6 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1238,9 +1238,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -1240,9 +1240,19 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
this.tryCheckInsideBlocks();

View File

@@ -26,7 +26,7 @@ index b47a8a082170bcb630c4354be7c77a4cac71d105..b49e3f2cdc1fa5ff3723fae452404664
double d1 = (double) (center.y - maxRange);
double d2 = (double) (center.x + maxRange);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 6f03370c6c05cbbbadf28f19c4263ded15b559d7..a9d6870abe34e929c476ae199549e26643ef3343 100644
index 09e13d3bf936e8a4b1352a4733b7525c1886d8fa..0a0106d9192e6913f7579a4fdd77a9c0fc8366ba 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -453,7 +453,7 @@ public class ServerPlayer extends Player {
@@ -61,7 +61,7 @@ index 1ef089dbf83de35d875c00efdf468c397be56978..b9f5dc95f859acb8f8fd4739537485af
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
index a2093158e57d5f43c4afa66386481b82b3c4c3c4..52506b0b2909cc1b4d3999a99bd012401dbc5bd8 100644
index 5706c9b744b660d6f7639b8152dce82799c4b466..460aba465eac5cb8d25456c0d4d04a132cee43c7 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
@@ -86,7 +86,7 @@ public class FishingHook extends Projectile {
@@ -96,7 +96,7 @@ index ea0df00966cf9900a8a0153099bbb04e5b47116d..1168465f6b9414b08680660413c62967
this.level = world;
this.id = nbt.getInt("Id");
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 3fde433edfd8835bf162cf39dd9999aa6dc5832d..ee76770b4f0cfadd2f7953c1328a2b6144379742 100644
index ce8e39d4bf4c7474e1e8694312e1985327a88e62..525e41f3c38c9a79e237f32ac49ba02ab3438c30 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -92,7 +92,7 @@ public class Explosion {
@@ -109,7 +109,7 @@ index 3fde433edfd8835bf162cf39dd9999aa6dc5832d..ee76770b4f0cfadd2f7953c1328a2b61
this.hitPlayers = Maps.newHashMap();
this.level = world;
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index 9a14425e7de3eeca8f489bce03f5c9127811a6aa..c7ebc50201a96b58dd3828a30eff1292a48a532e 100644
index 850fc0906f23f1073e6d799222ed442b88af1bff..ff92b93dbffa6f3463c62d55cec535a3871ed7d8 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -360,7 +360,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {
@@ -122,7 +122,7 @@ index 9a14425e7de3eeca8f489bce03f5c9127811a6aa..c7ebc50201a96b58dd3828a30eff1292
@Override
diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
index c1ff2e15bc5da1a642872ac0fdcdc457e8abb063..5493a50ff2b188fb485210c1dcd6d52ecebb39e4 100644
index 8d57a03793934c8c0b259974bd4d9f9c2cab884d..2bff5f04e67b47bb3fbd6c9b1d235be1bb829b03 100644
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
@@ -472,7 +472,7 @@ public class EndDragonFight {
@@ -137,7 +137,7 @@ index c1ff2e15bc5da1a642872ac0fdcdc457e8abb063..5493a50ff2b188fb485210c1dcd6d52e
@@ -490,7 +490,7 @@ public class EndDragonFight {
this.portalLocation = this.portalLocation.atY(this.level.getMinBuildHeight() + 1);
}
// Paper end
// Paper end - Prevent "softlocked" exit portal generation
- if (worldgenendtrophy.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), RandomSource.create(), this.portalLocation)) {
+ if (worldgenendtrophy.place(FeatureConfiguration.NONE, this.level, this.level.getChunkSource().getGenerator(), this.level.random, this.portalLocation)) { // Gale - Patina - reduce RandomSource instances
int i = Mth.positiveCeilDiv(4, 16);

View File

@@ -18,10 +18,10 @@ this patch is focused around the sensors used for ai
delete the line of sight cache less often and use a faster nearby comparison
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 3f0fe74372c1fe440688da2b058ceae106180ed3..dbf3f61227198a0ce5c0521fec933aafa3199154 100644
index 2033a14d313db7012733b8de508fc781b3b38327..a66e4586b7a0d4498ac7b9257fb93608981d6295 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1022,10 +1022,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1023,10 +1023,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
if (entity != null) {