Skip to content

Conversation

anttimaki
Copy link
Collaborator

  • Proof of concept for filtering the list of available mods based on dates
  • There's still no proper specification for how we want the feature to actually work and look like

We need the field on ThunderstoreVersion to be able to filter out mods
and versions that are published before/after given dates.

Since ThunderstoreMod inherits from ThunderstoreVersion, it will still
have access to its own dateCreated field as previously.

Since the field is already present in data returned from Thunderstore
API for each version, no further changes are needed for populating the
field into ThunderstoreVersion object.
The change makes filterModVersions(), which is used for filtering out
all but a target version of a mod loader package, to work similarly to
filterModVersionsByDate(), which is used to filter the older/newer
versions of packages to ensure compatibility with a specific game
version.
Passed to Array.sort(), the comprarer sorts mods to the default order
returned by Thunderstore API's package listing endpoints.
This helper can be used to filter mod versions by start and/or end
date. If all versions of a mod are filtered out, the whole mod is also
removed.

The idea is to create a "Time Bubble" feature. User could choose per
profile the dates between which the online mod list is filtered.
Intended use case is game updates breaking mods: if user updates the
game, they can filter out older versions to see only the mods that have
been updated after the breaking change. If user sticks to the old
version of the game, they can filter out newer mods that don't work on
their version, and avoid recommendations to update mods that would just
break things.
@anttimaki
Copy link
Collaborator Author

Closing the PoC branch due to lack of traction.

@anttimaki anttimaki closed this Nov 11, 2024
@anttimaki anttimaki deleted the time-bubble branch November 11, 2024 07:40
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.

1 participant