# squad-rcon

> This library is designed for the game Squad, it will give you the ability to easily connect to Rcon and parse/execute commands. I hope it will be useful to you!

Latest version **1.1.8** (published 2024-05-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install squad-rcon
pnpm add squad-rcon
yarn add squad-rcon
bun add squad-rcon
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.8 |
| Published | 2024-05-02 |
| First published | 2023-12-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 59.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 9 |
| Author | I-Am Alone |
| Maintainers | iamalone9828 |

## Links

- npm: https://www.npmjs.com/package/squad-rcon
- Repository: https://github.com/iamalone98/squad-rcon
- Homepage: https://github.com/iamalone98/squad-rcon#readme
- Issues: https://github.com/iamalone98/squad-rcon/issues
- npm.io page: https://npm.io/package/squad-rcon

## Dependencies (2)

- [chalk](https://npm.io/package/chalk.md) ^5.3.0
- [date-fns](https://npm.io/package/date-fns.md) ^2.30.0

## Recent versions

- 1.1.8 (latest) — 2024-05-02
- 1.1.7 — 2024-03-21
- 1.1.6 — 2024-02-29
- 1.1.5 — 2024-01-18
- 1.1.4 — 2024-01-17
- 1.1.3 — 2024-01-17
- 1.1.2 — 2024-01-13
- 1.1.1 — 2024-01-13
- 1.0.24 — 2023-12-20
- 1.0.23 — 2023-12-19
- 1.0.22 — 2023-12-19

## README

# SquadRcon

This library is designed for the game Squad, it will give you the ability to easily connect to Rcon and parse/execute commands. I hope it will be useful to you!

## Installation

This is a [Node.js](https://nodejs.org/en/) module available through the
[npm registry](https://www.npmjs.com/).

Before installing, [download and install Node.js](https://nodejs.org/en/download/).

If this is a brand new project, make sure to create a `package.json` first with
the [`npm init` command](https://docs.npmjs.com/creating-a-package-json-file).

Installation is done using the

```console
$ npm install squad-rcon
```

or

```console
$ yarn add squad-rcon
```

## Quick Start

```typescript
import { Rcon } from 'squad-rcon';

(async () => {
  try {
    const rcon = new Rcon({
      id: 1,
      host: '127.0.0.1',
      port: 1111,
      password: 'qwerty',
    });

    await rcon.init();

    rcon.on('ListPlayers', (data) => {
      console.log(data);
    });

    rcon.execute('ListPlayers');
  } catch (e: unknown) {
    console.log(e);
  }
})();
```

## API

#### Initialization

```typescript
import { Rcon } from 'squad-rcon';

Rcon({
  id: 1,
  host: '127.0.0.1',
  port: 1111,
  password: 'qwerty',
  pingDelay: 60000, // optional
  autoReconnect: true, // optional
  autoReconnectDelay: 60000, // optional
  logEnabled: true, // optional
  chatListeners: {
    onChatMessage: (data: TChatMessage) => null, // optional
    onPlayerWarned: (data: TPlayerWarned) => null, // optional
    onPlayerKicked: (data: TPlayerKicked) => null, // optional
    onPlayerBanned: (data: TPlayerBanned) => null, // optional
    onSquadCreated: (data: TSquadCreated) => null, // optional
    onPossessedAdminCamera: (data: TPossessedAdminCamera) => null, // optional
    onUnPossessedAdminCamera: (data: TUnPossessedAdminCamera) => null, // optional
  }, // optional
});
```

`Rcon` return some pre-defined functions:

#### Functions

| Function           | Return      | Type              | Emitter                |
| ------------------ | ----------- | ----------------- | ---------------------- |
| **init**           | **Promise** | `Promise`         |                        |
| **close**          | **Promise** | `Promise`         |                        |
| **rconEmitter**    | **Emitter** | `EventEmitter`    | `on()`                 |
| **execute**        | **Promise** | `Promise<string>` | `on('data')`           |
| **getListPlayers** | **Promise** | `TPlayer[]`       | `on('ListPlayers')`    |
| **getListSquads**  | **Promise** | `TSquad[]`        | `on('ListSquads')`     |
| **getCurrentMap**  | **Promise** | `TMap`            | `on('ShowCurrentMap')` |
| **getNextSquads**  | **Promise** | `TMap`            | `on('ShowNextMap')`    |

#### Events Emitter

| Event                        | Return       | Type                      |
| ---------------------------- | ------------ | ------------------------- |
| **ListPlayers**              | **response** | `TPlayer[]`               |
| **ListSquads**               | **response** | `TSquad[]`                |
| **ShowCurrentMap**           | **response** | `TMap`                    |
| **ShowNextMap**              | **response** | `TMap`                    |
| **CHAT_MESSAGE**             | **response** | `TChatMessage`            |
| **POSSESSED_ADMIN_CAMERA**   | **response** | `TPossessedAdminCamera`   |
| **UNPOSSESSED_ADMIN_CAMERA** | **response** | `TUnPossessedAdminCamera` |
| **PLAYER_WARNED**            | **response** | `TPlayerWarned`           |
| **PLAYER_KICKED**            | **response** | `TPlayerKicked`           |
| **SQUAD_CREATED**            | **response** | `TSquadCreated`           |
| **PLAYER_BANNED**            | **response** | `TPlayerBanned`           |
| **data**                     | **response** | `TRconResponse`           |
| **err**                      | **error**    | `Error`                   |
| **connected**                |              |                           |
| **close**                    |              |                           |

---
_Source: https://npm.io/package/squad-rcon · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
