Skip to content

Commit

Permalink
#139 feat(pff): run check for quilt
Browse files Browse the repository at this point in the history
  • Loading branch information
Andy-K-Sparklight committed Jul 15, 2022
1 parent 1736441 commit 3a6b730
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 11 deletions.
19 changes: 16 additions & 3 deletions src/modules/modx/ModDynLoad.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { FileOperateReport, LaunchTracker } from "../launch/LaunchTracker";
import { JAR_SUFFIX } from "../launch/NativesLint";
import { GameProfile } from "../profile/GameProfile";
import { ProfileType } from "../profile/WhatProfile";
import { loadModInfo, ModInfo, ModLoader } from "./ModInfo";
import { loadModInfo, ModInfo, ModLoader, modLoaderOfStr } from "./ModInfo";
import { canModVersionApply, gatherVersionInfo } from "./ModVersionUtil";
// How we manage mods:
// Before launch:
Expand Down Expand Up @@ -71,11 +71,11 @@ async function moveModsTo(
}
mi.mcversion = mi.mcversion || "*"; // Fallback
if (
mi.loader?.toString() !== type.toString() ||
!chkModLoader(mi.loader, modLoaderOfStr(type)) ||
!canModVersionApply(
mi.mcversion || "",
mcVersion,
mi.loader === ModLoader.FABRIC
mi.loader !== ModLoader.FORGE
)
) {
toProcess.push(mi);
Expand Down Expand Up @@ -197,3 +197,16 @@ async function scanModsList(
tracker.mods(tFile);
}
}

export function chkModLoader(
mod: ModLoader | undefined,
loader: ModLoader | undefined
): boolean {
if (mod === loader) {
return true;
}
if (mod === ModLoader.FABRIC && loader === ModLoader.QUILT) {
return true;
}
return false;
}
16 changes: 14 additions & 2 deletions src/modules/modx/ModInfo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,26 @@ export interface ModInfo {
description?: string;
}

enum ModLoader {
export enum ModLoader {
FORGE = "Forge",
FABRIC = "Fabric",
QUILT = "Quilt",
UNKNOWN = "Unknown",
}

export { ModLoader };
export function modLoaderOfStr(org: string): ModLoader {
if (org === "Quilt") {
return ModLoader.QUILT;
}
if (org === "Fabric") {
return ModLoader.FABRIC;
}
if (org === "Forge") {
return ModLoader.FORGE;
}
return ModLoader.UNKNOWN;
}

// Load mod info
export async function loadModInfo(
modJar: string,
Expand Down
8 changes: 7 additions & 1 deletion src/modules/pff/modrinth/Get.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { isNull, safeGet } from "../../commons/Null";
import { pgot } from "../../download/GotWrapper";
import { chkModLoader } from "../../modx/ModDynLoad";
import { modLoaderOfStr } from "../../modx/ModInfo";
import { ModArtifact, ModMeta } from "../virtual/ModDefine";
import { ModLoaderType } from "../virtual/Resolver";

Expand Down Expand Up @@ -151,8 +153,12 @@ export function findCompatibleArtifact(
modLoader: ModLoaderType
): ModArtifact | undefined {
for (const a of versions) {
if (a.modLoader === modLoader && a.gameVersion.includes(gameVersion)) {
if (
chkModLoader(modLoaderOfStr(a.modLoader), modLoaderOfStr(modLoader)) &&
a.gameVersion.includes(gameVersion)
) {
return a;
}
}
return undefined;
}
14 changes: 9 additions & 5 deletions src/renderer/PffFront.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ import { getBoolean } from "../modules/config/ConfigSupport";
import { getContainer as _getContainer } from "../modules/container/ContainerUtil";
import { MinecraftContainer } from "../modules/container/MinecraftContainer";
import { configureModDepChain, UnmetDepUnit } from "../modules/modx/ModDeps";
import { loadMetas } from "../modules/modx/ModDynLoad";
import { ModInfo, ModLoader } from "../modules/modx/ModInfo";
import { chkModLoader, loadMetas } from "../modules/modx/ModDynLoad";
import { ModInfo, ModLoader, modLoaderOfStr } from "../modules/modx/ModInfo";
import { canModVersionApply } from "../modules/modx/ModVersionUtil";
import {
loadLockfile,
Expand Down Expand Up @@ -467,8 +467,12 @@ function SinglePffModDisplay(props: {
}): JSX.Element {
const [showDesc, setShowDesc] = useState(false);
const isCompatible =
props.meta.selectedArtifact.gameVersion.includes(props.version) &&
props.loader === props.meta.selectedArtifact.modLoader;
(props.meta.selectedArtifact.gameVersion.length === 0 ||
props.meta.selectedArtifact.gameVersion.includes(props.version)) &&
chkModLoader(
modLoaderOfStr(props.loader),
modLoaderOfStr(props.meta.selectedArtifact.modLoader)
);
return (
<ListItem
alignItems={"flex-start"}
Expand Down Expand Up @@ -540,7 +544,7 @@ function SingleModDisplay(props: {
}): JSX.Element {
const modmcv = props.m.mcversion || "*";
const compatible =
(props.m.loader === props.loader ||
(chkModLoader(props.m.loader, props.loader) ||
(props.m.loader === ModLoader.UNKNOWN &&
getBoolean("modx.ignore-non-standard-mods"))) &&
canModVersionApply(
Expand Down

0 comments on commit 3a6b730

Please sign in to comment.