Skip to content

Commit 9ec445a

Browse files
feat: detect duplicated mods
1 parent 8c2c09e commit 9ec445a

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

resources/dist.rc

265 Bytes
Binary file not shown.

src/celemod-ui/src/routes/Manage.tsx

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ interface ModInfo {
3434
_deps: BackendDep[]; // raw deps
3535
resolveDependencies: () => DepResolveResult;
3636
file: string;
37+
duplicateCount: number;
38+
duplicateFiles: string[]
3739
}
3840

3941
interface MissingModDepInfo {
@@ -170,6 +172,8 @@ const ModLocal = ({
170172
version,
171173
optional = false,
172174
file,
175+
duplicateCount,
176+
duplicateFiles
173177
}: ModInfo & { optional?: boolean }) => {
174178
const { download } = useGlobalContext();
175179
const [expanded, setExpanded] = useState(false);
@@ -272,6 +276,11 @@ const ModLocal = ({
272276
{dependedByFiltered.length}
273277
</ModBadge>
274278
)}
279+
{duplicateCount > 1 && <ModBadge bg="#DB3D73" color="white" title={
280+
duplicateFiles.map((v) => v.split('/').pop()).join(' | ')
281+
}>
282+
重复 Mod · {duplicateCount}
283+
</ModBadge>}
275284

276285
{ctx?.showUpdate && updateState && (
277286
<ModBadge
@@ -452,13 +461,19 @@ export const Manage = () => {
452461

453462
return { status, message } as DepResolveResult;
454463
},
464+
duplicateCount: 1,
465+
duplicateFiles: [mod.file]
455466
};
456-
modMap.set(mod.name, modInfo);
467+
if (modMap.has(mod.name)) {
468+
modMap.get(mod.name)!.duplicateCount = modMap.get(mod.name)!.duplicateCount + 1;
469+
modMap.get(mod.name)!.duplicateFiles.push(mod.file);
470+
} else {
471+
modMap.set(mod.name, modInfo);
472+
}
457473
}
458474

459-
for (const mod of installedMods) {
460-
const modInfo = modMap.get(mod.name)!;
461-
for (const dep of mod.deps) {
475+
for (const modInfo of modMap.values()) {
476+
for (const dep of modInfo._deps) {
462477
if (!modMap.has(dep.name)) {
463478
modInfo.dependencies.push({
464479
name: dep.name,

0 commit comments

Comments
 (0)