🗃️Modules (addons)

Module adding & reasons for the usage of them.

Icicle's functionalities are separated into their respective modules. We've done this, so you only get what you really need.

These addons can be accessed via a simple dependency notation in the dependency manager of your choice, but we highly recommend using our Gradle Plugin (you've learned about it here).

Adding modules to your project

First party addons

In the case of first party addons, you can add them to your project by extending your dependencies block in your build.gradle.kts, below is an example where we add the nms module.

repositories {
    igloo() // This is required for ALL first party addons,
            // as they are hosted on our m2.
}

dependencies {
    icicle("nms:1.0-SNAPSHOT") // This will add the NMS addon with the
                               // version 1.0-SNAPSHOT.

    // icicle() can also be called without any parameters.
    // In that case, it'll add the icicle-core dependency into your project.
    // Example: icicle()

    // icicle() can be called without a version provided.
    // In this case, it should fetch the latest version and download that.
    // Example: icicle("nms")
}

And... bam! You're done. That's all it takes to add a first party addon.

Third party modules

When you want to add a third party module/addon to your project, all you'll need to do is add the addon like you would any otherdependency, except that instead ofimplementation, you'll be using addon. Below this, you can find an example for such an addon.

dependencies {
    addon("com.example:real-addon:1.0-SNAPSHOT") // This will add the
                                                 // real-addon from the
                                                 // creator example.com with
                                                 // the version 1.0-SNAPSHOT.
}

Modules in the Documentation

Modules are their own story, and most of them are so complex, they deserve their own sections in this documentation:

  1. Commands System

Choose your modules

List of First Party Modules
  • Icicle-Commands --> complete easy-to-use command system

  • Icicle-NMS --> interface-based NMS mappings (deobfuscated via DeFrost)

  • Icicle-Serialization --> stupidly fast lightweight serialization library

  • Icicle-Protocol --> our own, easy-to-use protocol library

  • Icicle-Kotlin --> juicy Kotlin utilities

List of Third Party Modules

Last updated