Chameleon is a framework created to allow developers to easily create Minecraft plugins that work across multiple platforms.
Chameleon plans to support every platform in this list. If you have ideas for other platforms that we could support, please suggest them in our official Discord server.
- Bukkit
- BungeeCord
- Minestom
- Nukkit
- Velocity
- Fabric
- Sponge
Proper documentation is coming soon.
You can find an Example Chameleon project here.
If you have any questions, feel free to ask in our official Discord server.
chameleon-core- Chameleon's core, most things happen here.chameleon-annotations- Chameleon annotation-based platform class generator.chameleon-feature-configuration- An easy-to-use configuration library, can be used without Chameleon.chameleon-platform-<name>- Chameleon implementation for the named platform, supported:bukkitbungeecordminestomnukkitvelocity
chameleon-annotations can be used to automatically generate the main classes that each platform requires in-order to load the plugin then start Chameleon.
To use this, all you have to do is add the chameleon-annotations module as a compileOnly dependency and annotationProcessor (gradle) or provided dependency (maven) and add the @Plugin annotation to your ChameleonPlugin class.
@Plugin(
id = "myplugin",
name = "MyPlugin"
)You can find the latest versions at the top of this file.
repositories {
// Replace 'snapshots' with 'releases' to use a non-snapshot version.
maven("https://repo.hypera.dev/snapshots/")
}
dependencies {
val chameleonVersion = "<version>"
implementation("dev.hypera:chameleon-core:$chameleonVersion")
// Repeat the line below and replace <module> with the module you wish to use.
implementation("dev.hypera:chameleon-<module>:$chameleonVersion")
// If you wish to use the automatic platform main class generation:
compileOnly("dev.hypera:chameleon-annotations:$chameleonVersion")
annotationProcessor("dev.hypera:chameleon-annotations:$chameleonVersion")
}repositories {
// Replace 'snapshots' with 'releases' to use a non-snapshot version.
maven { url 'https://repo.hypera.dev/snapshots/' }
}
dependencies {
def chameleonVersion = '<version>'
implementation 'dev.hypera:chameleon-core:${chameleonVersion}'
// Repeat the line below and replace <module> with the module you wish to use.
implementation 'dev.hypera:chameleon-<module>:${chameleonVersion}'
// If you wish to use the automatic platform main class generation:
compileOnly 'dev.hypera:chameleon-annotations:${chameleonVersion}'
annotationProcessor 'dev.hypera:chameleon-annotations:${chameleonVersion}'
}<properties>
<chameleon.version>VERSION</chameleon.version>
</properties>
<repositories>
<!-- Replace 'snapshots' with 'releases' to use a non-snapshot version. -->
<repository>
<id>hypera-snapshots</id>
<url>https://repo.hypera.dev/snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>dev.hypera</groupId>
<artifactId>chameleon-core</artifactId>
<version>${chameleon.version}</version>
</dependency>
<!-- Repeat the block below and replace 'MODULE' with the module you wish to use. -->
<dependency>
<groupId>dev.hypera</groupId>
<artifactId>chameleon-MODULE</artifactId>
<version>${chameleon.version}</version>
</dependency>
<!-- If you wish to use the automatic platform main class generation: -->
<dependency>
<groupId>dev.hypera</groupId>
<artifactId>chameleon-annotations</artifactId>
<version>${chameleon.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>Please read CONTRIBUTING.
The contents of this repository is licensed under the MIT License.