Archived
1
0
Fork 0
This repository has been archived on 2025-03-02. You can view files and clone it, but cannot push or open issues or pull requests.
uranos/README.md

2.5 KiB
Raw Permalink Blame History

Uranos

Uranos is a game server implementing the Minecraft protocol. That means you can use the official Minecraft client to join Uranos servers.

Its goal is to be a modern alternative to Bukkit, Spigot and Paper. It is primarily intended to make creating custom games inside of Minecraft easier than it is possible with the existing alternatives, but it can also be used for something like a lobby/hub server.

The most important thing for Uranos is developer experience (DX). After that comes performance.

Milestones

  • 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
  • All entities are implemented with all metadata
  • Entity AI framework
  • Scoreboards + Teams
  • Crafting
  • Rate limiting packets

Development

Because IntelliJ sometimes removes needed imports for types which have the same name as types in java.util when running the Optimize Imports action, you need to disable automatic wildcard imports for this package (Editor / Code Style / Kotlin / Imports / Packages to Use Import With '*').

Conventions

KDoc

  1. 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.
  2. The name of the return type, property type or type of the enclosing class should not be wrapped in square brackets.
  3. If a comment only consists of the @returns block tag, the latter should be replaced with a sentence starting with Returns .

Packets

  1. Outgoing packets should not use classes purely used as data containers such as Location. Enums are allowed.

Other

  1. If a member function of a class creates an instance of another class which represents the same value, the functions 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 be to<name of the other class>.