[package] name = "tmd" version = "0.1.0" authors = ["James Martin "] edition = "2018" repository = "https://github.com/jamestmartin/tmd" license = "GPL-3.0+" publish = false [features] default = ["authentication", "compression", "encryption"] # Enables authentication via Mojang's servers, i.e. online mode. authentication = ["encryption", "num-bigint", "sha-1", "reqwest"] # Enables protocol compression. compression = ["flate2"] # Enables protocol encryption *without enabling authentication*. # # The protocol itself doesn't depend on authentication to use encryption. # If the client and server both simply *don't* check in with Mojang, # then the protocol will proceed as normal, but encrypted. # However, be warned that there is no way to disable authentication # for Notchian clients (they will disconnect you from the server), # so a modified client would be necessary # to use offline encryption, and none exist that I know of. encryption = ["aes", "cfb8", "rand", "rsa"] [dependencies] async-trait = "0.1.42" clap = { version = "2.33.3", features = ["yaml"] } serde = { version = "1.0.118", features = ["derive"] } serde_json = "1.0.61" take_mut = "0.2.2" tokio = { version = "1.0.1", features = ["io-util", "macros", "net", "rt", "rt-multi-thread"] } uuid = { version = "0.8.1", features = ["serde"] } # Dependencies required for authentication # Used to format Minecraft's "server id" hash. num-bigint = { version = "0.3.1", optional = true } sha-1 = { version = "0.9.2", optional = true } # Used to make the request to the Mojang servers. reqwest = { version = "0.11.0", optional = true } # Dependencies required for compression flate2 = { version = "1.0.19", optional = true } # Dependencies required for encryption aes = { version = "0.6.0", optional = true } cfb8 = { version = "0.6.0", optional = true } rand = { version = "0.8.1", optional = true } rsa = { version = "0.3.0", optional = true }