Skip to content

Contains the markdown files of Lamp's documentation

Notifications You must be signed in to change notification settings

Revxrsal/lamp-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

icon description
screwdriver-wrench
This page describes how you can add Lamp to your own projects, using Gradle or Maven.

Setting up

Adding Lamp dependency

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 %}

Latest version:

Where [PLATFORM] is any of the following:

  • bukkit: Contains integrations for the Bukkit platform
  • bungee: Contains integrations for the BungeeCord API
  • brigadier: Contains integrations for Mojang's Brigadier API
  • sponge: Contains integrations for the Sponge platform (version 8+)
  • paper: Contains extra features for the PaperMC API
  • velocity: Contains integrations for the VelocityPowered API
  • minestom: Contains integrations for the Minestom platform
  • fabric: Contains integrations for the Fabric modding API
  • jda: Contains integrations for the Java Discord API
  • cli: A minimal implementation of the Lamp APIs for command-line applications

Optional: Preserve parameter names

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 %}

For Kotlin

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 %}

About

Contains the markdown files of Lamp's documentation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published