endless-sky / endless-sky/endless-sky-plugins

Please add more meta data from within plugins.txt

Open
#1,932 3 comments 2 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
56
Forks
54
Avg merge
6h 6m
Merged PRs (30d)
25

Description

Can all the information that is now supported from within `plugin.txt` be extracted and incorporated into the `plugins.json` file so that this information is available *before* downloading the `.zip` file and looking inside?

In particular:
- tags
- dependencies
- game version
- requires
- optional
- conflicts

See `Plugins::Load` within `Plugins.cpp`:

```c++
else if(key == "tags")
for(const DataNode &grand : child)
tags.insert(grand.Token(0));
else if(key == "dependencies")
{
for(const DataNode &grand : child)
{
const string &grandKey = grand.Token(0);
bool grandHasValue = grand.Size() >= 2;
if(grandKey == "game version" && grandHasValue)
dependencies.gameVersion = grand.Token(1);
else if(grandKey == "requires")
for(const DataNode &great : grand)
dependencies.required.insert(great.Token(0));
else if(grandKey == "optional")
for(const DataNode &great : grand)
dependencies.optional.insert(great.Token(0));
else if(grandKey == "conflicts")
for(const DataNode &great : grand)
dependencies.conflicted.insert(great.Token(0));
else
grand.PrintTrace("Skipping unrecognized attribute:");
}
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with Plugins::Load in Plugins.cpp and trace how plugin.txt data reaches plugins.json. Check how tags and dependency fields are represented, then verify that generated plugins.json exposes game version, requires, optional, and conflicts before a plugin archive is downloaded.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.