icon | description |
---|---|
screwdriver-wrench |
This page describes how you can add Lamp to your own projects, using Gradle or Maven. |
To add Lamp to your project, add the following (depending on your project structure):
{% tabs %} {% tab title="pom.xml" %}
<dependencies>
<!-- Required for all platforms -->
<dependency>
<groupId>io.github.revxrsal</groupId>
<artifactId>lamp.common</artifactId>
<version>[VERSION]</version>
</dependency>
<!-- Add your specific platform module here -->
<dependency>
<groupId>io.github.revxrsal</groupId>
<artifactId>lamp.[PLATFORM]</artifactId>
<version>[VERSION]</version>
</dependency>
</dependencies>
{% endtab %}
{% tab title="build.gradle" %}
dependencies {
implementation 'io.github.revxrsal:lamp.common:[VERSION]'
implementation 'io.github.revxrsal:lamp.[PLATFORM]:[VERSION]'
}
{% endtab %}
{% tab title="build.gradle.kts" %}
dependencies {
implementation("io.github.revxrsal:lamp.common:[VERSION]")
implementation("io.github.revxrsal:lamp.[PLATFORM]:[VERSION]")
}
{% endtab %} {% endtabs %}
Where [PLATFORM]
is any of the following:
bukkit
: Contains integrations for the Bukkit platformbungee
: Contains integrations for the BungeeCord APIbrigadier
: Contains integrations for Mojang's Brigadier APIsponge
: Contains integrations for the Sponge platform (version 8+)paper
: Contains extra features for the PaperMC APIvelocity
: Contains integrations for the VelocityPowered APIminestom
: Contains integrations for the Minestom platformfabric
: Contains integrations for the Fabric modding APIjda
: Contains integrations for the Java Discord APIcli
: A minimal implementation of the Lamp APIs for command-line applications
Lamp identifies parameters by their names and uses them to generate relevant command metadata. By default, Java does not preserve parameter names reflectively. You need to add the following to your project:
{% tabs %} {% tab title="pom.xml" %}
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<compilerArgs>
<!-- Preserves parameter names -->
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
{% endtab %}
{% tab title="build.gradle" %}
compileJava {
// Preserve parameter names in the bytecode
options.compilerArgs += ["-parameters"]
}
// optional: if you're using Kotlin
compileKotlin {
kotlinOptions.javaParameters = true
}
{% endtab %}
{% tab title="build.gradle.kts" %}
tasks.withType<JavaCompile> {
// Preserve parameter names in the bytecode
options.compilerArgs.add("-parameters")
}
// optional: if you're using Kotlin
tasks.withType<KotlinJvmCompile> {
compilerOptions {
javaParameters = true
}
}
{% endtab %} {% endtabs %}
Here’s how you can set the Kotlin compiler option javaParameters = true
in three different build systems, using the tab format you specified:
{% tabs %} {% tab title="pom.xml" %}
<build>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<!-- ... your configuration here ... -->
<configuration>
<args>
<arg>-java-parameters</arg>
</args>
</configuration>
</plugin>
</plugins>
</build>
{% endtab %}
{% tab title="build.gradle" %}
kotlin {
compilerOptions {
javaParameters = true
}
}
{% endtab %}
{% tab title="build.gradle.kts" %}
kotlin {
compilerOptions {
javaParameters = true
}
}
{% endtab %} {% endtabs %}