This directory contains the plugin index for the RustPlus Raid Alarms Plugin Store.
- No plugins shipped by default - The app ships without any plugins in this folder
- Plugin Store - Users browse and install plugins from the built-in Plugin Store tab
- Auto-download - When installed, plugins are downloaded to the user's local
plugins/folder - index.json - Contains metadata for all available plugins (name, version, author, download URL, etc.)
Each plugin in index.json should have:
{
"id": "plugin_folder_name",
"name": "Display Name",
"icon": "🔥",
"version": "1.0.0",
"author": "Your Name",
"description": "What your plugin does",
"homepage": "https://github.com/...",
"download_url": "https://raw.githubusercontent.com/.../plugin.zip",
"min_app_version": "1.0.0",
"category": "Alert|Notification|Automation|Development",
"tags": ["tag1", "tag2"],
"requires": ["package1", "package2"],
"size_kb": 50
}-
Create your plugin following the PluginBase interface:
- Inherit from
PluginBase - Implement required methods:
get_name(),get_icon(),get_widget(),on_telegram_message() - Optional but recommended:
get_version(),get_author(),get_description(),get_homepage()
- Inherit from
-
Package as zip:
zip -r my_plugin.zip my_plugin/
-
Upload the zip to a public URL (GitHub releases, raw.githubusercontent.com, etc.)
-
Add entry to index.json with your plugin metadata
-
Submit a pull request to this repository
- Add
get_version,get_author,get_homepageso the store can show metadata and updates - Zip the plugin with the correct root (
__init__.pyfor packages, or single.pyfile) - Host the zip at a public URL
- Add a complete entry to
plugins/index.json(id/name/version/icon/author/description/homepage/download_url/tags/category/min_app_version/requires/size_kb) - Open a PR to this repo
my_plugin/
├── __init__.py # Main plugin file with Plugin class
├── helpers.py # (Optional) Helper modules
└── requirements.txt # (Optional) Python dependencies
from plugin_base import PluginBase
from PySide6.QtWidgets import QWidget, QLabel, QVBoxLayout
class Plugin(PluginBase):
def get_name(self) -> str:
return "My Cool Plugin"
def get_icon(self) -> str:
return "🔥"
def get_version(self) -> str:
return "1.0.0"
def get_author(self) -> str:
return "Your Name"
def get_description(self) -> str:
return "Does cool things when raids happen"
def get_widget(self) -> QWidget:
widget = QWidget()
layout = QVBoxLayout(widget)
layout.addWidget(QLabel("My plugin settings here"))
return widget
def on_telegram_message(self, message: str):
print(f"Raid alert: {message}")The app warns users before installation, but it's your responsibility to review plugin code before publishing.
Plugins maintain their own licenses. Check each plugin's repository for details.