1.6.1 • Published 4 months ago

eco.js v1.6.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

npm GitHub Sponsors GitHub issues GitHub npm bundle size (scoped) Codacy Badge GitHub GitHub commit activity

GitHub package.json version GitHub release (latest SemVer)

ECO API Interface

Eco.js is a full WebAPI Interface for ECO GameServers for remote automated management and bots.

!TIP Just want an RCON library and not the full toolset? Check out @eco.js/rcon.

Installation

npm install eco.js

Setup

Eco.js

!IMPORTANT Eco.js requires an APIAdminAuthToken to make any authenticated calls. A Non-admin or User token can be used for limited read-only access. You must also enable AllowDebugCalls to make use of Chat features. Both of these can be found in the Users.eco config file on your server.

  • base_url - The WebServerUrl (or IP) & WebServerPort as defined in Network.eco config.
  • api_key - The APIAdminAuthToken as defined in Users.eco config.
  • serverVirtualPlayerName - The name for the Server when using Chat. (Default [Server])
  • serverChatUpdateInterval - Time (in ms) between checks for new chat messages.

!NOTE If base_url or api_key options are omitted from the EcoJSConfig object, the library will read that variable from the following ENV variables:

  • ECO_BASE_URL
  • ECO_API_KEY

!TIP To disable chat polling, pass serverChatUpdateInterval: 0 to the Startup perms.

Documentation

Documentation can be found HERE

Docs

Support Discord

https://discord.gg/uzeWjVTPSQ

Usage

import { ECO } from 'eco.js';
// const { ECO } = await import('eco.js');
const server = new ECO({
  base_url: 'https://127.0.0.1:3001',
  api_key: 'myAwesomeAPIAdminToken', // Admin Token **REQUIRED** for full features
  serverVirtualPlayerName: '[Server]', // Name of the Bot when Messaging users
  serverChatUpdateInterval: 5000, // Polling Interval for new messages, in Milliseconds
});

server.isReady.then(() => {
  server.on('CHAT_MESSAGE', (chat_message) => {
    if (
      chat_message.Receiver == 'General' &&
      chat_message.Text?.startsWith('!kickme')
    ) {
      chat_message.senderUser.kick('User ran !kickme');
    }
  });
});

TextUtils

import { TextUtils } from 'eco.js';
const { color, foldout, table, italic, bold } = TextUtils;

server.chat.sendChat(
  '#General',
  `I can also do ${color('Colored Text', '#ffaa00')}, ${italic(
    bold('Styling'),
  )} and ${foldout(
    color('Hoverable Text', '#00ff00'),
    'With Tables!',
    table([
      ['Column 1', 'Column2'],
      ['Much', 'Wow'],
    ]),
  )}`,
);

ColorTextDemo

1.6.1

4 months ago

1.6.0

4 months ago

1.5.0

4 months ago

1.4.0

4 months ago

1.3.2

4 months ago

1.2.0

4 months ago

1.3.1

4 months ago

1.3.0

4 months ago

1.2.1

4 months ago

1.1.1

5 months ago

1.1.0

5 months ago

1.0.1

5 months ago

1.0.0

5 months ago

0.0.1

12 months ago

0.0.1-alpha.4

12 months ago

0.0.1-alpha.5

12 months ago

0.0.0

3 years ago