Publier un plugin
Tout ce qu'il faut pour publier un plugin ou un thème Majic, puis ses mises à jour.
En 4 étapes
- 01
Ajoutez majic.json à la racine du dépôt
Le dépôt GitHub doit être public et vous appartenir. Le format est détaillé plus bas. - 02
Publiez une release GitHub
Le tag doit correspondre àversion(ex.v1.1.0). Joignez le paquet<id>.zip(50 Mo max) qui contient le fichier indiqué dansmain. Le site lit majic.json au tag de la release et calcule l'empreinte SHA-256 du paquet. - 03
Soumettez-le
Dans Submit Plugin, choisissez le dépôt : le site vérifie la release et pré-remplit le formulaire. Ajoutez des images, envoyez : un admin vérifie le code et les permissions avant publication. - 04
Publiez vos mises à jour
Créez une nouvelle release avec une version plus élevée, puis cliquez sur « Proposer une mise à jour » dans My Plugins. Chaque mise à jour passe en review ; l'ancienne version reste disponible en attendant.
Le fichier majic.json
{
"id": "resource-advisor",
"name": "Resource Advisor",
"version": "1.1.0",
"description": "Affiche l'utilisation des ressources et propose des optimisations en un clic.",
"type": "plugin",
"tags": ["Utilitaires"],
"main": "dist/index.js",
"permissions": ["ui", "storage", "notifications"],
"majic_version": ">=1.0.0",
"api_version": 1,
"author": "MaitreAntho",
"update_url": "https://example.com/api/plugins/resource-advisor/update.json"
}| Champ | Requis | Description |
|---|---|---|
| id | Oui | Identifiant unique et définitif : 3 à 40 caractères, minuscules, chiffres et tirets. Il ne peut plus changer après publication. |
| name | Oui | Nom affiché (2 à 60 caractères). |
| version | Oui | Version au format x.y.z. Elle doit correspondre au tag de la release (1.1.0 ou v1.1.0). |
| description | Oui | 20 à 1000 caractères. Pré-remplit le formulaire de soumission. |
| type | Oui | plugin ou theme. Ne peut plus changer après publication. |
| tags | Plugins | Catégories, la première étant la principale : Interface, Utilitaires, Audio, Confidentialité, Modération, Fun. |
| main | Oui | Point d'entrée dans le .zip : un fichier .js (plugin) ou .css (thème). |
| permissions | Non | Ce que le plugin a le droit de faire (voir ci-dessous). Un thème ne peut en demander aucune. |
| majic_version | Non | Version minimale de Majic requise, ex. >=1.0.0. |
| api_version | Non | Version de l'API des plugins (1 par défaut). |
| author | Non | Nom affiché. L'auteur de référence reste votre compte GitHub vérifié. |
| update_url | Non | Si présent, doit être l'adresse de mise à jour de ce site (ci-dessous). L'application ne fait confiance qu'à elle. |
Permissions
Ne demandez que ce dont votre plugin a besoin : chaque permission est vérifiée en review, et une nouvelle permission dans une mise à jour est signalée aux admins.
| Valeur | Permet de | Risque |
|---|---|---|
| ui | Modifier l'interface : Ajouter des boutons, panneaux ou styles dans Discord. | Faible |
| notifications | Notifications : Afficher des notifications. | Faible |
| storage | Stockage local : Enregistrer ses propres réglages sur l'appareil. | Faible |
| clipboard | Presse-papiers : Lire et écrire dans le presse-papiers. | Moyen |
| network | Accès réseau : Communiquer avec des sites ou serveurs externes. | Moyen |
| voice | Audio et voix : Traiter le son des salons vocaux (micro, sortie audio). | Moyen |
| guilds.read | Lire les serveurs : Voir la liste des serveurs et salons de l'utilisateur. | Moyen |
| messages.read | Lire les messages : Lire le contenu des messages des salons ouverts. | Élevé |
| messages.send | Envoyer des messages : Envoyer ou modifier des messages au nom de l'utilisateur. | Élevé |
Mises à jour automatiques
L'application interroge /api/plugins/<id>/update.json sur ce site. Seule la dernière version acceptée en review y est publiée, avec l'empreinte SHA-256 qui permet à l'application de vérifier le paquet téléchargé avant de l'installer.
{
"*": {
"version": "1.1.0",
"download_url": "https://github.com/<auteur>/<depot>/releases/download/v1.1.0/resource-advisor.zip",
"sha256": "b53b13a90ed9276cd0277b5fb0556611d1cfb8225442a3c1b0b96c16d69ebcd5",
"size": 482113,
"permissions": ["ui", "storage", "notifications"],
"majic_version": ">=1.0.0",
"api_version": 1
}
}Votre dépôt est prêt ?
Submit Plugin