Coder Social home page Coder Social logo

agustinsrg / ps-bot-lib Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 204 KB

Simple library to create bots for Pokemon Showdown

Home Page: https://agustinsrg.github.io/ps-bot-lib/

License: MIT License

JavaScript 1.00% TypeScript 99.00%
bot library npm pokemon-showdown pokemon-showdown-bot sockjs typescript websocket

ps-bot-lib's Introduction

Pokemon Showdown bot library

npm version Node.js CI License

Simple library to create bots for Pokemon Showdown, coded in typescript, for NodeJS.

Installation

In order to install the library to use for your project, run the following command:

npm install --save @asanrom/ps-bot-lib

Usage

You can use the library to instantiate Pokemon Showdown bots, controlling their actions and listening for events.

Example code:

import { PokemonShowdownBot } from "@asanrom/ps-bot-lib";

const bot = new PokemonShowdownBot({
    // Configuration
    host: "sim3.psim.us",
    port: 443,
    secure: true,
    serverId: "showdown",
});

bot.on("error", err => {
    // When an error happens, the bot will emit the 'error' event
    // Make sure to handle it, or otherwise the process will exit
    console.error(err);
});

bot.on("connecting", () => {
    console.log("Bot connecting to the server...");
});

bot.on("connected", () => {
    console.log("Bot connected!");
});

bot.on("disconnected", () => {
    // If the bot disconnects, it will retry connecting to the server
    // after 10s by default, you can change it in the configuration
    console.log("Bot disconnected!");
});

bot.on("can-login", () => {
    // Listen for this event to be able to log into an account
    bot.rename("Example account", "eXampl3Pa5w0rd");
});

bot.on("rename-failure", err => {
    // Could not log in (maybe invalid password?)
    console.log("Could not log in. Error: " + err.message);
});

bot.on("renamed", nick => {
    // This event indicates you bot successfully logged in
    console.log("Renamed: " + nick);

    // Now you can send commands
    bot.sendToGlobal("/join Example Room");
    bot.pm("Example User", "Hello!");
});

bot.on("line", (room, line, spl, isInitialMessage) => {
    // This event is emitted when the bot receives a message line form the server
    // room is the room identifier the line was received from, an empty string means is a global message
    // line is the raw line received
    // spl is the line splitted by the | character
    // isInitialMessage is true if the line was received in the room initializing message, meaning it may be an old message
    console.log(`Received message from room: ${room}, line: ${line}`);
});

bot.on("sent", msg => {
    // This event is emitted when the bot sends a message to the server
    console.log("Sent message: " + msg);
});

bot.connect();

Documentation

Check the documentation for detailed specifications for configuration, methods and events available.

You can also check the auto generated documentation.

Building

In order to build this library, you need:

  • NodeJS, latest stable version.

Run the following command to install dependencies:

npm install

Run the following command to build the typescript into javascript:

npm run build

ps-bot-lib's People

Contributors

agustinsrg avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.