Skip to content

New mod list from Catalogue#422

Open
RuiXuqi wants to merge 94 commits intoCleanroomMC:mainfrom
RuiXuqi:mod-list
Open

New mod list from Catalogue#422
RuiXuqi wants to merge 94 commits intoCleanroomMC:mainfrom
RuiXuqi:mod-list

Conversation

@RuiXuqi
Copy link
Contributor

@RuiXuqi RuiXuqi commented Aug 27, 2025

image

This PR replaces the old Forge mod list menu with a new design from MrCrayfish's Catalogue mod, which follows MIT llicense.

The menu supports:

  • Customized background (must be a 512x256 PNG file)
  • Customized icon (a square PNG file, an item, or a block with metadata)
  • Customized banner (the old logoFile key in mcmod.info; it will be automatically set as the icon if it is square)

Mod developers only need to add new keys in JSON format in the mcmod.info file. The new keys are as follows:

  • iconFile: a string, should point to a square PNG file.
  • iconItem: a string, should be in the format "minecraft:stone". Metadata is allowed. This will not be applied if iconFile is valid.
  • backgroundFile: a string, should point to a 512x256 PNG file. It will be the mod's background.
  • license: a string, will be displayed at the bottom of the mod info page.
  • issueTrackerUrl: a string, should be a link. The "Submit Bug" button will open it when clicked.

The menu can limit the size of logos(banners) and icons, which is configured disabled by default. Also it has the ability to perfrom filters and search for a mod's dependencies and dependants. The two lists of libraries(will be hidden by default and be displayed grey in mod list) and ignored dependencies are configurable too. There is also a favourite system, allowing you to pin mods and put them in the top of the list.

The empty keys in mcmod.info will not be displayed in the info side.

RuiXuqi added 25 commits August 19, 2025 19:56
Unnecessary at all. But it is cool!
So bad. But it will help back port works
MrCrayfish/Catalogue@4f71627
📦 Added missing background when no texture provided
📦 Icon will now be used if no banner texture is available
🎨 Changed missing banner
📦 Improved design
✨ Last search is now remembered when returning to menu
MrCrayfish/Catalogue@6260949
MrCrayfish/Catalogue@37db432
MrCrayfish/Catalogue@c22fd3d
MrCrayfish/Catalogue@6b11e0f
MrCrayfish/Catalogue@3fcc8ed

Also make the test mod a dummy. It is not loaded at all.
✨ Added tooltip to show numbers of mods/libraries
📦 Show "no mods" label when mod list is empty
@RuiXuqi
Copy link
Contributor Author

RuiXuqi commented Aug 27, 2025

The dummy catalogue mod should be removed since it is not a real mod. However, I haven't decided what to put in the upper-left corner yet. It is a button with link to the original Catalogue mod now.

@RuiXuqi
Copy link
Contributor Author

RuiXuqi commented Aug 27, 2025

Some features like sorting from A-Z or Z-A and favourite system are not backported yet. Just because they need to be configured through a button list, which depends on the new layout system in modern minecraft.

@kappa-maintainer
Copy link
Collaborator

I see some resources you added look like come from Mojang, are they?

@RuiXuqi
Copy link
Contributor Author

RuiXuqi commented Aug 27, 2025

I see some resources you added look like come from Mojang, are they?

Only the minecraft title does

Move all the resources and java files to a separate path
Load the dummy Catalogue mod, remove links
@Desoroxxx
Copy link
Contributor

Desoroxxx commented Jan 25, 2026

Quick question, does this keep the same functionality that I implemented in my previous PR's? I think it’d be a pretty bad regression to lose all the info (see my previous PR's)

#313
#319
#321

@Rongmario
Copy link
Member

I agree with @Desoroxxx, though #313 and #319 will probably be superseded, but #321 should be integrated

@RuiXuqi
Copy link
Contributor Author

RuiXuqi commented Jan 30, 2026

Quick question, does this keep the same functionality that I implemented in my previous PR's? I think it’d be a pretty bad regression to lose all the info (see my previous PR's)

#313 #319 #321

#321 has been handled with new I18n support. The only thing missing is version improvment in #319.

@Desoroxxx
Copy link
Contributor

Probably my last question, but, isn't this a ton of abstraction and complexity for what feels like just a simple mod list. The UI isn't doing something crazy here yet it's 5k LoC

@RuiXuqi
Copy link
Contributor Author

RuiXuqi commented Feb 5, 2026

Probably my last question, but, isn't this a ton of abstraction and complexity for what feels like just a simple mod list. The UI isn't doing something crazy here yet it's 5k LoC

DropdownMenu +503: Maybe a bit too complex.
CatalogueListExtended +397: Copies tons of vanilla code to fully control the list style. Have been simplified by using pattern variables.
CatalogueTextField +155: Copies render code for string formatter, and adds a Consumer<String> responder to replace vanilla's odd interface. Also patches some respond methods missing in 1.12.2 but solved in modern mc versions.

The core CatalogueModListScreen takes 1387.

Copy link
Contributor

@strubium strubium left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This:

/**
 * Author: MrCrayfish
 */

Should probably be:

/**
 * @author MrCrayfish
 */

so IDE's can use the nicer preview when you hover over it

@Desoroxxx
Copy link
Contributor

This:

/**
 * Author: MrCrayfish
 */

Should probably be:

/**
 * @author MrCrayfish
 */

so IDE's can use the nicer preview when you hover over it

Or even better:

/// @author MrCrayfish

@RuiXuqi
Copy link
Contributor Author

RuiXuqi commented Feb 11, 2026

This:

/**
 * Author: MrCrayfish
 */

Should probably be:

/**
 * @author MrCrayfish
 */

so IDE's can use the nicer preview when you hover over it

Or even better:

/// @author MrCrayfish

Done

@kappa-maintainer
Copy link
Collaborator

Any progress on this? Is it ready?

@RuiXuqi
Copy link
Contributor Author

RuiXuqi commented Mar 7, 2026

Any progress on this? Is it ready?

Only some of the requested changes are left now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants