Comments (3)
Hi! Awesome suggestion! 😃 I prefer the first approach as well. This ties into #75 and #76 as well
I have also been thinking of making the version command mandatory mcman update 1.17
since it generally doesn't make sense to update mods to different versions. But I also like the ability to "store" what version the mods should be updated to locally. That is something that will come with the GUI release in 2.0.0, which also will require some changes to the CLI.
Blocked by #75
from minecraft-mod-manager.
An Idea I got is that before applying all the changes, mcman can ask the user if they want to apply the change. This would list all the updates, what would be updated, disabled, and enabled. But this should probably be split into another issue.
from minecraft-mod-manager.
After starting to think more in-depth about v2 of this app which includes a GUI, I actually think the second approach is better since it's actually two different behaviors.
Scenario that highlights the problem with the first approach
- I install a mod that I only occasionally want to use
- I temporarily disable the mod in MultiMC. It now has .disabled.
- A new update to the disabled mod is released.
- Mod is updated and enabled by default.
I could always check the disabled mod and see if it actually was compatible with the existing MC version to see that it should not be enabled (but maybe still updated?)
A slightly more complex scenario
- I install a mod that I only occasionally want to use
- I temporary disable the mod in MultiMC
- I now update MC to a newer version
- A new version has already been released.
- When I run
mcman update
it updates the mod and enables it. Because the old mod version was incompatible with the MC version therefore it thought that it was only disabled because there was no update.
Therefore I think it's best to separate the concerns. Only only handles the enabled/disable of the mod, and should do it in the same manner as MultiMC like in #75
A second option should be to mark a mod as incompatible. This can be done in various ways.
Options
- Add
.disabled
to the filename and mark itincompatible
in the DB - Add
.incompatible
to the filename - Remove the file completely, but mark it as incompatible in the DB.
Discussion
I dislike option 1 because it mixes two different things, incompatibility and disabled. Meaning you can accidentally enable a mod in MultiMC even though it's incompatible.
Option 2 doesn't interfere with disabled mods, and you cannot accidentally enable a mod in MultiMC. However, MultiMC will still see the file. It's also consistent with MultiMC (appending a file ending).
The setting carries across devices (if you for example sync folders between computers). In v2 of the app there will be one central DB for all instances, and no addition of a minecraft-mod-manager.db in each mods directory. There will be other settings that can't be synced.
Option 3 does have its merit though. It declutters the mods folder and you don't have to see incompatible mods in MultiMC. There's one drawback though, it's if you want to move, copy, or export the mods folder. The incompatible mods will be lost.
Decision
Go with option 2. Append .incompatible
to the file
from minecraft-mod-manager.
Related Issues (20)
- Failed to parse mod file for starlight HOT 2
- Mcman not updating to 1.2.6 HOT 1
- Retry if downloading fails due to overload or some other issue
- Rework DB backend
- Support for Github releases HOT 2
- Corrupted File! Failed to parse mod file | No such file or directory HOT 2
- Can't reset mod configuration by running `configure sodium=`
- sqlite3.IntegrityError: UNIQUE constraint failed: mod.id HOT 4
- modrinth api not able to connect HOT 5
- Slight-gui-modifications or shuffle causes error HOT 2
- the old curseforge api has been disabled, create a new version with this change included HOT 4
- url wrong in 'Curseforge has been disabled' message HOT 1
- install command installing the wrong files HOT 1
- Add python 3.11 support: 'minecraft-mod-manager' is not recognized as an internal or external command, operable program or batch file. HOT 1
- Update to new curseforge API HOT 2
- KeyError: 'hits' HOT 2
- Add Windows Explorer context menu integration to Wiki HOT 1
- MMM is installing bukkit version of mod when told to install fabric version HOT 4
- MMM seems to be forgetting that Modrinth exists HOT 1
- can't download anything HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minecraft-mod-manager.