Vous pouvez utiliser ce modèle pour développer facilement vos propres plugins Spigot de haute qualité à l'aide de Gradle.
Consultez le modèle de serveur Minecraft pour démarrer rapidement votre réseau Minecraft en moins de 30 secondes.
Le modèle ou mieux le passe-partout est livré avec de nombreuses fonctionnalités utiles si vous souhaitez développer des plugins de haute qualité. Cependant, vous n'avez pas besoin de toutes les utiliser, vous pouvez simplement supprimer les fonctionnalités dont vous n'avez pas besoin.
plugin.yaml
basée sur les propriétés du projet avec SpiGradleplus besoin de Nexus auto-hébergé ou de serveur d'artefacts
group
: votre-maven-group-id (par exemple : io.github.silthus)pluginName
: VotrePluginNameauthor
: VotreNomroot.projectName
dans settings.gradle . Ce sera votre artifactId
.CHANGELOG.md
. Il sera généré lors de votre première version.README
pour qu'il pointe vers votre projet et votre identifiant de ressource spigot.prepareSpigotPlugins
qui tentera de télécharger toutes les dépendances du plugin et de les placer dans debug/spigot/plugins/
.debugPaper
. Cela démarrera le serveur en arrière-plan et vous pourrez vous y connecter en utilisant l'adresse localhost:25565
.Veuillez lire les directives de contribution avant de soumettre des demandes d'extraction ou des problèmes d'ouverture.
NOTE
Vous devrez peut-être exécuter la tâchegradle clean
après avoir renommé les packages et réimporter le projet Gradle pour résoudre les erreurs liées à la génération duplugin.yml
.
L'un des principaux avantages de ce modèle est le fait qu'il publiera automatiquement une nouvelle version à chaque poussée vers master
en fonction de vos messages de validation. Cela garantit que votre plugin est publié conformément aux directives de gestion des versions sémantiques. Pour que cela fonctionne, vous devez suivre quelques règles simples :
Voir la page d'accueil des commits conventionnels pour plus de détails et d'exemples sur le sujet. Mais voici un bref résumé pour vous aider à démarrer.
La spécification Conventional Commits est une convention légère s'ajoutant aux messages de validation. Il fournit un ensemble simple de règles pour créer un historique de validation explicite ; ce qui facilite l'écriture d'outils automatisés par-dessus. Cette convention s'accorde avec SemVer, en décrivant les fonctionnalités, les correctifs et les modifications importantes apportées dans les messages de validation.
Le message de validation doit être structuré comme suit :
[optional scope]:
[optional body]
[optional footer(s)]
Le commit contient les éléments structurels suivants, pour communiquer l'intention aux consommateurs de votre bibliothèque ou plugin :
fix:
un commit de type fix corrige un bug dans votre base de code (cela est en corrélation avec PATCH dans le versioning sémantique).feat:
un commit de type feat introduit une nouvelle fonctionnalité dans la base de code (cela est en corrélation avec MINOR dans le versioning sémantique).BREAKING CHANGE:
un commit qui a un pied de page BREAKING CHANGE :, ou ajoute un ! après le type/portée, introduit un changement radical d'API (en corrélation avec MAJOR dans le versioning sémantique). Un CHANGEMENT RUPTURE peut faire partie de commits de tout type.build:
, chore:
, ci:
, docs:
, style:
, refactor:
, perf:
, test:
, et d'autres.BREAKING CHANGE:
peuvent être fournis et suivre une convention similaire au format git trailer. Les types supplémentaires ne sont pas obligatoires par la spécification Conventional Commits et n'ont aucun effet implicite sur la gestion des versions sémantiques (à moins qu'ils n'incluent un CHANGEMENT RUPTURE). Une portée peut être fournie au type d'un commit, pour fournir des informations contextuelles supplémentaires et est contenue entre parenthèses, par exemple, feat(parser): add ability to parse arrays
.
Voici quelques exemples :
feat: allow provided config object to extend other configs
BREAKING CHANGE: `extends` key in config file is now used for extending other config files
docs: correct spelling of CHANGELOG
feat(lang): add polish language
fix: correct minor typos in code
see the issue for details
on typos fixed.
Reviewed-by: Z
Refs #133
Votre plugin sera automatiquement publié en tant que package maven sur les packages Github dès que vous publierez une nouvelle version.
Le group
ajouté par votre artifactId
est utilisé pour identifier de manière unique votre projet lors de son importation dans d'autres projets. Lorsque vous importez spigot dans votre projet, vous utilisez le groupe org.spigotmc
suivi de l'artefactId spigot-api
et de la version.
Ce qui suit est tiré du guide de dénomination officiel de Maven.
groupId
identifie de manière unique votre projet dans tous les projets. Un ID de groupe doit suivre les règles de nom de package Java. Cela signifie que cela commence par un nom de domaine inversé que vous contrôlez. Par exemple : org.apache.maven
, org.apache.commons
.io.github
suivi de votre nom d'utilisateur Github, par exemple io.github.silthus
artifactId
est le nom du pot sans version. Si vous l'avez créé, vous pouvez choisir le nom de votre choix avec des lettres minuscules et aucun symbole étrange. Par exemple : `maven, commons-mathVous devez configurer l'authentification pour les packages Github si vous souhaitez utiliser votre package maven dans d'autres projets.
gradle.properties
dans C:Users%username%.gradle
avec ce qui suit et remplacez YOUR_GITHUB_USERNAME
par votre nom d'utilisateur Github et YOUR_PERSONAL_ACCESS_TOKEN
par le jeton d'accès de l'étape 1. gpr.user =YOUR_GITHUB_USERNAME
gpr.key =YOUR_PERSONAL_ACCESS_TOKEN
Vous pouvez exporter votre plugin vers le répertoire plugins depuis votre répertoire de travail avec la tâche Gradle PrepareSpigotPlugins . La tâche construira et copiera automatiquement votre plugin dans le répertoire plugins/
.
Vous pouvez exécuter ou déboguer votre plugin à l'aide de la configuration d'exécution Server
depuis IntelliJ pour télécharger automatiquement le serveur Minecraft, le construire, y copier vos plugins et ceux qui en dépendent et le démarrer en mode débogage.
Cela est dû à la puissance impressionnante des tâches de débogage de Spigradle. Pour en savoir plus, consultez la page Spigradle Github.