0.2.1 • Published 9 years ago

tagpro-bot-talk v0.2.1

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

TagPro Bot Talk

This library facilitates communication between bots for the game TagPro.

Usage

To use in a userscript, add

// @require https://raw.githubusercontent.com/chrahunt/tagpro-bot-talk/master/dist/messenger.js

to your header and access the library using the global BotMessenger object. You may also include the script directly in a page, where it will behave the same (creating a BotMessenger global).

The library can also be used as an AMD/CommonJS module. Download or npm install tagpro-bot-talk and require('tagpro-bot-talk') for CommonJS or add as a dependency to your define or require calls in AMD.

To start, you need to initialize the BotMessenger. The constructor takes the id of the current player, and the game socket (or socket-like object) to be communicated over.

var messenger = new BotMessenger(tagpro.playerId, tagpro.socket);

To send a message, just emit an event:

messenger.emit('gotpup', { x: 14, y: 5, type: 1 });

Careful: if the resulting message exceeds 71 characters, an exception is thrown.

Use on to listen for messages:

messenger.on('gotpup', function (event) {
  var location = {
    x: event.data.x,
    y: event.data.y
  };
  var type = event.data.type;
  var whoSawIt = event.player;
});

Messages passed to the listener function are an object with the following properties:

  • name {string} the name of the event that occurred.
  • player {integer} the id of the player that sent the message.
  • data {*} the data associated with the event, or null if no data was passed.

BotMessenger inherits from EventEmitter, so check out that documentation for additional methods and details (removeListener and once may be helpful). The only deviation is in the exception-handling case mentioned above.

Development

  1. Download the repository.
  2. npm install to install development dependencies.
  3. npm install -g gulp if gulp is not installed.
  4. gulp watch for build and quick rebuilds to build.
  5. gulp build-prod for building final version to dist.