diff --git a/gradle.properties b/gradle.properties index db08d96..85e5eb5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = space.bxteam.divinemc mcVersion = 1.20.6 version = 1.20.6-R0.1-SNAPSHOT -purpurRef = 72192634b0629433aa531dedaf8c918755f82fbe +purpurRef = f1c87e4fee9a8e7d513f9e284d402a21fd73ec3a org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0001-Divine-Branding.patch b/patches/api/0001-Divine-Branding.patch index 556f349..63bc1e8 100644 --- a/patches/api/0001-Divine-Branding.patch +++ b/patches/api/0001-Divine-Branding.patch @@ -23,10 +23,10 @@ index 7107eabf02d9d9b69d97c978ba421ad52031ec3f..f6005cb48750fdcf903609f3fb693895 * Gets the {@code ServerBuildInfo}. * diff --git a/src/main/java/org/bukkit/command/defaults/VersionCommand.java b/src/main/java/org/bukkit/command/defaults/VersionCommand.java -index 3d29c47ac0620af82d990faf5dfc266c6f0235f1..d1b71e11ddf1ad965f5631404dae12521c63bd3a 100644 +index c880d0010849ab733ad13bbd18fab3c864d0cf61..de6522adba933dca90338bfb19f833486e696b8d 100644 --- a/src/main/java/org/bukkit/command/defaults/VersionCommand.java +++ b/src/main/java/org/bukkit/command/defaults/VersionCommand.java -@@ -258,7 +258,7 @@ public class VersionCommand extends BukkitCommand { +@@ -259,7 +259,7 @@ public class VersionCommand extends BukkitCommand { // Purpur start int distance = getVersionFetcher().distance(); final Component message = Component.join(net.kyori.adventure.text.JoinConfiguration.separator(Component.newline()), diff --git a/patches/api/0005-Delete-Timings.patch b/patches/api/0005-Delete-Timings.patch index fae3124..d47eca4 100644 --- a/patches/api/0005-Delete-Timings.patch +++ b/patches/api/0005-Delete-Timings.patch @@ -727,10 +727,10 @@ index 199789d56d22fcb1b77ebd56805cc28aa5a5ab0a..00000000000000000000000000000000 -} diff --git a/src/main/java/co/aikar/timings/TimingHistory.java b/src/main/java/co/aikar/timings/TimingHistory.java deleted file mode 100644 -index 02e88db63be2d5e31da6b65157ba7b971b1f10f3..0000000000000000000000000000000000000000 +index 2d87237ea99d42c6ce896d52a1b2e5c3ec4d4568..0000000000000000000000000000000000000000 --- a/src/main/java/co/aikar/timings/TimingHistory.java +++ /dev/null -@@ -1,355 +0,0 @@ +@@ -1,352 +0,0 @@ -/* - * This file is licensed under the MIT License (MIT). - * @@ -884,17 +884,14 @@ index 02e88db63be2d5e31da6b65157ba7b971b1f10f3..00000000000000000000000000000000 - } - } - ), -- toObjectMapper(input.tileEntityCounts.entrySet(), -- new Function, JSONPair>() { -- @NotNull -- @Override -- public JSONPair apply(Map.Entry entry) { -- tileEntityTypeSet.add(entry.getKey()); -- return pair( -- String.valueOf(entry.getKey().ordinal()), -- entry.getValue().count() -- ); -- } +- toObjectMapper( +- input.tileEntityCounts.entrySet(), +- entry -> { +- tileEntityTypeSet.add(entry.getKey()); +- return pair( +- String.valueOf(entry.getKey().ordinal()), +- entry.getValue().count() +- ); - } - ) - ); @@ -2126,10 +2123,10 @@ index abe256e1e45ce28036da4aa1586715bc8a1a3414..b359306500e640f4b0761ae9aa996cf6 } diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java -index fdedac32544be6534288c8ba28abe7f5c4c56f3b..6d5beec81b151e634e514b542f554f00cb3719e8 100644 +index 7740ad53796d08584bb0110f99af5639993e4d71..f0da5a8ae7e989e120f9d5ef2a417a9840aed7d0 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java -@@ -38,7 +38,6 @@ public class SimpleCommandMap implements CommandMap { +@@ -39,7 +39,6 @@ public class SimpleCommandMap implements CommandMap { register("bukkit", new VersionCommand("version")); register("bukkit", new ReloadCommand("reload")); //register("bukkit", new PluginsCommand("plugins")); // Paper @@ -2137,15 +2134,15 @@ index fdedac32544be6534288c8ba28abe7f5c4c56f3b..6d5beec81b151e634e514b542f554f00 } public void setFallbackCommands() { -@@ -70,7 +69,6 @@ public class SimpleCommandMap implements CommandMap { +@@ -71,7 +70,6 @@ public class SimpleCommandMap implements CommandMap { */ @Override public boolean register(@NotNull String label, @NotNull String fallbackPrefix, @NotNull Command command) { - command.timings = co.aikar.timings.TimingsManager.getCommandTiming(fallbackPrefix, command); // Paper - label = label.toLowerCase(java.util.Locale.ENGLISH).trim(); - fallbackPrefix = fallbackPrefix.toLowerCase(java.util.Locale.ENGLISH).trim(); + label = label.toLowerCase(Locale.ROOT).trim(); + fallbackPrefix = fallbackPrefix.toLowerCase(Locale.ROOT).trim(); boolean registered = register(label, command, false, fallbackPrefix); -@@ -165,17 +163,9 @@ public class SimpleCommandMap implements CommandMap { +@@ -166,17 +164,9 @@ public class SimpleCommandMap implements CommandMap { parsedArgs = event.getArgs(); // Purpur end @@ -2164,10 +2161,10 @@ index fdedac32544be6534288c8ba28abe7f5c4c56f3b..6d5beec81b151e634e514b542f554f00 server.getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper //target.timings.stopTiming(); // Spigot // Paper diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 07a9c9e254188c251165ca84c8e961fccda01175..0c650238217d5a1650f7b6ae17695b52f3c0a74b 100644 +index 003bece642b682985625db93cad93026352bfc66..a5dbfdf1a67cac61a3f5770db26b21307ea3594d 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -719,12 +719,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -720,12 +720,7 @@ public final class SimplePluginManager implements PluginManager { throw new IllegalPluginAccessException("Plugin attempted to register " + event + " while not enabled"); } @@ -2181,7 +2178,7 @@ index 07a9c9e254188c251165ca84c8e961fccda01175..0c650238217d5a1650f7b6ae17695b52 } @NotNull -@@ -954,8 +949,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -955,8 +950,7 @@ public final class SimplePluginManager implements PluginManager { @Override public boolean useTimings() { @@ -2191,7 +2188,7 @@ index 07a9c9e254188c251165ca84c8e961fccda01175..0c650238217d5a1650f7b6ae17695b52 } /** -@@ -964,7 +958,7 @@ public final class SimplePluginManager implements PluginManager { +@@ -965,7 +959,7 @@ public final class SimplePluginManager implements PluginManager { * @param use True if per event timing code should be used */ public void useTimings(boolean use) { diff --git a/patches/server/0002-Divine-Configuration.patch b/patches/server/0002-Divine-Configuration.patch index 2df7383..5e2fa18 100644 --- a/patches/server/0002-Divine-Configuration.patch +++ b/patches/server/0002-Divine-Configuration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Divine Configuration diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 957da64ddd0a56f457122a3f590b45e348f22382..f7db49d673853f31eacc76f5286b6a528b0390b6 100644 +index 956df6b435bf04f67f321715cceafd7c1e0165e5..be6b3add037e9c95e6c93a3ee6b413e5a79a2846 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -56,6 +56,7 @@ import net.minecraft.world.level.GameType; @@ -62,10 +62,10 @@ index 4beada452d014ec7dc7c167466ec2af3c5bfcd33..63629a36572cd83977886c016084fd5e 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 f6b6d0d753e81d58cd21ba41d1e2f3e63267b743..b2f45d888604cdf4b98e86a8040962af27e7feda 100644 +index 07a04dcbd48430102268f8f44e9bce437214a00f..53fe8501a477a2cb436792cc02601de4de7f3f54 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -263,6 +263,8 @@ import net.md_5.bungee.api.chat.BaseComponent; // Spigot +@@ -264,6 +264,8 @@ import net.md_5.bungee.api.chat.BaseComponent; // Spigot import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper @@ -74,7 +74,7 @@ index f6b6d0d753e81d58cd21ba41d1e2f3e63267b743..b2f45d888604cdf4b98e86a8040962af public final class CraftServer implements Server { private final String serverName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName(); // Paper private final String serverVersion; -@@ -1048,6 +1050,7 @@ public final class CraftServer implements Server { +@@ -1071,6 +1073,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur @@ -82,7 +82,7 @@ index f6b6d0d753e81d58cd21ba41d1e2f3e63267b743..b2f45d888604cdf4b98e86a8040962af 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)) -@@ -1064,6 +1067,7 @@ public final class CraftServer implements Server { +@@ -1087,6 +1090,7 @@ public final class CraftServer implements Server { } world.spigotConfig.init(); // Spigot world.purpurConfig.init(); // Purpur @@ -90,7 +90,7 @@ index f6b6d0d753e81d58cd21ba41d1e2f3e63267b743..b2f45d888604cdf4b98e86a8040962af } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -1081,6 +1085,7 @@ public final class CraftServer implements Server { +@@ -1104,6 +1108,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.registerCommands(); // Spigot io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur @@ -98,7 +98,7 @@ index f6b6d0d753e81d58cd21ba41d1e2f3e63267b743..b2f45d888604cdf4b98e86a8040962af this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -3108,6 +3113,13 @@ public final class CraftServer implements Server { +@@ -3131,6 +3136,13 @@ public final class CraftServer implements Server { } // Purpur end @@ -113,7 +113,7 @@ index f6b6d0d753e81d58cd21ba41d1e2f3e63267b743..b2f45d888604cdf4b98e86a8040962af public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 6d8e9cf4ee496b8748654e792ce438f512c3d946..d62bb6611ec37ec9c35712810cc65a60cb88ed6e 100644 +index e2b79f8eacd34d2d20f8be34b402820723e37ae3..6aff380ee0224a438b36fa83cfbede4b57996d06 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -184,6 +184,14 @@ public class Main { diff --git a/patches/server/0005-Add-missing-purpur-config-options.patch b/patches/server/0005-Add-missing-purpur-config-options.patch index 2e8a641..90dd964 100644 --- a/patches/server/0005-Add-missing-purpur-config-options.patch +++ b/patches/server/0005-Add-missing-purpur-config-options.patch @@ -215,7 +215,7 @@ index 06dc1e8825ead872b668d357b0071c5429c2f09b..7cfa57300c9f94ef5a3ad23ce1728d93 org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6717941d18dbd6871b4613106b9787063e11722f..3fddce6242c5be160259b93f8527a8022a6adac6 100644 +index d8184b10271eab447b3645c65d19328387cc24d3..5eab393ae2554e56a3fb7a59ffb062619f2ae6c2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1178,7 +1178,17 @@ public class PurpurWorldConfig { @@ -236,7 +236,7 @@ index 6717941d18dbd6871b4613106b9787063e11722f..3fddce6242c5be160259b93f8527a802 allayRidable = getBoolean("mobs.allay.ridable", allayRidable); allayRidableInWater = getBoolean("mobs.allay.ridable-in-water", allayRidableInWater); allayControllable = getBoolean("mobs.allay.controllable", allayControllable); -@@ -1295,7 +1305,15 @@ public class PurpurWorldConfig { +@@ -1319,7 +1329,15 @@ public class PurpurWorldConfig { public double camelMovementSpeedMin = 0.09D; public double camelMovementSpeedMax = 0.09D; public int camelBreedingTicks = 6000; @@ -252,7 +252,7 @@ index 6717941d18dbd6871b4613106b9787063e11722f..3fddce6242c5be160259b93f8527a802 camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater); camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin); camelMaxHealthMax = getDouble("mobs.camel.attributes.max_health.max", camelMaxHealthMax); -@@ -1723,7 +1741,17 @@ public class PurpurWorldConfig { +@@ -1747,7 +1765,17 @@ public class PurpurWorldConfig { public boolean frogControllable = true; public float frogRidableJumpHeight = 0.65F; public int frogBreedingTicks = 6000; @@ -270,7 +270,7 @@ index 6717941d18dbd6871b4613106b9787063e11722f..3fddce6242c5be160259b93f8527a802 frogRidable = getBoolean("mobs.frog.ridable", frogRidable); frogRidableInWater = getBoolean("mobs.frog.ridable-in-water", frogRidableInWater); frogControllable = getBoolean("mobs.frog.controllable", frogControllable); -@@ -2676,7 +2704,15 @@ public class PurpurWorldConfig { +@@ -2700,7 +2728,15 @@ public class PurpurWorldConfig { public boolean snifferControllable = true; public double snifferMaxHealth = 14.0D; public int snifferBreedingTicks = 6000; @@ -286,7 +286,7 @@ index 6717941d18dbd6871b4613106b9787063e11722f..3fddce6242c5be160259b93f8527a802 snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable); snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater); snifferControllable = getBoolean("mobs.sniffer.controllable", snifferControllable); -@@ -2775,7 +2811,17 @@ public class PurpurWorldConfig { +@@ -2799,7 +2835,17 @@ public class PurpurWorldConfig { public boolean tadpoleRidable = false; public boolean tadpoleRidableInWater = true; public boolean tadpoleControllable = true; @@ -304,7 +304,7 @@ index 6717941d18dbd6871b4613106b9787063e11722f..3fddce6242c5be160259b93f8527a802 tadpoleRidable = getBoolean("mobs.tadpole.ridable", tadpoleRidable); tadpoleRidableInWater = getBoolean("mobs.tadpole.ridable-in-water", tadpoleRidableInWater); tadpoleControllable = getBoolean("mobs.tadpole.controllable", tadpoleControllable); -@@ -2991,7 +3037,17 @@ public class PurpurWorldConfig { +@@ -3015,7 +3061,17 @@ public class PurpurWorldConfig { public boolean wardenRidable = false; public boolean wardenRidableInWater = true; public boolean wardenControllable = true; diff --git a/patches/server/0010-Fix-MC-172801.patch b/patches/server/0010-Fix-MC-172801.patch index 1570786..280644d 100644 --- a/patches/server/0010-Fix-MC-172801.patch +++ b/patches/server/0010-Fix-MC-172801.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix MC-172801 Original post on Mojira: https://bugs.mojang.com/browse/MC-172801 diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 74ec7345ef6a55742e05fe6e6a96eed90ab59f81..30348e110ca4df1d331ef509b661231b3af889f7 100644 +index 546273a048eeae9948176137344c05590c931b21..45f9690271f0d0ec9ab81b20d16bf9940a0b1bfe 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3127,7 +3127,13 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3121,7 +3121,13 @@ public abstract class LivingEntity extends Entity implements Attackable { } protected float getFlyingSpeed() { diff --git a/patches/server/0021-Optimize-CraftServer.getWorld-UUID.patch b/patches/server/0021-Optimize-CraftServer.getWorld-UUID.patch index c74ab32..c75a1a3 100644 --- a/patches/server/0021-Optimize-CraftServer.getWorld-UUID.patch +++ b/patches/server/0021-Optimize-CraftServer.getWorld-UUID.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimize CraftServer.getWorld(UUID) Original code by MultiPaper - https://github.com/MultiPaper/MultiPaper diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b2f45d888604cdf4b98e86a8040962af27e7feda..d14f612f2e73374cba8d2a9724d899a62e7cf5c8 100644 +index 53fe8501a477a2cb436792cc02601de4de7f3f54..e21f1398c2efba9856718cb30328ac6ec5a4484e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -264,6 +264,7 @@ import javax.annotation.Nullable; // Paper +@@ -265,6 +265,7 @@ import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper import space.bxteam.divinemc.configuration.DivineConfig; // DivineMC @@ -17,7 +17,7 @@ index b2f45d888604cdf4b98e86a8040962af27e7feda..d14f612f2e73374cba8d2a9724d899a6 public final class CraftServer implements Server { private final String serverName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName(); // Paper -@@ -282,6 +283,7 @@ public final class CraftServer implements Server { +@@ -283,6 +284,7 @@ public final class CraftServer implements Server { protected final DedicatedPlayerList playerList; private final Map worlds = new LinkedHashMap(); // private final Map, Registry> registries = new HashMap<>(); // Paper - replace with RegistryAccess @@ -25,15 +25,15 @@ index b2f45d888604cdf4b98e86a8040962af27e7feda..d14f612f2e73374cba8d2a9724d899a6 private YamlConfiguration configuration; private YamlConfiguration commandsConfiguration; private final Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions())); -@@ -1465,6 +1467,7 @@ public final class CraftServer implements Server { +@@ -1488,6 +1490,7 @@ public final class CraftServer implements Server { this.getLogger().log(Level.SEVERE, null, ex); } + this.worldsByUUID.remove(world.getUID()); // DivineMC - MultiPaper - optimize getWorld(UUID) - this.worlds.remove(world.getName().toLowerCase(java.util.Locale.ENGLISH)); + this.worlds.remove(world.getName().toLowerCase(Locale.ROOT)); this.console.removeLevel(handle); return true; -@@ -1483,6 +1486,7 @@ public final class CraftServer implements Server { +@@ -1506,6 +1509,7 @@ public final class CraftServer implements Server { @Override public World getWorld(UUID uid) { @@ -41,11 +41,11 @@ index b2f45d888604cdf4b98e86a8040962af27e7feda..d14f612f2e73374cba8d2a9724d899a6 for (World world : this.worlds.values()) { if (world.getUID().equals(uid)) { return world; -@@ -1506,6 +1510,7 @@ public final class CraftServer implements Server { +@@ -1529,6 +1533,7 @@ public final class CraftServer implements Server { System.out.println("World " + world.getName() + " is a duplicate of another world and has been prevented from loading. Please delete the uid.dat file from " + world.getName() + "'s world directory if you want to be able to load the duplicate world."); return; } + this.worldsByUUID.put(world.getUID(), world); // DivineMC - MultiPaper - optimize getWorld(UUID) - this.worlds.put(world.getName().toLowerCase(java.util.Locale.ENGLISH), world); + this.worlds.put(world.getName().toLowerCase(Locale.ROOT), world); } diff --git a/patches/server/0028-lithium-entity.fast_elytra_check-entity.fast_hand_sw.patch b/patches/server/0028-lithium-entity.fast_elytra_check-entity.fast_hand_sw.patch index 2ece413..23e3788 100644 --- a/patches/server/0028-lithium-entity.fast_elytra_check-entity.fast_hand_sw.patch +++ b/patches/server/0028-lithium-entity.fast_elytra_check-entity.fast_hand_sw.patch @@ -7,10 +7,10 @@ Original code by CaffeineMC, licensed under LGPL v3 You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 5d24cbb8a75cf3d3956e165fbe9111b42814b01c..a63a1b6901b03a446402593a8db7381158861e7c 100644 +index 5d1a21232cfcd21e080d8a23003406af2e0b09b1..def38ac6896ccdd7bab344cec13c76d74817e001 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2646,6 +2646,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2640,6 +2640,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } protected void updateSwingTime() { @@ -18,7 +18,7 @@ index 5d24cbb8a75cf3d3956e165fbe9111b42814b01c..a63a1b6901b03a446402593a8db73811 int i = this.getCurrentSwingDuration(); if (this.swinging) { -@@ -3619,6 +3620,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3613,6 +3614,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } private void updateFallFlying() { diff --git a/patches/server/0035-Delete-Timings.patch b/patches/server/0035-Delete-Timings.patch index b95f89a..ca32439 100644 --- a/patches/server/0035-Delete-Timings.patch +++ b/patches/server/0035-Delete-Timings.patch @@ -863,7 +863,7 @@ index 8c134a642ccaf3530022f2e675a858d726e1dda4..d6daa27a8d7aca00b181e90d789f4249 } catch (Exception exception) { if (exception instanceof ReportedException) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a57ea225fb9951421d2026928c26f351d1b58cca..9fa1c5d6a8f313cd3d0f99131da60b640fff5587 100644 +index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff931f0f980d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -3,7 +3,6 @@ package net.minecraft.server; @@ -983,7 +983,7 @@ index a57ea225fb9951421d2026928c26f351d1b58cca..9fa1c5d6a8f313cd3d0f99131da60b64 private void logTickMethodTime(long tickStartTime) { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index d0b2491da0f072d9be53ad738549c0a962bcadec..7140adf3dcace6f082540663e2cfdf4773a9c0e5 100644 +index 1e74d2e2840dbe17c67e81683fdf451e2de8cd6f..7140adf3dcace6f082540663e2cfdf4773a9c0e5 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -64,9 +64,6 @@ import org.apache.logging.log4j.Level; @@ -1000,7 +1000,7 @@ index d0b2491da0f072d9be53ad738549c0a962bcadec..7140adf3dcace6f082540663e2cfdf47 } // Paper start command.set(event.getCommand()); -- if (event.getCommand().toLowerCase().startsWith("timings") && event.getCommand().toLowerCase().matches("timings (report|paste|get|merged|seperate)")) { +- if (event.getCommand().toLowerCase(java.util.Locale.ROOT).startsWith("timings") && event.getCommand().toLowerCase(java.util.Locale.ROOT).matches("timings (report|paste|get|merged|seperate)")) { - org.bukkit.command.BufferedCommandSender sender = new org.bukkit.command.BufferedCommandSender(); - Waitable waitable = new Waitable<>() { - @Override @@ -1115,7 +1115,7 @@ index 8120f39a9689dae1233b243b74825e9ff110eac3..4203dae9628b0576cc0b9a9160dca985 return this != EntityType.PLAYER && this != EntityType.LLAMA_SPIT && this != EntityType.WITHER && this != EntityType.BAT && this != EntityType.ITEM_FRAME && this != EntityType.GLOW_ITEM_FRAME && this != EntityType.LEASH_KNOT && this != EntityType.PAINTING && this != EntityType.END_CRYSTAL && this != EntityType.EVOKER_FANGS; } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a63a1b6901b03a446402593a8db7381158861e7c..fcb349860ef9d11db9a8f74a72e230000472937b 100644 +index def38ac6896ccdd7bab344cec13c76d74817e001..e79bab8808b113c36b3e89c977d067877b2bdd4f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -150,8 +150,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -1235,7 +1235,7 @@ index cd0e43f4c53a746dd6183a8406269f9b11ad3571..54657ac895fb2fa9c58910d5421f0082 private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry(); public CraftPersistentDataContainer persistentDataContainer; diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index d62bb6611ec37ec9c35712810cc65a60cb88ed6e..93cf19c3bb09f4b639c60d1093181256b93d612a 100644 +index 6aff380ee0224a438b36fa83cfbede4b57996d06..e8fa33e0c8a8d9847218a45e9aceba3b88aee4f1 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -362,8 +362,10 @@ public class Main { @@ -1355,10 +1355,10 @@ index d3ec817e95628f1fc8be4a29c9a0f13c7d5fd552..e9798517b9211c50a20ea5c69603aab3 } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index de3f413dc60ee501e540b68a7b3c1118c750ca0b..b8a2731cf0a3e194cdb82b250dc29b1175667f12 100644 +index e29826bdfcdde938c1e1ea4092efccda13f52218..a59e3de2e82ac6feecb34babb60c4192596e7ef7 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -219,7 +219,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -220,7 +220,7 @@ public final class CraftMagicNumbers implements UnsafeValues { // Paper start @Override public void reportTimings() { @@ -1367,7 +1367,7 @@ index de3f413dc60ee501e540b68a7b3c1118c750ca0b..b8a2731cf0a3e194cdb82b250dc29b11 } // Paper end -@@ -498,7 +498,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -499,7 +499,7 @@ public final class CraftMagicNumbers implements UnsafeValues { // Paper start @Override public String getTimingsServerName() { diff --git a/patches/server/0038-Implement-Linear-region-format.patch b/patches/server/0038-Implement-Linear-region-format.patch index b26c2fd..09ad5c9 100644 --- a/patches/server/0038-Implement-Linear-region-format.patch +++ b/patches/server/0038-Implement-Linear-region-format.patch @@ -69,7 +69,7 @@ index 2096e57c025858519e7c46788993b9aac1ec60e8..4baff5a88450ed973bca9edd6cffe97d } } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9fa1c5d6a8f313cd3d0f99131da60b640fff5587..0fab6be4b5c5fcf539238b5f67cc9f8e0aac8af4 100644 +index d3ee7a004d17d47b778e85dd655aff931f0f980d..c9a6a3397d412e157c8b56b664b1e544eb4a5dc8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -884,7 +884,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> read(ChunkPos pos) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 226ff7c6048b510be2e71ecc5d5ff3581092aa5e..3e15ff8170d49577c0fff1e0d6abac25265a2eaf 100644 +index 523a6afd7f1dcb0b4ddf5ede0415487c104296bc..ccb998675fb43da6c879e0c03d893c5d5e397e7c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -584,7 +584,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -609,7 +609,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { world.getChunk(x, z); // make sure we're at ticket level 32 or lower return true; } diff --git a/patches/server/0042-Implement-Secure-Seed.patch b/patches/server/0042-Implement-Secure-Seed.patch index 6e62293..04c7b03 100644 --- a/patches/server/0042-Implement-Secure-Seed.patch +++ b/patches/server/0042-Implement-Secure-Seed.patch @@ -72,7 +72,7 @@ index 842f382de43df5d5c321422372ec30ccdd7859d7..bd17ddefd6a9c640cc410cfa22859d32 return GsonHelper.parse(!s1.isEmpty() ? s1 : "{}"); }, new JsonObject()), (String) this.get("level-type", (s1) -> { diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 476a04d87a61b021816d2970e86042bde32d95a2..728f8429ee779854de136e83809d9308d9a27c8c 100644 +index 25aff82dd74ee87f67632af48a2a8e7436fb1a84..e97f93d711aacee54c6aabd58ab76f42954f6aba 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -44,6 +44,7 @@ import net.minecraft.world.level.levelgen.RandomState; @@ -556,10 +556,10 @@ index 70dbf7267b43357578c07fcd46618f656410a8e2..c1ee25acabf60f78829176a77bfac377 Rotation rotation = Rotation.getRandom(worldgenRandom); StructureTemplatePool structureTemplatePool = structurePool.unwrapKey() diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index 82b4bd669c57b18fb0b443bcd94495023cd5a528..4cf13d10f24be20b2f9c8b0338b6af3ddd96750b 100644 +index 92f1ea81b5e90529905d9c508aca18c31443ff6a..ae1a1d4b86a41d4a1c149caf9df42fa580da9957 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -@@ -202,7 +202,10 @@ public class CraftChunk implements Chunk { +@@ -203,7 +203,10 @@ public class CraftChunk implements Chunk { @Override public boolean isSlimeChunk() { // 987234911L is deterimined in EntitySlime when seeing if a slime can spawn in a chunk @@ -572,10 +572,10 @@ index 82b4bd669c57b18fb0b443bcd94495023cd5a528..4cf13d10f24be20b2f9c8b0338b6af3d @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d14f612f2e73374cba8d2a9724d899a62e7cf5c8..2c5af5c226c386f8c2c31441f70e415d583a5829 100644 +index e21f1398c2efba9856718cb30328ac6ec5a4484e..1e0c88fa14819030376efe0208d09aebf47b4b09 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -265,6 +265,8 @@ import javax.annotation.Nonnull; // Paper +@@ -266,6 +266,8 @@ import javax.annotation.Nonnull; // Paper import space.bxteam.divinemc.configuration.DivineConfig; // DivineMC import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; // DivineMC @@ -584,7 +584,7 @@ index d14f612f2e73374cba8d2a9724d899a62e7cf5c8..2c5af5c226c386f8c2c31441f70e415d public final class CraftServer implements Server { private final String serverName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName(); // Paper -@@ -1357,7 +1359,7 @@ public final class CraftServer implements Server { +@@ -1380,7 +1382,7 @@ public final class CraftServer implements Server { iregistrycustom_dimension = leveldataanddimensions.dimensions().dimensionsRegistryAccess(); } else { LevelSettings worldsettings;