Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/janispritzkau/rcon-client
A simple and modern RCON client made to work with Minecraft
https://github.com/janispritzkau/rcon-client
client javascript minecraft nodejs protocol rcon typescript
Last synced: 1 day ago
JSON representation
A simple and modern RCON client made to work with Minecraft
- Host: GitHub
- URL: https://github.com/janispritzkau/rcon-client
- Owner: janispritzkau
- Created: 2019-08-06T09:00:48.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-04T11:17:50.000Z (5 months ago)
- Last Synced: 2025-01-15T20:46:57.419Z (6 days ago)
- Topics: client, javascript, minecraft, nodejs, protocol, rcon, typescript
- Language: TypeScript
- Homepage:
- Size: 75.2 KB
- Stars: 64
- Watchers: 3
- Forks: 17
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rcon-client
[![npm](https://img.shields.io/npm/v/rcon-client.svg)](https://www.npmjs.com/package/rcon-client)
[![downloads](https://img.shields.io/npm/dm/rcon-client.svg)](https://www.npmjs.com/package/rcon-client)> **⚠️ This library has not been maintained for a while. Please use it with caution or switch to another implementation!**
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
```js
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.
```js
const rcon = new Rcon({ host: "localhost", port: 25575, password: "1234" })await rcon.connect()
rcon.end()
```More examples can be found in the repository's [`examples/`](https://github.com/janispritzkau/rcon-client/tree/master/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.