Krypton
Krypton is a Minecraft server implementation, written purely from scratch in Kotlin.
It is currently a W.I.P, so if you find any bugs, feel free to make an issue about them
Usage
We now have a Jenkins CI server! You can find it at https://ci.kryptonmc.org
You can download the latest JAR file from here and run it with java -jar Krypton-VERSION.jar
. If you have any
questions, feel free to ask in our Discord server.
Or, if you prefer, you can clone the repository with git clone https://github.com/KryptonMC/Krypton.git
and build from source with gradle shadowJar
if you wish to run the server.
WARNING: Krypton is far from production ready. DO NOT USE ON PRODUCTION SERVERS! WILL CONTAIN BUGS! You have been warned.
API
As of version 0.11, Krypton now has an API. It is heavily in development, so expect to find bugs, but it is at least semi-functional.
You can depend on it like this:
- Gradle Kotlin DSL:
repositories {
mavenCentral()
maven("https://libraries.minecraft.net")
maven("https://repo.bristermitten.me/repository/maven-public/")
}
dependencies {
compileOnly("org.kryptonmc:krypton-api:LATEST")
}
- Gradle Groovy DSL:
repositories {
mavenCentral()
maven { url 'https://libraries.minecraft.net' } // for Brigadier
maven { url 'https://repo.bristermitten.me/repository/maven-public/' }
}
dependencies {
compileOnly 'org.kryptonmc:krypton-api:LATEST'
}
- Maven:
<repositories>
<!-- For Brigadier -->
<repository>
<id>minecraft</id>
<url>https://libraries.minecraft.net</url>
</repository>
<repository>
<id>bristermitten</id>
<url>https://repo.bristermitten.me/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.kryptonmc</groupId>
<artifactId>krypton-api</artifactId>
<version>LATEST</version>
</dependency>
</dependencies>
The documentation for both the API and the server can now be found here.
Example usage:
class MyPlugin(context: PluginContext) : Plugin(context) {
init {
registerCommand(MyCommand()) // example command registration
}
override fun initialize() {
// do some other things
}
}
If you have any questions about the usage of the API, feel free to join our Discord server!
Or if you have an idea on how I could improve the API, feel free to open an issue.
Contributing
Krypton is open-source for a reason. You are more than welcome to contribute, and we even encourage it. This project wouldn't be possible without contributions.
If you're interested, I highly recommend reading the contribution guide to learn how to get started, and know the best practices.
Credits
- The project's contributors (of course)
- The Minecraft Coalition and
#mcdevs
, for their hard work and effort documenting the protocol, allowing these projects to exist, and their amazing support. - The Minecraft Wiki
- The project's dependencies, each and every one helping to make our lives as developers easier. Notable mentions: Adventure, Kotlin, Netty, OkHttp, Log4J
- JProfiler, for being kind enough to grant me an open-source license for their profiler.