9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-21 15:59:33 +00:00

Fakeplayer Resident (#17)

This commit is contained in:
violetc
2023-02-17 11:52:33 +08:00
parent 367a6bb85e
commit 1f2f9a3bdd
49 changed files with 233 additions and 127 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Fakeplayer support
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index cab8412d5183427b02c5f5d7b76aded8e9fbc491..9904aa8178bf64768a646dbc886cb774cb013af9 100644
index cab8412d5183427b02c5f5d7b76aded8e9fbc491..811e52d1dada0858348c162e80aec630da3283a7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -125,6 +125,7 @@ import net.minecraft.util.profiling.metrics.profiling.ServerMetricsSamplersProvi
@@ -16,19 +16,23 @@ index cab8412d5183427b02c5f5d7b76aded8e9fbc491..9904aa8178bf64768a646dbc886cb774
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.ai.village.VillageSiege;
import net.minecraft.world.entity.npc.CatSpawner;
@@ -193,6 +194,7 @@ import org.bukkit.event.server.ServerLoadEvent;
// CraftBukkit end
@@ -632,6 +633,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
// Paper end
import co.aikar.timings.MinecraftTimings; // Paper
+import top.leavesmc.leaves.bot.ServerBot;
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements CommandSource, AutoCloseable {
@@ -939,6 +941,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
+ top.leavesmc.leaves.bot.ServerBot.loadAllBot(); // Leaves - load resident bot
+
this.server.enablePlugins(org.bukkit.plugin.PluginLoadOrder.POSTWORLD);
this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP));
this.connection.acceptConnections();
@@ -939,6 +942,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Shutdown and don't bother finishing
MinecraftTimings.stopServer(); // Paper
+ ServerBot.removeAllBot(); // Leaves - remove all bot
+ // Leaves start - bot
+ top.leavesmc.leaves.bot.ServerBot.saveAllBot(); // Leaves - save
+ top.leavesmc.leaves.bot.ServerBot.removeAllBot(); // Leaves - remove all bot
+ // Leaves end - bot
// CraftBukkit start
if (this.server != null) {
this.server.disablePlugins();
@@ -218,7 +222,7 @@ index 78f53ee557276de85f0431ebcb146445b1f4fb92..42a2e411fd769bf0bf034141297e890c
}
// Water Animals
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 1fb25e8a21b568864974cc81b452ba062890d593..746b3873782d3ee13a30b8b65b4970b140b6f0fc 100644
index 1fb25e8a21b568864974cc81b452ba062890d593..a3aceccc7f2d1e8a525ac849c3818d8de4047ed1 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -7,6 +7,8 @@ import org.bukkit.Bukkit;
@@ -268,7 +272,7 @@ index 1fb25e8a21b568864974cc81b452ba062890d593..746b3873782d3ee13a30b8b65b4970b1
public static boolean playerCanEditSign = true;
private static void playerCanEditSign() {
playerCanEditSign = getBoolean("settings.modify.player-can-edit-sign", playerCanEditSign);
@@ -146,6 +162,21 @@ public final class LeavesConfig {
@@ -146,6 +162,23 @@ public final class LeavesConfig {
snowballAndEggCanKnockback = getBoolean("settings.modify.snowball-and-egg-can-knockback-player", snowballAndEggCanKnockback);
}
@@ -278,6 +282,7 @@ index 1fb25e8a21b568864974cc81b452ba062890d593..746b3873782d3ee13a30b8b65b4970b1
+ public static String fakeplayerPrefix = "";
+ public static String fakeplayerSuffix = "";
+ public static boolean alwaysSendFakeplayerData = true;
+ public static boolean fakeplayerResident = false;
+ public static void fakeplayer() {
+ fakeplayerSupport = getBoolean("settings.modify.fakeplayer.enable", fakeplayerSupport);
+ unableFakeplayerNames = getList("settings.modify.fakeplayer.unable-fakeplayer-names", unableFakeplayerNames);
@@ -285,6 +290,7 @@ index 1fb25e8a21b568864974cc81b452ba062890d593..746b3873782d3ee13a30b8b65b4970b1
+ fakeplayerPrefix = getString("settings.modify.fakeplayer.prefix", fakeplayerPrefix);
+ fakeplayerSuffix = getString("settings.modify.fakeplayer.suffix", fakeplayerSuffix);
+ alwaysSendFakeplayerData = getBoolean("settings.modify.fakeplayer.always-send-data", alwaysSendFakeplayerData);
+ fakeplayerResident = getBoolean("settings.modify.fakeplayer.resident-fakeplayer", fakeplayerResident);
+ }
+
public static final class WorldConfig {
@@ -559,17 +565,23 @@ index 0000000000000000000000000000000000000000..07b688d376a4af88305e57519a5ae983
+}
diff --git a/src/main/java/top/leavesmc/leaves/bot/BotUtil.java b/src/main/java/top/leavesmc/leaves/bot/BotUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..5a66ebb4c3c15162fab7be4fd0a160443341dfe4
index 0000000000000000000000000000000000000000..e5379b8a7494bc24f010cd7c52a2be52b7909ad2
--- /dev/null
+++ b/src/main/java/top/leavesmc/leaves/bot/BotUtil.java
@@ -0,0 +1,61 @@
@@ -0,0 +1,102 @@
+package top.leavesmc.leaves.bot;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import net.minecraft.core.NonNullList;
+import net.minecraft.world.entity.EquipmentSlot;
+import net.minecraft.world.item.ItemStack;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Map;
+
+public class BotUtil {
+
+ public static void replenishment(@NotNull ItemStack itemStack, NonNullList<ItemStack> itemStackList) {
@@ -623,6 +635,41 @@ index 0000000000000000000000000000000000000000..5a66ebb4c3c15162fab7be4fd0a16044
+ public static boolean isDamage(@NotNull ItemStack item, int minDamage) {
+ return item.isDamageableItem() && (item.getMaxDamage() - item.getDamageValue()) <= minDamage;
+ }
+
+ @NotNull
+ public static JsonObject saveBot(@NotNull ServerBot bot) {
+ double pos_x = bot.getX();
+ double pos_y = bot.getY();
+ double pos_z = bot.getZ();
+ float yaw = bot.getYRot();
+ float pitch = bot.getXRot();
+ String dimension = bot.level.dimension().location().getPath();
+ String skin = bot.skinName == null ? "null" : bot.skinName;
+ JsonObject fakePlayer = new JsonObject();
+ fakePlayer.addProperty("pos_x", pos_x);
+ fakePlayer.addProperty("pos_y", pos_y);
+ fakePlayer.addProperty("pos_z", pos_z);
+ fakePlayer.addProperty("yaw", yaw);
+ fakePlayer.addProperty("pitch", pitch);
+ fakePlayer.addProperty("dimension", dimension);
+ fakePlayer.addProperty("skin", skin);
+ return fakePlayer;
+ }
+
+ public static void loadBot(Map.@NotNull Entry<String, JsonElement> entry) {
+ String username = entry.getKey();
+ JsonObject fakePlayer = entry.getValue().getAsJsonObject();
+ double pos_x = fakePlayer.get("pos_x").getAsDouble();
+ double pos_y = fakePlayer.get("pos_y").getAsDouble();
+ double pos_z = fakePlayer.get("pos_z").getAsDouble();
+ float yaw = fakePlayer.get("yaw").getAsFloat();
+ float pitch = fakePlayer.get("pitch").getAsFloat();
+ String dimension = fakePlayer.get("dimension").getAsString();
+ String skin = fakePlayer.get("skin").getAsString();
+ skin = skin.equals("null") ? null : skin;
+ ServerBot.createBot(new Location(Bukkit.getWorld(dimension), pos_x, pos_y, pos_z, yaw, pitch),
+ username, skin);
+ }
+}
diff --git a/src/main/java/top/leavesmc/leaves/bot/MojangAPI.java b/src/main/java/top/leavesmc/leaves/bot/MojangAPI.java
new file mode 100644
@@ -673,13 +720,16 @@ index 0000000000000000000000000000000000000000..d6466ee4db637106e1394bb462d875e5
+}
diff --git a/src/main/java/top/leavesmc/leaves/bot/ServerBot.java b/src/main/java/top/leavesmc/leaves/bot/ServerBot.java
new file mode 100644
index 0000000000000000000000000000000000000000..4f3c5ab80f721b6cb40ea005dab47c8a60fa5416
index 0000000000000000000000000000000000000000..0dbaf5f409a616e20286cdba93846268d60f1e4a
--- /dev/null
+++ b/src/main/java/top/leavesmc/leaves/bot/ServerBot.java
@@ -0,0 +1,700 @@
@@ -0,0 +1,759 @@
+package top.leavesmc.leaves.bot;
+
+import com.google.common.collect.Lists;
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.mojang.authlib.GameProfile;
+import com.mojang.authlib.properties.Property;
+import com.mojang.datafixers.util.Pair;
@@ -711,6 +761,7 @@ index 0000000000000000000000000000000000000000..4f3c5ab80f721b6cb40ea005dab47c8a
+import net.minecraft.world.entity.EquipmentSlot;
+import net.minecraft.world.entity.MoverType;
+import net.minecraft.world.entity.item.ItemEntity;
+import net.minecraft.world.level.storage.LevelResource;
+import net.minecraft.world.phys.AABB;
+import net.minecraft.world.phys.Vec3;
+import org.bukkit.Bukkit;
@@ -739,11 +790,18 @@ index 0000000000000000000000000000000000000000..4f3c5ab80f721b6cb40ea005dab47c8a
+import top.leavesmc.leaves.util.MathUtils;
+
+import javax.annotation.Nullable;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.UUID;
+
@@ -765,11 +823,16 @@ index 0000000000000000000000000000000000000000..4f3c5ab80f721b6cb40ea005dab47c8a
+
+ private final ItemStack defaultItem;
+ private final ServerStatsCounter stats;
+ public final String skinName;
+
+ private static final List<ServerBot> bots = new ArrayList<>();
+ private static final Plugin MINECRAFT_PLUGIN = new MinecraftInternalPlugin();
+
+ private ServerBot(MinecraftServer server, ServerLevel world, GameProfile profile) {
+ this(server, world, profile, null);
+ }
+
+ private ServerBot(MinecraftServer server, ServerLevel world, GameProfile profile, String skinName) {
+ super(server, world, profile);
+ this.entityData.set(new EntityDataAccessor<>(16, EntityDataSerializers.INT), 0xFF);
+
@@ -782,6 +845,7 @@ index 0000000000000000000000000000000000000000..4f3c5ab80f721b6cb40ea005dab47c8a
+ this.defaultItem = new ItemStack(Material.AIR);
+ this.removeOnDeath = true;
+ this.stats = new BotStatsCounter(server);
+ this.skinName = skinName;
+ server.getPlayerList().addNewBot(this);
+ }
+
@@ -793,15 +857,15 @@ index 0000000000000000000000000000000000000000..4f3c5ab80f721b6cb40ea005dab47c8a
+ if (skinName != null) {
+ Bukkit.getScheduler().runTaskAsynchronously(MINECRAFT_PLUGIN, () -> {
+ String[] skin = MojangAPI.getSkin(skinName);
+ Bukkit.getScheduler().runTask(MINECRAFT_PLUGIN, () -> createBot(loc, realName, skin));
+ Bukkit.getScheduler().runTask(MINECRAFT_PLUGIN, () -> createBot(loc, realName, skin, skinName));
+ });
+ } else {
+ createBot(loc, realName, (String[]) null);
+ createBot(loc, realName, null, null);
+ }
+ }
+
+ @Nullable
+ public static ServerBot createBot(@NotNull Location loc, @NotNull String name, String[] skin) {
+ public static ServerBot createBot(@NotNull Location loc, @NotNull String name, String[] skin, String skinName) {
+ if (!isCreateLegal(name)) {
+ return null;
+ }
@@ -817,7 +881,7 @@ index 0000000000000000000000000000000000000000..4f3c5ab80f721b6cb40ea005dab47c8a
+ UUID uuid = UUID.randomUUID();
+ CustomGameProfile profile = new CustomGameProfile(uuid, name.length() > 16 ? name.substring(0, 16) : name, skin);
+
+ ServerBot bot = new ServerBot(server, world, profile);
+ ServerBot bot = new ServerBot(server, world, profile, skinName);
+
+ bot.connection = new ServerGamePacketListenerImpl(server, new Connection(PacketFlow.CLIENTBOUND) {
+ @Override
@@ -1349,6 +1413,48 @@ index 0000000000000000000000000000000000000000..4f3c5ab80f721b6cb40ea005dab47c8a
+ return bot;
+ }
+
+ public static void saveAllBot() {
+ if (LeavesConfig.fakeplayerSupport && LeavesConfig.fakeplayerResident) {
+ JsonObject fakePlayerList = new JsonObject();
+ bots.forEach((bot -> {
+ String name = bot.getName().getString();
+ fakePlayerList.add(name, BotUtil.saveBot(bot));
+ }));
+ File file = MinecraftServer.getServer().getWorldPath(LevelResource.ROOT).resolve("fake_player.leaves.json").toFile();
+ if (!file.isFile()) {
+ try {
+ file.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ try (BufferedWriter bfw = Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8)) {
+ bfw.write(new Gson().toJson(fakePlayerList));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public static void loadAllBot() {
+ if (LeavesConfig.fakeplayerSupport && LeavesConfig.fakeplayerResident) {
+ JsonObject fakePlayerList = new JsonObject();
+ File file = MinecraftServer.getServer().getWorldPath(LevelResource.ROOT).resolve("fake_player.leaves.json").toFile();
+ if (!file.isFile()) {
+ return;
+ }
+ try (BufferedReader bfr = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) {
+ fakePlayerList = new Gson().fromJson(bfr, JsonObject.class);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ for (Map.Entry<String, JsonElement> entry : fakePlayerList.entrySet()) {
+ BotUtil.loadBot(entry);
+ }
+ file.delete();
+ }
+ }
+
+ public static boolean removeAllBot() {
+ Iterator<ServerBot> iterator = bots.iterator();
+ while (iterator.hasNext()) {

View File

@@ -18,7 +18,7 @@ index d1127d93a85a837933d0d73c24cacac4adc3a5b9..bca725f614893458f825768e8dfb6ff9
}
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 746b3873782d3ee13a30b8b65b4970b140b6f0fc..adb206f659631537f0d42e53dc6a1c290898d508 100644
index a3aceccc7f2d1e8a525ac849c3818d8de4047ed1..5c9f5ef69f075ae10a92049a67605cbc63aea4c6 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -104,10 +104,12 @@ public final class LeavesConfig {
@@ -34,8 +34,8 @@ index 746b3873782d3ee13a30b8b65b4970b140b6f0fc..adb206f659631537f0d42e53dc6a1c29
}
}
@@ -177,6 +179,11 @@ public final class LeavesConfig {
alwaysSendFakeplayerData = getBoolean("settings.modify.fakeplayer.always-send-data", alwaysSendFakeplayerData);
@@ -179,6 +181,11 @@ public final class LeavesConfig {
fakeplayerResident = getBoolean("settings.modify.fakeplayer.resident-fakeplayer", fakeplayerResident);
}
+ public static boolean shearsInDispenserCanZeroAmount = false;

View File

@@ -98,7 +98,7 @@ index e77af779c77de6d5580c13699df3e7d890fe7aba..c9310e88b3a967cb9cacb80288e74757
+ // Leaves end - shears wrench
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index adb206f659631537f0d42e53dc6a1c290898d508..2cdf760ca9e1a53965e313bc9c067e9214d0b91b 100644
index 5c9f5ef69f075ae10a92049a67605cbc63aea4c6..f5a0193e581a875039ab27cc23acc4be3d0772f3 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -105,11 +105,13 @@ public final class LeavesConfig {
@@ -115,7 +115,7 @@ index adb206f659631537f0d42e53dc6a1c290898d508..2cdf760ca9e1a53965e313bc9c067e92
}
}
@@ -184,6 +186,11 @@ public final class LeavesConfig {
@@ -186,6 +188,11 @@ public final class LeavesConfig {
shearsInDispenserCanZeroAmount = getBoolean("settings.modify.shears-in-dispenser-can-zero-amount", shearsInDispenserCanZeroAmount);
}

View File

@@ -21,7 +21,7 @@ index bedccb8717d08d5a60058445b04ddff149e7d36c..2b452ae8d26107973f503451164f65de
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 2cdf760ca9e1a53965e313bc9c067e9214d0b91b..fa2a3b3683b45992cea5d01376cd84fe5b668be8 100644
index f5a0193e581a875039ab27cc23acc4be3d0772f3..1a7f70fc937647486f87345c499cea5f243118d9 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -106,12 +106,14 @@ public final class LeavesConfig {
@@ -39,7 +39,7 @@ index 2cdf760ca9e1a53965e313bc9c067e9214d0b91b..fa2a3b3683b45992cea5d01376cd84fe
}
}
@@ -191,6 +193,11 @@ public final class LeavesConfig {
@@ -193,6 +195,11 @@ public final class LeavesConfig {
redstoneShearsWrench = getBoolean("settings.modify.redstone-shears-wrench", redstoneShearsWrench);
}

View File

@@ -29,7 +29,7 @@ index 8873e12cbd3d6f9071efedb35ea3c69c78033d78..1fdaa8a9993dd6881877a3b00b02487a
AdvancementProgress advancementprogress = this.getOrStartProgress(advancement);
boolean flag1 = advancementprogress.isDone();
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index fa2a3b3683b45992cea5d01376cd84fe5b668be8..561a8141dcd5fba8d03afc95d0df735729ee87ee 100644
index 1a7f70fc937647486f87345c499cea5f243118d9..eff8e2f83a52b2ec32b2b8cef04cb810ad229011 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -107,6 +107,7 @@ public final class LeavesConfig {
@@ -48,7 +48,7 @@ index fa2a3b3683b45992cea5d01376cd84fe5b668be8..561a8141dcd5fba8d03afc95d0df7357
}
}
@@ -197,6 +199,11 @@ public final class LeavesConfig {
@@ -199,6 +201,11 @@ public final class LeavesConfig {
private static void buddingAmethystCanPushByPiston() {
buddingAmethystCanPushByPiston = getBoolean("settings.modify.budding-amethyst-can-push-by-piston", buddingAmethystCanPushByPiston);
}

View File

@@ -22,7 +22,7 @@ index b136cdc13d94bc34c998a1986e0c93525356ac5c..a1dd65d71606e1da07be781bf95a3268
return InteractionResult.FAIL;
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 561a8141dcd5fba8d03afc95d0df735729ee87ee..3a982e2bb5b19ebdd4500d7bc651e6bf420a0e9f 100644
index eff8e2f83a52b2ec32b2b8cef04cb810ad229011..5965ca2990caa88876be9b7a2400b24bd760193d 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -108,6 +108,7 @@ public final class LeavesConfig {
@@ -41,7 +41,7 @@ index 561a8141dcd5fba8d03afc95d0df735729ee87ee..3a982e2bb5b19ebdd4500d7bc651e6bf
}
}
@@ -204,6 +206,11 @@ public final class LeavesConfig {
@@ -206,6 +208,11 @@ public final class LeavesConfig {
private static void spectatorDontGetAdvancement() {
spectatorDontGetAdvancement = getBoolean("settings.modify.spectator-dont-get-advancement", spectatorDontGetAdvancement);
}

View File

@@ -138,10 +138,10 @@ index 6e0a3086da142f1c42007a16bbec7edbab17da04..776be7f58746f96fe9bf7daf11053d39
}
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 9904aa8178bf64768a646dbc886cb774cb013af9..7347cb4daf40996a559c2a4dec9b22b04d07ae53 100644
index 811e52d1dada0858348c162e80aec630da3283a7..a3b545dd722f912a64a0d0dc92525f0f0f86b7ea 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1109,6 +1109,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1113,6 +1113,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.status.setDescription(Component.literal(this.motd));
this.status.setVersion(new ServerStatus.Version(SharedConstants.getCurrentVersion().getName(), SharedConstants.getCurrentVersion().getProtocolVersion()));
this.status.setEnforcesSecureChat(this.enforceSecureProfile());
@@ -208,7 +208,7 @@ index 5a5a3f84138b2f9a55f0a7c17004194dd324ebb4..04885ae3016559e2f1cb6359ad8b558e
// CraftBukkit start
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 3a982e2bb5b19ebdd4500d7bc651e6bf420a0e9f..0a7beccf163afa6e4cbe67cc441bb815938a2ca0 100644
index 5965ca2990caa88876be9b7a2400b24bd760193d..6c7538da9728c1cadf77986666d228fb5581c5e3 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -109,6 +109,7 @@ public final class LeavesConfig {
@@ -227,7 +227,7 @@ index 3a982e2bb5b19ebdd4500d7bc651e6bf420a0e9f..0a7beccf163afa6e4cbe67cc441bb815
}
}
@@ -211,6 +213,15 @@ public final class LeavesConfig {
@@ -213,6 +215,15 @@ public final class LeavesConfig {
private static void stickChangeArmorStandHasArm() {
stickChangeArmorStandArmStatus = getBoolean("settings.modify.stick-change-armorstand-arm-status", stickChangeArmorStandArmStatus);
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Optimize mob spawning
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 7347cb4daf40996a559c2a4dec9b22b04d07ae53..81699351c4f9aa3a66270bcee060a504263cbed4 100644
index a3b545dd722f912a64a0d0dc92525f0f0f86b7ea..9c8d1043e7c23f1c61c48364d7266e1f8b568262 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -312,6 +312,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -311,6 +311,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public volatile boolean abnormalExit = false; // Paper
public boolean isIteratingOverLevels = false; // Paper
@@ -167,10 +167,10 @@ index 4cdfc433df67afcd455422e9baf56f167dd712ae..a6e0f5dab21d806e0c7744b2a337cded
private void ensureActiveIsNotIterated() {
// Paper - replace with better logic, do not delay removals
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 0a7beccf163afa6e4cbe67cc441bb815938a2ca0..e7528f6ec312dfceafec387bdc0dc3e463ede555 100644
index 6c7538da9728c1cadf77986666d228fb5581c5e3..8e3864fcee86b7cdd8e3199cb27e590baf5f8aaf 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -222,7 +222,16 @@ public final class LeavesConfig {
@@ -224,7 +224,16 @@ public final class LeavesConfig {
}
noChatSign = getBoolean("settings.misc.no-chat-sign", noChatSign);
}

View File

@@ -69,10 +69,10 @@ index 190e9761087baec5827d722a8281f0ffb6798341..158da4c3b002a4948bfb214337aa28a5
this.entity.stopSeenByPlayer(player);
player.connection.send(new ClientboundRemoveEntitiesPacket(new int[]{this.entity.getId()}));
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index e7528f6ec312dfceafec387bdc0dc3e463ede555..905f08e26399e017f9527af9362801f82af93b89 100644
index 8e3864fcee86b7cdd8e3199cb27e590baf5f8aaf..56110e6f68a011d71d3f6a11ba19e433accc5e56 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -232,6 +232,11 @@ public final class LeavesConfig {
@@ -234,6 +234,11 @@ public final class LeavesConfig {
}
}

View File

@@ -174,10 +174,10 @@ index 158da4c3b002a4948bfb214337aa28a55b358fc9..2f8e77692811604fdc19bff6ba0faeea
set.clear();
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 905f08e26399e017f9527af9362801f82af93b89..d14adf6f7d7f465273fbf6707372fb5e33f71834 100644
index 56110e6f68a011d71d3f6a11ba19e433accc5e56..5704d4165b032c6f2182e79647163921e93ce853 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -237,6 +237,20 @@ public final class LeavesConfig {
@@ -239,6 +239,20 @@ public final class LeavesConfig {
dontSendUselessEntityPackets = getBoolean("settings.performance.dont-send-useless-entity-packets", dontSendUselessEntityPackets);
}

View File

@@ -18,10 +18,10 @@ index 26bf383caea68834c654b25653ced9017f1b1b22..71e3c7fc5c071e83dfeca6954771e559
this.blockPos = mutableBlockPos;
setTargetPosition(mutableBlockPos.immutable()); // Paper
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index d14adf6f7d7f465273fbf6707372fb5e33f71834..5978e6239dc78d7124e32a2edf04527346e51c60 100644
index 5704d4165b032c6f2182e79647163921e93ce853..384b89c86af39e9b1abd71936d6c3e69698050fc 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -251,6 +251,11 @@ public final class LeavesConfig {
@@ -253,6 +253,11 @@ public final class LeavesConfig {
}
}

View File

@@ -38,10 +38,10 @@ index 43873929f11e373186190b3ae831dc68bfa69616..2433315c13e2da90f4f208d180d487c9
private Vec3 deltaMovement;
private float yRot;
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 5978e6239dc78d7124e32a2edf04527346e51c60..3c8e38dea93a9de913d1f0b7f4f5c4773ce0efc0 100644
index 384b89c86af39e9b1abd71936d6c3e69698050fc..fbf828219bf9712e3baff1196cf9bfc85de58d4e 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -256,6 +256,12 @@ public final class LeavesConfig {
@@ -258,6 +258,12 @@ public final class LeavesConfig {
fixPaper6045 = getBoolean("settings.performance.fix.fix-paper-6045", fixPaper6045);
}

View File

@@ -35,10 +35,10 @@ index f577dcc95bba43a2aa8a3a54b3afbcf50e93d52b..42f89171251a5f2dcd6e75eaa1135b34
public boolean hurt(DamageSource source, float amount) {
if (this.isInvulnerableTo(source)) {
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 3c8e38dea93a9de913d1f0b7f4f5c4773ce0efc0..03adee1f7fc55abee6826a3bc0689a8bd75f8f18 100644
index fbf828219bf9712e3baff1196cf9bfc85de58d4e..0ccfd68c1ad10dd5c8c8c875e6db77efc7981ea9 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -261,6 +261,10 @@ public final class LeavesConfig {
@@ -263,6 +263,10 @@ public final class LeavesConfig {
optimizeEntityCoordinateKey = getBoolean("settings.performance.optimize-entity-coordinate-key", optimizeEntityCoordinateKey);
}

View File

@@ -142,10 +142,10 @@ index 856055eeac058290b9b2146a11f5faccd1873df0..3fd487f9302f428171539e18f09f05c9
return pos.isInsideBuildHeightAndWorldBoundsHorizontal(this); // Paper - use better/optimized check
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 03adee1f7fc55abee6826a3bc0689a8bd75f8f18..fa65619eac5566cecb52c6723fa763071d22c243 100644
index 0ccfd68c1ad10dd5c8c8c875e6db77efc7981ea9..e75b3dcddd28c8ed462cfa324177ce042d4bfac2 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -266,6 +266,11 @@ public final class LeavesConfig {
@@ -268,6 +268,11 @@ public final class LeavesConfig {
enableSuffocationOptimization = getBoolean("settings.performance.enable-suffocation-optimization", enableSuffocationOptimization);
}

View File

@@ -45,10 +45,10 @@ index 320c558bbe80d4bbc641e895ec43cfa2b45e8d70..f57572620288d8f0e024d43a4e11e212
@Override
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index fa65619eac5566cecb52c6723fa763071d22c243..487cd4f0013f67599de1fca5dab8e770935aaf90 100644
index e75b3dcddd28c8ed462cfa324177ce042d4bfac2..a0f0f343b5fcb26a4b30e0ac669e9e0c7c1f41a9 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -271,6 +271,11 @@ public final class LeavesConfig {
@@ -273,6 +273,11 @@ public final class LeavesConfig {
entityStripRaytracing = getBoolean("settings.performance.strip-raytracing-for-entity", entityStripRaytracing);
}

View File

@@ -93,10 +93,10 @@ index 28e4b302284f955a73e75d0f4276d55fb51826f5..1bf1af06fbd6501e98def7997c487c42
public org.bukkit.Chunk bukkitChunk;
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 487cd4f0013f67599de1fca5dab8e770935aaf90..6ed61312bf9d263f4fe8e5717a6d48667b26f683 100644
index a0f0f343b5fcb26a4b30e0ac669e9e0c7c1f41a9..6820cfaef561f337c66b5fd67b6c28b965b72e6f 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -276,6 +276,15 @@ public final class LeavesConfig {
@@ -278,6 +278,15 @@ public final class LeavesConfig {
checkSpookySeasonOnceAnHour = getBoolean("settings.performance.check-spooky-season-once-an-hour", checkSpookySeasonOnceAnHour);
}

View File

@@ -22,10 +22,10 @@ index d4c91e0a0c64fcb7f1145de3f30134cb1f1f8ee6..44fc394dbab7e05a3bd7cab493300a96
long2ObjectMap.long2ObjectEntrySet().removeIf((entry) -> {
return !entry.getValue().isStillValid(time);
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 6ed61312bf9d263f4fe8e5717a6d48667b26f683..cbfb3e1cb2cf04b6774c78ef5c76f67bf38ed39e 100644
index 6820cfaef561f337c66b5fd67b6c28b965b72e6f..33d7872fd42f356d91ce5c54d5d2901abdd240f3 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -285,6 +285,11 @@ public final class LeavesConfig {
@@ -287,6 +287,11 @@ public final class LeavesConfig {
}
}

View File

@@ -29,10 +29,10 @@ index a7575b5ef56af6f53448d391abb4956e130148ca..e2764cbc888be39943728ff810e1e44b
return false;
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index cbfb3e1cb2cf04b6774c78ef5c76f67bf38ed39e..912d86c188f6422c920e1f355a81e3ad0c21e56b 100644
index 33d7872fd42f356d91ce5c54d5d2901abdd240f3..41c8ba388c1a2026fce9765344da2324d487a81a 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -289,6 +289,11 @@ public final class LeavesConfig {
@@ -291,6 +291,11 @@ public final class LeavesConfig {
private static void skipPOIFindingInVehicle() {
skipPOIFindingInVehicle = getBoolean("settings.performance.skip-poi-find-in-vehicle", skipPOIFindingInVehicle);
}

View File

@@ -38,10 +38,10 @@ index dca0d9611593a0f3b921b314b4b458cc95f08ebc..612d536f8a1b4e45d7431dc8bbd1c7aa
public static boolean isValidEmptySpawnBlock(BlockGetter blockView, BlockPos pos, BlockState state, FluidState fluidState, EntityType<?> entityType) {
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 912d86c188f6422c920e1f355a81e3ad0c21e56b..a55d962816739265f71d691412d72c8a746e4988 100644
index 41c8ba388c1a2026fce9765344da2324d487a81a..c651fea47720c49af4ff3f4af192c878b98c2453 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -295,6 +295,11 @@ public final class LeavesConfig {
@@ -297,6 +297,11 @@ public final class LeavesConfig {
entityTargetFindingOptimization = getBoolean("settings.performance.entity-target-find-optimization", entityTargetFindingOptimization);
}

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Config to disable method profiler
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 81699351c4f9aa3a66270bcee060a504263cbed4..f834a809431ca3667be0c74d8fcbe9db46cbda22 100644
index 9c8d1043e7c23f1c61c48364d7266e1f8b568262..253a80121043d124dd1c1f2bbf1418d6d3a2e10b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2246,6 +2246,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -2250,6 +2250,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public ProfilerFiller getProfiler() {
@@ -38,10 +38,10 @@ index 7d6fe65dc64afa00ecef0d1be2e13507086ab81a..dda31b5eea92ce3de9de0e4054ee9c7f
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index a55d962816739265f71d691412d72c8a746e4988..daaea20f6a778b1c8f35afc6bcb5734034cdba24 100644
index c651fea47720c49af4ff3f4af192c878b98c2453..636944381a41af0416efd821d5cfc20cb6bfdac9 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -300,6 +300,11 @@ public final class LeavesConfig {
@@ -302,6 +302,11 @@ public final class LeavesConfig {
useMoreThreadUnsafeRandom = getBoolean("settings.performance.use-more-thread-unsafe-random", useMoreThreadUnsafeRandom);
}

View File

@@ -25,10 +25,10 @@ index 49b983064ea810382b6112f5dc7f93ba4e5710bd..3948d4c6bf1f3942b6496ee2a8876665
}
if (this.targetSelector.inactiveTick()) {
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index daaea20f6a778b1c8f35afc6bcb5734034cdba24..e20b518013fc6ee858b966050c8a85b29302b7ae 100644
index 636944381a41af0416efd821d5cfc20cb6bfdac9..3df8b025fce50491c644bde0e8b05c3d5329a8c6 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -305,6 +305,11 @@ public final class LeavesConfig {
@@ -307,6 +307,11 @@ public final class LeavesConfig {
disableMethodProfiler = getBoolean("settings.misc.disable-method-profiler", disableMethodProfiler);
}

View File

@@ -28,10 +28,10 @@ index 35f9b11a3a61976c952a2c1c64bb2a932538f54f..5d678cfca0a39aeed0881c3a38828fdc
public boolean hasParam(LootContextParam<?> parameter) {
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index e20b518013fc6ee858b966050c8a85b29302b7ae..0529d3254fc591a368759903a16cbd281e02518b 100644
index 3df8b025fce50491c644bde0e8b05c3d5329a8c6..8570b5d9ca7aa0e9253d3e481c68fe13c8df25f4 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -310,6 +310,11 @@ public final class LeavesConfig {
@@ -312,6 +312,11 @@ public final class LeavesConfig {
throttleInactiveGoalSelectorTick = getBoolean("settings.performance.inactive-goal-selector-disable", throttleInactiveGoalSelectorTick);
}

View File

@@ -54,10 +54,10 @@ index dd1102d5291ef6f18e82400a6d8a0a376cc071e9..53c094c8a674b2842009727569e7e1f6
@Nullable
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 0529d3254fc591a368759903a16cbd281e02518b..42b78a401f66597888bf769ddffd35a7edc337a8 100644
index 8570b5d9ca7aa0e9253d3e481c68fe13c8df25f4..c51f15356dd018925afe3c3c877f410d0e9966fe 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -315,6 +315,11 @@ public final class LeavesConfig {
@@ -317,6 +317,11 @@ public final class LeavesConfig {
skipCloneLootParameters = getBoolean("settings.performance.skip-clone-loot-parameters", skipCloneLootParameters);
}

View File

@@ -36,10 +36,10 @@ index c41ae38038fb0f9e2010c59bd25860c9051034bb..1b17976702676755c986512507bfc322
}
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 42b78a401f66597888bf769ddffd35a7edc337a8..ea01d3dc4758eb26655ba15cc08a1a0d56da2c14 100644
index c51f15356dd018925afe3c3c877f410d0e9966fe..322367cd087a14ce6bff2ca14ff792bd12bb1ad4 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -320,6 +320,11 @@ public final class LeavesConfig {
@@ -322,6 +322,11 @@ public final class LeavesConfig {
reduceEntityAllocations = getBoolean("settings.performance.reduce-entity-allocations", reduceEntityAllocations);
}

View File

@@ -55,10 +55,10 @@ index 5bc033bf59d49eda1f8f2574165bbcbeab7faa0f..cf89cbffabf8b88265b5ffbc42b55fe6
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index ea01d3dc4758eb26655ba15cc08a1a0d56da2c14..bc88b440d12c79f78b649ab3e6b7045c641ef3ca 100644
index 322367cd087a14ce6bff2ca14ff792bd12bb1ad4..0582366bef7fdf57a1ebc3c01ac68be41d0bf3ac 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -325,6 +325,11 @@ public final class LeavesConfig {
@@ -327,6 +327,11 @@ public final class LeavesConfig {
removeTickGuardLambda = getBoolean("settings.performance.remove.tick-guard-lambda", removeTickGuardLambda);
}

View File

@@ -68,10 +68,10 @@ index 818952b1268688cf13a8ab22d38f05336bf740ad..c55eb9ef7217405c35661dbe03ae6be8
return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index bc88b440d12c79f78b649ab3e6b7045c641ef3ca..a4daa3c43bc46df5f44518f457c6f49b050a8cdc 100644
index 0582366bef7fdf57a1ebc3c01ac68be41d0bf3ac..26e99556e99dfbb02419190bee3a72a2ed12b350 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -330,6 +330,11 @@ public final class LeavesConfig {
@@ -332,6 +332,11 @@ public final class LeavesConfig {
removeInventoryContainsIterators = getBoolean("settings.performance.remove.inventory-contains-iterators", removeInventoryContainsIterators);
}

View File

@@ -65,10 +65,10 @@ index 634cde8069fc5ba467170a597e02da7c6b4e7b80..893475f58f649a40e3962092a3608636
return this.scaledRange(i);
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index a4daa3c43bc46df5f44518f457c6f49b050a8cdc..bc33a464e84c95de104b038c994f2cbe6cbc08a4 100644
index 26e99556e99dfbb02419190bee3a72a2ed12b350..7a66aba1ccb7182679e786688519aadc01ccec1f 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -335,6 +335,11 @@ public final class LeavesConfig {
@@ -337,6 +337,11 @@ public final class LeavesConfig {
removeGetNearPlayerStreams = getBoolean("settings.performance.remove.get-nearby-players-streams", removeGetNearPlayerStreams);
}

View File

@@ -7,10 +7,10 @@ This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
But Pufferfish patch was ported downstream from the Petal fork
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index bc33a464e84c95de104b038c994f2cbe6cbc08a4..b06f407f30e3f68d1ddf7b43ca4200dd14281288 100644
index 7a66aba1ccb7182679e786688519aadc01ccec1f..7dfe1efadcb62ec304c02bf0b1ec1d93ae9205ae 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -340,6 +340,21 @@ public final class LeavesConfig {
@@ -342,6 +342,21 @@ public final class LeavesConfig {
removeRangeCheckStreams = getBoolean("settings.performance.remove.range-check-streams-and-iterators", removeRangeCheckStreams);
}

View File

@@ -46,10 +46,10 @@ index e881584d38dc354204479863f004e974a0ac6c07..9f17c6acb54a7620656832df62e57e9d
return 1; // Paper
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index b06f407f30e3f68d1ddf7b43ca4200dd14281288..810b0e32931273fa6061d06f65558d8ec2ce1b79 100644
index 7dfe1efadcb62ec304c02bf0b1ec1d93ae9205ae..2858a2f2d755cffd2e87f58a3468e45a35b5abe9 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -355,6 +355,11 @@ public final class LeavesConfig {
@@ -357,6 +357,11 @@ public final class LeavesConfig {
}
}

View File

@@ -102,10 +102,10 @@ index c4f1173aab1e53412a65793e06238e637910475a..44bb45b391a365d4ca4dcd7e284edbb0
public boolean shouldFreeze(LevelReader world, BlockPos blockPos) {
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 810b0e32931273fa6061d06f65558d8ec2ce1b79..9e09b0cc1f6b83ba5fd6076f0e9fed70866b3b18 100644
index 2858a2f2d755cffd2e87f58a3468e45a35b5abe9..e117229dc47cd953ec148ac4e4d518e2a2e8e9cb 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -360,6 +360,15 @@ public final class LeavesConfig {
@@ -362,6 +362,15 @@ public final class LeavesConfig {
cacheClimbCheck = getBoolean("settings.performance.cache-climb-check", cacheClimbCheck);
}

View File

@@ -217,10 +217,10 @@ index b0c9fce9d4e06cac139e341d218d0b6aac1f1943..f53fee91b78ba4c1e17360a40d5a94fe
});
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 9e09b0cc1f6b83ba5fd6076f0e9fed70866b3b18..22b1a368313815d58cc04adb4e5368725bfa431f 100644
index e117229dc47cd953ec148ac4e4d518e2a2e8e9cb..bab657dfc664da1c5fa2cea17069d08de7c378c8 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -369,6 +369,11 @@ public final class LeavesConfig {
@@ -371,6 +371,11 @@ public final class LeavesConfig {
}
}

View File

@@ -42,10 +42,10 @@ index f4002ac7cba7d5e41b4f11b98212c625f6a92a65..6feeb3d30e45c5aba4e8204fe7e76f8f
boolean flag1 = iblockdata.getFluidState().is(FluidTags.WATER);
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 22b1a368313815d58cc04adb4e5368725bfa431f..a4b59a56a49a7f68b137cc6bc6ae935da6a38a82 100644
index bab657dfc664da1c5fa2cea17069d08de7c378c8..7c683f3f9e51cbcf1f451150d924a46c9f007068 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -374,6 +374,11 @@ public final class LeavesConfig {
@@ -376,6 +376,11 @@ public final class LeavesConfig {
reduceEntityFluidLookup = getBoolean("settings.performance.reduce-entity-fluid-lookup", reduceEntityFluidLookup);
}

View File

@@ -73,10 +73,10 @@ index f7ea77dd82d978ad307f99c743efacfb34478b3d..96be7a7b030b2f82ac91f0c5c8e66f28
}
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index a4b59a56a49a7f68b137cc6bc6ae935da6a38a82..c46bf36a89fa2c2f1fa4fecc15ef05575fc4f2e6 100644
index 7c683f3f9e51cbcf1f451150d924a46c9f007068..27d791fa3f1c78ca5e7c32fbbdb357503458b419 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -379,6 +379,11 @@ public final class LeavesConfig {
@@ -381,6 +381,11 @@ public final class LeavesConfig {
reduceChuckLoadAndLookup = getBoolean("settings.performance.reduce-chuck-load-and-lookup", reduceChuckLoadAndLookup);
}

View File

@@ -369,10 +369,10 @@ index a4f500464de6ee6e29cff84109357364e53de233..82b588b0736f18d265c1ab269fcbd4e4
// 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))
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index c46bf36a89fa2c2f1fa4fecc15ef05575fc4f2e6..77640ca1207ac2d54b5e9badac9c5dac9bcdf021 100644
index 27d791fa3f1c78ca5e7c32fbbdb357503458b419..c44850529dbff649a79cf0ee24c40550c9ea25f1 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -384,6 +384,21 @@ public final class LeavesConfig {
@@ -386,6 +386,21 @@ public final class LeavesConfig {
simplerVanillaShapelessRecipes = getBoolean("settings.performance.simpler-vanilla-shapeless-recipes", simplerVanillaShapelessRecipes);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] BBOR Protocol
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index f834a809431ca3667be0c74d8fcbe9db46cbda22..f6bc15c331f22aba5cbb41261dbc10a4dc1e2a8d 100644
index 253a80121043d124dd1c1f2bbf1418d6d3a2e10b..325bca7d156eac56f80a4551d21dc9875bef7ed7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1581,6 +1581,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1585,6 +1585,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("server gui refresh");
@@ -95,10 +95,10 @@ index 82b588b0736f18d265c1ab269fcbd4e47509d61e..e8492a1bbf306473116974bde751b814
// 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))
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 77640ca1207ac2d54b5e9badac9c5dac9bcdf021..5de878d654837bd1372f5ae859c2c0583af84a5c 100644
index c44850529dbff649a79cf0ee24c40550c9ea25f1..40d3fe005b8bde69753807bc0fdd0255fd705a62 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -399,6 +399,11 @@ public final class LeavesConfig {
@@ -401,6 +401,11 @@ public final class LeavesConfig {
}
}

View File

@@ -33,10 +33,10 @@ index dda31b5eea92ce3de9de0e4054ee9c7f6df631e4..dd3868045923eed8c6eaf87a57d9bf7d
this.getWorldBorder().world = (ServerLevel) this;
// From PlayerList.setPlayerFileData
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 5de878d654837bd1372f5ae859c2c0583af84a5c..2ac7c3dea6e30d9435befbe92bb9bdfa5951e688 100644
index 40d3fe005b8bde69753807bc0fdd0255fd705a62..4123f65395a595e423946c97437247f267d49ce3 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -404,6 +404,15 @@ public final class LeavesConfig {
@@ -406,6 +406,15 @@ public final class LeavesConfig {
bborProtocol = getBoolean("settings.protocol.bbor-protocol", bborProtocol);
}

View File

@@ -26,10 +26,10 @@ index ff1ad1024419182f7f3de578442c1c033d4c9ebb..d93f3eeea17d58ccc01c6010b2d49f81
default void consumeCount(int count) {
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 2ac7c3dea6e30d9435befbe92bb9bdfa5951e688..6bf431704248095eca656f9a7d3150755b6d7b85 100644
index 4123f65395a595e423946c97437247f267d49ce3..6feda82b282b73aab1955f2c5189cda9274d5213 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -413,6 +413,11 @@ public final class LeavesConfig {
@@ -415,6 +415,11 @@ public final class LeavesConfig {
}
}

View File

@@ -69,10 +69,10 @@ index e8492a1bbf306473116974bde751b814ded4b031..b69f915226dd9cda4b5f24e307d89c19
// 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))
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 6bf431704248095eca656f9a7d3150755b6d7b85..74838b4d190fdd42bde8486210cb8bc416cf2d08 100644
index 6feda82b282b73aab1955f2c5189cda9274d5213..761846061ffe05103a62d0c22561d492a6af8780 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -418,6 +418,11 @@ public final class LeavesConfig {
@@ -420,6 +420,11 @@ public final class LeavesConfig {
flattenTriangularDistribution = getBoolean("settings.modify.flatten-triangular-distribution", flattenTriangularDistribution);
}

View File

@@ -78,10 +78,10 @@ index 7b71073027f4cf79736546500ededdfbb83d968e..085097d454869e46adafd1cff5908e39
public BlockState getStateForPlacement(BlockPlaceContext ctx) {
return this.defaultBlockState();
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 74838b4d190fdd42bde8486210cb8bc416cf2d08..2916f0f79d1c618a7cc310e27951db0456d41f94 100644
index 761846061ffe05103a62d0c22561d492a6af8780..2256eaafd3f8acf420906744399d974e7e470939 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -423,6 +423,15 @@ public final class LeavesConfig {
@@ -425,6 +425,15 @@ public final class LeavesConfig {
jadeProtocol = getBoolean("settings.protocol.jade-protocol", jadeProtocol);
}

View File

@@ -132,10 +132,10 @@ index 3ab714721b51b039291b8e8a4b4da5118e18f5b7..1ee9c431282851882cdc337ea01ee590
return InteractionResult.FAIL;
} else if (!this.placeBlock(blockactioncontext1, iblockdata)) {
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 2916f0f79d1c618a7cc310e27951db0456d41f94..3bfe5ff37acde23fb383197e641f944489b99df3 100644
index 2256eaafd3f8acf420906744399d974e7e470939..932e8db3d683de1f58439a2496aff37987dfce9a 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -432,6 +432,11 @@ public final class LeavesConfig {
@@ -434,6 +434,11 @@ public final class LeavesConfig {
}
}

View File

@@ -40,10 +40,10 @@ index aa8734856ec7b90036afad13bfda46c02e548812..5d3c60c2e216848c7bbaebbd9b4f8184
java.util.UUID spawningEntity;
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 3bfe5ff37acde23fb383197e641f944489b99df3..9efb1a54ee62a74ebaf5720f08b0d64d54ba3b44 100644
index 932e8db3d683de1f58439a2496aff37987dfce9a..c303ccacacb885d952268bfee069e5e807fe52ba 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -437,6 +437,11 @@ public final class LeavesConfig {
@@ -439,6 +439,11 @@ public final class LeavesConfig {
playerOperationLimiter = getBoolean("settings.modify.player-operation-limiter", playerOperationLimiter);
}

View File

@@ -278,7 +278,7 @@ index 47468086c1cae252aa99c55b0065f225357dee62..bca757ea05403fe46f5bf0dfa75561b8
public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
return SHAPE;
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 9efb1a54ee62a74ebaf5720f08b0d64d54ba3b44..e5df1c66b69ef9304cf18677fafda180d3f0ed99 100644
index c303ccacacb885d952268bfee069e5e807fe52ba..1fbfc21a8911e17dfc3b68c963be954552eb27f1 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -9,6 +9,7 @@ import org.bukkit.configuration.ConfigurationSection;
@@ -289,7 +289,7 @@ index 9efb1a54ee62a74ebaf5720f08b0d64d54ba3b44..e5df1c66b69ef9304cf18677fafda180
import java.io.File;
import java.lang.reflect.InvocationTargetException;
@@ -442,6 +443,14 @@ public final class LeavesConfig {
@@ -444,6 +445,14 @@ public final class LeavesConfig {
renewableElytra = getDouble("settings.modify.renewable-elytra", renewableElytra);
}

View File

@@ -117,10 +117,10 @@ index 0ffc131baf5c0edc4f2ca0f466fcdb20be4a47b8..4cd00673e887183f49075e5d3ba904de
public abstract Fluid getFlowing();
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index e5df1c66b69ef9304cf18677fafda180d3f0ed99..39c4ba22556423cc4ef9d1cf9424ad148538f1bc 100644
index 1fbfc21a8911e17dfc3b68c963be954552eb27f1..33d878d36f2877d1badab1ee3a327674793ef40c 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -451,6 +451,15 @@ public final class LeavesConfig {
@@ -453,6 +453,15 @@ public final class LeavesConfig {
shulkerBoxStackSize = Integer.parseInt(stackableShulkerBoxes);
}

View File

@@ -83,7 +83,7 @@ index 612d536f8a1b4e45d7431dc8bbd1c7aa631a3575..9e021b4b25df941b4af1fb984ad123a3
entity.spawnReason == org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.CHUNK_GEN)) {
continue;
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 39c4ba22556423cc4ef9d1cf9424ad148538f1bc..b9b7f8ce2d0c2f2a5f3493e68e09e9affe3e5199 100644
index 33d878d36f2877d1badab1ee3a327674793ef40c..9ed9b6925dffb57839a70d6ed89a1f1fc49a186a 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -2,11 +2,13 @@ package top.leavesmc.leaves;
@@ -100,7 +100,7 @@ index 39c4ba22556423cc4ef9d1cf9424ad148538f1bc..b9b7f8ce2d0c2f2a5f3493e68e09e9af
import top.leavesmc.leaves.bot.BotCommand;
import top.leavesmc.leaves.bot.agent.Actions;
import top.leavesmc.leaves.util.MathUtils;
@@ -460,6 +462,24 @@ public final class LeavesConfig {
@@ -462,6 +464,24 @@ public final class LeavesConfig {
}
}

View File

@@ -133,10 +133,10 @@ index 7647b8bb3117d005dd616b29e7310f8328973b7f..eaeac639924098b86da57e2a87efc2af
@Nullable
private DamageSource lastDamageSource;
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index b9b7f8ce2d0c2f2a5f3493e68e09e9affe3e5199..1dc7626a99ff42fc0c98c94bf909361f9b28b121 100644
index 9ed9b6925dffb57839a70d6ed89a1f1fc49a186a..53a4ac574285af1f770deb79e90c669256d3abea 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -480,6 +480,11 @@ public final class LeavesConfig {
@@ -482,6 +482,11 @@ public final class LeavesConfig {
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Appleskin Protocol
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index f6bc15c331f22aba5cbb41261dbc10a4dc1e2a8d..a611b34058c79383db1be22e9f755e36edfa6ff1 100644
index 325bca7d156eac56f80a4551d21dc9875bef7ed7..ed1620016aa949e77c0b004f76a10676caa78249 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1582,6 +1582,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1586,6 +1586,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("server gui refresh");
top.leavesmc.leaves.protocol.BBORProtocol.tick(); // Leaves - bbor
@@ -55,10 +55,10 @@ index b69f915226dd9cda4b5f24e307d89c19e739ab8b..1febe4e731356f9470020048bf78b1eb
// 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))
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 1dc7626a99ff42fc0c98c94bf909361f9b28b121..18f3e74c1b0962d7a4472f48a5ac61e6f85e1ca5 100644
index 53a4ac574285af1f770deb79e90c669256d3abea..07a72eeda3d6cd8fc2aef2f34619989de2267233 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -485,6 +485,11 @@ public final class LeavesConfig {
@@ -487,6 +487,11 @@ public final class LeavesConfig {
netherPortalFix = getBoolean("settings.modify.return-nether-portal-fix", netherPortalFix);
}

View File

@@ -17,7 +17,7 @@ index ebf9894e216b8f30ded5134c683ad68efd9c4ccd..e485b48158d65b4d47da83226f3a4ebe
// CraftBukkit start - handle player weather
// entityplayer.connection.send(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.START_RAINING, 0.0F));
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 18f3e74c1b0962d7a4472f48a5ac61e6f85e1ca5..9b77b332bfca107e6cdcb5635ad3630b49a6d06e 100644
index 07a72eeda3d6cd8fc2aef2f34619989de2267233..3d7db0a8955c312b69338310ccec437e3046bb9e 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -20,6 +20,7 @@ import java.lang.reflect.Modifier;
@@ -28,7 +28,7 @@ index 18f3e74c1b0962d7a4472f48a5ac61e6f85e1ca5..9b77b332bfca107e6cdcb5635ad3630b
import java.util.logging.Level;
// Powered by Tuinity(https://github.com/Tuinity/Tuinity)
@@ -490,6 +491,13 @@ public final class LeavesConfig {
@@ -492,6 +493,13 @@ public final class LeavesConfig {
appleskinProtocol = getBoolean("settings.protocol.appleskin-protocol", appleskinProtocol);
}

View File

@@ -31,7 +31,7 @@ index 31faf2d6492696f7d0c99a48edbc0d6f15db1209..c7a2838157d73fa613e154aabb0d0a65
String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName);
LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath());
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 9b77b332bfca107e6cdcb5635ad3630b49a6d06e..904410dc3f200388795de189a0a483eb236704dd 100644
index 3d7db0a8955c312b69338310ccec437e3046bb9e..03ccb227cbc2077eb34185c41eae976a0885621b 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -11,6 +11,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
@@ -42,7 +42,7 @@ index 9b77b332bfca107e6cdcb5635ad3630b49a6d06e..904410dc3f200388795de189a0a483eb
import top.leavesmc.leaves.util.MathUtils;
import java.io.File;
@@ -498,6 +499,18 @@ public final class LeavesConfig {
@@ -500,6 +501,18 @@ public final class LeavesConfig {
xaeroMapServerID = getInt("settings.protocol.xaero-map-server-id", xaeroMapServerID);
}

View File

@@ -31,10 +31,10 @@ index a51424d29ac353cf1bec4d1484db0acb63bebba5..3172c2f10d5018427022f3bb479038db
}
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
index 904410dc3f200388795de189a0a483eb236704dd..ee093a034bda20cc3bd1df45a6084532b880ca18 100644
index 03ccb227cbc2077eb34185c41eae976a0885621b..2c44dff0db0b0824e983739510810e10f78910c7 100644
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
@@ -511,6 +511,15 @@ public final class LeavesConfig {
@@ -513,6 +513,15 @@ public final class LeavesConfig {
}
}