{"id":14969653,"url":"https://github.com/rikonardo/papermake","last_synced_at":"2025-08-03T14:08:01.400Z","repository":{"id":40554890,"uuid":"502456454","full_name":"Rikonardo/PaperMake","owner":"Rikonardo","description":"Minecraft plugin development tool","archived":false,"fork":false,"pushed_at":"2023-05-27T12:31:54.000Z","size":160,"stargazers_count":27,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T23:41:15.475Z","etag":null,"topics":["bukkit","craftbukkit","debugging-tool","devtool","gradle","gradle-plugin","minecraft","paper","papermc","spigot"],"latest_commit_sha":null,"homepage":"https://plugins.gradle.org/plugin/com.rikonardo.papermake","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rikonardo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-06-11T21:07:45.000Z","updated_at":"2025-02-12T21:22:40.000Z","dependencies_parsed_at":"2024-09-26T14:23:11.244Z","dependency_job_id":null,"html_url":"https://github.com/Rikonardo/PaperMake","commit_stats":{"total_commits":36,"total_committers":4,"mean_commits":9.0,"dds":0.5277777777777778,"last_synced_commit":"f9ea8743abcfcf976095011cc70367356b4bb998"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Rikonardo/PaperMake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rikonardo%2FPaperMake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rikonardo%2FPaperMake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rikonardo%2FPaperMake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rikonardo%2FPaperMake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rikonardo","download_url":"https://codeload.github.com/Rikonardo/PaperMake/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rikonardo%2FPaperMake/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268554909,"owners_count":24269062,"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","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bukkit","craftbukkit","debugging-tool","devtool","gradle","gradle-plugin","minecraft","paper","papermc","spigot"],"created_at":"2024-09-24T13:42:10.477Z","updated_at":"2025-08-03T14:08:01.303Z","avatar_url":"https://github.com/Rikonardo.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\u003ch1\u003ePaperMake - Minecraft plugin development tool\u003c/h1\u003e\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cimg alt=\"Logo\" src=\"logo.png\"/\u003e\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/Rikonardo/PaperMake/issues\"\u003e\u003cimg alt=\"Open issues\" src=\"https://img.shields.io/github/issues-raw/Rikonardo/PaperMake\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://plugins.gradle.org/plugin/com.rikonardo.papermake\"\u003e\u003cimg alt=\"Gradle plugin\" src=\"https://img.shields.io/gradle-plugin-portal/v/com.rikonardo.papermake\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.codefactor.io/repository/github/rikonardo/papermake\"\u003e\u003cimg alt=\"CodeFactor\" src=\"https://www.codefactor.io/repository/github/rikonardo/papermake/badge\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://discord.gg/zYRTPa3FnQ\"\u003e\u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/982967258013896734?color=%237289DA\u0026label=discord\u0026logo=discord\u0026logoColor=%237289DA\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\n**PaperMake** is a gradle plugin, designed to simplify development and debugging of Bukkit-based plugins. It provides ability to run development Paper server and quickly reload your plugin to see changes in-game.\n\n## Features\n- **Development server with IDE integration ✅**\n- **Gradle Shadow plugin compatibility ✅**\n- **In-game plugin auto-reload on Gradle's \"build\", \"shadowJar\", and \"reobfJar\" tasks ✅**\n- **Working breakpoints in your plugin code and libraries ✅**\n- **Development server console right in IDE ✅**\n- **Useful in-game commands ✅**\n\n## Installation\nTo install PaperMake, add this on top of your `build.gradle` file, to the end of `plugins { }` block:\n\n```groovy\nplugins {\n    id 'com.rikonardo.papermake' version '1.0.6'\n}\n```\n\n### Kotlin DSL\nAdd this on top of your `build.gradle.kts` file, to the end of `plugins { }` block:\n\n```kotlin\nplugins {\n    id(\"com.rikonardo.papermake\") version \"1.0.6\"\n}\n```\n\n### Notice\nPaperMake should always be specified after java/kotlin and shadow (if you are using it) plugins. Here is an example of correct plugins order:\n\n```groovy\nplugins {\n    id 'java'\n    id 'com.github.johnrengelman.shadow' version '...'\n    id 'com.rikonardo.papermake' version '...'\n}\n```\n\n## Usage\nRun `devServer` task (from `papermake` category) to start development server.\n\nYou can use next optional properties to configure environment:\n\n| Property            | Description                                                                                                                                                 |\n|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `pmake.version`     | Minecraft version of development server. Can be any version, which has available paper release. By default, PaperMake would use latest release.             |\n| `pmake.mojmap`      | If `true`, downloads Paper version that uses Mojang's deobfuscation mappings.                                                                               |\n| `pmake.noverify`    | If `true`, checksum verification of the downloaded Paper server is not performed.                                                                           |\n| `pmake.port`        | Port for development server. Default port: `25565`. Note, that if port unavailable, PaperMake would try to use port, incremented by 1 (e.g. `25566`).       |\n| `pmake.dir`         | Path to the directory where dev server will be launched, can be relative to project directory. By default, server runs in `build/papermake/run`.            |\n| `pmake.server`      | Path to custom server jar, can be relative to run directory. If specified, `pmake.version`, `pmake.mojmap` and `pmake.noverify` properties will be ignored. |\n| `pmake.gui`         | When `true`, removes default \"-nogui\" server arg that prevents server gui window from appearing.                                                            |\n| `pmake.autoop`      | When `true`, *all* players that join the server will be OPed.                                                                                               |\n| `pmake.args`        | Additional arguments for development server. For example, `-o=false` will disable online-mode.                                                              |\n| `pmake.serverprops` | Properties to set in the `server.properties` file, seperated by commas (`,`). Example: `\"motd=Howdy!,pvp=false\"`                                            |\n| `pmake.gamerules`   | GameRules to set for all worlds, seperated by commas (`,`). Example: `\"doDaylightCycle=false,doWeatherCycle=false\"`                                         |\n| `pmake.newloader`   | When specified, overrides PaperMake's automatic detection of Paper's new plugin loader system. Can be `true` or `false`.                                    |\n\nProperties are specified with `-P` prefix. Here's an example:\n```shell\n./gradlew devServer -Ppmake.version=1.16.4 -Ppmake.port=25575 -Ppmake.args=\"-o=false -s=100\"\n```\n\nYou can also use this properties in IDE. For example in IntelliJ IDEA, you can specify them in \"Edit Run/Debug Configurations\" dialog in \"Run\" field after devServer task name.\n\nWhen development server is running, you can use `build` or `shadowJar` (when using shadow plugin) tasks to build and automatically reload your plugin.\n\n## In-game commands\nPaperMake provides some useful in-game commands to simplify development.\n\n| Command                                | Description                                               |\n|----------------------------------------|-----------------------------------------------------------|\n| `/pmake`                               | Show help message.                                        |\n| `/pmake info`                          | Display development environment information.              |\n| `/pmake reload`                        | Reload developed plugin without rebuilding it.            |\n| `/pmake console \u003ccommand\u003e`             | Run command as console without leaving game.              |\n| `/pmake plugin load \u003cplugin jar name\u003e` | Load external plugin from \"plugins\" directory in runtime. |\n| `/pmake plugin unload \u003cplugin name\u003e`   | Unload external plugin completely (with class unloading). |\n| `/pmake plugin enable \u003cplugin name\u003e`   | Enable disabled plugin.                                   |\n| `/pmake plugin disable \u003cplugin name\u003e`  | Disable plugin without unloading.                         |\n| `/pmake plugin reload \u003cplugin name\u003e`   | Reload plugin without unloading, just disable and enable. |\n\n## Additional server configuration\nYou can go into server directory (`build/papermake/run` by default) and edit server configuration files.\n\n## Installing other Minecraft plugins\nAdditional Minecraft plugins can be placed into `plugins` folder inside of server directory (`build/papermake/run` by default). You can use `/pmake plugin load` in-game command to load them without restarting development server. They will load as usual and PaperMake will not reload them when reloading your plugin.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frikonardo%2Fpapermake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frikonardo%2Fpapermake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frikonardo%2Fpapermake/lists"}