Opinionated template/starter for creating Minecraft plugins in Kotlin using the Spigot API
- Gradle axion-release-plugin for managing semver
- automatic updating of
CHANGELOG.md
andmain/resources/plugin.yml
when a release is made
- automatic updating of
- Github Actions to build PRs and automatically create Github releases when a release tag is pushed
- Manual Create Release pipeline to increment semver tag and trigger publishing a new version
- Requires a secret named
PAT
with a GitHub PAT with code read/write permission to the repository
- Requires a secret named
- Manual Create Release pipeline to increment semver tag and trigger publishing a new version
ktlint
Gradle plugin- Gradle build generates a standard plugin jar which will download dependencies declared as
libraries
inplugin.yml
and an "offline"/shadowed jar containing necessary dependencies
- Use the template to create a new repository: Create a new repository
- Change template repository references
settings.gradle.kts
-> setrootProject.name
gradle.properties
-> setrepoRef
build.gradle.kts
-> setgroup
CHANGELOG.md
-> update links toSimpleMC/mc-kotlin-plugin-template
to matchrepoRef
src/main/resources/plugin.yml
-> setname
,main
,website
,author
src/main/kotlin/org/simplemc/plugintemplate/KotlinPluginTemplate.kt
-> Move packages/rename for your pluginREADME.md
-> Update
- To use the Create Release automation, add PAT secret
- Create a Personal Access Token: https://github.com/settings/personal-access-tokens/new
- Repository Access: "Only select repositories" and pick the plugin template fork
- Repository Permissions: Contents Read & write
- This is so the automation can create release commits
- Add the PAT as an Actions secret to your new repository:
https://github.com/<repo slug>/settings/secrets/actions/new
- Name:
PAT
- Secret Contents: Paste the Personal Access Token you created in the previous step
- Name:
- Create a Personal Access Token: https://github.com/settings/personal-access-tokens/new
Several SimpleMC plugins are built off of this template or were the impetus for it:
- SimpleNPCs - Simple command-based NPC interactions
- SimpleHealthbars2 - Simple, easy-to-use healthbar plugin with optional player and mob healthbars
- SimpleAnnounce - SimpleAnnounce is a simple and easy to use, yet powerful automated announcement plugin for the Bukkit Minecraft API.