diff --git a/package.json b/package.json index b41a7c8f0..d574a78b2 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "i18next": "^21.10.0", "i18next-fluent": "^2.0.0", "i18next-fs-fluent-backend": "github:pluiedev/i18next-fs-fluent-backend", + "marked": "^12.0.1", "node-fetch": "^3.3.2", "quilt-bulma": "0.0.23", "rehype-autolink-headings": "^6.1.1", @@ -39,6 +40,6 @@ "semver-sort": "^1.0.0" }, "engines": { - "node": ">=20" - } + "node": ">=20" + } } diff --git a/public/_redirects b/public/_redirects index fd4849b83..621d1219b 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1,10 +1,12 @@ -/faq /about/faq 308 -/community/moderation /staff/moderation/moderation 308 -/community/tupperbox /community/pluralkit 308 -/blog /blog/1 308 -/qsl https://modrinth.com/mod/qsl 308 +/qsl https://modrinth.com/mod/qsl 308 +/incompatible-mods.json /api/v1/incompatible-mods.json 308 -/en/faq /about/faq 308 -/en/community/moderation /staff/moderation/moderation 308 -/en/community/tupperbox /community/pluralkit 308 -/en/blog /blog/1 308 +/faq /about/faq 308 +/community/moderation /staff/moderation/moderation 308 +/community/tupperbox /community/pluralkit 308 +/blog /blog/1 308 + +/en/faq /about/faq 308 +/en/community/moderation /staff/moderation/moderation 308 +/en/community/tupperbox /community/pluralkit 308 +/en/blog /blog/1 308 diff --git a/public/api/v1/incompatible-mods.json b/public/api/v1/incompatible-mods.json new file mode 100644 index 000000000..6f981b065 --- /dev/null +++ b/public/api/v1/incompatible-mods.json @@ -0,0 +1,135 @@ +[{ + "ids": ["better_loading_screen"], + "name": "Better Loading Screen", + "type": "GAME", + "status": "WONT_FIX", + "tracking": "https://github.com/shedaniel/BetterLoadingScreen/issues/20", + "icon": "https://media.forgecdn.net/avatars/511/148/637829105007128197.png" + }, + + { + "ids": ["bigbeacons"], + "name": "Big Beacons", + "type": "GAME", + "status": "UNKNOWN", + "tracking": "UNKNOWN", + "icon": "https://media.forgecdn.net/avatars/348/332/637499126404745895.png" + }, + + { + "ids": ["decorative_blocks"], + "name": "Decorative Blocks", + "type": "GAME", + "status": "IN_PROGRESS", + "tracking": "https://github.com/lilypuree/Decorative-Blocks/issues/76", + "icon": "https://media.forgecdn.net/avatars/248/967/637171183613258353.png" + }, + + { + "ids": ["logbegone"], + "name": "Log Begone", + "type": "SELF", + "status": "BLOCKED", + "tracking": "https://github.com/AzureDoom/Log-Begone/issues/3", + "note": "Not all log messages are passed through the mod's filter.", + "icon": "https://media.forgecdn.net/avatars/557/92/637903174661344067.png" + }, + + { + "ids": ["vulkanmod"], + "name": "VulkanMod", + "type": "GAME", + "status": "NO_ANSWER", + "tracking": "https://github.com/xCollateral/VulkanMod/issues/204", + "icon": "https://cdn.modrinth.com/data/JYQhtZtO/05e927ce5f83fd03e9575441d18707d8bd72437d.png" + }, + + { + "ids": ["codex"], + "name": "Codex", + "type": "GAME", + "status": "WONT_FIX", + "tracking": "https://github.com/IMB11/Codex/issues/3", + "icon": "https://media.forgecdn.net/avatars/893/179/638335912397170484.png" + }, + + { + "ids": ["libjf"], + "name": "LibJF", + "type": "GAME", + "status": "ON_HOLD", + "tracking": "https://github.com/Fabulously-Optimized/fabulously-optimized/issues/210#issuecomment-1232601249", + "icon": "https://media.forgecdn.net/avatars/382/525/637566912042948257.png" + }, + + { + "ids": ["optifabric", "optifine"], + "name": "OptiFabric/OptiFine", + "type": "GAME", + "status": "NO_ANSWER", + "tracking": "https://github.com/Chocohead/OptiFabric/issues/751", + "icon": "https://media.forgecdn.net/avatars/204/621/636941511294490034.png" + }, + + { + "ids": ["rpgdifficulty"], + "name": "Rpg Difficulty", + "type": "GAME", + "status": "WONT_FIX", + "tracking": "https://github.com/Globox1997/RpgDifficulty/issues/39", + "icon": "https://media.forgecdn.net/avatars/380/837/637563157215396535.png" + }, + + { + "ids": ["fldf"], + "name": "Fast Leaf Decay", + "type": "GAME", + "status": "UNKNOWN", + "tracking": "UNKNOWN", + "note": "Tries to crash the game as part of a targeted harassment campaign against Quilt and its users.", + "icon": "https://quiltmc.org/assets/img/unknown.png" + }, + { + "ids": ["dynmap"], + "name": "Dynmap", + "type": "GAME", + "status": "WONT_FIX", + "tracking": "https://github.com/webbukkit/dynmap/issues/4016", + "icon": "https://media.forgecdn.net/avatars/467/189/637748639594181930.png" + }, + { + "ids": ["chattriggers"], + "name": "ChatTriggers", + "type": "SELF", + "status": "UNKNOWN", + "tracking": "UNKNOWN", + "note": "Modules can be loaded and managed, but are unable to be executed on Quilt.", + "icon": "https://media.forgecdn.net/avatars/497/51/637812567601108749.png" + }, + { + "ids": ["creativecore"], + "name": "CreativeCore", + "type": "WORKAROUND", + "status": "WONT_FIX", + "tracking": "https://github.com/CreativeMD/CreativeCore/issues/205", + "note": "Occasionally breaks the search tab in the creative mode item screen, and spams errors in logs. The issue can be fixed via using its `/cmdclientconfig` command to set `playSoundWithOffset` to `false`.", + "icon": "https://media.forgecdn.net/avatars/86/225/636207446427836220.png" + }, + { + "ids": ["wetlands"], + "name": "Beneath the Wetlands", + "type": "GAME", + "status": "NO_ANSWER", + "tracking": "https://github.com/birchfolks/Beneath-the-Wetlands/issues/13", + "icon": "https://media.forgecdn.net/avatars/953/375/638444045210140536.png" + }, + { + "ids": ["essential-container"], + "name": "Essential", + "type": "WORKAROUND", + "status": "WONT_FIX", + "tracking": "https://gist.github.com/OroArmor/66632962acdd4bbbacc71d858befab29", + "note": "Prevents Quilt clients from connecting to local worlds on 1.20.2+. Add `-Dquilt.networking.reserialize_custom_payloads=true` to the java arguments. Provided direct help to developers and was turned down. Issue on their end. Will also not be present in Mod Menu.", + "icon": "https://media.forgecdn.net/avatars/597/210/637973904487237935.png" + } +] diff --git a/public/assets/img/unknown.png b/public/assets/img/unknown.png new file mode 100644 index 000000000..29ff4ff72 Binary files /dev/null and b/public/assets/img/unknown.png differ diff --git a/public/incompatible-mods.json b/public/incompatible-mods.json deleted file mode 100644 index 2316f73d9..000000000 --- a/public/incompatible-mods.json +++ /dev/null @@ -1,136 +0,0 @@ -[{ - "ids": ["armored-elytra"], - "name": "Armored Elytra", - "type": "WORKAROUND", - "note": "Add `-Dloader.debug.loadLate=armored-elytra` to your java args" - }, - - { - "ids": ["better_loading_screen"], - "name": "Better Loading Screen", - "type": "GAME" - }, - - { - "ids": ["bigbeacons"], - "name": "Big Beacons", - "type": "GAME" - }, - - { - "ids": ["cenchants"], - "name": "Combat Enchatments", - "type": "GAME" - }, - - { - "ids": ["decorative_blocks"], - "name": "Decorative Blocks", - "type": "GAME" - }, - - { - "ids": ["logbegone"], - "name": "Log Begone", - "type": "SELF", - "note": "Not all log messages are passed through the mod's filter." - }, - - { - "ids": ["mbp"], - "name": "More Block Predicates", - "type": "GAME" - }, - - { - "ids": ["semitranslucency"], - "name": "Semitranslucency Fix", - "type": "GAME" - }, - - { - "ids": ["vulkanmod"], - "name": "VulkanMod", - "type": "GAME" - }, - - { - "ids": ["essential-container"], - "name": "Essential", - "type": "SELF", - "note": "Will not be present in Mod Menu" - }, - - { - "ids": ["seamless_loading_screen"], - "name": "Seamless Loading Screen", - "type": "SELF" - }, - - { - "ids": ["codex"], - "name": "Codex", - "type": "GAME" - }, - - { - "ids": ["libjf"], - "name": "LibJF", - "type": "GAME" - }, - - { - "ids": ["optifabric", "optifine"], - "name": "OptiFabric/OptiFine", - "type": "GAME" - }, - - { - "ids": ["rpgdifficulty"], - "name": "Rpg Difficulty", - "type": "GAME" - }, - - { - "ids": ["fldf"], - "name": "Fast Leaf Decay (Hydos)", - "type": "GAME", - "note": "Tries to crash the game as part of a targetted harassment campaign against Quilt and its users" - }, - { - "ids": ["dynmap"], - "name": "Dynmap", - "type": "GAME", - "note": "[Relevent GitHub Issue](https://github.com/webbukkit/dynmap/issues/4016)" - }, - { - "ids": ["chattriggers"], - "name": "ChatTriggers", - "type": "SELF", - "note": "Modules can be loaded and managed, but are unable to be executed on Quilt." - }, - { - "ids": ["dml-refabricated"], - "name": "Deep Mob Learning: Refabricated", - "type": "GAME", - "note": "Crashes the game if there is another mod that utilises QSL libraries (as opposed to Quilted Fabric API ones)" - }, - { - "ids": ["creativecore"], - "name": "CreativeCore", - "type": "WORKAROUND", - "note": "Occasionally breaks the search tab in the creative mode item screen, and spams errors in logs. The issue can be fixed via using its `/cmdclientconfig` command to set `playSoundWithOffset` to `false`. Relevant issue: https://github.com/CreativeMD/CreativeCore/issues/205." - }, - { - "ids": ["wetlands"], - "name": "Beneath the Wetlands", - "type": "GAME", - "note": "Tracking issue: https://github.com/birchfolks/Beneath-the-Wetlands/issues/13" - }, - { - "ids": ["essential"], - "name": "Essential", - "type": "WORKAROUND", - "note": "Prevents Quilt clients from connecting to local worlds on 1.20.2+. Add `-Dquilt.networking.reserialize_custom_payloads=true` to the java arguments.\nProvided direct help to developers and was turned down. Issue on their end. See: https://gist.github.com/OroArmor/66632962acdd4bbbacc71d858befab29" - } -] diff --git a/src/components/atoms/IncompatibleModCard.astro b/src/components/atoms/IncompatibleModCard.astro new file mode 100644 index 000000000..4ba4fb589 --- /dev/null +++ b/src/components/atoms/IncompatibleModCard.astro @@ -0,0 +1,71 @@ +--- +import { marked } from "marked"; + +export interface Mod { + name: string; + ids: string[]; + icon: string; + note?: string; + tracking: string; + status: string; +} + +export interface Props { + mod: Mod; +} + +const mod = Astro.props.mod; + +const [statusText, statusIcon] = { + "UNKNOWN": ["Status is currently unknown", "fa-question"], + "WONT_FIX": ["Will not be fixed", "fa-ban"], + "IN_PROGRESS": ["Fix in progress", "fa-spinner"], + "BLOCKED": ["Fix is blocked by an external factor", "fa-shield-halved"], + "NO_ANSWER": ["The tracking issue is awaiting a response from maintainers", "fa-hourglass-half"], + "ON_HOLD": ["Fix is currently on hold", "fa-pause"], +}[mod.status || "UNKNOWN"] +--- +
+
+
+
+
+
+ Mod icon +
+
+
+

{mod.name}

+

{mod.ids.join(', ')}

+
+
+
+ +
+ { + (mod.tracking === "UNKNOWN") ? ( + + + + ) : ( + + + + ) + } +
+
+ + { + (mod.note) && ( +
+

+
+ ) + } +
+
+
\ No newline at end of file diff --git a/src/layouts/KnownIncompatibilities.astro b/src/layouts/KnownIncompatibilities.astro new file mode 100644 index 000000000..16596cafe --- /dev/null +++ b/src/layouts/KnownIncompatibilities.astro @@ -0,0 +1,53 @@ +--- +import Page from "./Page.astro"; + +import rawData from "../../public/api/v1/incompatible-mods.json"; +import IncompatibleModCard from "../components/atoms/IncompatibleModCard.astro"; + +const TYPE_TO_HUMAN = { + "GAME": "Breaks the game", + "OTHERS": "Breaks other mods", + "WORKAROUND": "Requires a workaround", + "SELF": "Non-fatal errors or broken features" +} + +const props = Astro.props; +const data = rawData.sort((a, b) => a.name.localeCompare(b.name)) +--- + +

On this page you may find all the reported incompatibilities with Quilt. If you believe this list is missing anything, please feel free to tell us on Discord.

+ +

Requires a workaround

+

This is the simplest form of problems, the issue can simply be fixed by following the instructions provided.

+ { + data.filter(mod => mod.type === "WORKAROUND").map((mod) => ( + + )) + } + +

Non-fatal errors or broken features

+

These mods are not compatible with Quilt, but they do not break the game or other mods. They may have broken features or other errors that do not crash the game.

+ { + data.filter(mod => mod.type === "SELF").map((mod) => ( + + )) + } + +

Breaks other mods

+

These mods are not compatible with Quilt, and they break other mods.

+ { + data.filter(mod => mod.type === "OTHERS").map((mod) => ( + + )) + } + +

Breaks the game

+

These mods are not compatible with Quilt, and they break the game.

+ { + data.filter(mod => mod.type === "GAME").map((mod) => ( + + )) + } + +

This data is also available in machine-readable format at /api/v1/incompatible-mods.json.

+
diff --git a/src/pages/en/usage/known-incompatibilities.mdx b/src/pages/en/usage/known-incompatibilities.mdx new file mode 100644 index 000000000..94d9d861f --- /dev/null +++ b/src/pages/en/usage/known-incompatibilities.mdx @@ -0,0 +1,6 @@ +--- +permalink: /usage/ +title: Known Incompatibilities +description: See all the known incompatibilities with Quilt in this page. +layout: /src/layouts/KnownIncompatibilities.astro +---