[PR #96] MC Modrinth: Implement mod/plugin management with update and uninstall capabilities #108

Open
opened 2026-05-07 00:18:09 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/pelican-dev/plugins/pull/96
Author: @H1ghSyst3m
Created: 1/31/2026
Status: 🔄 Open

Base: mainHead: featcomplete-mod-plugin-management


📝 Commits (10+)

  • 7a74e0a Add mod/plugin update and uninstall features with metadata tracking
  • eb2e0c3 Remove unused download strings from language files
  • f2d3bb3 Fix: Validate filenames and improve file save checks
  • 0b92108 Fix: Add checks for Modrinth project type support
  • eef0dd2 Remove unused Section import
  • 938ad6a Improve mod install/update rollback and cache handling
  • 57d5603 Add installed mods view and handle unavailable mods
  • 2da4031 Add optional author field to installed mod metadata
  • 657e972 Use informal German and revert version
  • 7b62073 Add uninstall success messages

📊 Changes

7 files changed (+960 additions, -89 deletions)

View changed files

📝 minecraft-modrinth/README.md (+13 -8)
📝 minecraft-modrinth/lang/de/strings.php (+28 -3)
📝 minecraft-modrinth/lang/en/strings.php (+28 -3)
📝 minecraft-modrinth/plugin.json (+2 -2)
📝 minecraft-modrinth/src/Facades/MinecraftModrinth.php (+17 -0)
📝 minecraft-modrinth/src/Filament/Server/Pages/MinecraftModrinthProjectPage.php (+582 -72)
📝 minecraft-modrinth/src/Services/MinecraftModrinthService.php (+290 -1)

📄 Description

Overview

This PR adds comprehensive mod lifecycle management to the Minecraft Modrinth plugin. Currently, users can only install mods but have no way to update or remove them through the interface. This creates a frustrating user experience where they need to manually manage files outside the plugin.

Changes

Core Functionality

I've implemented update and uninstall capabilities for both mods and plugins. When users view their installed items, they'll now see action buttons that allow them to update to the latest version or remove items entirely. Both operations include confirmation modals to prevent accidental actions.

New Installed View

A new Installed tab has been added to the header, allowing users to switch between browsing available mods and viewing their currently installed items directly within the interface.

Metadata File

To make updates and uninstalls possible, I introduced a metadata tracking system using .modrinth-metadata.json. This file stores essential information about each installed mod (version, filename, installation date), which lets us determine when updates are available and ensures clean uninstallation.

Localization & Documentation

I've added the necessary translation strings for English and German to support the new UI elements, and updated the README to document the new features.

Screenshots

2 1

Implementation Notes

The metadata file approach was chosen over database storage to keep the plugin lightweight and make the data easily portable with the mod directory. The file is updated on each install/uninstall operation and read when checking for available updates.

Tested

  • Install, update, and uninstall workflows with metadata file verification
  • Uninstall properly removes both plugin file and metadata entry
  • Metadata file recreation when deleted (installed new plugin and file was correctly created)

Version

Bumped to 1.1.0 to reflect the new feature set.

Fixes Issues

Closes #62

Summary by CodeRabbit

  • New Features

    • Full mod lifecycle UI: install, update, uninstall, per-mod status, update detection, installed-only view, per-version UI with changelogs, rollback, and one-click "install latest".
  • Documentation

    • README expanded into a full mod-management guide with setup notes, features, workflows, and metadata tracking.
  • Localization

    • EN/DE UI strings updated for filters, install/update/uninstall actions, modals, and granular notifications.
  • Chores

    • Updated plugin description to reflect management capabilities.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/pelican-dev/plugins/pull/96 **Author:** [@H1ghSyst3m](https://github.com/H1ghSyst3m) **Created:** 1/31/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `featcomplete-mod-plugin-management` --- ### 📝 Commits (10+) - [`7a74e0a`](https://github.com/pelican-dev/plugins/commit/7a74e0a1633102945319a52714a372ee6e2178f7) Add mod/plugin update and uninstall features with metadata tracking - [`eb2e0c3`](https://github.com/pelican-dev/plugins/commit/eb2e0c3981cf5a8b9a500cb54649ed0ae315e9b1) Remove unused download strings from language files - [`f2d3bb3`](https://github.com/pelican-dev/plugins/commit/f2d3bb3c993400b477c2ab3119172a659ddf5300) Fix: Validate filenames and improve file save checks - [`0b92108`](https://github.com/pelican-dev/plugins/commit/0b9210886547820cc8d558773308bc3bea7d9c8a) Fix: Add checks for Modrinth project type support - [`eef0dd2`](https://github.com/pelican-dev/plugins/commit/eef0dd2912670e8850f9d72949284dedec0d33e4) Remove unused Section import - [`938ad6a`](https://github.com/pelican-dev/plugins/commit/938ad6a25a81143596bad32ef272ef79b76d7fae) Improve mod install/update rollback and cache handling - [`57d5603`](https://github.com/pelican-dev/plugins/commit/57d5603452ef7e2257730367361892a8a06ca7ed) Add installed mods view and handle unavailable mods - [`2da4031`](https://github.com/pelican-dev/plugins/commit/2da40315a8e6ea448fd4e7711b9213ce5fc30a35) Add optional author field to installed mod metadata - [`657e972`](https://github.com/pelican-dev/plugins/commit/657e972dc33c0760c53b18c24fac1b35aa0e6fdd) Use informal German and revert version - [`7b62073`](https://github.com/pelican-dev/plugins/commit/7b62073f91484f7b90e25759e63dbaf5489a8843) Add uninstall success messages ### 📊 Changes **7 files changed** (+960 additions, -89 deletions) <details> <summary>View changed files</summary> 📝 `minecraft-modrinth/README.md` (+13 -8) 📝 `minecraft-modrinth/lang/de/strings.php` (+28 -3) 📝 `minecraft-modrinth/lang/en/strings.php` (+28 -3) 📝 `minecraft-modrinth/plugin.json` (+2 -2) 📝 `minecraft-modrinth/src/Facades/MinecraftModrinth.php` (+17 -0) 📝 `minecraft-modrinth/src/Filament/Server/Pages/MinecraftModrinthProjectPage.php` (+582 -72) 📝 `minecraft-modrinth/src/Services/MinecraftModrinthService.php` (+290 -1) </details> ### 📄 Description ## Overview This PR adds comprehensive mod lifecycle management to the Minecraft Modrinth plugin. Currently, users can only install mods but have no way to update or remove them through the interface. This creates a frustrating user experience where they need to manually manage files outside the plugin. ## Changes ### Core Functionality I've implemented update and uninstall capabilities for both mods and plugins. When users view their installed items, they'll now see action buttons that allow them to update to the latest version or remove items entirely. Both operations include confirmation modals to prevent accidental actions. ### New Installed View A new **Installed** tab has been added to the header, allowing users to switch between browsing available mods and viewing their currently installed items directly within the interface. ### Metadata File To make updates and uninstalls possible, I introduced a metadata tracking system using `.modrinth-metadata.json`. This file stores essential information about each installed mod (version, filename, installation date), which lets us determine when updates are available and ensures clean uninstallation. ### Localization & Documentation I've added the necessary translation strings for English and German to support the new UI elements, and updated the README to document the new features. ## Screenshots <img width="600" alt="2" src="https://github.com/user-attachments/assets/617afb10-e675-4a86-838a-6d31a571f465" /> <img width="600" alt="1" src="https://github.com/user-attachments/assets/41b85225-fe41-4111-9bf3-9612c6be54bc" /> ## Implementation Notes The metadata file approach was chosen over database storage to keep the plugin lightweight and make the data easily portable with the mod directory. The file is updated on each install/uninstall operation and read when checking for available updates. ## Tested - Install, update, and uninstall workflows with metadata file verification - Uninstall properly removes both plugin file and metadata entry - Metadata file recreation when deleted (installed new plugin and file was correctly created) ## Version Bumped to `1.1.0` to reflect the new feature set. ## Fixes Issues Closes #62 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Full mod lifecycle UI: install, update, uninstall, per-mod status, update detection, installed-only view, per-version UI with changelogs, rollback, and one-click "install latest". * **Documentation** * README expanded into a full mod-management guide with setup notes, features, workflows, and metadata tracking. * **Localization** * EN/DE UI strings updated for filters, install/update/uninstall actions, modals, and granular notifications. * **Chores** * Updated plugin description to reflect management capabilities. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/plugins#108
No description provided.