⛏️ Extensible Minecraft server implementation in Kotlin
.github/workflows | ||
.idea | ||
.runConfigurations | ||
buildSrc | ||
gradle/wrapper | ||
test-plugin | ||
uranos-api | ||
uranos-nbt | ||
uranos-packet-codecs | ||
uranos-packets | ||
uranos-server | ||
.gitignore | ||
build.gradle.kts | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
README.md | ||
settings.gradle.kts | ||
versions.properties |
Uranos
Milestones
- Players can see entities
- Players can see other players
- Players can send and receive chat messages
- Players can see Titles
- Weather and time
- Players can hear sounds
- Players can see particles
- Players can have items (with metadata) in their inventory
- Inventories
- World modifications are sent to players
- PlayerInteract events are emitted when blocks are clicked
- Command framework + permissions
- Commands can be sent from the console
- Players can be teleported between worlds
- Entity AI framework
- Scoreboards + Teams
- Crafting
Conventions
KDoc
- If the name of the target is already sufficient for understanding what it does or what it's value represents, you should not add a comment. If you want to provide additional information however, you should start the comment with a short description nevertheless.
- The name of the return type, property type or type of the enclosing class should not be wrapped in square brackets.
- If a comment only consists of the
@returns
block tag, the latter should be replaced with a sentence starting withReturns
.
Code
- If a member function of a class creates an instance of another class which represents the same value, the function’s name should be
as<name of the other class>
. If the new instance does not exactly represent the value of the original instance (for example because it is rounded), the name should beto<name of the other class>
.