diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 3392784f..6bbe6b4b 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -159,7 +159,8 @@ jobs: "id": "carpet", "version": "1.4.11", "entrypoints": { - "preLaunch": [ "carpet.utils.RulePrinter" ] + "server": [ "carpet.utils.CarpetRulePrinter" ], + "preLaunch": [ "carpet.utils.CarpetRulePrinter" ] } }' > fabric.mod.json cd ../../../ diff --git a/src/main/java/carpet/utils/CarpetRulePrinter.java b/src/main/java/carpet/utils/CarpetRulePrinter.java new file mode 100644 index 00000000..4c243e94 --- /dev/null +++ b/src/main/java/carpet/utils/CarpetRulePrinter.java @@ -0,0 +1,33 @@ +package carpet.utils; + +import carpet.CarpetServer; +import net.fabricmc.api.DedicatedServerModInitializer; +import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; + +import java.io.PrintStream; +import java.lang.System; + +/** + * Runs only from GitHub Actions to generate the wiki + * page with all Carpet rules on it. + * It is here so it can be managed by the IDE + * + */ +public class CarpetRulePrinter implements DedicatedServerModInitializer, PreLaunchEntrypoint { + public static final PrintStream OLD_OUT = System.out; + + @Override + public void onInitializeServer() { + // Minecraft (or whatever) changes the System.out to have prefixes, + // our simple parser doesn't like that. So we change it back + System.setOut(OLD_OUT); + CarpetServer.onGameStarted(); + CarpetServer.settingsManager.printAllRulesToLog(null); + System.exit(0); + } + + @Override + public void onPreLaunch() { + // Just initializes our OLD_OUT by nooping the class + } +} diff --git a/src/main/java/carpet/utils/RulePrinter.java b/src/main/java/carpet/utils/RulePrinter.java deleted file mode 100644 index 07a1f6ed..00000000 --- a/src/main/java/carpet/utils/RulePrinter.java +++ /dev/null @@ -1,22 +0,0 @@ -package carpet.utils; - -import carpet.CarpetServer; -import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; -import java.lang.System; -/** - * Runs only from GitHub Actions to generate the wiki - * page with all Carpet rules on it. - * It is here so it can be managed by the IDE - * - * @author altrisi - * - */ -public class RulePrinter implements PreLaunchEntrypoint { - - @Override - public void onPreLaunch() { - CarpetServer.onGameStarted(); - CarpetServer.settingsManager.printAllRulesToLog(null); - System.exit(0); - } -}