diff --git a/camellia-server/minecraft-patches/features/0026-Improved-server-health-command.patch b/camellia-server/minecraft-patches/features/0026-Improved-server-health-command.patch new file mode 100644 index 0000000..568e12f --- /dev/null +++ b/camellia-server/minecraft-patches/features/0026-Improved-server-health-command.patch @@ -0,0 +1,367 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: SakuraiMochi0721 +Date: Sun, 12 Jul 2026 10:15:29 +0800 +Subject: [PATCH] Improved server health command + +This is generated by calude +As it's only change the display, no tests and review are required + +diff --git a/io/papermc/paper/threadedregions/commands/CommandServerHealth.java b/io/papermc/paper/threadedregions/commands/CommandServerHealth.java +index aa860cfe9de616f185163fe74e0f4f49bd13a805..3545258acc0f516045594674c6f39f749d4d073a 100644 +--- a/io/papermc/paper/threadedregions/commands/CommandServerHealth.java ++++ b/io/papermc/paper/threadedregions/commands/CommandServerHealth.java +@@ -42,46 +42,88 @@ public final class CommandServerHealth extends Command { + return new DecimalFormat("#,##0"); + }); + +- private static final TextColor HEADER = TextColor.color(79, 164, 240); +- private static final TextColor PRIMARY = TextColor.color(48, 145, 237); +- private static final TextColor SECONDARY = TextColor.color(104, 177, 240); +- private static final TextColor INFORMATION = TextColor.color(145, 198, 243); +- private static final TextColor LIST = TextColor.color(33, 97, 188); ++ private static final TextColor HEADER = TextColor.color(0xcb, 0xa6, 0xf7); // Camellia - Catppuccin Mocha: Mauve ++ private static final TextColor PRIMARY = TextColor.color(0xa6, 0xad, 0xc8); // Camellia - Catppuccin Mocha: Subtext0 ++ private static final TextColor SECONDARY = TextColor.color(0xb4, 0xbe, 0xfe); // Camellia - Catppuccin Mocha: Lavender ++ private static final TextColor INFORMATION = TextColor.color(0xcd, 0xd6, 0xf4); // Camellia - Catppuccin Mocha: Text ++ private static final TextColor LIST = TextColor.color(0x74, 0xc7, 0xec); // Camellia - Catppuccin Mocha: Sapphire ++ // Camellia start - prettier /tps output ++ private static final TextColor MUTED = TextColor.color(0x6c, 0x70, 0x86); // Catppuccin Mocha: Overlay0 ++ private static final int DIVIDER_WIDTH = 44; ++ private static final int BAR_SEGMENTS = 20; ++ private static final String[] RANK_ICONS = {"①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨", "⑩"}; ++ // Camellia end + + public CommandServerHealth() { + super("tps"); +- this.setUsage("/ [server/region] [lowest regions to display]"); ++ this.setUsage("/ [server/region] [lowest regions to display|all]"); // Camellia - document "all" option + this.setDescription("Reports information about server health."); + this.setPermission("bukkit.command.tps"); + } + ++ // Camellia start - prettier /tps output helpers ++ private static Component divider() { ++ // strikethrough spaces render as a solid flat line on every client/font, unlike box-drawing glyphs ++ return Component.text(" ".repeat(DIVIDER_WIDTH), MUTED, TextDecoration.STRIKETHROUGH); ++ } ++ ++ private static Component sectionHeader(final String title) { ++ return Component.text() ++ .append(Component.text("» ", HEADER, TextDecoration.BOLD)) ++ .append(Component.text(title + "\n", HEADER, TextDecoration.BOLD)) ++ .build(); ++ } ++ ++ private static String rankLabel(final int index) { ++ return index < RANK_ICONS.length ? RANK_ICONS[index] : ("#" + (index + 1)); ++ } ++ ++ private static Component progressBar(final double fraction) { ++ // same strikethrough-space trick as divider() so the bar is a smooth flat two-tone line, not a ++ // row of block glyphs that may render as tiny/misaligned dots depending on the client's font ++ final double clamped = Math.max(0.0, Math.min(1.0, fraction)); ++ final int filled = (int) Math.round(clamped * BAR_SEGMENTS); ++ final TextColor barColour = CommandUtil.getUtilisationColourRegion(clamped); ++ return Component.text() ++ .append(Component.text(" ".repeat(filled), barColour, TextDecoration.STRIKETHROUGH)) ++ .append(Component.text(" ".repeat(BAR_SEGMENTS - filled), MUTED, TextDecoration.STRIKETHROUGH)) ++ .build(); ++ } ++ // Camellia end ++ + private static Component formatRegionInfo(final String prefix, final double util, final double mspt, final double tps, + final boolean newline) { ++ // Camellia start - use progress bar + dot separators instead of plain "util at ... MSPT at ..." text + return Component.text() +- .append(Component.text(prefix, PRIMARY, TextDecoration.BOLD)) +- .append(Component.text(ONE_DECIMAL_PLACES.get().format(util * 100.0), CommandUtil.getUtilisationColourRegion(util))) +- .append(Component.text("% util at ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(mspt), CommandUtil.getColourForMSPT(mspt))) +- .append(Component.text(" MSPT at ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(tps), CommandUtil.getColourForTPS(tps))) +- .append(Component.text(" TPS" + (newline ? "\n" : ""), PRIMARY)) +- .build(); ++ .append(Component.text(prefix, PRIMARY, TextDecoration.BOLD)) ++ .append(progressBar(util)) ++ .append(Component.text(" ")) ++ .append(Component.text(ONE_DECIMAL_PLACES.get().format(util * 100.0) + "%", CommandUtil.getUtilisationColourRegion(util))) ++ .append(Component.text(" · ", MUTED)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(mspt) + " ms", CommandUtil.getColourForMSPT(mspt))) ++ .append(Component.text(" · ", MUTED)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(tps) + " tps", CommandUtil.getColourForTPS(tps))) ++ .append(Component.text(newline ? "\n" : "", PRIMARY)) ++ .build(); ++ // Camellia end + } + + private static Component formatRegionStats(final TickRegions.RegionStats stats, final boolean newline) { ++ // Camellia start - add "·" separators for readability + return Component.text() +- .append(Component.text("Chunks: ", PRIMARY)) +- .append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getChunkCount()), INFORMATION)) +- .append(Component.text(" Players: ", PRIMARY)) +- .append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getPlayerCount()), INFORMATION)) +- .append(Component.text(" Entities: ", PRIMARY)) +- .append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getEntityCount()) + (newline ? "\n" : ""), INFORMATION)) +- .build(); ++ .append(Component.text("Chunks: ", PRIMARY)) ++ .append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getChunkCount()), INFORMATION)) ++ .append(Component.text(" · Players: ", PRIMARY)) ++ .append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getPlayerCount()), INFORMATION)) ++ .append(Component.text(" · Entities: ", PRIMARY)) ++ .append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getEntityCount()) + (newline ? "\n" : ""), INFORMATION)) ++ .build(); ++ // Camellia end + } + + private static boolean executeRegion(final CommandSender sender, final String commandLabel, final String[] args) { + final ThreadedRegionizer.ThreadedRegion region = +- TickRegionScheduler.getCurrentRegion(); ++ TickRegionScheduler.getCurrentRegion(); + if (region == null) { + sender.sendMessage(Component.text("You are not in a region currently", NamedTextColor.RED)); + return true; +@@ -108,22 +150,24 @@ public final class CommandServerHealth extends Command { + final int yLoc = 80; + final String location = "[w:'" + world.getWorld().getName() + "'," + centerBlockX + "," + yLoc + "," + centerBlockZ + "]"; + ++ // Camellia start - prettier /tps region output + final Component line = Component.text() +- .append(Component.text("Region around block ", PRIMARY)) +- .append(Component.text(location, INFORMATION)) +- .append(Component.text(":\n", PRIMARY)) +- +- .append( +- formatRegionInfo("15s: ", util15s, mspt15s, tps15s, true) +- ) +- .append( +- formatRegionInfo("1m: ", util1m, mspt1m, tps1m, true) +- ) +- .append( +- formatRegionStats(region.getData().getRegionStats(), false) +- ) +- +- .build(); ++ .append(sectionHeader("Region around " + location)) ++ .append(divider()) ++ .append(Component.text("\n")) ++ ++ .append( ++ formatRegionInfo("15s: ", util15s, mspt15s, tps15s, true) ++ ) ++ .append( ++ formatRegionInfo("1m: ", util1m, mspt1m, tps1m, true) ++ ) ++ .append( ++ formatRegionStats(region.getData().getRegionStats(), false) ++ ) ++ ++ .build(); ++ // Camellia end + + sender.sendMessage(line); + +@@ -131,9 +175,13 @@ public final class CommandServerHealth extends Command { + } + + private static boolean executeServer(final CommandSender sender, final String commandLabel, final String[] args) { ++ // Camellia start - "all" lists every tick region instead of just the top N by utilisation ++ final boolean showAllRegions = args.length >= 2 && args[1].equalsIgnoreCase("all"); + final int lowestRegionsCount; +- if (args.length < 2) { +- lowestRegionsCount = 3; ++ if (showAllRegions) { ++ lowestRegionsCount = Integer.MAX_VALUE; // unused when showAllRegions is true, kept for definite assignment ++ } else if (args.length < 2) { ++ lowestRegionsCount = 5; // default to top 5 regions + } else { + try { + lowestRegionsCount = Integer.parseInt(args[1]); +@@ -142,9 +190,10 @@ public final class CommandServerHealth extends Command { + return true; + } + } ++ // Camellia end + + final List> regions = +- new ArrayList<>(); ++ new ArrayList<>(); + + for (final World bukkitWorld : Bukkit.getWorlds()) { + final ServerLevel world = ((CraftWorld)bukkitWorld).getHandle(); +@@ -174,6 +223,7 @@ public final class CommandServerHealth extends Command { + final double loadRate = ca.spottedleaf.moonrise.patches.chunk_system.scheduling.task.ChunkFullTask.loadRate(currTime); + + totalUtil += globalTickReport.utilisation(); ++ final double overallFraction = maxThreadCount > 0 ? (totalUtil / maxThreadCount) : 0.0; // Camellia - overall load fraction for progress bar + + tpsByRegion.sort(null); + if (!tpsByRegion.isEmpty()) { +@@ -194,7 +244,7 @@ public final class CommandServerHealth extends Command { + } + + final List, TickData.TickReportData>> +- regionsBelowThreshold = new ArrayList<>(); ++ regionsBelowThreshold = new ArrayList<>(); + + for (int i = 0, len = regions.size(); i < len; ++i) { + final TickData.TickReportData report = reportsByRegion.get(i); +@@ -215,15 +265,15 @@ public final class CommandServerHealth extends Command { + final TextComponent.Builder lowestRegionsBuilder = Component.text(); + + if (sender instanceof Player) { +- lowestRegionsBuilder.append(Component.text(" Click to teleport\n", SECONDARY)); ++ lowestRegionsBuilder.append(Component.text(" Click to teleport\n", SECONDARY, TextDecoration.ITALIC)); // Camellia - restyle hint text + } +- for (int i = 0, len = Math.min(lowestRegionsCount, regionsBelowThreshold.size()); i < len; ++i) { ++ for (int i = 0, len = showAllRegions ? regionsBelowThreshold.size() : Math.min(lowestRegionsCount, regionsBelowThreshold.size()); i < len; ++i) { // Camellia - support "all" + final ObjectObjectImmutablePair, TickData.TickReportData> +- pair = regionsBelowThreshold.get(i); ++ pair = regionsBelowThreshold.get(i); + + final TickData.TickReportData report = pair.right(); + final ThreadedRegionizer.ThreadedRegion region = +- pair.left(); ++ pair.left(); + + if (report == null) { + // skip regions with no data +@@ -244,74 +294,76 @@ public final class CommandServerHealth extends Command { + + final int yLoc = 80; + final String location = "[w:'" + world.getWorld().getName() + "'," + centerBlockX + "," + yLoc + "," + centerBlockZ + "]"; ++ // Camellia start - prettier /tps region list entries + final Component line = Component.text() +- .append(Component.text(" - ", LIST, TextDecoration.BOLD)) +- .append(Component.text("Region around block ", PRIMARY)) +- .append(Component.text(location, INFORMATION)) +- .append(Component.text(":\n", PRIMARY)) +- +- .append(Component.text(" ", PRIMARY)) +- .append(Component.text(ONE_DECIMAL_PLACES.get().format(util * 100.0), CommandUtil.getUtilisationColourRegion(util))) +- .append(Component.text("% util at ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(mspt), CommandUtil.getColourForMSPT(mspt))) +- .append(Component.text(" MSPT at ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(tps), CommandUtil.getColourForTPS(tps))) +- .append(Component.text(" TPS\n", PRIMARY)) +- +- .append(Component.text(" ", PRIMARY)) +- .append(formatRegionStats(region.getData().getRegionStats(), (i + 1) != len)) +- .build() +- +- .clickEvent(ClickEvent.clickEvent(ClickEvent.Action.RUN_COMMAND, Payload.string("/minecraft:execute as @s in " + world.getWorld().getKey().toString() + " run tp " + centerBlockX + ".5 " + yLoc + " " + centerBlockZ + ".5"))) +- .hoverEvent(HoverEvent.hoverEvent(HoverEvent.Action.SHOW_TEXT, Component.text("Click to teleport to " + location, SECONDARY))); ++ .append(Component.text(" " + rankLabel(i) + " ", LIST, TextDecoration.BOLD)) // Camellia - Catppuccin Mocha: Sapphire rank marker ++ .append(Component.text(location + "\n", INFORMATION)) ++ ++ .append(Component.text(" ")) ++ .append(progressBar(util)) ++ .append(Component.text(" ")) ++ .append(Component.text(ONE_DECIMAL_PLACES.get().format(util * 100.0) + "%", CommandUtil.getUtilisationColourRegion(util))) ++ .append(Component.text(" · ", MUTED)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(mspt) + " ms", CommandUtil.getColourForMSPT(mspt))) ++ .append(Component.text(" · ", MUTED)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(tps) + " tps\n", CommandUtil.getColourForTPS(tps))) ++ ++ .append(Component.text(" ")) ++ .append(formatRegionStats(region.getData().getRegionStats(), (i + 1) != len)) ++ .build() ++ ++ .clickEvent(ClickEvent.clickEvent(ClickEvent.Action.RUN_COMMAND, Payload.string("/minecraft:execute as @s in " + world.getWorld().getKey().toString() + " run tp " + centerBlockX + ".5 " + yLoc + " " + centerBlockZ + ".5"))) ++ .hoverEvent(HoverEvent.hoverEvent(HoverEvent.Action.SHOW_TEXT, Component.text("Click to teleport to " + location, SECONDARY))); ++ // Camellia end + + lowestRegionsBuilder.append(line); + } + + sender.sendMessage( +- Component.text() +- .append(Component.text("Server Health Report\n", HEADER, TextDecoration.BOLD)) +- +- .append(Component.text(" - ", LIST, TextDecoration.BOLD)) +- .append(Component.text("Online Players: ", PRIMARY)) +- .append(Component.text(Bukkit.getOnlinePlayers().size() + "\n", INFORMATION)) +- +- .append(Component.text(" - ", LIST, TextDecoration.BOLD)) +- .append(Component.text("Total regions: ", PRIMARY)) +- .append(Component.text(regions.size() + "\n", INFORMATION)) +- +- .append(Component.text(" - ", LIST, TextDecoration.BOLD)) +- .append(Component.text("Utilisation: ", PRIMARY)) +- .append(Component.text(ONE_DECIMAL_PLACES.get().format(totalUtil * 100.0), CommandUtil.getUtilisationColourRegion(totalUtil / (double)maxThreadCount))) +- .append(Component.text("% / ", PRIMARY)) +- .append(Component.text(ONE_DECIMAL_PLACES.get().format(maxThreadCount * 100.0), INFORMATION)) +- .append(Component.text("%\n", PRIMARY)) +- +- .append(Component.text(" - ", LIST, TextDecoration.BOLD)) +- .append(Component.text("Load rate: ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(loadRate) + ", ", INFORMATION)) +- .append(Component.text("Gen rate: ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(genRate) + "\n", INFORMATION)) +- +- .append(Component.text(" - ", LIST, TextDecoration.BOLD)) +- .append(Component.text("Lowest Region TPS: ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(minTps) + "\n", CommandUtil.getColourForTPS(minTps))) +- +- +- .append(Component.text(" - ", LIST, TextDecoration.BOLD)) +- .append(Component.text("Median Region TPS: ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(medianTps) + "\n", CommandUtil.getColourForTPS(medianTps))) +- +- .append(Component.text(" - ", LIST, TextDecoration.BOLD)) +- .append(Component.text("Highest Region TPS: ", PRIMARY)) +- .append(Component.text(TWO_DECIMAL_PLACES.get().format(maxTps) + "\n", CommandUtil.getColourForTPS(maxTps))) +- +- .append(Component.text("Highest ", HEADER, TextDecoration.BOLD)) +- .append(Component.text(Integer.toString(lowestRegionsCount), INFORMATION, TextDecoration.BOLD)) +- .append(Component.text(" utilisation regions\n", HEADER, TextDecoration.BOLD)) +- +- .append(lowestRegionsBuilder.build()) +- .build() ++ // Camellia start - prettier /tps server output ++ Component.text() ++ .append(sectionHeader("Server Health Report")) ++ .append(divider()) ++ .append(Component.text("\n")) ++ ++ .append(Component.text(" Summary\n", HEADER, TextDecoration.BOLD)) ++ .append(Component.text(" Players ", PRIMARY)) ++ .append(Component.text(Bukkit.getOnlinePlayers().size() + " ", INFORMATION)) ++ .append(Component.text("Regions ", PRIMARY)) ++ .append(Component.text(regions.size() + "\n", INFORMATION)) ++ ++ .append(Component.text(" Chunk system load\n", HEADER, TextDecoration.BOLD)) ++ .append(Component.text(" Load rate ", PRIMARY)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(loadRate) + " ", INFORMATION)) ++ .append(Component.text("Gen rate ", PRIMARY)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(genRate) + "\n", INFORMATION)) ++ ++ .append(Component.text(" Overall load\n", HEADER, TextDecoration.BOLD)) ++ .append(Component.text(" ")) ++ .append(progressBar(overallFraction)) ++ .append(Component.text(" ")) ++ .append(Component.text(ONE_DECIMAL_PLACES.get().format(overallFraction * 100.0) + "%", CommandUtil.getUtilisationColourRegion(overallFraction))) ++ .append(Component.text(" (", MUTED)) ++ .append(Component.text(ONE_DECIMAL_PLACES.get().format(totalUtil * 100.0) + "%", INFORMATION)) ++ .append(Component.text(" / ", MUTED)) ++ .append(Component.text(maxThreadCount + " threads", INFORMATION)) ++ .append(Component.text(")\n", MUTED)) ++ ++ .append(Component.text(" TPS\n", HEADER, TextDecoration.BOLD)) ++ .append(Component.text(" min ", PRIMARY)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(minTps) + " ", CommandUtil.getColourForTPS(minTps))) ++ .append(Component.text("med ", PRIMARY)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(medianTps) + " ", CommandUtil.getColourForTPS(medianTps))) ++ .append(Component.text("max ", PRIMARY)) ++ .append(Component.text(TWO_DECIMAL_PLACES.get().format(maxTps) + "\n", CommandUtil.getColourForTPS(maxTps))) ++ ++ .append(divider()) ++ .append(Component.text("\n")) ++ .append(sectionHeader(showAllRegions ? "All " + regions.size() + " regions by utilisation" : "Top " + lowestRegionsCount + " regions by utilisation")) // Camellia - "all" heading ++ ++ .append(lowestRegionsBuilder.build()) ++ .build() ++ // Camellia end + ); + + return true; diff --git a/camellia-server/minecraft-patches/features/0026-Add-config-to-support-for-long-command-inputs.patch b/camellia-server/minecraft-patches/features/0027-Add-config-to-support-for-long-command-inputs.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0026-Add-config-to-support-for-long-command-inputs.patch rename to camellia-server/minecraft-patches/features/0027-Add-config-to-support-for-long-command-inputs.patch diff --git a/camellia-server/minecraft-patches/features/0027-Add-config-for-server-mod-name.patch b/camellia-server/minecraft-patches/features/0028-Add-config-for-server-mod-name.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0027-Add-config-for-server-mod-name.patch rename to camellia-server/minecraft-patches/features/0028-Add-config-for-server-mod-name.patch diff --git a/camellia-server/minecraft-patches/features/0028-Add-config-for-cpu-affinity.patch b/camellia-server/minecraft-patches/features/0029-Add-config-for-cpu-affinity.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0028-Add-config-for-cpu-affinity.patch rename to camellia-server/minecraft-patches/features/0029-Add-config-for-cpu-affinity.patch diff --git a/camellia-server/minecraft-patches/features/0029-Add-config-for-unsafe-teleportation.patch b/camellia-server/minecraft-patches/features/0030-Add-config-for-unsafe-teleportation.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0029-Add-config-for-unsafe-teleportation.patch rename to camellia-server/minecraft-patches/features/0030-Add-config-for-unsafe-teleportation.patch diff --git a/camellia-server/minecraft-patches/features/0030-Add-config-for-watchdog-timeout.patch b/camellia-server/minecraft-patches/features/0031-Add-config-for-watchdog-timeout.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0030-Add-config-for-watchdog-timeout.patch rename to camellia-server/minecraft-patches/features/0031-Add-config-for-watchdog-timeout.patch diff --git a/camellia-server/minecraft-patches/features/0031-Add-config-to-disable-entity-tick-catchers.patch b/camellia-server/minecraft-patches/features/0032-Add-config-to-disable-entity-tick-catchers.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0031-Add-config-to-disable-entity-tick-catchers.patch rename to camellia-server/minecraft-patches/features/0032-Add-config-to-disable-entity-tick-catchers.patch diff --git a/camellia-server/minecraft-patches/features/0032-Add-config-for-heightmap-warning.patch b/camellia-server/minecraft-patches/features/0033-Add-config-for-heightmap-warning.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0032-Add-config-for-heightmap-warning.patch rename to camellia-server/minecraft-patches/features/0033-Add-config-for-heightmap-warning.patch diff --git a/camellia-server/minecraft-patches/features/0033-Add-config-gui-support.patch b/camellia-server/minecraft-patches/features/0034-Add-config-gui-support.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0033-Add-config-gui-support.patch rename to camellia-server/minecraft-patches/features/0034-Add-config-gui-support.patch diff --git a/camellia-server/minecraft-patches/features/0034-Add-force-the-data-command-to-be-enabled-config.patch b/camellia-server/minecraft-patches/features/0035-Add-force-the-data-command-to-be-enabled-config.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0034-Add-force-the-data-command-to-be-enabled-config.patch rename to camellia-server/minecraft-patches/features/0035-Add-force-the-data-command-to-be-enabled-config.patch diff --git a/camellia-server/minecraft-patches/features/0035-Add-experimental-config-for-command-block-command-ex.patch b/camellia-server/minecraft-patches/features/0036-Add-experimental-config-for-command-block-command-ex.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0035-Add-experimental-config-for-command-block-command-ex.patch rename to camellia-server/minecraft-patches/features/0036-Add-experimental-config-for-command-block-command-ex.patch diff --git a/camellia-server/minecraft-patches/features/0036-Add-config-to-modify-tripwire-behavior.patch b/camellia-server/minecraft-patches/features/0037-Add-config-to-modify-tripwire-behavior.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0036-Add-config-to-modify-tripwire-behavior.patch rename to camellia-server/minecraft-patches/features/0037-Add-config-to-modify-tripwire-behavior.patch diff --git a/camellia-server/minecraft-patches/features/0037-Add-config-for-item-multitask.patch b/camellia-server/minecraft-patches/features/0038-Add-config-for-item-multitask.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0037-Add-config-for-item-multitask.patch rename to camellia-server/minecraft-patches/features/0038-Add-config-for-item-multitask.patch diff --git a/camellia-server/minecraft-patches/features/0038-Add-config-to-enable-tick-command.patch b/camellia-server/minecraft-patches/features/0039-Add-config-to-enable-tick-command.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0038-Add-config-to-enable-tick-command.patch rename to camellia-server/minecraft-patches/features/0039-Add-config-to-enable-tick-command.patch diff --git a/camellia-server/minecraft-patches/features/0039-Add-config-for-whether-to-save-portal-tickets.patch b/camellia-server/minecraft-patches/features/0040-Add-config-for-whether-to-save-portal-tickets.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0039-Add-config-for-whether-to-save-portal-tickets.patch rename to camellia-server/minecraft-patches/features/0040-Add-config-for-whether-to-save-portal-tickets.patch diff --git a/camellia-server/minecraft-patches/features/0040-Add-portal-rate-limiter.patch b/camellia-server/minecraft-patches/features/0041-Add-portal-rate-limiter.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0040-Add-portal-rate-limiter.patch rename to camellia-server/minecraft-patches/features/0041-Add-portal-rate-limiter.patch diff --git a/camellia-server/minecraft-patches/features/0041-Add-status-bar.patch b/camellia-server/minecraft-patches/features/0042-Add-status-bar.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0041-Add-status-bar.patch rename to camellia-server/minecraft-patches/features/0042-Add-status-bar.patch diff --git a/camellia-server/minecraft-patches/features/0042-Leaves-Vanilla-Hopper.patch b/camellia-server/minecraft-patches/features/0043-Leaves-Vanilla-Hopper.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0042-Leaves-Vanilla-Hopper.patch rename to camellia-server/minecraft-patches/features/0043-Leaves-Vanilla-Hopper.patch diff --git a/camellia-server/minecraft-patches/features/0043-Leaves-Lithium-Sleeping-Block-Entity.patch b/camellia-server/minecraft-patches/features/0044-Leaves-Lithium-Sleeping-Block-Entity.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0043-Leaves-Lithium-Sleeping-Block-Entity.patch rename to camellia-server/minecraft-patches/features/0044-Leaves-Lithium-Sleeping-Block-Entity.patch diff --git a/camellia-server/minecraft-patches/features/0044-Petal-Reduce-sensor-work.patch b/camellia-server/minecraft-patches/features/0045-Petal-Reduce-sensor-work.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0044-Petal-Reduce-sensor-work.patch rename to camellia-server/minecraft-patches/features/0045-Petal-Reduce-sensor-work.patch diff --git a/camellia-server/minecraft-patches/features/0045-Purpur-Lobotomize-stuck-villagers.patch b/camellia-server/minecraft-patches/features/0046-Purpur-Lobotomize-stuck-villagers.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0045-Purpur-Lobotomize-stuck-villagers.patch rename to camellia-server/minecraft-patches/features/0046-Purpur-Lobotomize-stuck-villagers.patch diff --git a/camellia-server/minecraft-patches/features/0046-Pufferfish-Reduce-projectile-chunk-loading.patch b/camellia-server/minecraft-patches/features/0047-Pufferfish-Reduce-projectile-chunk-loading.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0046-Pufferfish-Reduce-projectile-chunk-loading.patch rename to camellia-server/minecraft-patches/features/0047-Pufferfish-Reduce-projectile-chunk-loading.patch diff --git a/camellia-server/minecraft-patches/features/0047-Pufferfish-Throttle-goal-selector-during-inactive-ti.patch b/camellia-server/minecraft-patches/features/0048-Pufferfish-Throttle-goal-selector-during-inactive-ti.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0047-Pufferfish-Throttle-goal-selector-during-inactive-ti.patch rename to camellia-server/minecraft-patches/features/0048-Pufferfish-Throttle-goal-selector-during-inactive-ti.patch diff --git a/camellia-server/minecraft-patches/features/0048-Leaf-Secure-seed-and-matter-seed-command.patch b/camellia-server/minecraft-patches/features/0049-Leaf-Secure-seed-and-matter-seed-command.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0048-Leaf-Secure-seed-and-matter-seed-command.patch rename to camellia-server/minecraft-patches/features/0049-Leaf-Secure-seed-and-matter-seed-command.patch diff --git a/camellia-server/minecraft-patches/features/0049-Secure-seed-V2-with-Blake3.patch b/camellia-server/minecraft-patches/features/0050-Secure-seed-V2-with-Blake3.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0049-Secure-seed-V2-with-Blake3.patch rename to camellia-server/minecraft-patches/features/0050-Secure-seed-V2-with-Blake3.patch diff --git a/camellia-server/minecraft-patches/features/0050-Leaf-Replace-brain-maps-with-optimized-collection.patch b/camellia-server/minecraft-patches/features/0051-Leaf-Replace-brain-maps-with-optimized-collection.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0050-Leaf-Replace-brain-maps-with-optimized-collection.patch rename to camellia-server/minecraft-patches/features/0051-Leaf-Replace-brain-maps-with-optimized-collection.patch diff --git a/camellia-server/minecraft-patches/features/0051-Leaf-Remove-useless-creating-stats-json-bases-on-pla.patch b/camellia-server/minecraft-patches/features/0052-Leaf-Remove-useless-creating-stats-json-bases-on-pla.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0051-Leaf-Remove-useless-creating-stats-json-bases-on-pla.patch rename to camellia-server/minecraft-patches/features/0052-Leaf-Remove-useless-creating-stats-json-bases-on-pla.patch diff --git a/camellia-server/minecraft-patches/features/0052-Leaf-Optimize-PatchedDataComponentMap-equals.patch b/camellia-server/minecraft-patches/features/0053-Leaf-Optimize-PatchedDataComponentMap-equals.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0052-Leaf-Optimize-PatchedDataComponentMap-equals.patch rename to camellia-server/minecraft-patches/features/0053-Leaf-Optimize-PatchedDataComponentMap-equals.patch diff --git a/camellia-server/minecraft-patches/features/0053-Leaf-Better-checking-for-useless-move-packets.patch b/camellia-server/minecraft-patches/features/0054-Leaf-Better-checking-for-useless-move-packets.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0053-Leaf-Better-checking-for-useless-move-packets.patch rename to camellia-server/minecraft-patches/features/0054-Leaf-Better-checking-for-useless-move-packets.patch diff --git a/camellia-server/minecraft-patches/features/0054-Leaf-fast-bit-radix-sort.patch b/camellia-server/minecraft-patches/features/0055-Leaf-fast-bit-radix-sort.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0054-Leaf-fast-bit-radix-sort.patch rename to camellia-server/minecraft-patches/features/0055-Leaf-fast-bit-radix-sort.patch diff --git a/camellia-server/minecraft-patches/features/0055-Leaf-Configurable-vanilla-username-check.patch b/camellia-server/minecraft-patches/features/0056-Leaf-Configurable-vanilla-username-check.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0055-Leaf-Configurable-vanilla-username-check.patch rename to camellia-server/minecraft-patches/features/0056-Leaf-Configurable-vanilla-username-check.patch diff --git a/camellia-server/minecraft-patches/features/0056-Leaves-Disable-packet-limit-Camellia-Option-to-full-.patch b/camellia-server/minecraft-patches/features/0057-Leaves-Disable-packet-limit-Camellia-Option-to-full-.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0056-Leaves-Disable-packet-limit-Camellia-Option-to-full-.patch rename to camellia-server/minecraft-patches/features/0057-Leaves-Disable-packet-limit-Camellia-Option-to-full-.patch diff --git a/camellia-server/minecraft-patches/features/0057-Leaves-Configurable-collision-behavior.patch b/camellia-server/minecraft-patches/features/0058-Leaves-Configurable-collision-behavior.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0057-Leaves-Configurable-collision-behavior.patch rename to camellia-server/minecraft-patches/features/0058-Leaves-Configurable-collision-behavior.patch diff --git a/camellia-server/minecraft-patches/features/0058-Leaves-Optimized-dragon-respawn.patch b/camellia-server/minecraft-patches/features/0059-Leaves-Optimized-dragon-respawn.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0058-Leaves-Optimized-dragon-respawn.patch rename to camellia-server/minecraft-patches/features/0059-Leaves-Optimized-dragon-respawn.patch diff --git a/camellia-server/minecraft-patches/features/0059-Gale-Variable-entity-wake-up-duration.patch b/camellia-server/minecraft-patches/features/0060-Gale-Variable-entity-wake-up-duration.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0059-Gale-Variable-entity-wake-up-duration.patch rename to camellia-server/minecraft-patches/features/0060-Gale-Variable-entity-wake-up-duration.patch diff --git a/camellia-server/minecraft-patches/features/0060-Gale-Replace-AI-attributes-with-optimized-collection.patch b/camellia-server/minecraft-patches/features/0061-Gale-Replace-AI-attributes-with-optimized-collection.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0060-Gale-Replace-AI-attributes-with-optimized-collection.patch rename to camellia-server/minecraft-patches/features/0061-Gale-Replace-AI-attributes-with-optimized-collection.patch diff --git a/camellia-server/minecraft-patches/features/0061-Gale-Skip-entity-move-if-movement-is-zero.patch b/camellia-server/minecraft-patches/features/0062-Gale-Skip-entity-move-if-movement-is-zero.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0061-Gale-Skip-entity-move-if-movement-is-zero.patch rename to camellia-server/minecraft-patches/features/0062-Gale-Skip-entity-move-if-movement-is-zero.patch diff --git a/camellia-server/minecraft-patches/features/0062-Gale-Store-mob-counts-in-an-array.patch b/camellia-server/minecraft-patches/features/0063-Gale-Store-mob-counts-in-an-array.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0062-Gale-Store-mob-counts-in-an-array.patch rename to camellia-server/minecraft-patches/features/0063-Gale-Store-mob-counts-in-an-array.patch diff --git a/camellia-server/minecraft-patches/features/0063-Gale-Optimize-random-calls-in-chunk-ticking.patch b/camellia-server/minecraft-patches/features/0064-Gale-Optimize-random-calls-in-chunk-ticking.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0063-Gale-Optimize-random-calls-in-chunk-ticking.patch rename to camellia-server/minecraft-patches/features/0064-Gale-Optimize-random-calls-in-chunk-ticking.patch diff --git a/camellia-server/minecraft-patches/features/0064-Gale-Reduce-enderman-teleport-chunk-lookups.patch b/camellia-server/minecraft-patches/features/0065-Gale-Reduce-enderman-teleport-chunk-lookups.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0064-Gale-Reduce-enderman-teleport-chunk-lookups.patch rename to camellia-server/minecraft-patches/features/0065-Gale-Reduce-enderman-teleport-chunk-lookups.patch diff --git a/camellia-server/minecraft-patches/features/0065-Gale-Cache-ShapePairKey-hash.patch b/camellia-server/minecraft-patches/features/0066-Gale-Cache-ShapePairKey-hash.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0065-Gale-Cache-ShapePairKey-hash.patch rename to camellia-server/minecraft-patches/features/0066-Gale-Cache-ShapePairKey-hash.patch diff --git a/camellia-server/minecraft-patches/features/0066-Gale-For-collision-check-has-physics-before-same-veh.patch b/camellia-server/minecraft-patches/features/0067-Gale-For-collision-check-has-physics-before-same-veh.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0066-Gale-For-collision-check-has-physics-before-same-veh.patch rename to camellia-server/minecraft-patches/features/0067-Gale-For-collision-check-has-physics-before-same-veh.patch diff --git a/camellia-server/minecraft-patches/features/0067-Gale-Skip-negligible-planar-movement-multiplication.patch b/camellia-server/minecraft-patches/features/0068-Gale-Skip-negligible-planar-movement-multiplication.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0067-Gale-Skip-negligible-planar-movement-multiplication.patch rename to camellia-server/minecraft-patches/features/0068-Gale-Skip-negligible-planar-movement-multiplication.patch diff --git a/camellia-server/minecraft-patches/features/0068-Gale-Optimize-matching-item-checks.patch b/camellia-server/minecraft-patches/features/0069-Gale-Optimize-matching-item-checks.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0068-Gale-Optimize-matching-item-checks.patch rename to camellia-server/minecraft-patches/features/0069-Gale-Optimize-matching-item-checks.patch diff --git a/camellia-server/minecraft-patches/features/0069-Gale-Reduce-lambda-and-Optional-allocation-in-Entity.patch b/camellia-server/minecraft-patches/features/0070-Gale-Reduce-lambda-and-Optional-allocation-in-Entity.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0069-Gale-Reduce-lambda-and-Optional-allocation-in-Entity.patch rename to camellia-server/minecraft-patches/features/0070-Gale-Reduce-lambda-and-Optional-allocation-in-Entity.patch diff --git a/camellia-server/minecraft-patches/features/0070-Gale-Reduce-array-allocations.patch b/camellia-server/minecraft-patches/features/0071-Gale-Reduce-array-allocations.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0070-Gale-Reduce-array-allocations.patch rename to camellia-server/minecraft-patches/features/0071-Gale-Reduce-array-allocations.patch diff --git a/camellia-server/minecraft-patches/features/0071-Some-optimizations-from-krypton.patch b/camellia-server/minecraft-patches/features/0072-Some-optimizations-from-krypton.patch similarity index 100% rename from camellia-server/minecraft-patches/features/0071-Some-optimizations-from-krypton.patch rename to camellia-server/minecraft-patches/features/0072-Some-optimizations-from-krypton.patch