1.0.1 • Published 3 years ago

meloetta v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Meloetta

Introduction

Meloetta is a npm package to connect to Pokemon Showdown and interact with the server. What makes this package different from the other packages, is how everything is handled. In Meloetta, we have every action, and socket message sent by showdown into events. This makes it easier for developers to pick and chose what they want to get. The structure of this package is identical to Discord.js.

Features Added

FeatureAdded InWhen was Added
Battle Tracking FeatureX8/27/2021
Message FeatureX8/27/2021
Teambuilding Feature[]--/--/----
Battling Feature[]--/--/----

Future Updates

  • [] More documentations added to help developers use this package.

Change Log

1.0.1

  • Fixed Message.author. Should be return the author now, instead of the contet.
  • add Message.sendTo. This will allow you to send a message to a specific user/room.
  • add Battle.toLog, and Battle.toJson. These are formatting options used to output the full battle log that smogon sent to the client.

1.0.0

  • Package was released.

Installation

Npm

> npm install -s meloetta

Yarn

> yarn add meloetta

Quick Setup

Javascript

const { MeloettaClient } = require('meloetta');

const client = new MeloettaClient({
  server: 'showdown',
  ip: 'sim.smogon.com',
  port: 8000,
  credentials: {
    username: 'YOUR_CLIENT_USERNAME',
    password: 'YOUR_CLIENT_PASSWORD',
  },
});

client
  .on('ready', () => {
    console.log(`${client.user.username} is ready`);
  })
  .on('message', (message) => {
    if (message.content.trim() === '+ping') {
      message.send('Pong!');
    }
  });

client.connect();

Typescript

import { MeloettaClient } from 'meloetta';

const client = new MeloettaClient({
  server: 'showdown',
  ip: 'sim.smogon.com',
  port: 8000,
  credentials: {
    username: 'CLIENT_USERNAME',
    password: 'CLIENT_PASSWORD',
  },
});

client
  .on('ready', () => {
    console.log('Client is ready');
  })
  .on('message', (message) => {
    if (message.content.trim() === '+ping') {
      message.send('Pong!');
    }
  });

client.connect();

Battle Tracking

As mentioned before, Meloetta handles everything by pushing everything into their own events. This allows Meloetta to provide a developer the neccesary information that they want, and ignore the information the developer doesn't want.

client.ws.joinBattle('SHOWDOWN_BATTLE_ID', (battle) => {
  battle.on('player', (player, username, avater, rating) => {
    console.log(`Player ${player}`);
  });
});