Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apps/frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
"@vue-email/components": "^0.0.21",
"@vue-email/render": "^0.0.9",
"@vueuse/core": "^11.1.0",
"@zip.js/zip.js": "^2.8.34",
"ace-builds": "^1.36.2",
"ansi-to-html": "^0.7.2",
"chart.js": "^4.5.1",
Expand Down
29 changes: 28 additions & 1 deletion apps/frontend/src/helpers/infer/infer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,26 @@ export interface InferredVersionInfo {
game_versions?: string[]
}

async function readMrpackManifest(rawFile: RawFile): Promise<string> {
const { BlobReader, TextWriter, ZipReader } = await import('@zip.js/zip.js')
const reader = new ZipReader(new BlobReader(rawFile))

try {
const entries = await reader.getEntries()
const manifest = entries.find(
(entry) => !entry.directory && entry.filename === 'modrinth.index.json',
)

if (!manifest || manifest.directory) {
throw new Error('Missing modrinth.index.json')
}

return await manifest.getData(new TextWriter())
} finally {
await reader.close()
}
}

/**
* Fills in missing version information from the filename if not already present.
*/
Expand Down Expand Up @@ -56,11 +76,18 @@ export const inferVersionInfo = async function (
const simplifiedGameVersions = gameVersions
.filter((it) => it.version_type === 'release')
.map((it) => it.version)
const loaderParsers = createLoaderParsers(project, gameVersions, simplifiedGameVersions)
const fileName = rawFile.name.toLowerCase()

if (fileName.endsWith('.mrpack') || fileName.endsWith('.mrpack-primary')) {
const manifest = await readMrpackManifest(rawFile)
const result = loaderParsers['modrinth.index.json'](manifest)
return fillMissingFromFilename(result, rawFile.name, project.title)
}

const zipReader = new JSZip()
const zip = await zipReader.loadAsync(rawFile)

const loaderParsers = createLoaderParsers(project, gameVersions, simplifiedGameVersions)
const packParser = createPackParser(project, gameVersions, rawFile)
const multiFileDetectors = createMultiFileDetectors(project, gameVersions, rawFile)

Expand Down
2 changes: 2 additions & 0 deletions apps/labrinth/src/database/models/delphi_report_item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ pub enum DelphiSeverity {
High,
#[serde(alias = "SEVERE")]
Severe,
#[serde(alias = "MALWARE")]
Malware,
}

/// An issue found in a Delphi report. Every issue belongs to a report,
Expand Down
2 changes: 1 addition & 1 deletion packages/app-lib/src/api/instance/export_mrpack.rs
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ pub async fn export_mrpack(
let mut file = File::create(&export_path)
.await
.map_err(|e| IOError::with_path(e, &export_path))?;
let mut writer = ZipFileWriter::with_tokio(&mut file);
let mut writer = ZipFileWriter::with_tokio(&mut file).force_no_zip64();
let version_id = version_id.unwrap_or("1.0.0".to_string());
let mut packfile =
create_mrpack_json(&metadata, version_id, description).await?;
Expand Down
7 changes: 7 additions & 0 deletions packages/blog/changelog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ export type VersionEntry = {
}

const VERSIONS: VersionEntry[] = [
{
date: `2026-08-08T19:10:34+00:00`,
product: 'web',
body: `## Fixed
- Fixed action bar becoming very wide on larger displays.
- Version upload failing to detect mrpack loader.`,
},
{
date: `2026-08-07T20:41:51+00:00`,
product: 'app',
Expand Down
2 changes: 2 additions & 0 deletions packages/moderation/src/data/checklist.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import usePermissionsStage from './stages/permissions'
import usePostApprovalStage from './stages/post-approval'
import useReReviewStage from './stages/re-review'
import useReuploadsStage from './stages/reupload'
import useDisclosuresStage from './stages/disclosures'
import useRulesStage from './stages/rules'
import useStatusAlertsStage from './stages/status-alerts'
import useSummaryStage from './stages/summary'
Expand All @@ -37,6 +38,7 @@ export function useStages(
useReuploadsStage(),
usePermissionsStage(),
useRulesStage(),
useDisclosuresStage(),
]
return [...mainStages, useStatusAlertsStage(mainStages, globalState)]
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Description Clarity

Per section 2 of %RULES% It's important that your Description accurately and honestly represents the content of your project.
Currently, some elements in your Description may be confusing or misleading.
Please edit your description to ensure it accurately represents the current functionality of your project.
Avoid making hyperbolic claims that could misrepresent the facts of your project.
%R2%, It's important that your Description accurately and honestly represents the content of your project. \
Currently, some elements in your Description may be confusing or misleading. \
Please edit your description to ensure it accurately represents the current functionality of your project. \
Avoid making hyperbolic claims that could misrepresent the facts of your project. \
Ensure that your Description is accurate and not likely to confuse users.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Description Accessibility

In accordance with section 2.2 of %RULES%, we request that `# header`s not be used as body text.
%R2.2%, we ask that `# header`s not be used as body text.

Headers are interpreted differently by screen-readers and thus should generally only be used for things like separating sections of your Description.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Image Descriptions

In accordance with section 2.2 of %RULES%, we ask that you provide a text alternative to your current Description.
%R2.2%, we ask that you provide a text alternative to your current Description.

It is important that your Description contains enough detail about your project that a user can have a full understanding of it from text alone.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Insufficient Description

Per section 2.1 of %RULES%, your %PROJECT_DESCRIPTION_FLINK% should clearly inform the reader of the content, purpose, and appeal of your %PROJECT_TYPE%.</br>
%R2.1%, your %PROJECT_DESCRIPTION_FLINK% should clearly inform the reader of the content, purpose, and appeal of your %PROJECT_TYPE%.</br>
Currently, it looks like there are some missing details.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## No English Description

Per section 2.2 of %RULES%, a server's [Summary](%PROJECT_SETTINGS_LINK%) and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for a non-english audience.
%R2.2%, a server's %PROJECT_SUMMARY_FLINK% and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for a non-english audience.

You may include your non-English Description if you would like but we ask that you also add an English translation of the Description to your project page, if you would like to use an online translator to do this, we recommend [DeepL](https://www.deepl.com/translator).

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## No English Description

Per section 2.2 of %RULES%, a project's [Summary](%PROJECT_SETTINGS_LINK%) and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for non-English use, such as translations.
%R2.2%, a project's %PROJECT_SUMMARY_FLINK% and %PROJECT_DESCRIPTION_FLINK% must be in English, unless meant exclusively for non-English use, such as translations.

You may include your non-English Description if you would like but we ask that you also add an English translation of the Description to your project page, if you would like to use an online translator to do this, we recommend [DeepL](https://www.deepl.com/translator).
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Description Accessibility

Per section 2 of %RULES%, your description must be plainly readable and accessible.
%R2.2%, your description must be plainly readable and accessible.

Using non-standard text characters like Zalgo or "fancy text" in place of text anywhere in your project, including the Description, Summary, or Title can make your project pages inaccessible.

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Advertisements or sponsored promotions of outside content.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- AI-generated or assisted content. </br>
%R6.1%, proper disclosure of AI usage is strictly required.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- AI-generated or assisted art, assets, or other design elements.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- AI-generated or assisted code.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Functionality that relies on or is designed by generative AI.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- AI-generated or assisted writing or text, including translations.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
</br>
Don't forget to label the inclusion of:
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Being archived, or otherwise no longer receiving updates.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Derivative content, such as code or assets from another project or creator. </br>
%R4%, you may be required to list the origin of content you did not create here if the content's license requires attribution.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
</br>
Currently, your %PROJECT_TYPE_FORMATTED_LOWER% appears to be missing disclosure of:
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Missing Content Disclosures

%R5.8%, we ask that you ensure all applicable %PROJECT_CONTENT_DISCLOSURES_FLINK% are filled out with accurate information.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Features locked behind a paywall, donation, or other monetary exchange.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Content that may be dangerous to users with photosensitive epilepsy.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Features that interact with the user's machine outside of the context of the game.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Telemetry or any other instances of data being sent to a remote server that the user did not connect to. </br>
%R1.11%, proper disclosure of data collection is strictly required.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Insufficient Gallery Images

We ask that projects like yours show off their content using images in the %PROJECT_GALLERY_FLINK%, or optionally in the Description, in order to effectively and clearly inform users of its content per section 2.1 of %RULES%.
Keep in mind that you should:
%R2.1%, we ask that projects like yours show off their content using images in the %PROJECT_GALLERY_FLINK%, or optionally in the Description, in order to effectively and clearly inform users of its content. \
Keep in mind that you should: \

- Set a featured image that best represents your project.
- Ensure all your images have titles that accurately label the image, and optionally, details on the contents of the image in the images Description.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
## Unrelated Gallery Images

Per section 5.5 of %RULES%, any images in your project's %PROJECT_GALLERY_FLINK% must be relevant to the project and also include a Title.
%R5.5%, any images in your project's %PROJECT_GALLERY_FLINK% must be relevant to the project and also include a Title.
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
## Showcase Clarity

Per section 2 of %RULES%, it's important that your project page accurately and honestly represent the content of your project.
%R2%, it's important that your project page accurately and honestly represent the content of your project.

Currently, it looks like some images do not accurately represent the content of your %PROJECT_TYPE_FORMATTED_LOWER%.
Please make sure you use authentic images such as in-game screenshots when showcasing the content or functionality of your work.

Images such as renders, AI generated or assisted images, or heavily modified images should not be used to demonstrate the functionality of your project in the %PROJECT_DESCRIPTION_FLINK% or %PROJECT_GALLERY_FLINK%.
Images such as renders, or heavily modified images should not be used to demonstrate the functionality of your project in the %PROJECT_DESCRIPTION_FLINK% or %PROJECT_GALLERY_FLINK%.

You may still include these types of branding assets or unrelated images on your project page, so long as it is clear they are not authentic representations of the content.

Per section 6.2 of %RULES%, the use of AI images is strictly prohibited.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## No Source Code Provided

Your project's %PROJECT_LICENSE_FLINK% of `%PROJECT_LICENSE_NAME%`, requires source disclosure.
Consider adding a Source link to your project's repository, or including a Sources file for each version as an Additional File.
Keep in mind this may be a requirement of the source work's licensing, which must be abided per section 4 of %RULES%.
Your project's %PROJECT_LICENSE_FLINK% of `%PROJECT_LICENSE_NAME%`, requires source disclosure. \
Consider adding a Source link to your project's repository, or including a Sources file for each version as an Additional File. \
%R4%, you may be required to publish your source work by the terms of the source work's licensing.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Links

It looks like some of your %PROJECT_TYPE_FORMATTED_LOWER%'s %PROJECT_LINKS_FLINK% are misused or inaccessible.</br>
Per section 5.4 of %RULES%, all %PROJECT_LINKS_FLINK% must lead to correctly labeled publicly available resources that are directly related to your project.
It looks like some of your %PROJECT_TYPE_FORMATTED_LOWER%'s %PROJECT_LINKS_FLINK% are misused or inaccessible. \
%R5.4%, all %PROJECT_LINKS_FLINK% must lead to correctly labeled publicly available resources that are directly related to your project.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Missing Dependencies

Per section 5.6 of %RULES%, it is important that relevant dependencies be listed in the dependencies section of your project.
%R5.6%, it is important that relevant dependencies be listed in the dependencies section of your project. \
Please ensure that all relevant dependencies are included in the Dependencies section of each version of your project.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
## Environment Metadata

Per section 5.1 of %RULES%, it is important that the metadata of your projects is accurate, including Environment Information.
%R5.1%, it is important that the metadata of your projects is accurate, including Environment Information.

We've recently overhauled how environment metadata works on Modrinth, you can now edit this in your project's [Version Settings](https://modrinth.com/project/%PROJECT_ID%/settings/versions).
We've recently overhauled how environment metadata works on Modrinth, you can now edit this in your project's [Version Settings](https://modrinth.com/project/%PROJECT_ID%/settings/versions). \
Please [read this blogpost](%NEW_ENVIRONMENTS_LINK%) for full details and information on how to ensure your project is labeled correctly.

%CORRECT%
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Game Version Metadata

Per section 5.1 of %RULES%, it is important that the metadata of your project is accurate, including which Minecraft versions are selected.
%R5.1%, it is important that the metadata of your project is accurate, including which Minecraft versions are selected.

%CORRECT%
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
## Loader Metadata

Per section 5.1 of %RULES%, it is important that the metadata of your project is accurate, including which loaders are selected.
%R5.1%, it is important that the metadata of your project is accurate, including which loaders are selected.

%CORRECT%
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
## Permissions Incomplete

Per section 4 of %RULES%, we ask that you complete all steps requested in your project's %PROJECT_PERMISSIONS_FLINK%.
%R4%, we ask that you complete all steps requested in your project's %PROJECT_PERMISSIONS_FLINK%.
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@

Unfortunately, it has come to our attention that there may be issues with your project that require attention.

Some information may be incorrect, per section 5.1 of %RULES% it's important that all project metadata be accurate to ensure the best experience for all modrinth users.
%R5.1%, it's important that all project metadata be accurate to ensure the best experience for all modrinth users. \
Currently, some information may be incorrect.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

It looks like the custom modpack for your server may be distributing content from outside of the Modrinth ecosystem.

Per section 4 of [Modrinth's Content Rules](https://modrinth.com/legal/rules), we ask that you verify you are abiding by all licensing requirements and have permission to distribute the content included in your modpack.
%R4%, we ask that you verify you are abiding by all licensing requirements and have permission to distribute the content included in your modpack.

By resubmitting your server while including this content, you acknowledge that you have seen this notice and have all necessary rights and permissions to upload your custom server pack to Modrinth.

Keep in mind, if your server's custom modpack is found to be in violation of [Modrinth's Content Rules](https://modrinth.com/legal/rules), your listing may be temporarily or permanently removed from Modrinth with or without warning.
Keep in mind, if your server's custom modpack is found to be in violation of %RULES%, your listing may be temporarily or permanently removed from Modrinth with or without warning.
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
## Insufficient Fork

This project does not appear to significantly diverge from the source work, or does not abide by the license of the source work as required by section 4 of %RULES%.
Please provide proof of your explicit permission to distribute this project from the creator(s) of the source work.
%R4%, it is important that your project your project abides by the license of and is significantly divergent from the source work.

Unfortunately, this project does not appear to meet these requirements. \
For your project to be published, you can instead provide proof of your explicit permission to distribute this project from the creator(s) of the source work. \
Remember to appropriately credit all external content you've included or forked in your project's derivative content %PROJECT_CONTENT_DISCLOSURES_FLINK%, this may be required by the license of the source work.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Missing Attribution

Please ensure you've provided proper attribution to the source of all assets you have not created yourself by listing them accordingly in your project's %PROJECT_CONTENT_DISCLOSURES_FLINK%.
Per section 4 of %RULES%, this is strictly required for any content licensed with an attribution requirement clause.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
## Reuploads are forbidden

This server appears to have uploaded a Modpack by another creator.
Per section 4 of %RULES%, we ask that you provide proof of your permission to distribute this pack on Modrinth.
Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the pack.
This server appears to have uploaded a Modpack by another creator.

%R4%, we ask that you provide proof of your permission to distribute this pack on Modrinth. \
Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the pack. \
Please remember to appropriately credit all external content you've included or forked in your project's derivative content %PROJECT_CONTENT_DISCLOSURES_FLINK%.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## Proof of permissions

This project appears to contain content from other creators.
Per section 4 of %RULES%, we ask that you provide proof of your permission to distribute this content, or derivatives of this content in your project on Modrinth.
Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the content.
This project appears to contain content from other creators. \
%R4%, we ask that you provide proof of your permission to distribute this content, or derivatives of this content in your project on Modrinth. \
Either implicit permission abiding by the terms of the content's license(s) or explicit permission from the original creator of the content. \
Please remember to appropriately credit all external content you've included or forked in your project's derivative content %PROJECT_CONTENT_DISCLOSURES_FLINK%, this may be required by the license of the content.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## Reuploads are forbidden

This project appears to contain content from %ORIGINAL_PROJECT% by %ORIGINAL_AUTHOR%.
Per section 4 of %RULES%, this is strictly forbidden.
This project appears to contain content from %ORIGINAL_PROJECT% by %ORIGINAL_AUTHOR%.

%R4%, this is strictly forbidden. \
If you believe this is an error, or you can verify you are the creator and rightful owner of this content please let us know. Otherwise, we ask that you **do not resubmit this project**.
Loading
Loading