diff --git a/patches/removed/server/0002-Leaf-Config.patch b/patches/removed/server/0002-Leaf-Config.patch new file mode 100644 index 00000000..8e1f9f44 --- /dev/null +++ b/patches/removed/server/0002-Leaf-Config.patch @@ -0,0 +1,214 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> +Date: Wed, 12 Oct 2022 10:42:15 -0400 +Subject: [PATCH] Leaf Config + +Deprecated. Legacy Leaf Config v1 + +diff --git a/build.gradle.kts b/build.gradle.kts +index a8a720045804cded8f8dffc1bfdd20710b8f0c82..c8ba9702926c55f783d35a7df9b3cfc3af27f005 100644 +--- a/build.gradle.kts ++++ b/build.gradle.kts +@@ -56,6 +56,13 @@ dependencies { + runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") + runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") + ++ // Leaf start ++ implementation("org.yaml:snakeyaml:2.2") ++ implementation("com.github.Carleslc.Simple-YAML:Simple-Yaml:1.8.4") { ++ exclude(group = "org.yaml", module = "snakeyaml") ++ } ++ // Leaf end ++ + testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test + testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") + testImplementation("org.hamcrest:hamcrest:2.2") +diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +index 2c8eb9294890955f71382ed3884874cc827bab5e..ee29ceff6804383edc229cd302ab07345f96658b 100644 +--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java ++++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +@@ -232,6 +232,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface + SIMDDetection.initialize(); + } catch (Throwable ignored) {} + // Gale start - Pufferfish - SIMD support ++ org.dreeam.leaf.LeafConfig.load(); // Leaf + + this.setPvpAllowed(dedicatedserverproperties.pvp); + this.setFlightAllowed(dedicatedserverproperties.allowFlight); +diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java +new file mode 100644 +index 0000000000000000000000000000000000000000..74becc68c443917b0ec75bfe40ca4079532e0ac0 +--- /dev/null ++++ b/src/main/java/org/dreeam/leaf/LeafConfig.java +@@ -0,0 +1,171 @@ ++package org.dreeam.leaf; ++ ++import com.google.common.collect.ImmutableMap; ++import net.minecraft.server.MinecraftServer; ++import org.bukkit.configuration.ConfigurationSection; ++import org.bukkit.configuration.MemoryConfiguration; ++import org.jetbrains.annotations.Nullable; ++import org.simpleyaml.configuration.comments.CommentType; ++import org.simpleyaml.configuration.file.YamlFile; ++import org.simpleyaml.exceptions.InvalidConfigurationException; ++ ++import java.io.File; ++import java.io.IOException; ++import java.lang.reflect.Method; ++import java.lang.reflect.Modifier; ++import java.util.List; ++import java.util.Map; ++ ++public class LeafConfig { ++ ++ private static final YamlFile config = new YamlFile(); ++ private static int updates = 0; ++ ++ private static ConfigurationSection convertToBukkit(org.simpleyaml.configuration.ConfigurationSection section) { ++ ConfigurationSection newSection = new MemoryConfiguration(); ++ for (String key : section.getKeys(false)) { ++ if (section.isConfigurationSection(key)) { ++ newSection.set(key, convertToBukkit(section.getConfigurationSection(key))); ++ } else { ++ newSection.set(key, section.get(key)); ++ } ++ } ++ return newSection; ++ } ++ ++ public static ConfigurationSection getConfigCopy() { ++ return convertToBukkit(config); ++ } ++ ++ public static int getUpdates() { ++ return updates; ++ } ++ ++ public static void load() throws IOException { ++ File configFile = new File("leaf.yml"); ++ ++ if (configFile.exists()) { ++ try { ++ config.load(configFile); ++ } catch (InvalidConfigurationException e) { ++ throw new IOException(e); ++ } ++ } ++ ++ getString("info.version", "1.2"); ++ setComment("info", ++ "Leaf Config", ++ "Github Repo: https://github.com/Winds-Studio/Leaf", ++ "Discord: dreeam___ | QQ: 2682173972"); ++ ++ for (Method method : LeafConfig.class.getDeclaredMethods()) { ++ if (Modifier.isStatic(method.getModifiers()) && Modifier.isPrivate(method.getModifiers()) && method.getParameterCount() == 0 && ++ method.getReturnType() == Void.TYPE && !method.getName().startsWith("lambda")) { ++ method.setAccessible(true); ++ try { ++ method.invoke(null); ++ } catch (Throwable t) { ++ MinecraftServer.LOGGER.warn("Failed to load configuration option from {}", method.getName(), t); ++ } ++ } ++ } ++ ++ updates++; ++ ++ config.save(configFile); ++ ++ } ++ ++ private static void setComment(String key, String... comment) { ++ if (config.contains(key)) { ++ config.setComment(key, String.join("\n", comment), CommentType.BLOCK); ++ } ++ } ++ ++ private static void ensureDefault(String key, Object defaultValue, String... comment) { ++ if (!config.contains(key)) { ++ config.set(key, defaultValue); ++ config.setComment(key, String.join("\n", comment), CommentType.BLOCK); ++ } ++ } ++ ++ private static void set(String key, Object defaultValue) { ++ config.addDefault(key, defaultValue); ++ config.set(key, defaultValue); ++ } ++ ++ private static boolean getBoolean(String key, boolean defaultValue, String... comment) { ++ return getBoolean(key, null, defaultValue, comment); ++ } ++ ++ private static boolean getBoolean(String key, @Nullable String oldKey, boolean defaultValue, String... comment) { ++ ensureDefault(key, defaultValue, comment); ++ return config.getBoolean(key, defaultValue); ++ } ++ ++ private static int getInt(String key, int defaultValue, String... comment) { ++ return getInt(key, null, defaultValue, comment); ++ } ++ ++ private static int getInt(String key, @Nullable String oldKey, int defaultValue, String... comment) { ++ ensureDefault(key, defaultValue, comment); ++ return config.getInt(key, defaultValue); ++ } ++ ++ private static double getDouble(String key, double defaultValue, String... comment) { ++ return getDouble(key, null, defaultValue, comment); ++ } ++ ++ private static double getDouble(String key, @Nullable String oldKey, double defaultValue, String... comment) { ++ ensureDefault(key, defaultValue, comment); ++ return config.getDouble(key, defaultValue); ++ } ++ ++ private static String getString(String key, String defaultValue, String... comment) { ++ return getOldString(key, null, defaultValue, comment); ++ } ++ ++ private static String getOldString(String key, @Nullable String oldKey, String defaultValue, String... comment) { ++ ensureDefault(key, defaultValue, comment); ++ return config.getString(key, defaultValue); ++ } ++ ++ private static List getStringList(String key, List defaultValue, String... comment) { ++ return getStringList(key, null, defaultValue, comment); ++ } ++ ++ private static List getStringList(String key, @Nullable String oldKey, List defaultValue, String... comment) { ++ ensureDefault(key, defaultValue, comment); ++ return config.getStringList(key); ++ } ++ ++ static Map getMap(String key, Map defaultValue) { ++ if (defaultValue != null && getConfigCopy().getConfigurationSection(key) == null) { ++ config.addDefault(key, defaultValue); ++ return defaultValue; ++ } ++ return toMap(getConfigCopy().getConfigurationSection(key)); ++ } ++ ++ private static Map toMap(ConfigurationSection section) { ++ ImmutableMap.Builder builder = ImmutableMap.builder(); ++ if (section != null) { ++ for (String key : section.getKeys(false)) { ++ Object obj = section.get(key); ++ if (obj != null) { ++ builder.put(key, obj instanceof ConfigurationSection val ? toMap(val) : obj); ++ } ++ } ++ } ++ return builder.build(); ++ } ++ ++ private static void removal() { ++ } ++ ++ private static void performance() { ++ } ++ ++ private static void network() { ++ } ++} diff --git a/patches/server/0003-Leaf-Config-legacy-converter.patch b/patches/server/0003-Leaf-Config-legacy-converter.patch new file mode 100644 index 00000000..8959a3ca --- /dev/null +++ b/patches/server/0003-Leaf-Config-legacy-converter.patch @@ -0,0 +1,242 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> +Date: Tue, 27 Feb 2024 19:42:03 -0500 +Subject: [PATCH] Leaf Config legacy converter + + +diff --git a/build.gradle.kts b/build.gradle.kts +index a53b30ab2315fc0b2ce07d9449042842e6ca3b39..58dceb971983db152b77932d4d6ac9cffceddfec 100644 +--- a/build.gradle.kts ++++ b/build.gradle.kts +@@ -24,6 +24,13 @@ dependencies { + + implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config + ++ // Leaf start - Legacy config ++ implementation("org.yaml:snakeyaml:2.2") ++ implementation("com.github.Carleslc.Simple-YAML:Simple-Yaml:1.8.4") { ++ exclude(group = "org.yaml", module = "snakeyaml") ++ } ++ // Leaf end ++ + // Paper start + implementation("org.jline:jline-terminal-jansi:3.21.0") + implementation("net.minecrell:terminalconsoleappender:1.3.0") +diff --git a/src/main/java/org/dreeam/leaf/config/LeafConfig.java b/src/main/java/org/dreeam/leaf/config/LeafConfig.java +index 86cb8a187d751c2e2842a0998ac07bcff15ca3cf..903ce6cdc7596140d56b5d8669a6bb121fe34cc3 100644 +--- a/src/main/java/org/dreeam/leaf/config/LeafConfig.java ++++ b/src/main/java/org/dreeam/leaf/config/LeafConfig.java +@@ -21,7 +21,9 @@ import org.apache.logging.log4j.Logger; + + public class LeafConfig { + public static final Logger logger = LogManager.getLogger("LeafConfig"); +- private static final File baseConfigFolder = new File("leaf_config"); ++ public static long beginTime; ++ private static final File legacyConfig = new File("leaf.yml"); ++ public static final File baseConfigFolder = new File("leaf_config"); + private static final File baseConfigFile = new File(baseConfigFolder, "leaf_global_config.toml"); + private static final Set allInstanced = new HashSet<>(); + private static CommentedFileConfig configFileInstance; +@@ -49,6 +51,21 @@ public class LeafConfig { + } + + configFileInstance.save(); ++ ++ if (legacyConfig.exists()) { ++ beginTime = System.nanoTime(); ++ logger.info("Detected legacy config file!"); ++ ++ try { ++ Class clazz = Class.forName("org.dreeam.leaf.config.legacy.upgrader.V1ToV2"); ++ if (IConfigModule.class.isAssignableFrom(clazz)) { ++ loadForSingle((IConfigModule) clazz.getConstructor().newInstance()); ++ } ++ } catch (ClassNotFoundException | NoSuchMethodException | InvocationTargetException | ++ InstantiationException | IllegalAccessException e) { ++ logger.error("Error in v1.x to v2 config upgrading process, this should not happen!", e); ++ } ++ } + } + + private static void loadAllModules() throws IllegalAccessException { +diff --git a/src/main/java/org/dreeam/leaf/config/legacy/upgrader/V1ToV2.java b/src/main/java/org/dreeam/leaf/config/legacy/upgrader/V1ToV2.java +new file mode 100644 +index 0000000000000000000000000000000000000000..66eba481afed722cf1fd59ea31532917c5dbbe8f +--- /dev/null ++++ b/src/main/java/org/dreeam/leaf/config/legacy/upgrader/V1ToV2.java +@@ -0,0 +1,175 @@ ++package org.dreeam.leaf.config.legacy.upgrader; ++ ++import com.electronwill.nightconfig.core.file.CommentedFileConfig; ++import org.dreeam.leaf.config.EnumConfigCategory; ++import org.dreeam.leaf.config.IConfigModule; ++import org.dreeam.leaf.config.LeafConfig; ++import org.simpleyaml.configuration.file.YamlFile; ++ ++import java.io.File; ++import java.io.IOException; ++import java.nio.file.Files; ++import java.nio.file.Path; ++import java.nio.file.StandardCopyOption; ++import java.util.Map; ++import java.util.concurrent.ConcurrentHashMap; ++ ++public class V1ToV2 implements IConfigModule { ++ ++ private static final YamlFile legacyConfig = new YamlFile(); ++ private static final File legacyConfigFile = new File("leaf.yml"); ++ ++ private static Object version, serverModName, serverGuiName, removeMojangUsernameCheck, removeSpigotCheckBungeeConfig, removeUseItemOnPacketTooFar, ++ maxUseItemDistance, disableMovedWronglyThreshold, enableAsyncMobSpawning, dabEnabled, startDistance, maximumActivationPrio, activationDistanceMod, ++ blackedEntities, throttleInactiveGoalSelectorTick, useSpigotItemMergingMechanism, optimizedPoweredRails, asyncPathfinding, asyncPathfindingMaxThreads, ++ asyncPathfindingKeepalive, asyncEntityTracker, asyncEntityTrackerMaxThreads, asyncEntityTrackerKeepalive, cacheMinecartCollision, ++ skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer, jadeProtocol, appleskinProtocol, xaeroMapProtocol, xaeroMapServerID, syncmaticaProtocol, syncmaticaQuota, ++ syncmaticaQuotaLimit, sentryDsn, useVanillaEndTeleport, snowballCanKnockback, eggCanKnockback, fixTripwireDupe, including5sIngetTPS; ++ private static Map ttls = new ConcurrentHashMap<>(); ++ ++ private static void initializeKeys() { ++ version = getKey("info.version"); ++ serverModName = getKey("server-mod-name"); ++ serverGuiName = getKey("server-Gui-name"); ++ removeMojangUsernameCheck = getKey("remove-Mojang-username-check"); ++ removeSpigotCheckBungeeConfig = getKey("remove-Spigot-check-bungee-config"); ++ removeUseItemOnPacketTooFar = getKey("remove-UseItemOnPacket-too-far-check"); ++ maxUseItemDistance = getKey("max-UseItem-distance"); ++ disableMovedWronglyThreshold = getKey("disable-MovedWronglyThreshold"); ++ enableAsyncMobSpawning = getKey("performance.enable-async-mob-spawning"); ++ dabEnabled = getKey("performance.dab.enabled", "dab.enabled"); ++ startDistance = getKey("performance.dab.start-distance", "dab.start-distance"); ++ maximumActivationPrio = getKey("performance.dab.max-tick-freq", "dab.max-tick-freq"); ++ activationDistanceMod = getKey("performance.dab.activation-dist-mod", "dab.activation-dist-mod"); ++ blackedEntities = getKey("performance.dab.blacklisted-entities", "dab.blacklisted-entities"); ++ throttleInactiveGoalSelectorTick = getKey("performance.inactive-goal-selector-throttle", "inactive-goal-selector-throttle"); ++ legacyConfig.getMapValues(true).forEach((key, ttl) -> { ++ if (key.startsWith("performance.entity_timeouts.")) { ++ String e = key.replaceAll("performance.entity_timeouts.", ""); ++ ttls.putIfAbsent(e, ttl); ++ } ++ }); ++ useSpigotItemMergingMechanism = getKey("performance.use-spigot-item-merging-mechanism"); ++ optimizedPoweredRails = getKey("performance.optimizedPoweredRails"); ++ asyncPathfinding = getKey("performance.async-pathfinding.enable"); ++ asyncPathfindingMaxThreads = getKey("performance.async-pathfinding.max-threads"); ++ asyncPathfindingKeepalive = getKey("performance.async-pathfinding.keepalive"); ++ asyncEntityTracker = getKey("performance.async-entity-tracker.enable"); ++ asyncEntityTrackerMaxThreads = getKey("performance.async-entity-tracker.max-threads"); ++ asyncEntityTrackerKeepalive = getKey("performance.async-entity-tracker.keepalive"); ++ cacheMinecartCollision = getKey("performance.cache-minecart-collision"); ++ skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer = getKey("performance.skip-map-item-data-updates-if-map-does-not-have-craftmaprenderer"); ++ jadeProtocol = getKey("network.protocol.jade-protocol"); ++ appleskinProtocol = getKey("network.protocol.appleskin-protocol"); ++ xaeroMapProtocol = getKey("network.protocol.xaero-map-protocol"); ++ xaeroMapServerID = getKey("network.protocol.xaero-map-server-id"); ++ syncmaticaProtocol = getKey("network.protocol.syncmatica.enable"); ++ syncmaticaQuota = getKey("network.protocol.syncmatica.quota"); ++ syncmaticaQuotaLimit = getKey("network.protocol.syncmatica.quota-limit"); ++ sentryDsn = getKey("sentry-dsn", "performance.sentry-dsn"); ++ useVanillaEndTeleport = getKey("use-vanilla-end-teleport"); ++ snowballCanKnockback = getKey("playerKnockback.snowball-knockback-players"); ++ eggCanKnockback = getKey("playerKnockback.egg-knockback-players"); ++ fixTripwireDupe = getKey("gameplay.fix-tripwire-dupe"); ++ including5sIngetTPS = getKey("including-5s-in-getTPS"); ++ } ++ ++ @Override ++ public EnumConfigCategory getCategory() { ++ return EnumConfigCategory.MISC; ++ } ++ ++ @Override ++ public String getBaseName() { ++ return "converter"; ++ } ++ ++ @Override ++ public void onLoaded(CommentedFileConfig config) { ++ loadLegacyConfig(); ++ ++ LeafConfig.logger.info("Converting config from v{} to v2.0 format...", version); ++ ++ updateConfig("misc.rebrand.server-mod-name", serverModName, config); ++ updateConfig("misc.rebrand.server-gui-name", serverGuiName, config); ++ updateConfig("misc.remove_vanilla_username_check.enabled", removeMojangUsernameCheck, config); ++ updateConfig("misc.remove_spigot_check_bungee_config.enabled", removeSpigotCheckBungeeConfig, config); ++ updateConfig("misc.configurable_max_use_item_distance.remove-max-distance-check", removeUseItemOnPacketTooFar, config); ++ updateConfig("gameplay.configurable_max_use_item_distance.max-use-item-distance", maxUseItemDistance, config); ++ updateConfig("gameplay.disable_moved_wrongly_threshold.enabled", disableMovedWronglyThreshold, config); ++ updateConfig("async.async_mob_spawning.enabled", enableAsyncMobSpawning, config); ++ updateConfig("performance.dab.enabled", dabEnabled, config); ++ updateConfig("performance.dab.start-distance", startDistance, config); ++ updateConfig("performance.dab.max-tick-freq", maximumActivationPrio, config); ++ updateConfig("performance.dab.activation-dist-mod", activationDistanceMod, config); ++ updateConfig("performance.dab.blacklisted-entities", blackedEntities, config); ++ updateConfig("performance.inactive_goal_selector_throttle.enabled", throttleInactiveGoalSelectorTick, config); ++ ttls.forEach((e, ttl) -> updateConfig("performance.entity_timeouts." + e, ttl, config)); ++ updateConfig("gameplay.use-spigot-item-merging-mechanism.enabled", useSpigotItemMergingMechanism, config); ++ updateConfig("performance.optimized_powered_rails.enabled", optimizedPoweredRails, config); ++ updateConfig("async.async_pathfinding.enabled", asyncPathfinding, config); ++ updateConfig("async.async_pathfinding.max-threads", asyncPathfindingMaxThreads, config); ++ updateConfig("async.async_pathfinding.keepalive", asyncPathfindingKeepalive, config); ++ updateConfig("async.async_entity_tracker.enabled", asyncEntityTracker, config); ++ updateConfig("async.async_entity_tracker.max-threads", asyncEntityTrackerMaxThreads, config); ++ updateConfig("async.async_entity_tracker.keepalive", asyncEntityTrackerKeepalive, config); ++ updateConfig("performance.cache_minecart_collision.enabled", cacheMinecartCollision, config); ++ updateConfig("performance.skip_map_item_data_updates_if_map_does_not_have_craftmaprenderer.enabled", skipMapItemDataUpdatesIfMapDoesNotHaveCraftMapRenderer, config); ++ updateConfig("network.protocol_support.jade-protocol", jadeProtocol, config); ++ updateConfig("network.protocol_support.appleskin-protocol", appleskinProtocol, config); ++ updateConfig("network.protocol_support.xaero-map-protocol", xaeroMapProtocol, config); ++ updateConfig("network.protocol_support.xaero-map-server-id", xaeroMapServerID, config); ++ updateConfig("network.protocol_support.syncmatica-enabled", syncmaticaProtocol, config); ++ updateConfig("network.protocol_support.syncmatica-quota", syncmaticaQuota, config); ++ updateConfig("network.protocol_support.syncmatica-quota-limit", syncmaticaQuotaLimit, config); ++ updateConfig("misc.sentry_dsn.sentry-dsn", sentryDsn, config); ++ updateConfig("gameplay.use_vanilla_end_teleport.enabled", useVanillaEndTeleport, config); ++ updateConfig("gameplay.knockback.snowball-knockback-players", snowballCanKnockback, config); ++ updateConfig("gameplay.knockback.egg-knockback-players", eggCanKnockback, config); ++ updateConfig("fixes.fix_tripwire_dupe.enabled", fixTripwireDupe, config); ++ updateConfig("misc.including_5s_in_get_tps.enabled", including5sIngetTPS, config); ++ ++ config.save(); ++ ++ File backupFolder = new File(LeafConfig.baseConfigFolder + "/legacy_backup"); ++ ++ if (!backupFolder.exists()) { ++ backupFolder.mkdirs(); ++ } ++ ++ try { ++ Files.move(Path.of(legacyConfigFile.getPath()), Path.of(LeafConfig.baseConfigFolder + "/legacy_backup/leaf_v" + version + "_backup.yml"), StandardCopyOption.REPLACE_EXISTING); ++ } catch (IOException e) { ++ LeafConfig.logger.error("Config upgraded failed!"); ++ return; ++ } ++ ++ LeafConfig.logger.info("Config upgraded successfully!, elapsed {}ms.", (System.nanoTime() - LeafConfig.beginTime) / 1000000); ++ } ++ ++ private static void loadLegacyConfig() { ++ try { ++ legacyConfig.load(legacyConfigFile); ++ initializeKeys(); ++ } catch (IOException e) { ++ LeafConfig.logger.error("Failed to load legacy config! Config upgraded failed!"); ++ } ++ } ++ ++ private static Object getKey(String key) { ++ return legacyConfig.contains(key) ? legacyConfig.get(key) : null; ++ } ++ ++ // In v1.x config, the old key still exists after converting to new key ++ // So check the new key whether exists first, then check the old key. ++ private static Object getKey(String key, String oldKey) { ++ return legacyConfig.contains(key) ? legacyConfig.get(key) : ++ legacyConfig.contains(oldKey) ? legacyConfig.get(oldKey) : ++ null; ++ } ++ ++ // TOML doesn't allow null key value, so do a null check. ++ private static void updateConfig(String key, Object value, CommentedFileConfig config) { ++ if (value != null) config.set(key, value); ++ } ++} diff --git a/patches/server/0003-Pufferfish-Utils.patch b/patches/server/0004-Pufferfish-Utils.patch similarity index 100% rename from patches/server/0003-Pufferfish-Utils.patch rename to patches/server/0004-Pufferfish-Utils.patch diff --git a/patches/server/0004-Pufferfish-Sentry.patch b/patches/server/0005-Pufferfish-Sentry.patch similarity index 100% rename from patches/server/0004-Pufferfish-Sentry.patch rename to patches/server/0005-Pufferfish-Sentry.patch diff --git a/patches/server/0005-Pufferfish-Optimize-mob-spawning.patch b/patches/server/0006-Pufferfish-Optimize-mob-spawning.patch similarity index 100% rename from patches/server/0005-Pufferfish-Optimize-mob-spawning.patch rename to patches/server/0006-Pufferfish-Optimize-mob-spawning.patch diff --git a/patches/server/0006-Pufferfish-Dynamic-Activation-of-Brain.patch b/patches/server/0007-Pufferfish-Dynamic-Activation-of-Brain.patch similarity index 100% rename from patches/server/0006-Pufferfish-Dynamic-Activation-of-Brain.patch rename to patches/server/0007-Pufferfish-Dynamic-Activation-of-Brain.patch diff --git a/patches/server/0007-Pufferfish-Throttle-goal-selector-during-inactive-ti.patch b/patches/server/0008-Pufferfish-Throttle-goal-selector-during-inactive-ti.patch similarity index 100% rename from patches/server/0007-Pufferfish-Throttle-goal-selector-during-inactive-ti.patch rename to patches/server/0008-Pufferfish-Throttle-goal-selector-during-inactive-ti.patch diff --git a/patches/server/0008-Pufferfish-Entity-TTL.patch b/patches/server/0009-Pufferfish-Entity-TTL.patch similarity index 100% rename from patches/server/0008-Pufferfish-Entity-TTL.patch rename to patches/server/0009-Pufferfish-Entity-TTL.patch diff --git a/patches/server/0009-Purpur-Server-Changes.patch b/patches/server/0010-Purpur-Server-Changes.patch similarity index 99% rename from patches/server/0009-Purpur-Server-Changes.patch rename to patches/server/0010-Purpur-Server-Changes.patch index 91dd3c07..e021b311 100644 --- a/patches/server/0009-Purpur-Server-Changes.patch +++ b/patches/server/0010-Purpur-Server-Changes.patch @@ -30,10 +30,10 @@ MC-121706-Fix-mobs-not-looking-up-and-down-when-stra.patch Fire-Immunity-API.patch diff --git a/build.gradle.kts b/build.gradle.kts -index a53b30ab2315fc0b2ce07d9449042842e6ca3b39..e1f45b67457ba151a94b4709aeabc7a2fe730c28 100644 +index 58dceb971983db152b77932d4d6ac9cffceddfec..a850f63770e46293c0efe3ac03583bfcbc0ed946 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -59,6 +59,12 @@ dependencies { +@@ -66,6 +66,12 @@ dependencies { runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") @@ -46,7 +46,7 @@ index a53b30ab2315fc0b2ce07d9449042842e6ca3b39..e1f45b67457ba151a94b4709aeabc7a2 testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") testImplementation("org.hamcrest:hamcrest:2.2") -@@ -174,7 +180,7 @@ fun TaskContainer.registerRunTask( +@@ -181,7 +187,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { diff --git a/patches/server/0010-Purpur-Configurable-server-mod-name.patch b/patches/server/0011-Purpur-Configurable-server-mod-name.patch similarity index 100% rename from patches/server/0010-Purpur-Configurable-server-mod-name.patch rename to patches/server/0011-Purpur-Configurable-server-mod-name.patch diff --git a/patches/server/0011-Configurable-server-GUI-name.patch b/patches/server/0012-Configurable-server-GUI-name.patch similarity index 100% rename from patches/server/0011-Configurable-server-GUI-name.patch rename to patches/server/0012-Configurable-server-GUI-name.patch diff --git a/patches/server/0012-Remove-Timings.patch b/patches/server/0013-Remove-Timings.patch similarity index 99% rename from patches/server/0012-Remove-Timings.patch rename to patches/server/0013-Remove-Timings.patch index ab242285..b6f647e0 100644 --- a/patches/server/0012-Remove-Timings.patch +++ b/patches/server/0013-Remove-Timings.patch @@ -938,7 +938,7 @@ index 3e2d5dcd62775b6ed7c0ce0ba51a71b635b1d644..deca974c2a82bc341fe23ea46f61f42f } catch (Exception exception) { label25: diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f9952df410ca862ee6573abaaa1c9b5634bdad5e..9349e81ca3d133d87f7e26bf5cdc2f555ce1413c 100644 +index 16d3fc610fc15da85f3b0652e835d196c010c89d..86bb3df2915495387c43cf425e3183682c9e0344 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -178,8 +178,6 @@ import org.bukkit.craftbukkit.Main; @@ -1109,7 +1109,7 @@ index f9952df410ca862ee6573abaaa1c9b5634bdad5e..9349e81ca3d133d87f7e26bf5cdc2f55 private void synchronizeTime(ServerLevel world) { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index cca3e8284901518581ffbdb9ba71a757d857e3ff..b235b739fea8820e5a1ff35c5cfd52aa8571d9ac 100644 +index 8749010decf3a7d9490762c7641530bd91f4e19c..4ba34682cf4f8e610d8d456785a0da5591aa0c24 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -57,7 +57,6 @@ import org.apache.logging.log4j.Level; @@ -1240,7 +1240,7 @@ index 42869d35abb8d006fb720ca7190a770ce5cbf778..2b9968a8a3d0d66d9db5a83dcf2a4476 } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 01fe42fea45a359714ca3fdeee05d85c561d0bb9..3af5602ef3d6265a2ddcdc5038c35ea1ca36d705 100644 +index 6587ce30d88983cb42822e6ff3e012047d3ce16d..93ec0bdece165e5a5058f9a7ed2fd67dbcef2ab4 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -276,10 +276,8 @@ public class ServerChunkCache extends ChunkSource { @@ -2269,7 +2269,7 @@ index 139d946346594d2a59a8b2930c4eae794c880dbc..00000000000000000000000000000000 - -} diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index d88d553fc5b9d9e13d24d94275ed5b9c91d5e41f..83841079cb17d426a89e9d8b43afdc289d13dee6 100644 +index c6c58c398b2ce4741301afaa04d2ba2dbee475d4..67e33ce28e3a775b6611334471061f72cae18cae 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -35,7 +35,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity; diff --git a/patches/server/0013-Bump-Dependencies.patch b/patches/server/0014-Bump-Dependencies.patch similarity index 93% rename from patches/server/0013-Bump-Dependencies.patch rename to patches/server/0014-Bump-Dependencies.patch index 5a1354f1..38ac286b 100644 --- a/patches/server/0013-Bump-Dependencies.patch +++ b/patches/server/0014-Bump-Dependencies.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Bump Dependencies diff --git a/build.gradle.kts b/build.gradle.kts -index e1f45b67457ba151a94b4709aeabc7a2fe730c28..7a5933a2bb8cde20d4d147cc2665b2e65b881c35 100644 +index a850f63770e46293c0efe3ac03583bfcbc0ed946..607d6a73daba955734f651530e4d3db87110eb16 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -25,9 +25,9 @@ dependencies { - implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config +@@ -32,9 +32,9 @@ dependencies { + // Leaf end // Paper start - implementation("org.jline:jline-terminal-jansi:3.21.0") @@ -20,7 +20,7 @@ index e1f45b67457ba151a94b4709aeabc7a2fe730c28..7a5933a2bb8cde20d4d147cc2665b2e6 implementation("net.kyori:ansi:1.0.3") // Manually bump beyond above transitive dep /* Required to add the missing Log4j2Plugins.dat file from log4j-core -@@ -35,24 +35,26 @@ dependencies { +@@ -42,24 +42,26 @@ dependencies { all its classes to check if they are plugins. Scanning takes about 1-2 seconds so adding this speeds up the server start. */ @@ -57,7 +57,7 @@ index e1f45b67457ba151a94b4709aeabc7a2fe730c28..7a5933a2bb8cde20d4d147cc2665b2e6 // Paper end - Use Velocity cipher runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6") -@@ -65,11 +67,15 @@ dependencies { +@@ -72,11 +74,15 @@ dependencies { implementation("dev.omega24:upnp4j:1.0") // Purpur end @@ -76,7 +76,7 @@ index e1f45b67457ba151a94b4709aeabc7a2fe730c28..7a5933a2bb8cde20d4d147cc2665b2e6 } val craftbukkitPackageVersion = "1_20_R3" // Paper -@@ -261,3 +267,7 @@ sourceSets { +@@ -268,3 +274,7 @@ sourceSets { } } // Gale end - package license into jar diff --git a/patches/server/0014-Remove-vanilla-username-check.patch b/patches/server/0015-Remove-vanilla-username-check.patch similarity index 100% rename from patches/server/0014-Remove-vanilla-username-check.patch rename to patches/server/0015-Remove-vanilla-username-check.patch diff --git a/patches/server/0015-Remove-Spigot-Check-for-Broken-BungeeCord-Configurat.patch b/patches/server/0016-Remove-Spigot-Check-for-Broken-BungeeCord-Configurat.patch similarity index 100% rename from patches/server/0015-Remove-Spigot-Check-for-Broken-BungeeCord-Configurat.patch rename to patches/server/0016-Remove-Spigot-Check-for-Broken-BungeeCord-Configurat.patch diff --git a/patches/server/0016-Remove-UseItemOnPacket-Too-Far-Check.patch b/patches/server/0017-Remove-UseItemOnPacket-Too-Far-Check.patch similarity index 100% rename from patches/server/0016-Remove-UseItemOnPacket-Too-Far-Check.patch rename to patches/server/0017-Remove-UseItemOnPacket-Too-Far-Check.patch diff --git a/patches/server/0017-KTP-Allow-unknown-event-thread-execution.patch b/patches/server/0018-KTP-Allow-unknown-event-thread-execution.patch similarity index 100% rename from patches/server/0017-KTP-Allow-unknown-event-thread-execution.patch rename to patches/server/0018-KTP-Allow-unknown-event-thread-execution.patch diff --git a/patches/server/0018-KeYi-Player-Skull-API.patch b/patches/server/0019-KeYi-Player-Skull-API.patch similarity index 100% rename from patches/server/0018-KeYi-Player-Skull-API.patch rename to patches/server/0019-KeYi-Player-Skull-API.patch diff --git a/patches/server/0019-KeYi-Disable-arrow-despawn-counter-by-default.patch b/patches/server/0020-KeYi-Disable-arrow-despawn-counter-by-default.patch similarity index 100% rename from patches/server/0019-KeYi-Disable-arrow-despawn-counter-by-default.patch rename to patches/server/0020-KeYi-Disable-arrow-despawn-counter-by-default.patch diff --git a/patches/server/0020-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch b/patches/server/0021-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch similarity index 100% rename from patches/server/0020-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch rename to patches/server/0021-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch diff --git a/patches/server/0021-Carpet-Fixes-Optimized-getBiome-method.patch b/patches/server/0022-Carpet-Fixes-Optimized-getBiome-method.patch similarity index 100% rename from patches/server/0021-Carpet-Fixes-Optimized-getBiome-method.patch rename to patches/server/0022-Carpet-Fixes-Optimized-getBiome-method.patch diff --git a/patches/server/0022-Carpet-Fixes-Use-optimized-RecipeManager.patch b/patches/server/0023-Carpet-Fixes-Use-optimized-RecipeManager.patch similarity index 100% rename from patches/server/0022-Carpet-Fixes-Use-optimized-RecipeManager.patch rename to patches/server/0023-Carpet-Fixes-Use-optimized-RecipeManager.patch diff --git a/patches/server/0023-Rail-Optimization-optimized-PoweredRailBlock-logic.patch b/patches/server/0024-Rail-Optimization-optimized-PoweredRailBlock-logic.patch similarity index 100% rename from patches/server/0023-Rail-Optimization-optimized-PoweredRailBlock-logic.patch rename to patches/server/0024-Rail-Optimization-optimized-PoweredRailBlock-logic.patch diff --git a/patches/server/0024-Akarin-Save-Json-list-asynchronously.patch b/patches/server/0025-Akarin-Save-Json-list-asynchronously.patch similarity index 100% rename from patches/server/0024-Akarin-Save-Json-list-asynchronously.patch rename to patches/server/0025-Akarin-Save-Json-list-asynchronously.patch diff --git a/patches/server/0025-Slice-Smooth-Teleports.patch b/patches/server/0026-Slice-Smooth-Teleports.patch similarity index 100% rename from patches/server/0025-Slice-Smooth-Teleports.patch rename to patches/server/0026-Slice-Smooth-Teleports.patch diff --git a/patches/server/0026-Parchment-Make-FixLight-use-action-bar.patch b/patches/server/0027-Parchment-Make-FixLight-use-action-bar.patch similarity index 100% rename from patches/server/0026-Parchment-Make-FixLight-use-action-bar.patch rename to patches/server/0027-Parchment-Make-FixLight-use-action-bar.patch diff --git a/patches/server/0027-Leaves-Server-Utils.patch b/patches/server/0028-Leaves-Server-Utils.patch similarity index 99% rename from patches/server/0027-Leaves-Server-Utils.patch rename to patches/server/0028-Leaves-Server-Utils.patch index b120ad8c..613c473e 100644 --- a/patches/server/0027-Leaves-Server-Utils.patch +++ b/patches/server/0028-Leaves-Server-Utils.patch @@ -7,7 +7,7 @@ Original license: GPLv3 Original project: https://github.com/LeavesMC/Leaves diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6096528056dca47fd139fe27d1e0a5b919270aa6..b1c74e88cffb5e63a0fcba90522aa8e37f908f47 100644 +index 6c70002119d40a0074319d2ee85862930d6abf0e..3a1b8f57c74124dbb413651a099dbadbc2e28490 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -424,6 +424,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S diff --git a/patches/server/0028-Leaves-Protocol-Core.patch b/patches/server/0029-Leaves-Protocol-Core.patch similarity index 99% rename from patches/server/0028-Leaves-Protocol-Core.patch rename to patches/server/0029-Leaves-Protocol-Core.patch index 215333bd..1a8ac971 100644 --- a/patches/server/0028-Leaves-Protocol-Core.patch +++ b/patches/server/0029-Leaves-Protocol-Core.patch @@ -25,7 +25,7 @@ index af86f752c33a2990405fea058b7c41c437ba9d46..bada9fae1e7178162429e1f5a1608b9c } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 9349e81ca3d133d87f7e26bf5cdc2f555ce1413c..0f6ecd180c2ee18575575264366b88ff62ac11f7 100644 +index 86bb3df2915495387c43cf425e3183682c9e0344..f2cef17007767a148d4957e654af8a655920790e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1711,6 +1711,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { @@ -139,7 +139,7 @@ index 9962e83e9478db6de3869d53eaa4c4dc9dc847b4..4e7867e7239eb573b287a70eee8191bd @Override 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 da834424b655d49388926a0472cacb5ecc4d56fd..141c41c05623ab5802ae3e03ee772d310efda3a8 100644 +index df0d0868c11c26b2cadc1a07196a0191e16838a0..5ebef8ad47b8dc27de23b878eec86f5136e4c9ec 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 @@ -147,6 +147,23 @@ public class Warden extends Monster implements VibrationSystem { @@ -189,7 +189,7 @@ index bc3fe45d12ffc2069a03d1587b7623d31130565a..fd574aed480b980a231a017bab262acb @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index c3f095236093c436d37c4730f5537d4fbc0ea6c0..d13bc7e913ebe816598f6104f928c90b320fee18 100644 +index 63b5a0993207c55357ac507c974dea77206e80f4..e45c11bf2c42e6d57f803349d8ca6936ac98c995 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -336,6 +336,7 @@ public class PurpurConfig { diff --git a/patches/server/0056-Plazma-Add-some-missing-Pufferfish-configurations.patch b/patches/server/0057-Plazma-Add-some-missing-Pufferfish-configurations.patch similarity index 97% rename from patches/server/0056-Plazma-Add-some-missing-Pufferfish-configurations.patch rename to patches/server/0057-Plazma-Add-some-missing-Pufferfish-configurations.patch index f845ca93..1d26c852 100644 --- a/patches/server/0056-Plazma-Add-some-missing-Pufferfish-configurations.patch +++ b/patches/server/0057-Plazma-Add-some-missing-Pufferfish-configurations.patch @@ -41,7 +41,7 @@ index 4e7867e7239eb573b287a70eee8191bdf434f686..2c6c153187f97cd07157d72cbe4c9829 SnifferAi.updateActivity(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 141c41c05623ab5802ae3e03ee772d310efda3a8..695458d1d45169ae36344984a5b66fa8c3ee907d 100644 +index 5ebef8ad47b8dc27de23b878eec86f5136e4c9ec..8acd9a0037e12670472734cd86c95336a04f9f13 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 @@ -319,7 +319,7 @@ public class Warden extends Monster implements VibrationSystem { diff --git a/patches/server/0057-Skip-event-if-no-listeners.patch b/patches/server/0058-Skip-event-if-no-listeners.patch similarity index 93% rename from patches/server/0057-Skip-event-if-no-listeners.patch rename to patches/server/0058-Skip-event-if-no-listeners.patch index abe71b8c..b743f9fe 100644 --- a/patches/server/0057-Skip-event-if-no-listeners.patch +++ b/patches/server/0058-Skip-event-if-no-listeners.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Skip event if no listeners diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java -index 79fe719169c436a0138ffef3566a7b5a553f0498..ffa56aacf0b316310c7bdef1cfff8a3de05de40e 100644 +index cc38235d2b5f3fc5113a4d495f14f81cd24d7cb9..930711fd827d009a57171afa24d55fa8e53a08ca 100644 --- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java +++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java @@ -36,6 +36,10 @@ class PaperEventManager { diff --git a/patches/server/0058-PaperPR-Rewrite-framed-map-tracker-ticking.patch b/patches/server/0059-PaperPR-Rewrite-framed-map-tracker-ticking.patch similarity index 100% rename from patches/server/0058-PaperPR-Rewrite-framed-map-tracker-ticking.patch rename to patches/server/0059-PaperPR-Rewrite-framed-map-tracker-ticking.patch diff --git a/patches/server/0059-SparklyPaper-Skip-MapItem-update-if-the-map-does-not.patch b/patches/server/0060-SparklyPaper-Skip-MapItem-update-if-the-map-does-not.patch similarity index 100% rename from patches/server/0059-SparklyPaper-Skip-MapItem-update-if-the-map-does-not.patch rename to patches/server/0060-SparklyPaper-Skip-MapItem-update-if-the-map-does-not.patch diff --git a/patches/server/0060-SparklyPaper-Cache-coordinate-key-used-for-nearby-pl.patch b/patches/server/0061-SparklyPaper-Cache-coordinate-key-used-for-nearby-pl.patch similarity index 97% rename from patches/server/0060-SparklyPaper-Cache-coordinate-key-used-for-nearby-pl.patch rename to patches/server/0061-SparklyPaper-Cache-coordinate-key-used-for-nearby-pl.patch index 82d9c3cf..845a5f29 100644 --- a/patches/server/0060-SparklyPaper-Cache-coordinate-key-used-for-nearby-pl.patch +++ b/patches/server/0061-SparklyPaper-Cache-coordinate-key-used-for-nearby-pl.patch @@ -32,7 +32,7 @@ index f164256d59b761264876ca0c85f812d101bfd5de..10465a33d90a1e43b9dbd7764c895dd3 final TrackedChunk chunk = this.byChunk.get(CoordinateUtils.getChunkKey(chunkX, chunkZ)); diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 3f8c94087ca4dd8454251f1a1c9aa9fec26ddb32..2e6eadd10efb08fe0c2a37420cb0fd8361b4ef65 100644 +index 70b35ce82701454017b44e8a2fb3b45fefc6420e..caef142261734aab264d1da420ff5e6d7117ea1c 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -594,7 +594,7 @@ public class ServerChunkCache extends ChunkSource { diff --git a/patches/server/0061-SparklyPaper-Optimize-canSee-checks.patch b/patches/server/0062-SparklyPaper-Optimize-canSee-checks.patch similarity index 97% rename from patches/server/0061-SparklyPaper-Optimize-canSee-checks.patch rename to patches/server/0062-SparklyPaper-Optimize-canSee-checks.patch index 5cf4fcc3..8a06b9d6 100644 --- a/patches/server/0061-SparklyPaper-Optimize-canSee-checks.patch +++ b/patches/server/0062-SparklyPaper-Optimize-canSee-checks.patch @@ -16,7 +16,7 @@ This seems stupid, but it does seem that it improves the performance a bit, and We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9e896e1bbbbeaaf0e582d5e3f4c1fa7695ab6f09..53fb9ffc1b916b338a5b5f98f6f1f16b65bb6d41 100644 +index 8fed9395a4c91d25781000478fb83763cae3a50c..fb9f983a0f567e4c722693b120126ace7127800e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1420,7 +1420,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0062-Polpot-Make-egg-and-snowball-can-knockback-player.patch b/patches/server/0063-Polpot-Make-egg-and-snowball-can-knockback-player.patch similarity index 100% rename from patches/server/0062-Polpot-Make-egg-and-snowball-can-knockback-player.patch rename to patches/server/0063-Polpot-Make-egg-and-snowball-can-knockback-player.patch diff --git a/patches/server/0063-Redirect-to-Gale-s-method-to-fix-plugin-incompatibil.patch b/patches/server/0064-Redirect-to-Gale-s-method-to-fix-plugin-incompatibil.patch similarity index 100% rename from patches/server/0063-Redirect-to-Gale-s-method-to-fix-plugin-incompatibil.patch rename to patches/server/0064-Redirect-to-Gale-s-method-to-fix-plugin-incompatibil.patch diff --git a/patches/server/0064-Configurable-fix-tripwire-dupe.patch b/patches/server/0065-Configurable-fix-tripwire-dupe.patch similarity index 100% rename from patches/server/0064-Configurable-fix-tripwire-dupe.patch rename to patches/server/0065-Configurable-fix-tripwire-dupe.patch diff --git a/patches/server/0065-Redirect-vanilla-getProfiler-in-PathNavigationRegion.patch b/patches/server/0066-Redirect-vanilla-getProfiler-in-PathNavigationRegion.patch similarity index 100% rename from patches/server/0065-Redirect-vanilla-getProfiler-in-PathNavigationRegion.patch rename to patches/server/0066-Redirect-vanilla-getProfiler-in-PathNavigationRegion.patch diff --git a/patches/server/0066-Fix-MC-249136-lag-when-attempting-to-locate-a-buried.patch b/patches/server/0067-Fix-MC-249136-lag-when-attempting-to-locate-a-buried.patch similarity index 100% rename from patches/server/0066-Fix-MC-249136-lag-when-attempting-to-locate-a-buried.patch rename to patches/server/0067-Fix-MC-249136-lag-when-attempting-to-locate-a-buried.patch diff --git a/patches/server/0067-Including-5s-in-getTPS.patch b/patches/server/0068-Including-5s-in-getTPS.patch similarity index 100% rename from patches/server/0067-Including-5s-in-getTPS.patch rename to patches/server/0068-Including-5s-in-getTPS.patch diff --git a/patches/server/0068-Remove-useless-creating-stats-json-bases-on-player-n.patch b/patches/server/0069-Remove-useless-creating-stats-json-bases-on-player-n.patch similarity index 100% rename from patches/server/0068-Remove-useless-creating-stats-json-bases-on-player-n.patch rename to patches/server/0069-Remove-useless-creating-stats-json-bases-on-player-n.patch diff --git a/patches/server/0069-Fix-NPE-during-creating-GUI-graph.patch b/patches/server/0070-Fix-NPE-during-creating-GUI-graph.patch similarity index 100% rename from patches/server/0069-Fix-NPE-during-creating-GUI-graph.patch rename to patches/server/0070-Fix-NPE-during-creating-GUI-graph.patch diff --git a/patches/server/0070-Don-t-throw-exception-on-missing-ResourceKey-value.patch b/patches/server/0071-Don-t-throw-exception-on-missing-ResourceKey-value.patch similarity index 100% rename from patches/server/0070-Don-t-throw-exception-on-missing-ResourceKey-value.patch rename to patches/server/0071-Don-t-throw-exception-on-missing-ResourceKey-value.patch