jmp's test plugin for paperweight-userdev
development
(also serves as an example until more thorough documentation is created)
build.gradle.kts
and settings.gradle.kts
both contain important configuration.paperweight-userdev
automatically detects shadow and will use shadowJar
as input for reobfJar
. This means no extra configuration is required to use paperweight-userdev
with shadow. See the shadow
branch on this repository for an example usage of shadow with paperweight-userdev
.run-paper
Gradle plugin is optional, it integrates with paperweight and allows for launching a test server with your plugin through the runServer
and runMojangMappedServer
tasks.paperweight-userdev
to multiple projects in a build can result in errors. To work around this, apply paperweight-userdev
to the root project with apply false
(i.e., id("...") version "..." apply false
in Kotlin DSL), and then when applying paperweight-userdev
to subprojects don't include a version specification. A more advanced solution would involve adding paperweight-userdev
as a dependency to your build logic, see reflection-remapper
and the source-remap
branch on this repo for examples of this.source-remap
branch on this repo has a special remapPluginSources
task to remap the source code in src/main/java
from spigot to Mojang mappings, outputting remapped source in /src/main/mojangMappedJava
. Note that this will only remap your code, not update it from a prior version. Meaning you must be using the dev bundle for the Minecraft version your source code is for when remapping.paperweight-userdev
doesn't provide any utilities for doing reflection. reflection-remapper
is a companion library to paperweight-userdev
assisting with reflection on remapped code.