mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-23 17:09:29 +00:00
Add Legacy LeafConfig converter
This commit is contained in:
214
patches/removed/server/0002-Leaf-Config.patch
Normal file
214
patches/removed/server/0002-Leaf-Config.patch
Normal file
@@ -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<String> getStringList(String key, List<String> defaultValue, String... comment) {
|
||||
+ return getStringList(key, null, defaultValue, comment);
|
||||
+ }
|
||||
+
|
||||
+ private static List<String> getStringList(String key, @Nullable String oldKey, List<String> defaultValue, String... comment) {
|
||||
+ ensureDefault(key, defaultValue, comment);
|
||||
+ return config.getStringList(key);
|
||||
+ }
|
||||
+
|
||||
+ static Map<String, Object> getMap(String key, Map<String, Object> defaultValue) {
|
||||
+ if (defaultValue != null && getConfigCopy().getConfigurationSection(key) == null) {
|
||||
+ config.addDefault(key, defaultValue);
|
||||
+ return defaultValue;
|
||||
+ }
|
||||
+ return toMap(getConfigCopy().getConfigurationSection(key));
|
||||
+ }
|
||||
+
|
||||
+ private static Map<String, Object> toMap(ConfigurationSection section) {
|
||||
+ ImmutableMap.Builder<String, Object> 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() {
|
||||
+ }
|
||||
+}
|
||||
242
patches/server/0003-Leaf-Config-legacy-converter.patch
Normal file
242
patches/server/0003-Leaf-Config-legacy-converter.patch
Normal file
@@ -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<IConfigModule> 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<String, Object> 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);
|
||||
+ }
|
||||
+}
|
||||
@@ -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<JavaExec> = register<JavaExec>(name) {
|
||||
@@ -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;
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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<TickTa
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Sync with Gale's Optimize-sun-burn-tick.patch
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index b1c74e88cffb5e63a0fcba90522aa8e37f908f47..381579e0b86af5e2b661a1a19658417027b7dd47 100644
|
||||
index 3a1b8f57c74124dbb413651a099dbadbc2e28490..c2cd75fe46adaa59b8f25dbb5f29c66796e1b60e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -567,13 +567,29 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -42,7 +42,7 @@ index b1c74e88cffb5e63a0fcba90522aa8e37f908f47..381579e0b86af5e2b661a1a196584170
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 4f045c799087709ef3a39983533776e9fedd00eb..69c0b1c756b5e18eefd825421662f2ae237e164e 100644
|
||||
index 2f06a3226f05797d6e2427e444a568bf06c67e3a..b0f151360a6263192aed9c1ff79c442bfe488483 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -1740,11 +1740,6 @@ public abstract class Mob extends LivingEntity implements Targeting {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix tracker NPE
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index 7873646019080bde586cc95634b483910536cc67..5eed5d9737f9eb694e05033d658821efcd04cbe5 100644
|
||||
index e95f6053982f9637c195243ceab37061b31355b5..af1cd2916a892b4c20ca26187a801ed713325a73 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -241,7 +241,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -18,7 +18,7 @@ index 7873646019080bde586cc95634b483910536cc67..5eed5d9737f9eb694e05033d658821ef
|
||||
// Paper end - optimise chunk tick iteration
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index 3af5602ef3d6265a2ddcdc5038c35ea1ca36d705..3f8c94087ca4dd8454251f1a1c9aa9fec26ddb32 100644
|
||||
index 93ec0bdece165e5a5058f9a7ed2fd67dbcef2ab4..70b35ce82701454017b44e8a2fb3b45fefc6420e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -9,6 +9,7 @@ import java.io.IOException;
|
||||
@@ -13,10 +13,10 @@ Fixed errors in console has no color,also fixed`Advanced terminal features are n
|
||||
or `Unable to create terminal` like issues
|
||||
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index 7a5933a2bb8cde20d4d147cc2665b2e65b881c35..1916967f583ebdb70682cf754a3f641ff80cc440 100644
|
||||
index 607d6a73daba955734f651530e4d3db87110eb16..7953623fe9858b9d8996a73a2c0145a9d736337e 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -26,7 +26,7 @@ dependencies {
|
||||
@@ -33,7 +33,7 @@ dependencies {
|
||||
|
||||
// Paper start
|
||||
implementation("org.jline:jline-terminal-jansi:3.25.1") // Leaf - Bump Dependencies
|
||||
@@ -10,7 +10,7 @@ But still recommend to turn-off `checkForMinecartNearItemWhileActive`
|
||||
Since `Reduce-hopper-item-checks.patch` will cause lag under massive dropped items
|
||||
|
||||
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 7f1803d073ba3a4be2c93c52dd1775f678ced7ae..50ce38ec45d2123c230373ad8f888f76ddd78172 100644
|
||||
index fbee057a90fb47f4b31388cdff052fbaf04b33d6..a68a6649d4ab40de1703ecc188566c9499ed4abc 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||
@@ -1,7 +1,9 @@
|
||||
@@ -17,11 +17,11 @@ This format saves about 50% of disk space.
|
||||
Documentation: https://github.com/xymb-endcrystalme/LinearRegionFileFormatTools
|
||||
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index 1916967f583ebdb70682cf754a3f641ff80cc440..8cdd625ea7258996a2d5b4d3d6c256134a7564d6 100644
|
||||
index 7953623fe9858b9d8996a73a2c0145a9d736337e..8fd100c7caa71044fcfad0fe463862fb484327f3 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -25,6 +25,8 @@ dependencies {
|
||||
implementation("com.electronwill.night-config:toml:3.6.7") // Leaf - Night config
|
||||
@@ -32,6 +32,8 @@ dependencies {
|
||||
// Leaf end
|
||||
|
||||
// Paper start
|
||||
+ implementation("com.github.luben:zstd-jni:1.5.5-11") // LinearPurpur
|
||||
@@ -60,7 +60,7 @@ index c7cd4ecf7cec85802c234d72619c9e191d6ca794..d68368f0d620e3d7a843c149cf06ad96
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
index 27fd37b650698cb73b93f84d536043ca1f7875d4..2c22e463efcfbcb36714d41e0c09272be77f2ea9 100644
|
||||
index 2957a7617acae18e23d8ffb90ed5c790681da9c1..4da22d7e536706f2ce892d15435b56a63c11b544 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
|
||||
@@ -137,6 +137,23 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
|
||||
@@ -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 {
|
||||
@@ -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 {
|
||||
@@ -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 {
|
||||
@@ -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 {
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user