Plugin Catalogue
The official MCDR plugin catalogue is the master branch of repository https://github.com/MCDReforged/PluginCatalogue. Users can browse plugins here and developers can submit their plugins to the catalogue
The catalogue is updated once files change, and twice per hour via github action
File structures
Plugin information is stored in the plugins/ directory in the repository. Each plugin has its own sub-directory named by its plugin id inside the plugins/ directory
plugins/
├─ my_plugin
│ └─ plugin_info.json
└─ another_plugin
├─ plugin_info.json
└─ some_other_files.txt
Plugin Info
plugin_info.json contains the basic information of your plugin
id
The id of your plugin. It needs to be the same with the name of the directory the plugin_info.json is in
Type: str
repository
The url of the github repository of your plugin
Type: str
branch
The branch of the git repository where your plugin is in
Type: str
labels
Optional field, default: []
A list of id of Label of your plugin. Choose them wisely
Type: List[str]
introduction
Introduction is a paragraph written in markdown syntax, showing the features of the plugin to attract new users. It will be shown to user when they are browsing your plugin
For the introduction field, it’s a mapping maps Language into a file path
The key is the language
The value is the file path of the introduction file in your plugin repository. Field related_path is considered during the calculation of the real url
Example with the same file structure in related_path:
"introduction": {
"en_us": "doc/introduction.md",
"zh_cn": "doc/introduction-zh_cn.md"
}
Tip
A commonly-used and recommended practice is to link the introduction document to the README files in your repository
"introduction": {
"en_us": "README.md",
"zh_cn": "README_CN.md"
}
Alternatively, you can don’t declare this field but put your introduction file inside the same directory where plugin_info.json is
It’s named by introduction.md for default language en_us and named by e.g. introduction-zh_cn.md for other language
plugins/
└─ my_plugin
├─ plugin_info.json
├─ introduction.md
└─ introduction-zh_cn.md
You should provide the introduction at least in one language
Type: Dict[str, str]
Label
Label describes what your plugin does. A plugin can have multiple labels
All current available labels are shown in the following table
Label id |
Label name |
Description |
|---|---|---|
information |
Information |
Collects and displays information for users |
tool |
Tool |
A useful tool, or a game helper |
management |
Management |
Manages files or other stuffs on the server |
api |
API |
Functions as an API or library that provides common functionalities to other plugins |
handler |
Handler |
Provides a custom server handler |
Language
Plugin catalogue supports multiple language for users in different countries
English (
en_us)Simplified Chinese (
zh_cn)
The default and fallback language is en_us
Release
Plugin catalogue will automatically detect the releases in your plugin repository and extract the plugin download url in the assets, as long as the release follows the following restrictions:
Pre-release: It should not be a pre-release
Release tag name: the same as the version of the released plugin, can be in one of the following format
Format |
Example |
|---|---|
|
1.2.3 |
|
v1.2.3 |
|
my_plugin-1.2.3 |
|
my_plugin-v1.2.3 |
Assets: contains 1 asset with
.mcdror.pyzfile extension name. Other assets will be ignoredWhich also means only Packed Plugin is supported
Submit Plugin
It’s encouraged to read the Contributing Guidelines before submitting your plugin
If you want to submit your plugin:
Fork the catalogue repo
Create a directory for your plugin within the
plugins/folder, including all the necessary filesCreate a pull request
It’s recommended to leave your github link in the authors field so repository maintainers can simply tell if you are the owner of the plugin
All changes files should only be inside the sub-directory named by your plugin id in the plugins/ folder