diff --git a/leaf-archived-patches/unapplied/server/paper-patches/features/0001-Rebrand.patch b/leaf-archived-patches/unapplied/server/paper-patches/features/0001-Rebrand.patch deleted file mode 100644 index 9a49e32a..00000000 --- a/leaf-archived-patches/unapplied/server/paper-patches/features/0001-Rebrand.patch +++ /dev/null @@ -1,730 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> -Date: Thu, 16 Sep 2021 20:39:45 -0400 -Subject: [PATCH] Rebrand - - -diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 3d8ed4ff9a5a30d123508aeb485250271b528a6e..49ac2b52fc134bfa77a108bf58de3e81be38c683 100644 ---- a/src/main/java/com/destroystokyo/paper/Metrics.java -+++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -592,7 +592,7 @@ public class Metrics { - boolean logFailedRequests = config.getBoolean("logFailedRequests", false); - // Only start Metrics, if it's enabled in the config - if (config.getBoolean("enabled", true)) { -- Metrics metrics = new Metrics("Gale", serverUUID, logFailedRequests, Bukkit.getLogger()); // Gale - branding changes - metrics -+ Metrics metrics = new Metrics("Leaf", serverUUID, logFailedRequests, Bukkit.getLogger()); // Gale - branding changes - metrics // Leaf - Rebrand - - metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { - String minecraftVersion = Bukkit.getVersion(); -@@ -602,15 +602,15 @@ public class Metrics { - - metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size())); - metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : "offline")); -- final String galeVersion; // Gale - branding changes - metrics -+ final String leafVersion; // Gale - branding changes - metrics // Leaf - Rebrand - final String implVersion = org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion(); - if (implVersion != null) { - final String buildOrHash = implVersion.substring(implVersion.lastIndexOf('-') + 1); -- galeVersion = "git-Gale-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); // Gale - branding changes - metrics -+ leafVersion = "git-Leaf-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); // Gale - branding changes - metrics // Leaf - Rebrand - } else { -- galeVersion = "unknown"; // Gale - branding changes - metrics -+ leafVersion = "unknown"; // Gale - branding changes - metrics // Leaf - Rebrand - } -- metrics.addCustomChart(new Metrics.SimplePie("gale_version", () -> galeVersion)); // Gale - branding changes - metrics -+ metrics.addCustomChart(new Metrics.SimplePie("leaf_version", () -> leafVersion)); // Gale - branding changes - metrics // Leaf - Rebrand - - metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { - Map> map = new HashMap<>(2); // Gale - metrics - reduce HashMap capacity -diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java -index b78828e83d8128eace986aeb73213da3b3f905e4..f59879ae7d3c73cd4c4233d30667988bf22f12f1 100644 ---- a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java -+++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java -@@ -20,7 +20,7 @@ public final class PaperConsole extends SimpleTerminalConsole { - @Override - protected LineReader buildReader(LineReaderBuilder builder) { - builder -- .appName("Gale") // Gale - branding changes -+ .appName("Leaf") // Gale - branding changes // Leaf - Rebrand - .variable(LineReader.HISTORY_FILE, java.nio.file.Paths.get(".console_history")) - .completer(new ConsoleCommandCompleter(this.server)) - .option(LineReader.Option.COMPLETE_IN_WORD, true); -diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java -index 2596e0ee4df5b96f181e28a742ef345981fc97e3..5b844d2fea387f2cb655169f458ec0ca627f1c65 100644 ---- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java -+++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java -@@ -32,6 +32,9 @@ public record ServerBuildInfoImpl( - - private static final String BRAND_PAPER_NAME = "Paper"; - private static final String BRAND_GALE_NAME = "Gale"; // Gale - branding changes -+ // Leaf start - Rebrand -+ private static final String BRAND_LEAF_NAME = "Leaf"; -+ // Leaf end - Rebrand - - private static final String BUILD_DEV = "DEV"; - -@@ -43,9 +46,9 @@ public record ServerBuildInfoImpl( - this( - getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID) - .map(Key::key) -- .orElse(BRAND_GALE_ID), // Gale - branding changes -+ .orElse(BRAND_LEAF_ID), // Gale - branding changes // Leaf - Rebrand - getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME) -- .orElse(BRAND_GALE_NAME), // Gale - branding changes -+ .orElse(BRAND_LEAF_NAME), // Gale - branding changes // Leaf - Rebrand - SharedConstants.getCurrentVersion().getId(), - SharedConstants.getCurrentVersion().getName(), - getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER) -@@ -62,7 +65,11 @@ public record ServerBuildInfoImpl( - - @Override - public boolean isBrandCompatible(final @NotNull Key brandId) { -- return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID); // Gale - branding changes -+ // Leaf start - Rebrand -+ return brandId.equals(this.brandId) -+ || brandId.equals(BRAND_PAPER_ID) -+ || brandId.equals(BRAND_GALE_ID); // Gale - branding changes -+ // Leaf end - Rebrand - } - - @Override -diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index f6bc955c3496b52cda1a20aabd78769803ef471f..f6f787db016f4d1ac14648ebf2b8e162a3e85962 100644 ---- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -@@ -491,7 +491,7 @@ public class CraftScheduler implements BukkitScheduler { - this.parsePending(); - } else { - // this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(this.currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper -- task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Gale"); // Paper // Gale - branding changes -+ task.getOwner().getLogger().log(Level.SEVERE, "Unexpected Async Task in the Sync Scheduler. Report this to Leaf"); // Paper // Gale - branding changes // Leaf - Rebrand - // We don't need to parse pending - // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) - } -diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index ebe1136e2487d0d13e5a924a644f2237900a86a6..bef2ae29856a72344d3d755926f1b2dce4907df1 100644 ---- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -508,7 +508,7 @@ public final class CraftMagicNumbers implements UnsafeValues { - // Paper start - @Override - public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { -- return new org.galemc.gale.version.GaleVersionFetcher(); // Gale - branding changes - version fetcher -+ return new org.dreeam.leaf.version.LeafVersionFetcher(); // Gale - branding changes - version fetcher // Leaf - Rebrand - } - - @Override -diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java -index 0b5979723bb30f9011ac64c36d894aa41713ec9b..c3d45e60e262b8e34d76f0425f6bef79f034e8ab 100644 ---- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java -+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java -@@ -11,7 +11,7 @@ public final class Versioning { - public static String getBukkitVersion() { - String result = "Unknown-Version"; - -- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.galemc.gale/gale-api/pom.properties"); // Gale - branding changes -+ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/cn.dreeam.leaf/leaf-api/pom.properties"); // Gale - branding changes // Leaf - Rebrand - Properties properties = new Properties(); - - if (stream != null) { -diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 349f8207d8a9bc4b2c6be9e64b4325a7a406e706..e45d5da04428c26fc6aa97fba974bde3573d7950 100644 ---- a/src/main/java/org/spigotmc/WatchdogThread.java -+++ b/src/main/java/org/spigotmc/WatchdogThread.java -@@ -25,7 +25,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre - private volatile boolean stopping; - - private WatchdogThread(long timeoutTime, boolean restart) { -- super("Paper Watchdog Thread"); -+ super("Watchdog Thread"); // Leaf - Rebrand - Purpur - use a generic name - this.timeoutTime = timeoutTime; - this.restart = restart; - this.earlyWarningEvery = Math.min(GlobalConfiguration.get().watchdog.earlyWarningEvery, timeoutTime); // Paper -@@ -82,15 +82,15 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre - We do not want people to report thread issues to Paper, - but we do want people to report thread issues to Gale. - */ -- logger.log(Level.SEVERE, "The server has stopped responding! This is (probably) not a Paper bug. This could be a Gale bug."); // Paper -+ logger.log(Level.SEVERE, "The server has stopped responding! This is (probably) not a Paper bug. This could be a Leaf bug."); // Paper // Leaf - Rebrand - // Gale end - branding changes - logger.log(Level.SEVERE, "If you see a plugin in the Server thread dump below, then please report it to that author"); - logger.log(Level.SEVERE, "\t *Especially* if it looks like HTTP or MySQL operations are occurring"); - logger.log(Level.SEVERE, "If you see a world save or edit, then it means you did far more than your server can handle at once"); - logger.log(Level.SEVERE, "\t If this is the case, consider increasing timeout-time in spigot.yml but note that this will replace the crash with LARGE lag spikes"); -- logger.log(Level.SEVERE, "If you are unsure or think this is a Gale bug, please report this to https://github.com/GaleMC/Gale/issues - and if you think this is a Paper bug, please report this to https://github.com/PaperMC/Paper/issues"); // Gale - branding changes -+ logger.log(Level.SEVERE, "If you are unsure or think this is a Leaf bug, please report this to https://github.com/Winds-Studio/Leaf/issues - and if you think this is a Paper bug, please report this to https://github.com/PaperMC/Paper/issues"); // Gale - branding changes // Leaf - Rebrand - logger.log(Level.SEVERE, "Be sure to include ALL relevant console errors and Minecraft crash reports"); -- logger.log(Level.SEVERE, "Gale version: " + Bukkit.getServer().getVersion()); // Gale - branding changes -+ logger.log(Level.SEVERE, "Leaf version: " + Bukkit.getServer().getVersion()); // Gale - branding changes // Leaf - Rebrand - - if (net.minecraft.world.level.Level.lastPhysicsProblem != null) { - logger.log(Level.SEVERE, "------------------------------"); -@@ -115,13 +115,13 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre - We do not want people to report thread issues to Paper, - but we do want people to report thread issues to Gale. - */ -- logger.log(Level.SEVERE, "--- DO NOT REPORT THIS TO PAPER - If you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues - THIS IS NOT A PAPER BUG OR CRASH - " + Bukkit.getServer().getVersion() + " ---"); -+ logger.log(Level.SEVERE, "--- DO NOT REPORT THIS TO PAPER - If you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues - THIS IS NOT A PAPER BUG OR CRASH - " + Bukkit.getServer().getVersion() + " ---"); // Leaf - Rebrand - // Gale end - branding changes - logger.log(Level.SEVERE, "The server has not responded for " + (currentTime - lastTick) / 1000 + " seconds! Creating thread dump"); - } - // Paper end - Different message for short timeout - logger.log(Level.SEVERE, "------------------------------"); -- logger.log(Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Gale!):"); // Paper // Gale - branding changes -+ logger.log(Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Leaf!):"); // Paper // Gale - branding changes // Leaf - Rebrand - FeatureHooks.dumpAllChunkLoadInfo(MinecraftServer.getServer(), isLongTimeout); // Paper - log detailed tick information - WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE), logger); - logger.log(Level.SEVERE, "------------------------------"); -@@ -139,7 +139,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre - We do not want people to report thread issues to Paper, - but we do want people to report thread issues to Gale. - */ -- logger.log(Level.SEVERE, "--- DO NOT REPORT THIS TO PAPER - If you think this is a Gale bug, please report it at https://github.com/GaleMC/Gale/issues - THIS IS NOT A PAPER BUG OR CRASH ---"); -+ logger.log(Level.SEVERE, "--- DO NOT REPORT THIS TO PAPER - If you think this is a Leaf bug, please report it at https://github.com/Winds-Studio/Leaf/issues - THIS IS NOT A PAPER BUG OR CRASH ---"); // Leaf - Rebrand - // Gale end - branding changes - } - -diff --git a/src/main/resources/logo.png b/src/main/resources/logo.png -index e7e9fd9a6077535b89c6c9d7b0164e8b87c54bed..9e698edad90ebcd641fc59ade84643556b427070 100644 -GIT binary patch -literal 19657 -zcmbTdWmFtZ)HOPTyE}sf_W;42;I4zaI|TP2!QI{6-EDvbm!QEJf;&Nj=JLGvd)Ie= -z-yhw*x@&cHRh>F}?{lg;N>y0~9fbr1005xN$x5ofU&sDCkPzO_bvpI=?-w|0aV2p8 -zpeX_M#S|U@K#{YRkWh6~m-$R7Cndqd!Oz3P%E`t70LVt=X?W?RJP?R%KUiXFeO|e0 -z%5VqKY#x9+ne -zm>jZ({{aA8!TNXyx;Kix02`bEFaVb&HX5AKoqwU-s&v`_$|L}k3g-|Nn5YgIW78bN -z1B?*?8Z}xhPynd_fP;_!XDUE7I^gV9P6QsXQkAkn2v{iwRUrZ5fPgFp85$U|9)Jlr -zSe*q1G6X2B6{BKkVJ{W)mIqozpr6O!0 -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 -zh{GqAp*NSxpuHDs-O23fw&RYB! -zIG;O>9Rizs-o&dV38%C6-e31)MhJ6|HpA2RGmUAt5DB%`@J-=6l`MmvBju0puMd~z -z1Umza>W@%^QpzI!So_qtLa~DT)G4(8ac&q@ocPr -zwDt?BC$=PsRn~k}Sbf?58-_x6+$(qJBLp=_5MLNRAh`%GKGt8(2;f#kQU-JHnRblF -z^q@GF7DK-AUS)O!IqU|C5c<9@AG<%Xi{XXiFckyJR<%e@$&D_*%ipW}`dLIiWGeTe -zBSEL2*hx-L>;#_=x3T=PReXfbpx#XT;>>tvYZNMk5M3R!xm9&eR1b0F -zyI{4DexDV*wZUbel6_~&*_5>5i2mc0+;XLUkxOK``-ZGtrk>TN=2-@xJ>caEQ@&dJ^K>c -z0otHiWf>vJ7Y#CK;=({#e0IT2UVBj%2PSwy8O5QDuOIR;%ZC*r?3CEy`H8!!bnKLy -z5aq0g3{txK8xjiYjr*333(CJf&h%BRPiFr058>vlbmU&yQCJ5`&|VYd#u7F>k@jCI-Kb*Ko4Us&mcjd7z!8P^le6mR9iarijfh_ves -z?OcFG*ZCR0LFbs%t3RyMV$E%^=1jYbZ-}| -zN46Bj?jb!1sn#)t98z_<-o#)nwl#N!eMOjDK$%fBCK4tAxT0RELoK64NQw3x5l}G{ -z&s1HA?sjAcO`ly{T)eZn^IH*bf`_*;Gtn`yExpjz1%nY$L82dTq2V%2VoVz|7np#L -z>bKQSQlVSxq-B_hGJ)XfHqTDz&*JGO3KzWRFG;=N)h|d6&c9+ugI{;5l+7^261aj4 -z;!_AjOOG-nST0gBy9Sfw^H-r)T$p?zoJ0hi^&38rx%ycd42*jqM#yzYbH6zAF*=w9 -zT+5ONV^no?YBQ^dvSMZmW#^`Ql!r!UIg3sahm@#JDr!4nY!MQIXq}f>LN|<*DjJ)L -zH1V6F;hj?4P2HtOXAV|2HQK$Jp^eiYzp+^c`NLjef;au9R67R+LY11gm~ytX^Tq0#Un2)U -z!GUyLctgh;#sXt$uY5-~oS)m@aJ+kj3=2Npr0H5vrh*7`kR`L9%G8&6QpfS633oI* -z6tF2ffd5dh=Ccr*4&&#~S-V{Wo?Kk;w6|f|4_RDv#?=vI;x`WfGRRniLZiu+fi76B -zIfxOz4HqxA!drRM2rVlF{)chXq!+Urg;mJ;m6_|(Q8#E%$U5<`j+ -z@ASg}k56bC5#yX=>=03=sX*pvB5tsVujFNjMCz{EBn1@729JC#4=o|Y1?_3Lw!sfL -zdSkeh3YS@4P_hw8U}|Jt%OL(|$Kvbb4dwEQFw_fJzU0TRMDDq?V`-f&x&syFZ^Tns -z@DW*mgP}+h>^U4EdV~n^pIKWBy7r)bUtL<=a+F3F&0X;gx*mO$WfF7Dt5V}UR@Ra? -z4xmMIU*O-{{J`vch~;7v{#e5J^|sUXnII`3i2B$X5Uau^ZMwr@S&D@Hhd$b$* -z>J9>4Q%P+{_+7#c~xu#BH+HAA`dxJWCY#kKlMqxSUtKZV=tv -z7##J?zMIeFA5R2k41>O4V>_KJvoOZCSi~-3qBg83Z0!_myt`Bz6!IMdUWS<^9t2{% -zp@8ALu4^9%BySFQpyg6jdg@Yf0Z?9DN#HL;v6FmhY6OBlQopkDsVr?k8Md|<0{Hk4 -z+C@VjF%aUz<5$v1D=JhtG -zwOpy<{|>gq8pY5{4BTj7FSzTTS&dxalbOIE(1J$^ai2t11|4fKVCLbOjfZcnV$W{! -z!Tdi{{Rnz@9Tw-Mq|nfSkl|Rn@Q&K*)M@mc-VE}Vs&x3TC07hUDo9W8B^eBc%1yUx -zlyj`r#CJ#TX)=A6#L$kc3jV>l8Al#6jfC-~(+Nu_m%S(5Usupj>Q;9oi&_<}Jtaq5C -zRUe!UQ}gg3C}3{yhXvBVRsyaE7@zt~v~$VJL(7;uSO-L}4n{Hy4nJ?h9^@l}=JME~ -zk&WfPbOyzWE)b;k@(%HiE!0{xzs% -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 -zNzQ*D -zY}>?Hr)`DUyE^0tkZx#{_S`~Mf{i$hHq -z_(bZD?1M$|pf?Za>{-oyoXIb0oWVcGJ_RIKSl;59w3JHK-qQ@U*CWXSu|hn%KmUMT -zhqie@*Z-lh=L;IJIr9GgOX6PNQUJzzW4n6ar--KyQ%U_P_&XRou4+5SJjIO -zhj)MnLOlKXBH~S+M3HmliltUIH<{D);QL#VonZ-m^^k1H@$FIL$=|cNv*_{v$h^^i -z&XglLI4E^J+_EvJ@x#evb`}U(YF8t{u~`gHA&6-Sd{d{gsuw%aDR*eGCYlct*8GA- -zjTmsFxE(Yp?q5`pNJX{orr@lMs%@ -z@F!2V%{L>E%inkl00#)<3?C>&zHURa;r0(>H_8(c#3wKL<>J6{w>CA3c;#EnNNWPK -zY*@M+u1l)8Wtoz4*-+{vhi9d<2W9jP+`glcXnd^2_}wqX#Z^oZQ*c^i6aW53m@R`a2)@EHveT2M+sEvq -zL+-$i5?>k#t*z;`#UNgNzbRS2B0_E#Sa1@0AON(XhmWq`Mv@KoB?zWwCZ5(rz(vQT -ze5CiL_w!S%SXibeoLfM5SDpkJ59i5*)B<~=^Bw8~UN)eSH`C^chl54WFo>O`ZV!ZB -zLbAVAUPqx&nn -zkK;4W{oH*YtT7zQwzSZ3yoj{4aJA&hDjDzP+2KWz$fSWk_JeSeIM?j)#UcJCoHDtf -zix^#5-T5d(komj&2yq>pJ=)r55{}D8yMIYx@28}#-9siGX0QKf?&Mzldj+5Ld3_NS -z4AiKwIEh(D;yK|w(SqTE9n%8GtSPKb#h09Z4Su5}t!eD(Q79?|%yRu2XN(PaXA2*s -z71i6PgC|vpxWOcF>x1^Kb#TF0oD3Wt?mp_nB|KW5!a(bex>_ -z3BzXnSRUV4?S>U3oNUa%Oqj -z8OwH5UT5?Ojujj-vCRnqbP;E&9_ik5DSHdY9Aj-{-YonuU2_duuXI;W^WN3+orhb7 -zJRK)S$2%vtD)rKMa$$Q2xEzwD%0$f66Q|lxI-cRFU}3Y97G~cZ-ef#Wt2i;j3h}G& -zPAl4|^*Z>mC(S;^Z>wL{dH^rH(3EjjEYphZH}CB5(U%t~HjStQwWejfS1Om$osi)< -z;NTxys9&(06D1hl{#4^aRM^V0?7`uNnWj(8gqY2XtWt)pJw{&ptr%tL;5d`f>M3`$ -z+QPfTB&E~1subz8-101Fr-UcP(;OUIPo6_QTk2=W9VEW3@xXOiMdyVMFQdr@gJ`+|aOq^W3WiPPh5f2SB17BQS7y+u -znv)_G?e61!>;Z#_6P4nSYYJeGHH<_B7wt?r0+SaVPinhS7F@HQaMwp=3mYl;!&Sg_ -zxqGs`&Q|2q0HbiHSw2nW|X|CK%RDO4-gHNAMK0a~2 -z&YnyKR4pXATU@2@GP9*LB^x)xj$4?u35s!X5=FZ<@h7aVHuJO2@D-S@)`pOw@MfK= -z9CF^x_2TSZNH39)5xmnwrrNyMm8sOfi`p-XD1^(|DKb`=&w7J4jaVCe$QSidF#s%1 -z2_M?LGU>3Ie$)QQaSi->Rbx!*2n4SLU%ZDO2OP|@h;~Cf=R#6$wnx0KNib&@7hwVH -zrC0tpk%Ev>1@u%Kqac3_Z`HZc$Iif<;c6-VoDyVKD4DBALXv;GGa4A4G-u+Vd}iyx -zB?i*=Q`v98}{1Lo29R9EJ -z;#fEkn@a$Q^4g#w1#Xchdc-*jHX%^b^+Ak{jAF9otzN%Qcsl21vs-?4# -z`1Sp0U7=U@=|}k;4dj5T`z_Xdrafi|@k}WzhLHuDqeAZok%mpu#=^ujH60 -zPJz$VQfn*sbP-b{nen&g4td3f_wvG#@ny -zHYrU=OK(@s`Ss%dM~&u%iMYDd%+0Uj@-?AhB!FRbp@4n#lTQA7+zp_Jam2_GK?ALs -zC%*F~Cd1Qn%abt}1LWuT$*?EiN%gk+$O`x-%}bHW!YR(c+FY$Q1q}~&6^mS|a&cpe -z8(lG?*YtqNMA$E&nMm?RdNgGQr#zc`;D<5yE+vAfk0w5c_r -z;BdO-%vP$}c5^q!oh+8_Yqm^~Z!gI6Jd6fDR#|#0zGAzm<1@imsU?LxO(o=M;x@+A -zzie9=Ik{reUvQEqDD)iuVh}PO?mY85Yq5FH-LyaqAsSDEYO4Jh_fS*HF1!GWt3MxJ -z3zSX0M&%NMPsbcLtDVZbt?{F^-EubNzom9@B6#YLC=|vzie+da6tM0-69sovPLx>& -z4B&p$M5BsaX02rwheb}qRSBZ^Gku3fe%BX|+u>{e? -zjYIUHWA}-tWv%ghz~A(vC+Z~-BDc<30vzyffRyph?)$zb16L+~7#lRr8pW3e4i~Vh -ziMjc=N;Gf-plkDC2tqZ1V=OHODAAHMDw<--4-XJw){T901}uhrmrW;#^Ql(1ek}ux1n<4;?~H>{`F368o>iTeX3f5)-2M+3``WhXxR~Jny -ztMzgqE4jLAP?WEw3FZvPd8JJ{P^gT)uzREJX}t8GvJqLDWC$w?W<+bUK? -z!u`)q2aI`8+hd6kZCi{P+4&ybxjXK59CtjkQO~m*4D!wfb|Wjxzby{J#A<4RMQ; -zG-=jvYH6F8Ksv~*w0;snxT8g1F)3x*6En?Z;i~WPFVagD?ZW!4G!XKATt0k}O&;6vS>mnylV42j8t&gkH4lQ3`=&!F!?Sj0snCPePbg}spUx9AqMtMal4F0k^ -z@G-9Yo^_TtuXJu8Lt~Y&Klf1wK6!)xExd7W9u$^rMWti#HL;QV7AYE;f7}z+D%u-g -z#$^vgiw@bdTW<~ct&4uws{uAHt>01HoqGOU6MZfEF8z^3)DyL(yj -z*H6*U9hBoTB8O$6l{)!v{M8@FRzc4|8MzQHw&iV-HDhc`0rH}SrI9{CZ`Mbciwl3Yr^XhGUjDoyq?KiPLPTMb=A_=C~T6*Zo44WS8r645N -z`SK6=aV@P7n*%SFD-6y(!yZ9DKg|-gW46GSY7u^>$A13Sa4K{J**xDSp;v^f_ss#h -zBzr74paSr%d8iECgvB9^4R^)s;IGJ2Pb&B|myOgNg2|se635ispL<;o%VbP)pqLRC -zYt3wyh|&uQNS#rV<8l!&L^#f1Au=P^Hru8m0xPeWq!$$UV>P)SVbka*-E3W+YDXq18G7YdjIaQ}<$;{=L>TGR9&+v&mIOODh50dd75((I&#vt@K`pa8z3) -zmXHXmdQtZGT)V|r?Cg!1ppMSX&eV#Yc&tcU_-$OUi9UX`K(^ao6F$+RAA6>tmA2&Zm(a8%}eP>F-F#Wns}6b>My -zlc(TZX63`3LYH`1Rn$A^Lo -zQOpQ=11EU-M~+JiN{;GD+u#N0 -z9N=Tz6&HQ#P#_#Q)UAj#78e9!MUoS8B(p~xkZd;E69YhL`#-Z0Q>&us3UMD%Puqi{ -z98ST1IEG&+jznizO{j*vg-iqNTU307z;n(CzqjbepqF2#ilyYRf(kVLw!`+g%0Yk^ -zv~~PKIP!gN@c8&>8Lhvnyq|~JW$14NP`u?}5Kxwqbc8u5n_`{Ba6Y-Rc!Z#TM#cG; -zlf~dI%EEStFejfXVH}?AHw)=}#t>fJ~Ii#lQ4#n-Y -zG4h3?Z0fm4%KLo^l2=n`dhY}qbY;WK-~aqgwS=#zETE$Liec61RoaeSodQZ3B-Pb-b)obYYQR3&FartS|1&WVL{w21T#&W4?ihzZ-{$MNPsz=x7+QT0N-owE_WV||Kxg8jQS|BCV=#2~NqYl?5-&Up8JO)Rg1 -z8wWcb7l@#!r240*B6R9#MP>CR`VF$l$VZqy0|34_N_A-rH)O1CgzkgExG-!^uQUt| -zB_wosDOEmp=AhBm@a99NfXRq@scj2c_BRazLxdP<)F2ZQtj}HZ@4x7L)s$?Zuhmxn -zVrpOV5M}r!zveQkc-u(M13D`2+G>M8xuCDsFE@wl*6F&?XukZ9vv-vw%Ru=Did&`j -ztm?iG*He?81eYN*GBwraCTAf~skuVjCUN#w%M@rzqXxr7MVWPv-hs#?D{U6}?Gsig -zQ)c+lTH4LSygUZ*@2`-4`VJT53){H6Iwfg!fm0OCJBpz78oMJ67*Rog*4zXF$5Ov1 -zzN;9By=fyeuV#~hU-eDySRMY-jK{Piv5@&!eMxP>o2Dw1Ag1n%&-Vx;yq_!}vYQ{^ -zCAWH(`pAgNbv;;|sA1F~w_3&S#gvKUbZqphX2)jZ+k&Do#D%%Q0Ey#%O{!eO0mzoc -z#^G{6KGQa_fV?-Vx?>s&C>3KE;m<85en3=lLc}0~PwpGw6GrKUY?5!9TEME%$x<9- -z62wgGZAUMxhj6a<N2Idn)S2P6yHzAA -z31)aU`r9wL{U_VY%E>KV~XJi!9R_>pgRSjy}Wfrj71Zxad*;o=@&WupTWi^ -z^}pZ(Z`sk@6e5tZf{ayf1%nzk5&2ZzuWa#(hfXfgr%^<0=GhR9(l(5Zjr-G7)iXtd -z(|>1eM}+>3<%-m#Vg|o++=8n^ipiSY61zq}qfZdrYKcl;^+UGavu( -z{)DRNtE&-sx)hF*>+*{`ZW5pVJx3U~&VLUw5$IU(Z~es-S{?~-cm`bvAj5175jORz -z6WrL7$?Uiraez-%vGKB@{PQneQKd@juxQ%w21-+Jvk@g)8MXcBpxqm;Hn@3Oo)dja -z-HQit!FmG4!J{cI66~D3^~J39Zx46@_+gh)-DEeyJnbDiRTH&38Ux7taKOAmiCW?y0^Tq{^fWrn9=j)ORPERIlE -zg>JWtuV}k#e8aJyXr=Z0C-vbAqfUaC6EOiNr%n5@T#c_bX&*?P=Fell$4K@>76!w` -z@k@fYS;i2@6QM%vhrAz6z8S>lD@qAoK*GEilyfGTG#!v{GeL-EQ0;(=ucr!NgBftOeYeLYS#61 -z=2ddjfTl(Ea@9&XsQ{Hx`A@v2t{vh;4*2~PI~AYWT6g&dx<Pj4(R10q -zh#DdPTUrl}P$ER7G?y}t5ybwJ-9E#~r+RCey3q0rZc#U$86R(>^e85@KH?1H{rf|N -zo=BKa9k#W|rp+lB|C1RhYZNO^rM?pJ>|Y;zrpwoBQ|6@Z+xp>P5(3N`JPd@BLpr$6 -zXETmwqD5DsWqu#194?$%n)>)B?eD_%9;+|1x3Q8sW|y%DWFneUjEYr&&fkeIS|Gtp -z4}e2!aCLF)i3SpLrDDYG?z7|_aXsy%WL`Es#}o>abhqE;ek3tx$Aa*r7$&WxUBaG2 -z3WU#Dz`jpCIGgBZwbuTVgdxM*q^*<@hOdbB{}X=;fb?2Km`o>J*j(>>&ja92ReiI$ -z{v7by!}eOmbeQ`fIr>FK|9e&aZYY7nuj-n8Paq)`E+5}Wg`j=Y?dT>&--t9fv|R|h -zo9>^-%H9VP*=cj3TGR1j#P~+SSX(365s%cPT%NpIWj$Pxl!)3-RH&jlmFf+GG&>Q& -zles>;tIBr?`e#MyfpB4K14T<8zX3R@sy{>b3AG9E{gqT-EEPB`x>zcfrPl+`RP+vC -zZy-xlefTeC_o-&3zKj#~wP-a!!YOYQIhY|R87jMOg>M} -zd)4Ld;%#5j`fUFt=tn$0o7djyR2|a@7(Q2X4}TE%EMArbVQqVZy~(&&wW?KrRMD?8 -zCEq9_zjtwEhog((#fs@1@ZG>4D0*!S4g;9a&#XymPEN0-QmZfAe~oI>F;%#l$6hM}W|yGOtVFT4ODs7GDqEA(2D-6GIO^s)d6PrB*(tbk -z{hYm7;XQU%ELBy-#?BU-JLSXQ1W@JcK;LAde-ZTU18mDfp`(x>0Dr9Ls}z3K*c@#u -z&EJ_%XQ~QUOmB8yTI!!bL3tbKWtN%k3MfhTCRCCj?k6Z2x_ODzC?9UhN0P%ziBMWJ -z^^|}RNsK<%Zg8DmwByoNni{`(*-I;s-EIReHEnZUX)jV0O1=@32tj; -zfDjj#ARONKKzc}%flCtf%jan&OzLp&&mJ~ium@h3Ct-MkQXRdvXp&QqS`Dul}&kWky -z-CP>Xu_`_LsUrag8uMGD_o%1~2tRsC2h -zk+Muv-T`u_3wD1!PN>OKlOZU6!JQwoO} -zPZ@KnzLBe^Pe4f@Ol-jLcMx9bBRsnY5XtaPLRobxX2y~lWq&ggp-X7515mVJvQol? -zO+V7#bYzkV#lb{=i1=B%N8x3_NBX7pB`Lm30K5rzUco1Tzd_-noyUQW -zBS0Wy{MAf2r8n^S$(;xlg~PP}I`EI$t2{sSlSDVv0;9PO!=_Bc#I`OcB|^2R16y8= -z>iUy{uWcn)hPGNe0OBaHdmPeUb#Hyk2Z2|B-aB*J5LT-dR-+f6RFzs4rS^LrKY;R+ -zxQ`)yCj%ZxJxV&R012pO!sYe#Jbvd<48f97 -zJu;#tRthXwa^X;wYT}}mJttX$XRjp4fmf@d-UelIW6F;pKXx@C-;}yj3SZ5@Z_$hC -zXU>sh;{GP^^T7833q67TFzHwWM42*Tm769{WyA^U{DN~O@B!edxx}1K9wmnPVoB2c -zO;+tFY*iZRN+h7MDXyp_z3fym)4l{(;csi)+q~&`;#u(5+7AQd*23`pK(U1big^n#il$wfF9zVX5%j@e);8+EI8F>ESiu)u+0WhIT6lD#VIcC_L -zR0w~YDkAmEw2^?tv?XzWG7={pZbIVrAl}%xT?bOu_|DNwabFJpI$&WRwz*hzYyl!v -zJZ^jkSJXFBGcINO7dZd^W(Ugu3sx*#IjjV{fcFUl}L#!D*R2y -z7{&cE@DG^l14V=B>9|LRUQf@i`*Eh@@Tf^bZZq&YPSua;0|&V8hRi&6vSYO}IO0^R -z__Qm0q`nxOG`}Gj;@?i&ie-XP!%TcvZ&ZKMc1eB|2J8NR9OP?p>d#!@80h{G+@Tx) -zmP-^Ia7+OLPJ#@ecLHCDJ0~e$k71xvddFT8m5Bh62`BbIMj`4XgONm$dSr8leU6o= -z2sMMLZRIY3?**O<{QjJk%tH!nA7cF%g^n#i=6JZ}lfVmb-jUDyNVjtPP@XIh!nm#u -zAIgQZn{){P!uC@G+oWW=8cV4dSZQB#Bmkcm_&Wl30Po=vaIqc-I>rE*izYbN;WGr@ -zAaEBFGJZ^X=8ZyD?TNzH7D#KzqO8!Kb?5dNN8hDL3d*Em2d5vI6DLqmE -z;%N=|Cx|>9_*=jSAvI!hf~B(!a?l})%gYv%d28-r-)-V(8HT5KmLw>5iWQ-VR)c)61U&@?0EvZUZj!1xiMGKsi%n -zKh(b6JF~V2aZka15a)&ZBuh{n8a0KQ{jXRt0VWZbx{sIMwV)2)6)_1+GLm -z5u4MYd`Mx`$L>A$JGi}rbAo&h_%qzM8b6K$`1zTmThc=4(F~B7#<=fn-%WTr;EKRC -zxCbF`0v?0#c--gPZUn9cuEsqRcBKd>K(4~gt>R85UnM+kX9ov>4V>|O9(V{ijc^Ze -zHzN1o&Z9lgCA`sgsnZf5vuOf6-2C?+6s>To*kvGB0#}J}3I~!C&F>11v9E6Osxjox -zH}!7f0CJ(J|3VWt=oIcH9X`onoOiXPB|TE;k+u)Aq$MqsmH=7Ol6q(fkR>gthn4_Y -z(vo^;36Lc%sfU&TS<;evXbF%dEvbi=09n$KdT0rdB`v9kmH=7Ol6vU>2aPAsPCpqk -Qng9R*07*qoM6N<$g0t|Fy8r+H - -literal 8324 -zcma)CWl&sAu)T{c4!b~b!Xm+46P&Pk(BKXmEVw5SED%`S0>P6I65QQggS)!~celq^ -z_1^#YV{TXV?VjqMxwmKLoC#G^k;B8Lzy<&SPeC58@g#fxYnb4tXQ6IU#*@HulGk$u -z0Mw2D8mK`@;_69B?k1z__SVtT&C|@q0`T7*W32VHtpOsLDw{jRK+%dU4Hf8PDP(tEaY -zVb;TO?zg>+y0e^=)H~9ck{1xzJJsKD<2QMWE<<4w$ku+?Nz~ -z?sw*04{Ntj2t(m?vGNT6Z&4?~J_DA=4@RZ|Hy|?L2baGw-~xOA-T`VLCt&4+Es7dJ -z3rqB1K#)Ht -zM;a6WNe+K~@E)jy^0nkG4{!%88+0X^_i_yf#-MD!UOnz)0W6pOg`AvCsp#J@n!d~L -zCVJ83uVFsD4tN05H1Ti{d&m(pugW$|17?Hwda!DnL8l=`_8ey*(%(4BM7^w__ -z29jw+qAw%K`BPELftPW%&SF96Iq -z_h)d~d@n?_dd(h4B}06FF_)p)nqY@o2W0}0k!fDPNE=n60)9Z1ad$Q2*UaJYIWokv -z-YS-7Pdx#2eP~Ya<+J1YRpR69RWsr44_urWbIB`C{fwD97K&lSNUb+huWn><5yoYB -zJfUnktJt254fv(LN1LG_v8d+K$*{JMVsT|C=wGYwMq)%b#mJ%{U3S -z3eOditQ%g>1&0d*gJeo>(pn)%r<8<&V=*Y6MZ|vjseW!0G4f*AyoOjh^n**XNNygpr52-!$+5s79~Rz!atG0AJ~ -zaLfL^_!UEf*!wv|>{tUMEVChL@bJ7VVyP{&`32M_;g)srdhGDfd*c_n>)Eu<6%~5 -zXz4zr{*Ya1{haF#(VA;Dlz!_!w!vA}mSI?pFpKT}D5t6tuIgcFQ^&`ihd_avR-x

@y(HdF(KVXFH}bp|wUaw6&QXCUa*zVm->M@=&FCKVp97YM|kve_3*VCW46 -zv!#8UFWTMyY4J+6m;I<#=$7m -zvIxO0NZyc8eys_L$J5|l<8aShl<6-W9Ux5Aw;1X-A*d|~znVkzbk~W9NS>&l06W&r -z81yNRW4XxCw4Q;`80-AJ0^JHD+(Ld}1M>T0KVc9A%jak_H8K+KT&aIL$9Yj{OwBsL -zi2A95!ZqP=dZaZjR5`2~3(lW{1Vhz*b*AYMF=(OA6b`(1Ehoh!e(1-&%>?^8@^6A5 -z{;YtsV$bNqlh-7LCkxfTnr1`I0`dcMIZD$kxbZku8$`3YrKX5Uk(spqYh -zz_N=sHsL;;DZ@TN>NwJZ2}p`Ul{vd;|ID)}R50=*NyUdB^$XQk88m|MZmkHOfep#< -zzpW_boa0-TB|CQC=plYSmJNqQ$Q=9@3P7a4zeOQ{L0(gfdR_i*D4RJ}5#WFvhZr#f -zpXZ0^);*ZmA%T458)_hcfwjJ0md)%R6*(R)!cKk-p_wl0EUYhkMtkW6apETFb28WQ -z4Mr#(QduSc1>s5h0i;rz#fJT4`6?ZjPm_lwr{!mvh!p@w7-I%Z_x=86oCm?^|4<)8 -z=$={{fGneBRf<}8)D3UL@M`bMg{F5AwQ4@5G3#t45l==axYJ4x9G47q)($$J@=@VI -z-Y!i+)Uo`F$q=Q3XBA3T_D`PpsL>6Mx4o-;&M{QBLJK6f;^0Rs9W?w@U_H8UL4 -zC<<6>UoFr6a8`MftsZLN7PJe>FpW^b?mA=9bI_jUn!2_yOZ)|xt7s4cHEZ;mY&G&={=sV`v1dU>v(H>0l%EsXcuV*0XE_*?nG -zwAp1c&4Q4%zq04fe%pX0p*k30Hxp~jLW>&P`{whYJ -zzJkFrrGP>Fd{IB8M&J0sk-7EX_Al~AhU4m{BiC-N8e+EFzQE6fx~9#Xf4W -zTRkXFzM{UunB;+Os7PyK|1qdU?R#%myF?+&G(?q&(NroYmBe0wlhR*;mu+A9q3JlL -zCpSCOmC%GJA@7BvKd`Y=s>FS}ixpv(yR$(^u#@RKn_nK} -z>R!=gxS9R?c(a{+!Il+}5&fj$ubAFFpQ}FY8!o@1KFW -zgd#)3#sg)MA-L41dVrsku5bKRmnOzp`GB^EO}3v{9=z{$K;nKL;e}0IQO*28T3TAe -zLoIq^SG`zr6}x1jkj)m}_Qt#{T!{>kA|@qV2g6Y{C;imh<|m$IL$T6>&JZ=XF~(#I -ze$g&Ik%OmSei6-t%`oS8 -z!RzV810Fzdj(4EGfU`l(E9NZg=liA9sdUi;C{pZ1WO&eu8fsKqA$nu2S-r{6F&Nnr -z6}kJoajWZ8Vv;TvpNZyjo3F+F@bu7F++{E8X(N`1D^$Kv@M#m-Ur&ZOoGnwcCJRP1 -zlg4uR==108HF-X4sCF*Na?O&4)YJB7GgIJIWOn3c!WF+a9qN2ra6aFYNrz$p{DPA^ -z)%WY;exJ@RoBMSTBR<;GMA|k%Ty3fhyyaGBm}r5mxQXdja#Mt<+-?hxgXPipb$NES -zxNY84ES)}*GUXnb$wpzf>U2Lj2_O1|TnOPxe5y_)HG19%K -zX8AWbA=>wR(RNYW=oYXGnFc#$)pdBy4>m%aN24jHjQv(GH$(&rK2D#NsQwC24&&)3 -zAuxBs-+rw@L#I()e1C9B(BJH)a7Rm>xjYZe#c~>J&zJ9cyblyII+M9GK$S$tCtg3m -zE!8fjMr(0i8rt-|tA3Us(c9O{=ek<*tL)2nyKoGiw>a8WMK*P2SIzfMt%aAyJcnaf -zbFz?U&!hE&duRl@QUCy1%oxkXPamf -z6-b#Z< -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 -ziumNvw(uoEt?aYT -z^=6lWI(cfI3ocV8i}suxydCuBrc6}0vmoX^RlL-jY?|e%%K#@`zRcD_w9?gY@;Dti -zQ;7WgCz9e>^G}WdWEfz0wRq7}(g^a&BBwOV5g0IOgn1Gx3P+NhdJ84%{oI6KZ6zM1 -z<@smeE%VaxHhObCA2ZB#Sr;!AbPCYB9WU|YTP1JH{Y)(H^+TqL%fQlO%2@aJ{4R-r -zQLf7e!0fCuL1;11?e0+d;9wH6LBdIP@nZHW1kbBoQo&0tb%|brxN5jU#;hhe}L^ -z8{yrF((CTOab2hx#9%q^;kJ2tdpjbZnq~&Ib#nPQz3ORi&y{W(48CqN2i4425serF -zT0jc0XW~8tQp1c@7o{@4<#^fRaGhmyLAueWS7K_#N^q;g_B-DIrt$AB*s2UK#x3d1 -zrrRxVw8)wwx8+T+9rDQ6(J}H(k9&Dt=)LFwuy7>iS@q9WREzNN{k)7~E(e^)&j&mNH)~|l=aEqnT}X9JnpM;f -zC?Fp>HMZ&od}VsTSL8-0@C>%y2?1p850Y`EwNc&^cQQCh;39YXD8?|x_D>NAf -zR>Uqk{l2<96$2)9pfPeMj{EO^{i48!J1YO$czewd*y{V4lY08Y#af;R`DgITuCM=< -ztdai+%WaWFFKX281E;fB7ltTQ3YYkD@8O0E^_zZlT*l`zcbAx;oYIv;1o_kFs)R}R -z+}TFrlV)$2+`}^SbAeQ{QwAeUdjYy4oq|TLllcvr?tLL(FVat0@97^T{Y;iZ3^MiV -z&7SDtG~B1+_hls84daz~0{ufG)Bhf7;D5lEByLuj`8nbHWKM}kS6d7K5oL}I!FlZN -z`02c%X&FrlmlQw^$wHyu>G(kD<-zQD-+?ePsOPJk%BcrI7>FvzCUv1Z*?CN&*s8O8 -z@oUF&db`Q3@mZw7L&Q#Gq1YD!I&M{*ER5~vL2D+iAV5DTVxrjoM}L|{!Bx$Olh=)B -zu0Wnfmr%p0?fC}Vl1xd_IXFiam@s-DuJGh#ObjB6kY3d3o)}8sqxyI=6dNltGMT?S -zBBoh>u62K&DlVIKJiJ^Fl2n{%*um6*EkuhVS;Imi@zcIZ2t-CEIn%n_45A<=)7(`$ -zpg09emChaZ44Y8%OIGmoMF62&F?Gb#;1;%z{V;cluC1sU!a}woOM9%MUS7(kcH2=(5?M -zxX6|{0vM8?MzJ!47}i@^TZx21biBA`K -gx-fwL-(3LIPg|59oc((uo)mzBj0(Kywdv>o0sO6>y#N3J - diff --git a/leaf-archived-patches/unapplied/server/minecraft-patches/features/0002-Leaf-config.patch b/leaf-server/minecraft-patches/features/0003-Leaf-config.patch similarity index 88% rename from leaf-archived-patches/unapplied/server/minecraft-patches/features/0002-Leaf-config.patch rename to leaf-server/minecraft-patches/features/0003-Leaf-config.patch index fe4f317c..5518aa80 100644 --- a/leaf-archived-patches/unapplied/server/minecraft-patches/features/0002-Leaf-config.patch +++ b/leaf-server/minecraft-patches/features/0003-Leaf-config.patch @@ -11,7 +11,7 @@ Add per world config Add config reload diff --git a/net/minecraft/server/Main.java b/net/minecraft/server/Main.java -index 9aa664537cc37e44db46d5a2a64ae3116938c681..344d5ead46c33e303ac375922aad298481253ff2 100644 +index 58be6e1d1607a3af5e28f851718b82321f2feb25..a5aa3d415486ef262383ab738eb7dd80b3fecb5e 100644 --- a/net/minecraft/server/Main.java +++ b/net/minecraft/server/Main.java @@ -108,10 +108,12 @@ public class Main { @@ -28,10 +28,10 @@ index 9aa664537cc37e44db46d5a2a64ae3116938c681..344d5ead46c33e303ac375922aad2984 DedicatedServerSettings dedicatedServerSettings = new DedicatedServerSettings(optionSet); // CraftBukkit - CLI argument support dedicatedServerSettings.forceSave(); diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index f33fb9b30863dd8ff7207db905fcfb7547b09383..4ba85d704ffebae38f7a76a97a182e3674730c6f 100644 +index 5bb1b96390671fb4eb59a8d795a97e8fb061cc0d..ba5962b04a61e21ae81c2c212de6945585981ddd 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -1169,6 +1169,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop serverPlayer1.connection.suspendFlushing()); this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit // Paper start - Folia scheduler API -@@ -1564,9 +1523,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Paper - BlockPhysicsEvent serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent serverLevel.updateLagCompensationTick(); // Paper - lag compensation @@ -318,7 +318,7 @@ index 5bb1b96390671fb4eb59a8d795a97e8fb061cc0d..c1a411c21ad3eed6412a7fc4d1c34885 /* Drop global time updates if (this.tickCount % 20 == 0) { profilerFiller.push("timeSync"); -@@ -1609,8 +1565,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop. diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java -index ad0bb896d6ea669ce88bfe6490319e8ba7a29001..168f50523b00ab8d43cbcc5ea5675a840762be11 100644 +index 4487c03183d20a187d391dd124abb7b926508b5b..84c846d2ef4990befb2891631ac5ae16d881401b 100644 --- a/net/minecraft/world/entity/projectile/Projectile.java +++ b/net/minecraft/world/entity/projectile/Projectile.java -@@ -49,6 +49,55 @@ public abstract class Projectile extends Entity implements TraceableEntity { +@@ -53,6 +53,55 @@ public abstract class Projectile extends Entity implements TraceableEntity { super(entityType, level); } diff --git a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0009-Predict-Halloween.patch b/leaf-server/minecraft-patches/features/0010-Predict-Halloween.patch similarity index 95% rename from leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0009-Predict-Halloween.patch rename to leaf-server/minecraft-patches/features/0010-Predict-Halloween.patch index b1357b30..78a9d307 100644 --- a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0009-Predict-Halloween.patch +++ b/leaf-server/minecraft-patches/features/0010-Predict-Halloween.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java -index 5ebe7b1dce367d5c5e1136b97b2b9f6737595201..62085eecd2bb55721208c5fd126aaae56a50ed6b 100644 +index eb9fb57440f498079182030a46034008d3f6b5e8..65a9ea8d4a208f447b5e78b58b10a0917e35e4f2 100644 --- a/net/minecraft/world/entity/ambient/Bat.java +++ b/net/minecraft/world/entity/ambient/Bat.java -@@ -243,11 +243,66 @@ public class Bat extends AmbientCreature { +@@ -244,11 +244,66 @@ public class Bat extends AmbientCreature { } } diff --git a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0012-Reduce-enderman-teleport-chunk-lookups.patch b/leaf-server/minecraft-patches/features/0011-Reduce-enderman-teleport-chunk-lookups.patch similarity index 94% rename from leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0012-Reduce-enderman-teleport-chunk-lookups.patch rename to leaf-server/minecraft-patches/features/0011-Reduce-enderman-teleport-chunk-lookups.patch index fcd599cc..c6ed42a6 100644 --- a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0012-Reduce-enderman-teleport-chunk-lookups.patch +++ b/leaf-server/minecraft-patches/features/0011-Reduce-enderman-teleport-chunk-lookups.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java -index 4b5ffd278e0e9d47100e5452949e8d757bbfece4..00c0d2432b4a0e46f85f1f422772e6c43ef5222c 100644 +index ab7f7846d3fc0252c6f71277b3e67d7a785a96b5..6c2bfad0ad7a5c20cd6eeba9fdc713c85c357ef4 100644 --- a/net/minecraft/world/entity/monster/EnderMan.java +++ b/net/minecraft/world/entity/monster/EnderMan.java -@@ -309,11 +309,19 @@ public class EnderMan extends Monster implements NeutralMob { +@@ -300,11 +300,19 @@ public class EnderMan extends Monster implements NeutralMob { private boolean teleport(double x, double y, double z) { BlockPos.MutableBlockPos mutableBlockPos = new BlockPos.MutableBlockPos(x, y, z); diff --git a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0013-Reduce-acquire-POI-for-stuck-entities.patch b/leaf-server/minecraft-patches/features/0012-Reduce-acquire-POI-for-stuck-entities.patch similarity index 97% rename from leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0013-Reduce-acquire-POI-for-stuck-entities.patch rename to leaf-server/minecraft-patches/features/0012-Reduce-acquire-POI-for-stuck-entities.patch index 5ae54663..2b7ee927 100644 --- a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0013-Reduce-acquire-POI-for-stuck-entities.patch +++ b/leaf-server/minecraft-patches/features/0012-Reduce-acquire-POI-for-stuck-entities.patch @@ -31,7 +31,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java -index b9174ae7e3a3e2de2d570b95ab5012ac3c3a2eda..751e91a922b20c96f27885c3eb085ec4ae39091b 100644 +index 9de13a78b2a8be181c02ab330bfa9abb936a83db..7470150b5c613ae31d94170d9f5eedac67add63d 100644 --- a/net/minecraft/world/entity/ai/behavior/AcquirePoi.java +++ b/net/minecraft/world/entity/ai/behavior/AcquirePoi.java @@ -28,6 +28,13 @@ import org.apache.commons.lang3.mutable.MutableLong; diff --git a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0014-Check-targeting-range-before-getting-visibility.patch b/leaf-server/minecraft-patches/features/0013-Check-targeting-range-before-getting-visibility.patch similarity index 100% rename from leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0014-Check-targeting-range-before-getting-visibility.patch rename to leaf-server/minecraft-patches/features/0013-Check-targeting-range-before-getting-visibility.patch diff --git a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0015-Cache-on-climbable-check.patch b/leaf-server/minecraft-patches/features/0014-Cache-on-climbable-check.patch similarity index 92% rename from leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0015-Cache-on-climbable-check.patch rename to leaf-server/minecraft-patches/features/0014-Cache-on-climbable-check.patch index f40620ef..18fe815a 100644 --- a/leaf-archived-patches/unapplied/server/minecraft-patches/gale-features/0015-Cache-on-climbable-check.patch +++ b/leaf-server/minecraft-patches/features/0014-Cache-on-climbable-check.patch @@ -31,7 +31,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/io/papermc/paper/entity/activation/ActivationRange.java b/io/papermc/paper/entity/activation/ActivationRange.java -index bd888ef719b9bfc93bace0b1d0fb771ac659f515..5d1e83658bb9646cf56885627256f0be7a84831e 100644 +index 2ebee223085fe7926c7f3e555df19ae69f36157e..602ed4c5556723e54a80ccc3481af31109d5a0a6 100644 --- a/io/papermc/paper/entity/activation/ActivationRange.java +++ b/io/papermc/paper/entity/activation/ActivationRange.java @@ -215,7 +215,7 @@ public final class ActivationRange { @@ -44,10 +44,10 @@ index bd888ef719b9bfc93bace0b1d0fb771ac659f515..5d1e83658bb9646cf56885627256f0be } if (entity instanceof final Mob mob && mob.getTarget() != null) { diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java -index 00caebfabfc459eed86f0e6e2cc3f4b628f7ef99..181eec21013cc37dd252e3df047ad9ddda8ece19 100644 +index 07df62b79a4ee9c9da77cac8615fad5463628204..bb687f048be9edfde75d13354dd3265593e83e9f 100644 --- a/net/minecraft/world/entity/LivingEntity.java +++ b/net/minecraft/world/entity/LivingEntity.java -@@ -2015,6 +2015,21 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2083,6 +2083,21 @@ public abstract class LivingEntity extends Entity implements Attackable { return this.lastClimbablePos; } diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0002-Gale-metrics.patch b/leaf-server/paper-patches/features/0002-Gale-metrics.patch similarity index 98% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0002-Gale-metrics.patch rename to leaf-server/paper-patches/features/0002-Gale-metrics.patch index be909e80..140286a6 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0002-Gale-metrics.patch +++ b/leaf-server/paper-patches/features/0002-Gale-metrics.patch @@ -34,10 +34,10 @@ index 632920e04686d8a0fd0a60e87348be1fe7862a3c..ba0dd850f90564fab3a5b922bb28d244 IO_POOL.adjustThreadCount(ioThreads); diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 8f62879582195d8ae4f64bd23f752fa133b1c973..8f50cbe29b36e7b73c8c9db491f4dd21a886f45d 100644 +index 6abc57669e87f7f98f3b76af3c0e50825fea6eb1..d561202169d6f19c1e9ad8009415af9eaa707b96 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -592,7 +592,7 @@ public class Metrics { +@@ -593,7 +593,7 @@ public class Metrics { boolean logFailedRequests = config.getBoolean("logFailedRequests", false); // Only start Metrics, if it's enabled in the config if (config.getBoolean("enabled", true)) { @@ -46,7 +46,7 @@ index 8f62879582195d8ae4f64bd23f752fa133b1c973..8f50cbe29b36e7b73c8c9db491f4dd21 metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { String minecraftVersion = Bukkit.getVersion(); -@@ -602,20 +602,20 @@ public class Metrics { +@@ -603,20 +603,20 @@ public class Metrics { metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size())); metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : "offline")); @@ -73,7 +73,7 @@ index 8f62879582195d8ae4f64bd23f752fa133b1c973..8f50cbe29b36e7b73c8c9db491f4dd21 entry.put(javaVersion, 1); // http://openjdk.java.net/jeps/223 -@@ -644,7 +644,7 @@ public class Metrics { +@@ -645,7 +645,7 @@ public class Metrics { })); metrics.addCustomChart(new Metrics.DrilldownPie("legacy_plugins", () -> { @@ -82,7 +82,7 @@ index 8f62879582195d8ae4f64bd23f752fa133b1c973..8f50cbe29b36e7b73c8c9db491f4dd21 // count legacy plugins int legacy = 0; -@@ -655,7 +655,7 @@ public class Metrics { +@@ -656,7 +656,7 @@ public class Metrics { } // insert real value as lower dimension @@ -91,7 +91,7 @@ index 8f62879582195d8ae4f64bd23f752fa133b1c973..8f50cbe29b36e7b73c8c9db491f4dd21 entry.put(String.valueOf(legacy), 1); // create buckets as higher dimension -@@ -675,6 +675,256 @@ public class Metrics { +@@ -676,6 +676,256 @@ public class Metrics { return map; })); diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0003-Gale-semantic-version.patch b/leaf-server/paper-patches/features/0003-Gale-semantic-version.patch similarity index 90% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0003-Gale-semantic-version.patch rename to leaf-server/paper-patches/features/0003-Gale-semantic-version.patch index 8862cba2..ec32c58d 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0003-Gale-semantic-version.patch +++ b/leaf-server/paper-patches/features/0003-Gale-semantic-version.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 8f50cbe29b36e7b73c8c9db491f4dd21a886f45d..59e4ea913ee34d133e74be50ad3f35606354db43 100644 +index d561202169d6f19c1e9ad8009415af9eaa707b96..612eacf43f8b6b92354fa43479bd0ead728dd7b9 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -925,6 +925,16 @@ public class Metrics { +@@ -926,6 +926,16 @@ public class Metrics { })); // Gale end - metrics - runtime max memory diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0004-Gale-configuration.patch b/leaf-server/paper-patches/features/0004-Gale-configuration.patch similarity index 97% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0004-Gale-configuration.patch rename to leaf-server/paper-patches/features/0004-Gale-configuration.patch index 5a6c5e0e..93f5c741 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0004-Gale-configuration.patch +++ b/leaf-server/paper-patches/features/0004-Gale-configuration.patch @@ -144,10 +144,10 @@ index 05339a176083af667c16f77d76dc1878dafce3f0..9ca55cba185b9de566f911b08d671bee } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index dfce118ec8b91eae219855a0b01392ef20b7d50c..b747b83d9b8967566d3b64ea29dd06e3ca709637 100644 +index 676e2b789ff598f6d6430249c9a7395224715c35..10560d5caa5a53410eb759cc43dde9d470a3de45 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1088,6 +1088,7 @@ public final class CraftServer implements Server { +@@ -1064,6 +1064,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); @@ -155,7 +155,7 @@ index dfce118ec8b91eae219855a0b01392ef20b7d50c..b747b83d9b8967566d3b64ea29dd06e3 for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -3047,6 +3048,14 @@ public final class CraftServer implements Server { +@@ -2942,6 +2943,14 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0005-Gale-commands.patch b/leaf-server/paper-patches/features/0005-Gale-commands.patch similarity index 89% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0005-Gale-commands.patch rename to leaf-server/paper-patches/features/0005-Gale-commands.patch index 450fb1ff..0429960b 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0005-Gale-commands.patch +++ b/leaf-server/paper-patches/features/0005-Gale-commands.patch @@ -13,10 +13,10 @@ As part of: Paper (https://github.com/PaperMC/Paper) Licensed under: MIT (https://opensource.org/licenses/MIT) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 9094b8e3ff1d6d07e8a39d379e40a6da7e9888ed..32ac42ec69810470941c29f7add34d03e46b4712 100644 +index 10560d5caa5a53410eb759cc43dde9d470a3de45..2675f1a11a8a7f27a1b7151d88e2fb1e45fc659d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1120,6 +1120,7 @@ public final class CraftServer implements Server { +@@ -1096,6 +1096,7 @@ public final class CraftServer implements Server { this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0006-Set-Gale-permissions-root.patch b/leaf-server/paper-patches/features/0006-Set-Gale-permissions-root.patch similarity index 90% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0006-Set-Gale-permissions-root.patch rename to leaf-server/paper-patches/features/0006-Set-Gale-permissions-root.patch index fa854b1b..3c7234e7 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0006-Set-Gale-permissions-root.patch +++ b/leaf-server/paper-patches/features/0006-Set-Gale-permissions-root.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java -index e0e61115ada9a49d4c528c5d4e02a1ca571d9531..0a808c5d242b2d9bea82d9d219227fbaf5741bf4 100644 +index 7ad31b059c1c7a1a2fae1fa7a3359da5343e217d..11c857e6d42f23994dbded70fbe052e15db2dc4b 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java +++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java @@ -5,6 +5,7 @@ import org.bukkit.util.permissions.DefaultPermissions; diff --git a/leaf-archived-patches/unapplied/server/paper-patches/features/0002-Leaf-Bootstrap.patch b/leaf-server/paper-patches/features/0007-Leaf-Bootstrap.patch similarity index 70% rename from leaf-archived-patches/unapplied/server/paper-patches/features/0002-Leaf-Bootstrap.patch rename to leaf-server/paper-patches/features/0007-Leaf-Bootstrap.patch index 06a070a3..c3daa7ca 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/features/0002-Leaf-Bootstrap.patch +++ b/leaf-server/paper-patches/features/0007-Leaf-Bootstrap.patch @@ -6,15 +6,14 @@ Subject: [PATCH] Leaf Bootstrap org.bukkit.craftbukkit.Main#main -> LeafBootstrap -> PaperBootstrap -> ... diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index ecb0fcd1f3b3f3d7751eded3cdf0977c1889c9ed..d0becb56a9911ef4cc55ae8d7c47832f442ad52f 100644 +index a11fc64b4933a5abce0182ba46f1da22043eb0d8..e89c906dc07e52ea8d661e005d8531128ce4d080 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -278,7 +278,8 @@ public class Main { +@@ -240,7 +240,7 @@ public class Main { + System.setProperty("library.jansi.version", "Paper"); // Paper - set meaningless jansi version to prevent git builds from crashing on Windows System.setProperty("jdk.console", "java.base"); // Paper - revert default console provider back to java.base so we can have our own jline - //System.out.println("Loading libraries, please wait..."); - //net.minecraft.server.Main.main(options); + - io.papermc.paper.PaperBootstrap.boot(options); -+ //io.papermc.paper.PaperBootstrap.boot(options); // Leaf - Leaf Boostrap - diff on change + org.dreeam.leaf.LeafBootstrap.boot(options); // Leaf - Leaf Boostrap } catch (Throwable t) { t.printStackTrace(); diff --git a/leaf-archived-patches/unapplied/server/paper-patches/features/0003-Leaf-Commands.patch b/leaf-server/paper-patches/features/0008-Leaf-Commands.patch similarity index 80% rename from leaf-archived-patches/unapplied/server/paper-patches/features/0003-Leaf-Commands.patch rename to leaf-server/paper-patches/features/0008-Leaf-Commands.patch index 5a0c0a7f..0b345b80 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/features/0003-Leaf-Commands.patch +++ b/leaf-server/paper-patches/features/0008-Leaf-Commands.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Leaf Commands diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java -index 7d66126c1f5957c109a2426d53f5d0072886309b..f623a1d9e580104e1ab8b7cf88b9d26212f8acd8 100644 +index 11c857e6d42f23994dbded70fbe052e15db2dc4b..ed275123642d929b51b93f7f2ea825858411a921 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java +++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java @@ -6,6 +6,7 @@ import org.bukkit.util.permissions.DefaultPermissions; @@ -14,5 +14,5 @@ index 7d66126c1f5957c109a2426d53f5d0072886309b..f623a1d9e580104e1ab8b7cf88b9d262 public static final String GALE_ROOT = "gale"; // Gale - set Gale permissions root + public static final String LEAF_ROOT = "leaf"; // Leaf - Leaf commands - public static final String writeBooks = GALE_ROOT + ".writebooks"; // Gale - Pufferfish - make book writing configurable + private CraftDefaultPermissions() {} diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0007-Simpler-ShapelessRecipe-comparison-for-vanilla.patch b/leaf-server/paper-patches/features/0009-Simpler-ShapelessRecipe-comparison-for-vanilla.patch similarity index 100% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0007-Simpler-ShapelessRecipe-comparison-for-vanilla.patch rename to leaf-server/paper-patches/features/0009-Simpler-ShapelessRecipe-comparison-for-vanilla.patch diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0008-Print-stack-trace-for-plugins-not-shutting-down-task.patch b/leaf-server/paper-patches/features/0010-Print-stack-trace-for-plugins-not-shutting-down-task.patch similarity index 93% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0008-Print-stack-trace-for-plugins-not-shutting-down-task.patch rename to leaf-server/paper-patches/features/0010-Print-stack-trace-for-plugins-not-shutting-down-task.patch index 0fb0c5b5..2a48f919 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0008-Print-stack-trace-for-plugins-not-shutting-down-task.patch +++ b/leaf-server/paper-patches/features/0010-Print-stack-trace-for-plugins-not-shutting-down-task.patch @@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 32ac42ec69810470941c29f7add34d03e46b4712..ae90120eab182fcb975a13c84eed1425dc09da46 100644 +index 2675f1a11a8a7f27a1b7151d88e2fb1e45fc659d..e2e7e09ca154ca1ccf38bb97c03caadef5048541 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1183,6 +1183,13 @@ public final class CraftServer implements Server { +@@ -1159,6 +1159,13 @@ public final class CraftServer implements Server { plugin.getPluginMeta().getDisplayName(), "This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies." )); diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0009-SIMD-support.patch b/leaf-server/paper-patches/features/0011-SIMD-support.patch similarity index 96% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0009-SIMD-support.patch rename to leaf-server/paper-patches/features/0011-SIMD-support.patch index 42b5f9c6..8055726e 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0009-SIMD-support.patch +++ b/leaf-server/paper-patches/features/0011-SIMD-support.patch @@ -13,10 +13,10 @@ As part of: Pufferfish (https://github.com/pufferfish-gg/Pufferfish) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 59e4ea913ee34d133e74be50ad3f35606354db43..dbe3d8748c1e6fbad7ee4ccf39dfc0422b0ce50b 100644 +index 612eacf43f8b6b92354fa43479bd0ead728dd7b9..a35c0af0c53bab4c1b3623e903d3057c816e5d3b 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -935,6 +935,46 @@ public class Metrics { +@@ -936,6 +936,46 @@ public class Metrics { metrics.addCustomChart(new Metrics.DrilldownPie("gale_semantic_version", () -> semanticVersionMap)); // Gale end - semantic version - include in metrics diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0010-Make-book-writing-configurable.patch b/leaf-server/paper-patches/features/0012-Make-book-writing-configurable.patch similarity index 83% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0010-Make-book-writing-configurable.patch rename to leaf-server/paper-patches/features/0012-Make-book-writing-configurable.patch index 51f555b4..c4c871d5 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0010-Make-book-writing-configurable.patch +++ b/leaf-server/paper-patches/features/0012-Make-book-writing-configurable.patch @@ -22,22 +22,22 @@ you to easily disable books, should you want to preemptively remove this functionality before additional exploits are found. diff --git a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java -index 0a808c5d242b2d9bea82d9d219227fbaf5741bf4..7d66126c1f5957c109a2426d53f5d0072886309b 100644 +index ed275123642d929b51b93f7f2ea825858411a921..66b80378f8b383e1388cf6b7b0e9ed0f8bc08a63 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java +++ b/src/main/java/org/bukkit/craftbukkit/util/permissions/CraftDefaultPermissions.java -@@ -7,6 +7,8 @@ public final class CraftDefaultPermissions { - private static final String ROOT = "minecraft"; +@@ -8,6 +8,8 @@ public final class CraftDefaultPermissions { public static final String GALE_ROOT = "gale"; // Gale - set Gale permissions root + public static final String LEAF_ROOT = "leaf"; // Leaf - Leaf commands + public static final String writeBooks = GALE_ROOT + ".writebooks"; // Gale - Pufferfish - make book writing configurable + private CraftDefaultPermissions() {} public static void registerCorePermissions() { -@@ -19,6 +21,7 @@ public final class CraftDefaultPermissions { +@@ -18,6 +20,7 @@ public final class CraftDefaultPermissions { + DefaultPermissions.registerPermission(CraftDefaultPermissions.ROOT + ".debugstick", "Gives the user the ability to use the debug stick in creative", org.bukkit.permissions.PermissionDefault.OP, parent); DefaultPermissions.registerPermission(CraftDefaultPermissions.ROOT + ".debugstick.always", "Gives the user the ability to use the debug stick in all game modes", org.bukkit.permissions.PermissionDefault.FALSE/* , parent */); // Paper - should not have this parent, as it's not a "vanilla" utility DefaultPermissions.registerPermission(CraftDefaultPermissions.ROOT + ".commandblock", "Gives the user the ability to use command blocks.", org.bukkit.permissions.PermissionDefault.OP, parent); // Paper - // Spigot end + DefaultPermissions.registerPermission(writeBooks, "Gives the user the ability to write books even when writing books is disabled in the Gale configuration", org.bukkit.permissions.PermissionDefault.OP); // Gale - Pufferfish - make book writing configurable parent.recalculatePermissibles(); } diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0011-Optimize-entity-coordinate-key.patch b/leaf-server/paper-patches/features/0013-Optimize-entity-coordinate-key.patch similarity index 100% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0011-Optimize-entity-coordinate-key.patch rename to leaf-server/paper-patches/features/0013-Optimize-entity-coordinate-key.patch diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0012-Do-not-log-legacy-Material-initialization.patch b/leaf-server/paper-patches/features/0014-Do-not-log-legacy-Material-initialization.patch similarity index 94% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0012-Do-not-log-legacy-Material-initialization.patch rename to leaf-server/paper-patches/features/0014-Do-not-log-legacy-Material-initialization.patch index e243b5d6..b93608bd 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0012-Do-not-log-legacy-Material-initialization.patch +++ b/leaf-server/paper-patches/features/0014-Do-not-log-legacy-Material-initialization.patch @@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java -index 51ae8eddadc87b143b93521a3cef374f1e3a24dc..eed2d01c4f884c3aafdef21741fc1a2e2d610199 100644 +index 0b9b29753984bebaf01e2edc6d325cd5df6c689d..a5c8701974acd4639b9475434a7ebf73cbf496d7 100644 --- a/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java +++ b/src/main/java/org/bukkit/craftbukkit/legacy/CraftLegacy.java -@@ -265,7 +265,7 @@ public final class CraftLegacy { +@@ -260,7 +260,7 @@ public final class CraftLegacy { } static { diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0013-Do-not-log-Not-Secure-marker.patch b/leaf-server/paper-patches/features/0015-Do-not-log-Not-Secure-marker.patch similarity index 94% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0013-Do-not-log-Not-Secure-marker.patch rename to leaf-server/paper-patches/features/0015-Do-not-log-Not-Secure-marker.patch index dd6abc00..30567beb 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0013-Do-not-log-Not-Secure-marker.patch +++ b/leaf-server/paper-patches/features/0015-Do-not-log-Not-Secure-marker.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java -index 14e412ebf75b0e06ab53a1c8f9dd1be6ad1e2680..506c746980cfca170efd249d035a572361b667c4 100644 +index f6266b3ca9c031ef9e96df23e0413c7db5211bd8..7cb9622b88d9ef1ae5cae00485bb9995c87e206f 100644 --- a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java +++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java @@ -317,7 +317,7 @@ public final class ChatProcessor { diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0014-Reduce-array-allocations.patch b/leaf-server/paper-patches/features/0016-Reduce-array-allocations.patch similarity index 79% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0014-Reduce-array-allocations.patch rename to leaf-server/paper-patches/features/0016-Reduce-array-allocations.patch index c76e4e37..0192deee 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0014-Reduce-array-allocations.patch +++ b/leaf-server/paper-patches/features/0016-Reduce-array-allocations.patch @@ -111,37 +111,20 @@ index 4b6d845423ca845cb8780499757d627773c688da..9c2864675bc0b13ba088ba699be3c569 }); diff --git a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java -index ae60bd96b5284d54676d8e7e4dd5d170b526ec1e..89562a86cd33ea2b55b284f77dc5d903ee21a49b 100644 +index 58ca24715eafd1ac3cc9657b1cc235049d69bb59..acb764b71bb3e8f159a758002f7d1077637d188d 100644 --- a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java +++ b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java @@ -14,7 +14,7 @@ public final class VersionCommand implements PaperSubcommand { public boolean execute(final CommandSender sender, final String subCommand, final String[] args) { - final @Nullable Command ver = MinecraftServer.getServer().server.getCommandMap().getCommand("version"); - if (ver != null) { -- ver.execute(sender, "paper", new String[0]); -+ ver.execute(sender, "paper", me.titaniumtown.ArrayConstants.emptyStringArray); // Gale - JettPack - reduce array allocations + final @Nullable Command redirect = MinecraftServer.getServer().server.getCommandMap().getCommand("version"); + if (redirect != null) { +- redirect.execute(sender, "paper", new String[0]); ++ redirect.execute(sender, "paper", me.titaniumtown.ArrayConstants.emptyStringArray); // Gale - JettPack - reduce array allocations } return true; } -diff --git a/src/main/java/org/bukkit/craftbukkit/CraftEquipmentSlot.java b/src/main/java/org/bukkit/craftbukkit/CraftEquipmentSlot.java -index ae86c45c1d49c7646c721991910592091e7333f8..1368191d6f76d1b4246b1bae7d5afdda44050965 100644 ---- a/src/main/java/org/bukkit/craftbukkit/CraftEquipmentSlot.java -+++ b/src/main/java/org/bukkit/craftbukkit/CraftEquipmentSlot.java -@@ -7,8 +7,10 @@ import org.bukkit.inventory.EquipmentSlot; - - public class CraftEquipmentSlot { - -- private static final net.minecraft.world.entity.EquipmentSlot[] slots = new net.minecraft.world.entity.EquipmentSlot[EquipmentSlot.values().length]; -- private static final EquipmentSlot[] enums = new EquipmentSlot[net.minecraft.world.entity.EquipmentSlot.values().length]; -+ // Gale start - JettPack - reduce array allocations -+ private static final net.minecraft.world.entity.EquipmentSlot[] slots = net.minecraft.world.entity.EquipmentSlot.VALUES_ARRAY; -+ private static final EquipmentSlot[] enums = new EquipmentSlot[net.minecraft.world.entity.EquipmentSlot.VALUES.size()]; -+ // Gale end - JettPack - reduce array allocations - - static { - set(EquipmentSlot.HAND, net.minecraft.world.entity.EquipmentSlot.MAINHAND); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java -index fdcc414f4fa246082ad0732133c870d915ae3084..33ed515d6e79c4135f3e7bbc25fd0e3d83d08540 100644 +index 4abe58077fae4e68cceda9624fed013bca1d6f22..72aa906ccf64dd9be085728a897f323ab0822eba 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java @@ -165,7 +165,7 @@ public class CraftEntityEquipment implements EntityEquipment { @@ -154,10 +137,10 @@ index fdcc414f4fa246082ad0732133c870d915ae3084..33ed515d6e79c4135f3e7bbc25fd0e3d } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java -index b25dc23b81687dd4d4e70b3615ffb91f8c03c68b..59ff2801592c98e7471404c70dbbdf3db1b7716b 100644 +index 306ca8db11d16a03ce73b9a5a8be7efc11ee4b57..444e57a87acb653275d1cadbd0698815f6dc049d 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java +++ b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java -@@ -164,7 +164,7 @@ public final class WeakCollection implements Collection { +@@ -164,7 +164,7 @@ public final class WeakCollection implements Collection { @Override public Object[] toArray() { diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0015-CraftBukkit-UUID-to-world-map.patch b/leaf-server/paper-patches/features/0017-CraftBukkit-UUID-to-world-map.patch similarity index 79% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0015-CraftBukkit-UUID-to-world-map.patch rename to leaf-server/paper-patches/features/0017-CraftBukkit-UUID-to-world-map.patch index 36033044..87fe7e6a 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0015-CraftBukkit-UUID-to-world-map.patch +++ b/leaf-server/paper-patches/features/0017-CraftBukkit-UUID-to-world-map.patch @@ -13,18 +13,18 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index ae90120eab182fcb975a13c84eed1425dc09da46..67afa3b0cf9295690461e2be49249fb6f80d7082 100644 +index e2e7e09ca154ca1ccf38bb97c03caadef5048541..5b210cbcc8f889ecfe8e6b9dc924876855c2feb9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -286,6 +286,7 @@ public final class CraftServer implements Server { - protected final DedicatedServer console; - protected final DedicatedPlayerList playerList; - private final Map worlds = new LinkedHashMap(); +@@ -282,6 +282,7 @@ public final class CraftServer implements Server { + final DedicatedServer console; + private final DedicatedPlayerList playerList; + private final Map worlds = new LinkedHashMap<>(); + private final it.unimi.dsi.fastutil.objects.Object2ObjectMap worldsByUUID = new it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap<>(); // Gale - MultiPaper - CraftBukkit UUID to world map - // private final Map, Registry> registries = new HashMap<>(); // Paper - replace with RegistryAccess private YamlConfiguration configuration; private YamlConfiguration commandsConfiguration; -@@ -1529,6 +1530,7 @@ public final class CraftServer implements Server { + private final Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions())); +@@ -1487,6 +1488,7 @@ public final class CraftServer implements Server { this.getLogger().log(Level.SEVERE, null, ex); } @@ -32,7 +32,7 @@ index ae90120eab182fcb975a13c84eed1425dc09da46..67afa3b0cf9295690461e2be49249fb6 this.worlds.remove(world.getName().toLowerCase(Locale.ROOT)); this.console.removeLevel(handle); return true; -@@ -1547,12 +1549,7 @@ public final class CraftServer implements Server { +@@ -1505,12 +1507,7 @@ public final class CraftServer implements Server { @Override public World getWorld(UUID uid) { @@ -45,8 +45,8 @@ index ae90120eab182fcb975a13c84eed1425dc09da46..67afa3b0cf9295690461e2be49249fb6 + return this.worldsByUUID.get(uid); // Gale - MultiPaper - CraftBukkit UUID to world map } - // Paper start -@@ -1570,6 +1567,7 @@ public final class CraftServer implements Server { + @Override +@@ -1526,6 +1523,7 @@ public final class CraftServer implements Server { System.out.println("World " + world.getName() + " is a duplicate of another world and has been prevented from loading. Please delete the uid.dat file from " + world.getName() + "'s world directory if you want to be able to load the duplicate world."); return; } diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0016-Specific-interval-TPS-API.patch b/leaf-server/paper-patches/features/0018-Specific-interval-TPS-API.patch similarity index 80% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0016-Specific-interval-TPS-API.patch rename to leaf-server/paper-patches/features/0018-Specific-interval-TPS-API.patch index bd02f391..f715dd1a 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0016-Specific-interval-TPS-API.patch +++ b/leaf-server/paper-patches/features/0018-Specific-interval-TPS-API.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 5df7c8133a8c982e6ffe9c57c58cfb22ccd874f4..05821d59d043a116e3fd779ed7be2624055ec886 100644 +index 5b210cbcc8f889ecfe8e6b9dc924876855c2feb9..a913beb575cf9bb9c614bae48432f16d33a891bd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3102,6 +3102,23 @@ public final class CraftServer implements Server { +@@ -2995,6 +2995,23 @@ public final class CraftServer implements Server { }; } @@ -31,6 +31,6 @@ index 5df7c8133a8c982e6ffe9c57c58cfb22ccd874f4..05821d59d043a116e3fd779ed7be2624 + } + // Gale end - specific interval TPS API + - // Paper start - adventure sounds @Override public void playSound(final net.kyori.adventure.sound.Sound sound) { + if (sound.seed().isEmpty()) org.spigotmc.AsyncCatcher.catchOp("play sound; cannot generate seed with world random"); diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0017-5-second-TPS-average.patch b/leaf-server/paper-patches/features/0019-5-second-TPS-average.patch similarity index 97% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0017-5-second-TPS-average.patch rename to leaf-server/paper-patches/features/0019-5-second-TPS-average.patch index 98a3761e..c9531579 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0017-5-second-TPS-average.patch +++ b/leaf-server/paper-patches/features/0019-5-second-TPS-average.patch @@ -58,10 +58,10 @@ index 12b327eea95e0de9e9c39b7d039badee8ec46508..6178f0212214a2a075cea60c758dca79 } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 05821d59d043a116e3fd779ed7be2624055ec886..50ff4a923291a06a52e91059b02194a15f87d6d6 100644 +index a913beb575cf9bb9c614bae48432f16d33a891bd..b7175131c81036a244b9274252d11b009e4d31bb 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3102,7 +3102,26 @@ public final class CraftServer implements Server { +@@ -2995,7 +2995,26 @@ public final class CraftServer implements Server { }; } diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0018-Last-tick-time-API.patch b/leaf-server/paper-patches/features/0020-Last-tick-time-API.patch similarity index 91% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0018-Last-tick-time-API.patch rename to leaf-server/paper-patches/features/0020-Last-tick-time-API.patch index ccabbb8a..74e31506 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0018-Last-tick-time-API.patch +++ b/leaf-server/paper-patches/features/0020-Last-tick-time-API.patch @@ -23,13 +23,13 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 50ff4a923291a06a52e91059b02194a15f87d6d6..1b1720343d3b07a73490f66520c7df12005adbcc 100644 +index b7175131c81036a244b9274252d11b009e4d31bb..d8cfddc1641868692e045bc13bac61a21c64ffcc 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3342,4 +3342,21 @@ public final class CraftServer implements Server { +@@ -3232,4 +3232,21 @@ public final class CraftServer implements Server { + public void allowPausing(final Plugin plugin, final boolean value) { this.console.addPluginAllowingSleep(plugin.getName(), value); } - // Paper end - API to check if the server is sleeping + + // Gale start - YAPFA - last tick time - API + @Override diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0019-Show-last-tick-time-in-tps-command.patch b/leaf-server/paper-patches/features/0021-Show-last-tick-time-in-tps-command.patch similarity index 100% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0019-Show-last-tick-time-in-tps-command.patch rename to leaf-server/paper-patches/features/0021-Show-last-tick-time-in-tps-command.patch diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0020-Pre-compute-VarLong-sizes.patch b/leaf-server/paper-patches/features/0022-Pre-compute-VarLong-sizes.patch similarity index 100% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0020-Pre-compute-VarLong-sizes.patch rename to leaf-server/paper-patches/features/0022-Pre-compute-VarLong-sizes.patch diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0021-Optimize-VarInt-write-and-VarLong-write.patch b/leaf-server/paper-patches/features/0023-Optimize-VarInt-write-and-VarLong-write.patch similarity index 100% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0021-Optimize-VarInt-write-and-VarLong-write.patch rename to leaf-server/paper-patches/features/0023-Optimize-VarInt-write-and-VarLong-write.patch diff --git a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0022-Virtual-thread-support.patch b/leaf-server/paper-patches/features/0024-Virtual-thread-support.patch similarity index 92% rename from leaf-archived-patches/unapplied/server/paper-patches/gale-features/0022-Virtual-thread-support.patch rename to leaf-server/paper-patches/features/0024-Virtual-thread-support.patch index 87c56e97..e5878bd6 100644 --- a/leaf-archived-patches/unapplied/server/paper-patches/gale-features/0022-Virtual-thread-support.patch +++ b/leaf-server/paper-patches/features/0024-Virtual-thread-support.patch @@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index dbe3d8748c1e6fbad7ee4ccf39dfc0422b0ce50b..3d8ed4ff9a5a30d123508aeb485250271b528a6e 100644 +index a35c0af0c53bab4c1b3623e903d3057c816e5d3b..3e9bbe0dae0cd1bdb390f68612dbf824b6ed4df7 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -975,6 +975,22 @@ public class Metrics { +@@ -976,6 +976,22 @@ public class Metrics { })); // Gale end - SIMD support - include in metrics diff --git a/todos.md b/todos.md index f6fb9eda..f0bd213d 100644 --- a/todos.md +++ b/todos.md @@ -1,6 +1,5 @@ # Gale TODOs - [ ] Do a benchmark for `Remove streams and iterators from range check`, getEffectiveRange in ChunkMap -- [ ] Do benchmark for reduce entity fluid lookup on 1.21.3 - [ ] Check gale force load chunk option whether need or whether need to change. - [ ] check reduce array allocation, whether need do clone for some reference, to prevent potential issues.. or add debug command for debugging?.