rcon-client

A modern RCON client made for Minecraft that features a packet queue

Usage no npm install needed!

<script type="module">
  import rconClient from 'https://cdn.skypack.dev/rcon-client';
</script>

README

rcon-client

npm downloads

A new version of rcon-client with breaking changes is coming. Try it out on the next branch.

A simple and easy to use RCON client made to work with Minecraft servers. It's written in Typescript and uses async methods.

rcon-client has a built-in packet queue with a max pending setting which limits the number of packets sent before one is received. If you need to send a bunch of packets at once, this library might be right for you. This was mainly the reason why I created yet another implementation.

The Rcon class supports connecting and disconnecting at any time, making it easier to share an instance in many places.

Usage

import { Rcon } from "rcon-client"

const rcon = await Rcon.connect({
    host: "localhost", port: 25575, password: "1234"
})

console.log(await rcon.send("list"))

let responses = await Promise.all([
    rcon.send("help"),
    rcon.send("whitelist list")
])

for (response of responses) {
    console.log(response)
}

rcon.end()

Or alternatively you can create an instance via the constructor.

const rcon = new Rcon({ host: "localhost", port: 25575, password: "1234" })

await rcon.connect()
rcon.end()

More examples can be found inthe repository's examples/ folder.

Events

rcon-client uses node's event emitter internally. The event emitter is accessible with the emitter property. Additionally the on, once and off methods are exposed on the main class.

The Rcon class has these events:

  • connect
  • authenticated
  • end
  • error

Auto reconnect can be implemented with these events.