{"id":24950363,"url":"https://github.com/atrimilan/paperplugintemplate","last_synced_at":"2026-05-09T17:35:52.943Z","repository":{"id":274889686,"uuid":"922635197","full_name":"Atrimilan/PaperPluginTemplate","owner":"Atrimilan","description":"Template for Minecraft Paper plugin development using Gradle Kotlin DSL and publishing with GitHub Actions","archived":false,"fork":false,"pushed_at":"2025-03-23T20:40:43.000Z","size":79,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T21:28:19.659Z","etag":null,"topics":["actions","cicd","curseforge","java","minecraft","minecraft-plugin","modrinth","paper","papermc","plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Atrimilan.png","metadata":{"files":{"readme":"README.md","changelog":"changelogs/1.0.0.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-26T18:11:28.000Z","updated_at":"2025-03-23T20:40:46.000Z","dependencies_parsed_at":"2025-03-04T22:27:12.536Z","dependency_job_id":"94c45393-4972-4c22-86ea-c67e91c8ba6b","html_url":"https://github.com/Atrimilan/PaperPluginTemplate","commit_stats":null,"previous_names":["atrimilan/paperplugintest","atrimilan/paperplugintemplate"],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atrimilan%2FPaperPluginTemplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atrimilan%2FPaperPluginTemplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atrimilan%2FPaperPluginTemplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Atrimilan%2FPaperPluginTemplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Atrimilan","download_url":"https://codeload.github.com/Atrimilan/PaperPluginTemplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246087921,"owners_count":20721604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","cicd","curseforge","java","minecraft","minecraft-plugin","modrinth","paper","papermc","plugin"],"created_at":"2025-02-02T23:16:37.479Z","updated_at":"2026-05-09T17:35:52.928Z","avatar_url":"https://github.com/Atrimilan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Paper Plugin Template\n\n[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/Atrimilan/PaperPluginTemplate/release.yml?branch=master\u0026event=workflow_dispatch\u0026style=flat-square)](https://github.com/Atrimilan/PaperPluginTemplate/actions/workflows/release.yml)\n[![GitHub Tag](https://img.shields.io/github/v/tag/Atrimilan/PaperPluginTemplate?style=flat-square)](https://github.com/Atrimilan/PaperPluginTemplate/releases)\n[![GitHub License](https://img.shields.io/github/license/Atrimilan/PaperPluginTemplate?style=flat-square)](https://github.com/Atrimilan/PaperPluginTemplate/blob/master/LICENSE)\n\nA template to get started with Paper plugin development and publishing.\n\n\u003e [!NOTE]\n\u003e This template was made following the official [PaperMC documentation](https://docs.papermc.io/paper/)\n([archive](https://web.archive.org/web/20251213104318/https://docs.papermc.io/paper/)),\n\u003e head there to explore more about plugin development on Paper.\n\n## I. Using the template\n\nSince this is just an example project, you will need to follow official documentations of PaperMC and Gradle to learn\nhow to modify [build.gradle.kts](build.gradle.kts) and [plugin.yml](src/main/resources/plugin.yml) to suit your needs.\nDon't forget to edit [gradle.properties](gradle.properties) as well.\n\nYou can then use this project as a starting point to create your own plugins, or modify the architecture if you prefer.\n\nHere are the main Gradle task you will need: \n* Build the plugin and run a local Paper server that includes it:\n  ```sh\n  ./gradlew runServer\n  ```\n  This will automatically start a local server with your plugin at `localhost:25565`\n  (since this is the default port, you can simply use `localhost` to connect).\n\n* Build a JAR file:\n  ```sh\n  ./gradlew build\n  ```\n  Or if you don't want to run unit tests:\n  ```sh\n  ./gradlew assemble\n  ```\n\n## II. Publishing with GitHub Actions\n\nThis project includes a GitHub Actions workflow for automated publishing on Modrinth, CurseForge and GitHub.\nThe pipeline is defined in [release.yml](.github/workflows/release.yml) and uses the\n[mc-publish](https://github.com/marketplace/actions/mc-publish) action.\n\nTo make this work, you must define your variables and secrets in your repository's **Security** settings.\n\n**Variables:**\n* `MODRINTH_PROJECT_ID` - Modrinth public project ID\n* `CURSEFORGE_PROJECT_ID` - CurseForge public project ID\n\n**Secrets:**\n* `MODRINTH_TOKEN` - Modrinth [Personal Access Token](https://modrinth.com/settings/pats) (with \"Write projects\" and \"Create versions\" scopes)\n* `CURSEFORGE_TOKEN` - CurseForge [API token](https://curseforge.com/account/api-tokens)\n\nIf your prefer to store all your variables (**NOT YOUR SECRETS**) in [gradle.properties](gradle.properties), in a new file,\nor in your GitHub repository variables, do not forget to update [release.yml](.github/workflows/release.yml) accordingly.\n\n\u003e [!TIP]\n\u003e I highly recommend using Modrinth over CurseForge, as their API and websites are, in my opinion, much more robust and user-friendly for publishing Minecraft plugins.\n\n## III. Example features in this project\n\nThis template shows some examples of what can be done when creating plugins, such as adding custom commands with permissions,\nreading file values, and listening to in-game events to perform actions.\n\nThere are also unit tests written with [JUnit](https://junit.org/) and [Mockito](https://site.mockito.org/), to give an idea of what testing a paper plugin looks like.\n\n**Overridden event:**\n* When a player joins the server, the welcome message is customized (formatted with [MiniMessage](https://docs.papermc.io/adventure/minimessage/)).\n\n**Available commands:**\n* `/flyspeed \u003cspeed\u003e`\n  * Set the flight speed of the player executing the command\n  * Permission: `ppt.flyspeed.self`\n* `/flyspeed \u003cplayer\u003e \u003cspeed\u003e`\n  * Set the flight speed of any player\n  * Permission: `ppt.flyspeed.others`\n* `/read-config \u003cultimate-answer|pangram|boolean|player\u003e`\n  * Read [config.yml](src/main/resources/config.yml) values\n  * Permission: `ppt.read-config`\n\n\u003e [!TIP]\n\u003e If you want to manage player's permissions, I recommend using [LuckPerms](https://luckperms.net/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatrimilan%2Fpaperplugintemplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatrimilan%2Fpaperplugintemplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatrimilan%2Fpaperplugintemplate/lists"}